diff options
author | Jakub Zelenka <bukka@php.net> | 2019-05-11 20:07:39 +0100 |
---|---|---|
committer | Jakub Zelenka <bukka@php.net> | 2019-05-11 20:07:39 +0100 |
commit | cc5c51e7f0732067f105d13c6d355fcab5965c2f (patch) | |
tree | d3a9fc2ff6b2e13bcd21a3542a21dc91b8a8e35d | |
parent | b15bfb9129eb7941b3643209243caba891e4d25d (diff) | |
download | php-git-cc5c51e7f0732067f105d13c6d355fcab5965c2f.tar.gz |
Fix bug #77934 (php-fpm kill -USR2 not working)
-rw-r--r-- | NEWS | 1 | ||||
-rw-r--r-- | sapi/fpm/fpm/fpm_signals.c | 2 | ||||
-rw-r--r-- | sapi/fpm/tests/bug77934-reload-process-control.phpt | 44 |
3 files changed, 46 insertions, 1 deletions
@@ -3,6 +3,7 @@ PHP NEWS ?? ??? 2019, PHP 7.2.19 - FPM: + . Fixed bug #77934 (php-fpm kill -USR2 not working). (Jakub Zelenka) . Fixed bug #77921 (static.php.net doesn't work anymore). (Peter Kokot) - GD: diff --git a/sapi/fpm/fpm/fpm_signals.c b/sapi/fpm/fpm/fpm_signals.c index 0df119be38..4c9f9664f6 100644 --- a/sapi/fpm/fpm/fpm_signals.c +++ b/sapi/fpm/fpm/fpm_signals.c @@ -143,7 +143,7 @@ static void sig_soft_quit(int signo) /* {{{ */ int saved_errno = errno; /* closing fastcgi listening socket will force fcgi_accept() exit immediately */ - close(0); + close(fpm_globals.listening_socket); if (0 > socket(AF_UNIX, SOCK_STREAM, 0)) { zlog(ZLOG_WARNING, "failed to create a new socket"); } diff --git a/sapi/fpm/tests/bug77934-reload-process-control.phpt b/sapi/fpm/tests/bug77934-reload-process-control.phpt new file mode 100644 index 0000000000..d223403f99 --- /dev/null +++ b/sapi/fpm/tests/bug77934-reload-process-control.phpt @@ -0,0 +1,44 @@ +--TEST-- +FPM: bug77934 - php-fpm kill -USR2 not working +--SKIPIF-- +<?php include "skipif.inc"; ?> +--FILE-- +<?php + +require_once "tester.inc"; + +$cfg = <<<EOT +[global] +error_log = {{FILE:LOG}} +pid = {{FILE:PID}} +process_control_timeout=20 +[unconfined] +listen = {{ADDR}} +pm = dynamic +pm.max_children = 5 +pm.start_servers = 1 +pm.min_spare_servers = 1 +pm.max_spare_servers = 1 +EOT; + +$tester = new FPM\Tester($cfg); +$tester->start(); +$tester->expectLogStartNotices(); +$tester->signal('USR2'); +$tester->expectLogNotice('Reloading in progress ...'); +$tester->expectLogNotice('reloading: .*'); +$tester->expectLogNotice('using inherited socket fd=\d+, "127.0.0.1:\d+"'); +$tester->expectLogStartNotices(); +$tester->terminate(); +$tester->expectLogTerminatingNotices(); +$tester->close(); + +?> +Done +--EXPECT-- +Done +--CLEAN-- +<?php +require_once "tester.inc"; +FPM\Tester::clean(); +?> |