View Issue Details
|ID||Project||Category||View Status||Date Submitted||Last Update|
|0001168||Xdebug||Uncategorized||public||2015-06-23 08:21||2016-12-04 18:33|
|OS||Debian 8||OS Version||3.16.0-4-amd64|
|Fixed in Version||2.5.0|
|Summary||0001168: Possible infinite loop when PHP's executor shuts down|
I've had random PHP-FPM processes consuming 100% of CPU whilst being unable to interrogate them via most means (e.g. strace). I spent a lot of time pulling info on the process to little avail however, finally, the below GDB backtraces show the process stuck in a while loop within xdebug shutdown code.
|Steps To Reproduce|
Hard to reproduce - will probably happen to a single php-fpm process once or twice a month.
GDB BT is at https://gist.githubusercontent.com/phil-lavin/2b8a1bb91f7e0bfe10c7/raw/9a2095bd60b11dca131a62d0f38065db181a1e2b/gistfile1.txt
Other debug info gathered is as follows:
/proc/$PID/fd: 2 sockets, and a deleted /tmp file
|Tags||No tags attached.|
Hmm, this issue has been reported before, but I could never find why it happens, as it seems so difficult to reproduce. Is there a way how you can (reliably) reproduce this? Do you know with which request/code path this happens? Is it in a single or multi-threaded environment?
I can guarantee that it'll happen some time in the next month but I cannot easily reproduce on a whim.
It's a single threaded php-fpm implementation.
I'll be at phpwarks tonight if you want to discuss or poke around the affected server.
I can see that it's stuck here:
with tail == NULL llist_remove() immediately returns, but the l->size is still 1 (in my case), so this loop has no end.
Good luck Antony! I never managed :-/
Changing this to "acknowledged", but I won't work on this unless somebody shows me a reproducible case.
Is this something either of you have been able to conclusively reproduce yet? If not, I think I will close this issue.
I have added the defensive check for 2.5.0RC2.
|2015-06-23 08:21||phil-lavin||New Issue|
|2015-06-25 13:39||derick||Note Added: 0003135|
|2015-06-25 13:39||derick||Assigned To||=> derick|
|2015-06-25 13:39||derick||Status||new => feedback|
|2015-06-25 13:47||phil-lavin||Note Added: 0003139|
|2015-06-25 13:47||phil-lavin||Status||feedback => assigned|
|2015-10-22 16:10||tony2001||Note Added: 0003181|
|2015-10-22 16:12||derick||Note Added: 0003182|
|2015-11-20 17:55||derick||Note Added: 0003246|
|2015-11-20 17:55||derick||Status||assigned => acknowledged|
|2016-07-31 12:36||derick||Category||Usage problems => Usage problems (Crashes)|
|2016-07-31 12:38||derick||Category||Usage problems (Crashes) => Usage problems (Wrong Results)|
|2016-12-03 13:37||derick||Note Added: 0003885|
|2016-12-03 13:37||derick||Status||acknowledged => feedback|
|2016-12-04 13:23||derick||Relationship added||has duplicate 0000731|
|2016-12-04 14:51||derick||Note Added: 0003894|
|2016-12-04 14:51||derick||Status||feedback => closed|
|2016-12-04 14:51||derick||Resolution||open => fixed|
|2016-12-04 14:51||derick||Fixed in Version||=> 2.5.0RC2|
|2016-12-04 17:56||derick||Summary||Possible infinate loop => Possible infinite loop when PHP's executor shuts down|
|2016-12-04 18:33||derick||Fixed in Version||2.5.0RC2 => 2.5.0|
|2020-03-12 16:35||derick||Category||Usage problems (Wrong Results) => Variable Display|
|2020-03-12 16:38||derick||Category||Variable Display => Uncategorized|