Edit report at https://bugs.php.net/bug.php?id=68453&edit=1
ID: 68453
Updated by: rasmus@php.net
Reported by: pegasus at vaultwiki dot org
Summary: FPM Process hangs in no-debug only
Status: Feedback
Type: Bug
Package: Reproducible crash
Operating System: Centos 6 64-bit
PHP Version: master-Git-2014-11-19 (Git)
Block user comment: N
Private report: N
New Comment:
Well, just check the timestamp
Previous Comments:
------------------------------------------------------------------------
[2014-11-20 06:33:58] pegasus at vaultwiki dot org
The only extension in my php.ini is
zend_extension = "opcache.so"
I was under the impression that this recompiles in tandem with every PHP recompile, as I've
never actually compiled that module manually.
------------------------------------------------------------------------
[2014-11-20 05:58:05] rasmus@php.net
I suppose this could matter if you have shared extensions that you didn't recompile after that
change since the order changed in that Bucket struct. Check that all your .so extensions were
compiled against this new struct layout.
------------------------------------------------------------------------
[2014-11-20 04:13:36] pegasus at vaultwiki dot org
Finally narrowed it down to a single commit.
This was the breaking change: http://git.php.net/?p=php-src.git;a=commitdiff;h=76019b86c0ede959e000c164b02ed8b1d8bb29e1
I'm not sure why that matters, but I think that change needs to be rolled back, or it at least
needs to be investigated why it causes returns of object instances stored as local static array
entries to sometimes hang.
------------------------------------------------------------------------
[2014-11-19 22:42:58] pegasus at vaultwiki dot org
By testing with various old commits, I have determined that the breaking change occurred somewhere
between the following:
- 54fa42475120f3ab61f50732fa2d68c3af07f259 (works)
- 96220027e12d72b295808081136dee66bc3a9d61 (does not work)
The commits between the two look relatively innocuous, so I'm at a bit of a loss regarding how
to narrow it down further.
------------------------------------------------------------------------
[2014-11-19 18:33:00] pegasus at vaultwiki dot org
Well I tried for a few hours but cannot create a simple test that duplicates the results. Although
my results varied and the same code blocks did not consistently hang from test to test, the total
script would always hang.
Before giving up when it seemed the behavior changed, I thought this was related to:
Caching object instances as array entries of static arrays declared inside a getObject method,
inside other objects that were cached in the same way in higher level objects (depth of 3 or
higher), then starting from the highest-level object, trying to retrieve the deep objects. But I
cannot be sure because the simple test succeeds, and it seemed like the original script would hang
on the return statements, which makes it nearly impossible to debug further from within PHP.
As I said, this worked properly in previous commits, but the last commit I tried before today is
dated 11/6/2014, so I am not sure when the breaking change occurred. I will try to at least narrow
it down to the last date with a working commit and report back.
------------------------------------------------------------------------
The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
https://bugs.php.net/bug.php?id=68453
--
Edit this bug report at https://bugs.php.net/bug.php?id=68453&edit=1