]> granicus.if.org Git - php/commit
Fix CLI server worker support
authorNikita Popov <nikita.ppv@gmail.com>
Thu, 4 Feb 2021 14:18:45 +0000 (15:18 +0100)
committerNikita Popov <nikita.ppv@gmail.com>
Thu, 4 Feb 2021 14:22:34 +0000 (15:22 +0100)
commit5cb25a2d32df8073df7c191dd6c7694b4495af62
tree5adba558b35e119da1761b9a5c9eaac88243bfe5
parent767ddb1cd53ffc5fe4f6ca2e3072be68586f38d2
Fix CLI server worker support

If we create separate listening sockets in each worker using
SO_REUSEADDR, then an incoming connection may be load-balanced
to a process that is already busy, either due to a long-running
request, or because it is a recursive request (in which case we
would deadlock).

Instead, only create one listening socket, and only create worker
forks afterwards. This way the incoming request will be served
by one of the workers that is currently listening for an incoming
connection.
sapi/cli/php_cli_server.c