Page 1 of 1

php5-cgi Prozess läuft Amok

Posted: 2006-07-28 15:30
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

Re: php5-cgi Prozess läuft Amok

Posted: 2006-07-28 20:25
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.

Re: php5-cgi Prozess läuft Amok

Posted: 2006-07-28 23:56
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