Sinds gisteren lukt het niet meer om spots binnen te halen. De boel hier draait al maandenlang probleemloos en is up-to-date ('master' branch, git pull geeft niets nieuws). Database engine = pdo_mysql.
In eerste instantie kreeg ik de foutmelding "PHP Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 1089738 bytes) in /home/
spotweb/
spotweb/lib/services/Format/Services_Format_Parsing.php on line 45."
Daarna heb ik in php.ini de memory limiet verhoogd van 128MB naar 1024MB. Dat helpt, maar nu krijg ik:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
| sudo -u www-data /usr/bin/php retrieve.php | sudo -u www-data /usr/bin/tee -a /var/log/spotweb/retrieve.log
Last retrieve at Sat 15 Mar 2014 03:26:57 PM CET
Retrieving new Spots from server newsreader29.eweka.nl...
Appr. Message count: 1990516
First message number: 2
Last message number: 1990518
Current article number: 1984373
Retrieving 1984373 till 1985374 (parsed: 1000, in DB: 1, signed: 0, invalid: 3, rtntn.skip: 0, mod: 186, full: 811, total: 1001)
SpotWeb v0.67.28.31 on PHP v5.4.4-14+deb7u8 crashed
Fatal error occured retrieving reports:
HY000: 2006: MySQL server has gone away
#0 /home/spotweb/spotweb/lib/dao/Base/Dao_Base_Spot.php(480): dbeng_pdo->batchInsert(Array, 'INSERT INTO spo...', Array, Array)
#1 /home/spotweb/spotweb/lib/dao/Base/Dao_Base_Spot.php(435): Dao_Base_Spot->addFullSpots(Array)
#2 /home/spotweb/spotweb/lib/services/Retriever/Services_Retriever_Spots.php(543): Dao_Base_Spot->addSpots(Array, Array)
#3 /home/spotweb/spotweb/lib/services/Retriever/Services_Retriever_Base.php(227): Services_Retriever_Spots->process(Array, '1984373', 1985374, 1394971661.3531)
#4 /home/spotweb/spotweb/lib/services/Retriever/Services_Retriever_Base.php(319): Services_Retriever_Base->loopTillEnd('1984373', '1000')
#5 /home/spotweb/spotweb/retrieve.php(154): Services_Retriever_Base->perform()
#6 {main} |
Wat heb ik geprobeerd:
1) mysqlrepair op de database; geen verbetering.
2) optimize voor diskspace met "OPTIMIZE TABLE `commentsxover` , `spotstatelist` , `nntp` , `spots` , `spotsfull`;"
3) bovenstaande 'insert' om de bovengenoemde spammer tegen te gaan.
Nog steeds dezelfde error, helaas. Googlen naar 'mysql server has gone away' gaf
deze pagina, en omdat m'n retrieve nog geen kwartier duurt gok ik dat ik over een 32MB limiet ga.
Iemand ideeën hoe ik dit kan oplossen, dan wel verder kan debuggen? Ik ben compleet leek op PHP en MySQL gebied - wellicht dat het tijd is om een ticket op GitHub voor dit issue te maken?
Edit:
Nog even wat verder gezocht en geprobeerd:
database engine naar 'mysql' i.p.v. 'pdo_mysql': geen verschil;
In MySQL my.cnf de settings wait_timeout op 28800 gezet en max_allowed_packet op 128MB (was 16MB) gezet.
Resultaat: niet meer de 'mysql server has gone away', maar nu weer een PHP fatal error 'Allowed memory size of 1073741824 bytes exhausted (tried to allocate 2179477 bytes) in /home/
spotweb/
spotweb/lib/dbeng/dbeng_pdo.php on line 229'.
Tja, ik kan wel aan de gang blijven met PHP memory ophogen, maar volgens mij zit er iets goed mis. Iemand ideeën?
[
Voor 9% gewijzigd door
vanaalten op 16-03-2014 14:20
]