View Issue Details
|ID||Project||Category||View Status||Date Submitted||Last Update|
|0000731||Xdebug||Uncategorized||public||2011-10-06 15:56||2016-12-04 13:23|
|Priority||normal||Severity||minor||Reproducibility||unable to reproduce|
|Summary||0000731: Infinite loop possible with xdebug_llist_empty() function|
We have a long-running and complicated PHP daemon, and at one point it got into a state where the process was using 100% of the CPU, but it wasn't making any syscalls (strace -p listed nothing).
Using gdb we saw this state:
and looking at the variable l we saw this:
(gdb) print *l
The code for xdebug_llist_empty() and xdebug_llist_remove() (here:
I'm not sure how the variable l got into this state, but it has a tail of 0x0 and a size of 1, which means the remove() function doesn't make it any shorter, but the empty() function thinks it needs to be made shorter. Presumably the code would benefit from an extra check to catch this situation, to be defensive.
|Steps To Reproduce|
Unfortunately we do not know what caused it to get into this state, and it only happens infrequently.
|Tags||No tags attached.|
Is this still a problem for you with the latest versions of PHP and Xdebug?
I don't think we've seen this happen recently, but that could be because we've removed the code that triggers the XDebug problem. It looks like this fix:
I can confirm this bug, in my case the infinite loop happens with xdebug 2.2.5 and PHP 5.6.14 (debian jessie php5=5.6.14+dfsg-0+deb8u1) which leads to hung apache2 processes eating 100% cpu for long time. gdb shows stack trace similar to that originally reported.
Duplicate of 0001168, which has slightly more information.
|2011-10-06 15:56||etaylor||New Issue|
|2014-02-27 19:13||derick||Note Added: 0002691|
|2014-02-27 19:13||derick||Assigned To||=> derick|
|2014-02-27 19:13||derick||Status||new => feedback|
|2014-03-05 15:38||etaylor||Note Added: 0002761|
|2014-03-05 15:38||etaylor||Status||feedback => assigned|
|2015-11-24 21:55||vitalif||Note Added: 0003266|
|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-04 13:23||derick||Note Added: 0003893|
|2016-12-04 13:23||derick||Relationship added||duplicate of 0001168|
|2016-12-04 13:23||derick||Status||assigned => resolved|
|2016-12-04 13:23||derick||Resolution||open => duplicate|
|2020-03-12 16:35||derick||Category||Usage problems (Wrong Results) => Variable Display|
|2020-03-12 16:38||derick||Category||Variable Display => Uncategorized|