com php-src: fpm: call zend_signal_init() in child : sapi/fpm/fpm/fpm_signals.c
| From: | Xinchen Hui | Date: | Mon, 15 Feb 2016 05:23:37 +0000 |
| Subject: | com php-src: fpm: call zend_signal_init() in child : sapi/fpm/fpm/fpm_signals.c | ||
| Groups: | php.cvs | ||
| Request: | Send a blank email to php-cvs+get-91033@lists.php.net to get a copy of this message | ||
Commit: 0c2e184eac4cc9c922c5668241b46f73e8bbf617
Author: Mickaël <mickael9@gmail.com> Sat, 9 Jan 2016 04:54:02 +0100
Committer: Xinchen Hui <laruence@gmail.com> Mon, 15 Feb 2016 13:23:37 +0800
Parents: 0e363e90a4cc3dd5983d0aaaf7f3d1c6b37a0cee
Branches: PHP-7.0 master
Link: http://git.php.net/?p=php-src.git;a=commitdiff;h=0c2e184eac4cc9c922c5668241b46f73e8bbf617
Log:
fpm: call zend_signal_init() in child
This addresses bug #71269.
When an fpm child handles more than one request, zend_signal_startup() will
override the saved signal handlers with the internal zend handlers set from the
previous request, causing a SIGQUIT signal to result in a core dump rather than
gracefully exiting (the expected behaviour).
This is fixed by adding a call to zend_signal_init() after setting the
signal handlers in the child. The same technique is used in the apache SAPI
module in commit fd5a756ad44124ffa7e9a5810a31ff49e91708cf which addresses
bug #61083.
Bugs:
https://bugs.php.net/71269
https://bugs.php.net/61083
Changed paths:
M sapi/fpm/fpm/fpm_signals.c
Diff:
diff --git a/sapi/fpm/fpm/fpm_signals.c b/sapi/fpm/fpm/fpm_signals.c
index c5d0692..a637e69 100644
--- a/sapi/fpm/fpm/fpm_signals.c
+++ b/sapi/fpm/fpm/fpm_signals.c
@@ -241,6 +241,10 @@ int fpm_signals_init_child() /* {{{ */
zlog(ZLOG_SYSERROR, "failed to init child signals: sigaction()");
return -1;
}
+
+#ifdef ZEND_SIGNALS
+ zend_signal_init();
+#endif
return 0;
}
/* }}} */