php5-cgi Prozess läuft Amok

Apache, Lighttpd, nginx, Cherokee
mccab99
Posts: 43
Joined: 2006-02-20 08:41
Location: Cloppenburg

php5-cgi Prozess läuft Amok

Post by mccab99 »

So,

nach langem Lesen traue ich mich nun auch einmal, eine Frage zu stellen.

Mein System:

lighttpd
php5.1.4 (fastCGI - wie auch sonst mit lighty...)

Bei einer bestimmten Applikation kommt es unter gewissen Umständen dazu, dass einer der php5-cgi-Prozesse 50% CPU-Last an sich reißt und lighty währenddessen keine Seiten mehr ausliefern mag. Der Prozess beendet sich auch nach 16 Stunden nicht... Den PHP-Loglevel habe ich am Anschlag stehen, loggen tut er trotzdem nichts.

Ich vermute, das lighty auf irgendeine Rückmeldung vom php5-cgi Prozess wartet und sie nicht erhält.

Wie komme ich zu einer verwertbaren Fehlermeldung? Ich weiß schließlich nicht, welcher php5-Prozess den Mist abbekommt - ok, man könnte vorerst nur einen starten.

Gruß,

Maik
captaincrunch
Userprojekt
Userprojekt
Posts: 7066
Joined: 2002-10-09 14:30
Location: Dorsten

Re: php5-cgi Prozess läuft Amok

Post by captaincrunch »

Wie komme ich zu einer verwertbaren Fehlermeldung? Ich weiß schließlich nicht, welcher php5-Prozess den Mist abbekommt - ok, man könnte vorerst nur einen starten.
Ich würd's mal mit strace versuchen.
DebianHowTo
echo "[q]sa[ln0=aln256%Pln256/snlbx]sb729901041524823122snlbxq"|dc
mccab99
Posts: 43
Joined: 2006-02-20 08:41
Location: Cloppenburg

Re: php5-cgi Prozess läuft Amok

Post by mccab99 »

Ok, war ja gar nicht schwer - sieht nach einer Endlosschleife aus, zumindest findet sich dieser Codeblock *diverse* Male:

Code: Select all

read(4, 0x8c46f58, 16384)               = -1 EAGAIN (Resource temporarily unavailable)
fcntl64(4, F_SETFL, O_RDWR)             = 0
write(4, "335\0\0\03DELETE FROM mdl_backup_idsn"..., 225) = 225
read(4, "5\0\01", 4)                  = 4
read(4, "\01\02\0", 5)                = 5
fcntl64(4, F_SETFL, O_RDWR|O_NONBLOCK)  = 0
read(4, 0x8c46f58, 16384)               = -1 EAGAIN (Resource temporarily unavailable)
fcntl64(4, F_SETFL, O_RDWR)             = 0
write(4, "215\0\0\03INSERT INTO mdl_backup_ids "..., 145) = 145
read(4, "10\0\01", 4)                 = 4
read(4, "\01375343f2612\0", 8)     = 8
fcntl64(4, F_SETFL, O_RDWR|O_NONBLOCK)  = 0
read(4, 0x8c46f58, 16384)               = -1 EAGAIN (Resource temporarily unavailable)
fcntl64(4, F_SETFL, O_RDWR)             = 0
write(4, ">\0\0\03SELECT * FROM mdl_question_"..., 66) = 66
read(4, "1\0\01", 4)                  = 4
read(4, "10", 1)                       = 1
read(4, "%\0\02", 4)                   = 4
read(4, "27mdl_question_categories2id3n\0\01"..., 37) = 37
read(4, ")\0\03", 4)                   = 4
read(4, "27mdl_question_categories6course3"..., 41) = 41
read(4, "'\0\04", 4)                  = 4
read(4, "27mdl_question_categories4name3377\0"..., 39) = 39
read(4, "'\0\05", 4)                  = 4
read(4, "27mdl_question_categories4info3377377"..., 39) = 39
read(4, "*\0\06", 4)                   = 4
read(4, "27mdl_question_categories7publish"..., 42) = 42
read(4, "(\0\07", 4)                   = 4
read(4, "27mdl_question_categories5stamp3377"..., 40) = 40
read(4, ")\0\010", 4)                  = 4
read(4, "27mdl_question_categories6parent3"..., 41) = 41
read(4, ",\0\0t", 4)                   = 4
read(4, "27mdl_question_categoriestsortord"..., 44) = 44
read(4, "1\0\0n", 4)                  = 4
read(4, "376", 1)                      = 1
read(4, "I\0\0v", 4)                   = 4
read(4, "\00225\0023617Present Perfect\0\0010'www.mo"..., 73) = 73
read(4, "1\0\0f", 4)                  = 4
read(4, "376", 1)                      = 1
fcntl64(4, F_SETFL, O_RDWR|O_NONBLOCK)  = 0
Das kann laut google verschiedenste Ursachen haben, z.B. auch diesen, dass in meinem Fall die Verbindung zu MySQL zusammenbricht. Die selbe Funktion arbeitet jedoc in anderen Zusammenhängen einwandfrei. Kann hier jemand Kaffeesatz lesen?

Maik