[php-src] Issue #24695: sapi/fpm/tests/tester.inc can send SIGUSR2 to pid 0, killing run-tests.php
| From: | Bill-Sommerfeld | Date: | Sun, 25 Oct 2026 16:20:52 +0000 |
| Subject: | [php-src] Issue #24695: sapi/fpm/tests/tester.inc can send SIGUSR2 to pid 0, killing run-tests.php | ||
| Groups: | php.bugs | ||
| Request: | Send a blank email to php-bugs+get-253186@lists.php.net to get a copy of this message | ||
Issue: https://github.com/php/php-src/issues/24695
Author: Bill-Sommerfeld
### Description
While testing https://github.com/OpenIndiana/oi-userland/pull/28065,
https://github.com/OpenIndiana/oi-userland/pull/28066, and https://github.com/OpenIndiana/oi-userland/pull/28067,
(packaging 8.3.36, 8.4.27, and 8.5.12, respectively), I observed test runs aborting with a
"User Signal 2" or "zsh: user-defined signal 2" error (the exact error depends
on which shell you're running).
Digging further I caught the test
sapi/fpm/tests/bug80024-socket-reduced-inherit.phpt
invoking kill -USR2 0; this sends a SIGUSR2 signal to the current process
group, killing both the test and the run-tests.php test runner, aborting the test run.
I worked around this with the attached "no-kill-zero.patch" which declines to send a
signal if it can't find a non-zero pid. With this patch in place, run-tests.php
can run to completion on openindiana.
[no-kill-zero.patch](https://github.com/user-attachments/files/33930170/no-kill-zero.patch)
Example of a run clobbered by this (without the patch):
```
builder@builder:/z/ws/oi-userland-dev/components/web/php/php-8_5$ gmake test
COMPONENT_TEST_ARGS="TESTS=sapi/fpm/tests/bug80024-socket-reduced-inherit.phpt"
/bin/rm -f -r /z/ws/oi-userland-dev/components/web/php/php-8_5/build/test/amd64
/bin/mkdir -p /z/ws/oi-userland-dev/components/web/php/php-8_5/build/test/amd64
(cd /z/ws/oi-userland-dev/components/web/php/php-8_5/build/amd64 ; \
/usr/bin/env -i
CARGO_HOME="/z/ws/oi-userland-dev/components/web/php/php-8_5/build/amd64/.cargo"
PATH="/usr/gcc/14/bin:/usr/clang/21/bin:/usr/ruby/3.2/bin:/usr/jdk/openjdk21/bin:/usr/postgres/16/bin:/usr/mariadb/10.6/bin:/usr/openssl/3/bin:/usr/bin/amd64:/usr/bin:/usr/gnu/bin:/usr/sbin/amd64:/usr/sbin"
NO_INTERACTION=yes \
/usr/gnu/bin/make \
TESTS=sapi/fpm/tests/bug80024-socket-reduced-inherit.phpt test) \
|& /usr/bin/tee
/z/ws/oi-userland-dev/components/web/php/php-8_5/build/test/amd64/test-64-results
Build complete.
Don't forget to run 'make test'.
=====================================================================
PHP : /z/ws/oi-userland-dev/components/web/php/php-8_5/build/amd64/sapi/cli/php
PHP_SAPI : cli
PHP_VERSION : 8.5.12
ZEND_VERSION: 4.5.12
PHP_OS : SunOS - SunOS builder 5.11 illumos-de1199e407 i86pc
INI actual : /z/ws/oi-userland-dev/components/web/php/php-8_5/build/amd64/tmp-php.ini
More .INIs :
---------------------------------------------------------------------
PHP : /z/ws/oi-userland-dev/components/web/php/php-8_5/build/amd64/sapi/cgi/php-cgi
PHP_SAPI : cgi-fcgi
PHP_VERSION : 8.5.12
ZEND_VERSION: 4.5.12
PHP_OS : SunOS - SunOS builder 5.11 illumos-de1199e407 i86pc
INI actual : /z/ws/oi-userland-dev/components/web/php/php-8_5/build/amd64/tmp-php.ini
More .INIs :
---------------------------------------------------------------------
---------------------------------------------------------------------
PHP : /z/ws/oi-userland-dev/components/web/php/php-8_5/build/amd64/sapi/phpdbg/phpdbg
PHP_SAPI : phpdbg
PHP_VERSION : 8.5.12
ZEND_VERSION: 4.5.12
PHP_OS : SunOS - SunOS builder 5.11 illumos-de1199e407 i86pc
INI actual : /z/ws/oi-userland-dev/components/web/php/php-8_5/build/amd64/tmp-php.ini
More .INIs :
---------------------------------------------------------------------
CWD : /z/ws/oi-userland-dev/components/web/php/php-8_5/php-8.5.12
Extra dirs :
VALGRIND : Not used
=====================================================================
Running selected tests.
User Signal 2 gmake test
COMPONENT_TEST_ARGS="TESTS=sapi/fpm/tests/bug80024-socket-reduced-inherit.phpt"
```
Output for 8.3.x and 8.4.x is similar.
### PHP Version
```plain
Observed while running make test after builds of 8.3.36, 8.4.27, and 8.5.12 on
openindiana.
```
### Operating System
Openindiana