Bug #81358 [Fbk->Opn]: PHP hangs when the first signal sent

From: Date: Mon, 16 Aug 2021 15:10:19 +0000
Subject: Bug #81358 [Fbk->Opn]: PHP hangs when the first signal sent
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-235867@lists.php.net to get a copy of this message
Edit report at https://bugs.php.net/bug.php?id=81358&edit=1 ID: 81358 User updated by: abolfazl dot ziaratban at gmail dot com Reported by: abolfazl dot ziaratban at gmail dot com Summary: PHP hangs when the first signal sent -Status: Feedback +Status: Open Type: Bug Package: Program Execution Operating System: CentOS PHP Version: 8.0.9 Block user comment: N Private report: N New Comment: The main problem is : test2.php does not run when sending SIGUSR1. > because the SIGUSR1 default action is to terminate the process Why? SIGUSR1 and SIGUSR2 are User-defined signals. I thought these signals were for me. Why the php using this signals for terminate the process? Ok i put assume that signals are for terminate the process but why does the SIGALRM signal behave similarly(acts like SIGUSR1)? New Example : test1.php $proc = proc_open('php /root/test2.php',[],$p); posix_kill(proc_get_status($proc)['pid'],SIGALRM); while(proc_get_status($proc)['running']) sleep(1); echo "End !"; test2.php mkdir('/root/a'); In this example, directory a is not created and test2.php does not actually run. Previous Comments: ------------------------------------------------------------------------ [2021-08-16 12:35:53] nikic@php.net Can you clarify what the actual issue here is? Is it the "does not run" part? That seems expected to me, because the SIGUSR1 default action is to terminate the process, so if the signal arrives before the echo can execute, nothing will be printed. Or is there an actual hang here, and if so, how does it look like. Does the outer "php test1.php" call itself hang indefinitely? ------------------------------------------------------------------------ [2021-08-14 02:49:35] abolfazl dot ziaratban at gmail dot com fix bug : $proc = proc_open('php test2.php',[],$_); sleep(1); #fix posix_kill(proc_get_status($proc)['pid'],SIGUSR1); ------------------------------------------------------------------------ [2021-08-14 02:47:44] abolfazl dot ziaratban at gmail dot com . ------------------------------------------------------------------------ [2021-08-14 02:01:47] abolfazl dot ziaratban at gmail dot com Description: ------------ Hi PHP hangs when I open php with proc_open and send a signal. Test script: --------------- test2.php echo 'Test'; #does not run test1.php $proc = proc_open('php test2.php',[],$_); posix_kill(proc_get_status($proc)['pid'],SIGUSR1); ------------------------------------------------------------------------ -- Edit this bug report at https://bugs.php.net/bug.php?id=81358&edit=1

« previous php.bugs (#235867) next »