Bug #68453 [Opn->Fbk]: FPM Process hangs in no-debug only

From: Date: Thu, 20 Nov 2014 05:58:05 +0000
Subject: Bug #68453 [Opn->Fbk]: FPM Process hangs in no-debug only
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-188701@lists.php.net to get a copy of this message
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:             Open
+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:

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.


Previous Comments:
------------------------------------------------------------------------
[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.

------------------------------------------------------------------------
[2014-11-19 17:06:41] pegasus at vaultwiki dot org

Description:
------------
On certain PHP scripts, the process hangs indefinitely. This is new behavior that I did not
experience several days ago on an earlier build. I have not yet been able to determine what code
block is related, but I am working on that now.

As far as I can tell, there is no SIGSEV or other logged crash; the process just eventually times
out.

This behavior exists in both no-debug-non-zts and no-debug-zts builds.
It does not occur in debug-non-zts (I have not tested debug-zts).
Therefore, it suggests that one of the debug symbols that is removed in no-debug builds is actually
needed for execution somewhere or that the removal of debug symbols might damage non-debug code in
some way.

The behavior persists if opcache is disabled.

Here is the configure line, if it helps:

./configure --enable-bcmath --enable-libxml --enable-mbstring --enable-sockets --enable-fpm
--enable-opcache --prefix=/home/php --with-curl --with-freetype-dir=/usr --with-gd
--enable-gd-native-ttf --with-jpeg-dir=/usr --with-libdir=/lib64 --with-libxml-dir=/usr/lib64/
--with-mcrypt --with-mysql --with-mysqli --with-openssl=/usr --with-pic --with-png-dir=/usr
--with-xpm-dir=/usr --with-xsl --with-zlib --with-zlib-dir=/usr --with-fpm-user --with-fpm-group

Expected result:
----------------
Normal execution



------------------------------------------------------------------------



--
Edit this bug report at https://bugs.php.net/bug.php?id=68453&edit=1


Thread (20 messages)

« previous php.bugs (#188701) next »