#16820 [NoF->Opn]: hangs in multithreded environment (ZTS)

From: Date: Mon, 21 Oct 2002 05:18:54 +0000
Subject: #16820 [NoF->Opn]: hangs in multithreded environment (ZTS)
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-22934@lists.php.net to get a copy of this message
 ID:               16820
 User updated by:  wmeler@wp-sa.pl
 Reported By:      wmeler@wp-sa.pl
-Status:           No Feedback
+Status:           Open
 Bug Type:         Scripting Engine problem
 Operating System: linux
 PHP Version:      4.2.0
 New Comment:

Well, it seems that nothing has changed - on timeout it still does
longjmp without care of semaphores. Locks won't be freed so it will
hang. 
As I wrote few months ago, signal handler should only set EG(timeout)
flag.


Previous Comments:
------------------------------------------------------------------------

[2002-10-20 01:00:03] php-bugs@lists.php.net

No feedback was provided for this bug for over 2 weeks, so it is
being suspended automatically. If you are able to provide the
information that was originally requested, please do so and change
the status of the bug back to "Open".

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

[2002-10-03 22:43:06] iliaa@php.net

Please try using this CVS snapshot:

  http://snaps.php.net/php4-latest.tar.gz
 
For Windows:
 
  http://snaps.php.net/win32/php4-win32-latest.zip



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

[2002-06-16 00:11:29] sniper@php.net

reclassified

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

[2002-04-25 06:24:51] wmeler@wp-sa.pl

If you have bad luck and get termination signal (after exceding
max_execution_time limit) in some critical section
locks won't be released !!! (because of usage of longjmp function in
zend_bailout)

eg. when signal come when process is executing malloc in ealloc
(Zend/zend_alloc.c) function it won't release internal
lock, and shutdown functions that free memory will hang as well as
other threads.

You probably can prevent it with HANDLE_BLOCK_INTERRUPTIONS macro, but
it isn't good solution.
I suggest that zend_timeout function should set EG(timed_out) flag, as
it is done in windows environment. Flag should be checked in execute
function (Zend/zend_execute.c) in main loop.

waiting for your patch (my is working, but is ugly coded;-)),
Wojtek


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


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



Thread (39 messages)

« previous php.bugs (#22934) next »