Fix: multi_curl_progress fires after shutdown on fatal error (ZTS FrankenPHP)#21457
Fix: multi_curl_progress fires after shutdown on fatal error (ZTS FrankenPHP)#21457AlliBalliBaba wants to merge 4 commits intophp:masterfrom
Conversation
|
Trying to go to issue 2268 yields 404, please share a link. |
|
Ah sry, here is the correct link: php/frankenphp#2268. Yeah this is a bad hack, reproducer is in the description (of this PR). Copy the docker build -t frankenphp-debug -f debug.Dockerfile .
# run the server
docker run --rm -p 8087:80 -v .:/app frankenphp-debug
# from another shell:
curl localhost:8087 |
|
That doesn't reproduce the issue for me. I just get this after I do the curl: It's also unclear whether this is a FrankenPHP issue or a PHP issue. |
|
Hmm aren't the handlers unregistered in |
|
Oh I just realized that |
This issue was originally raised in the FrankenPHP repo php/frankenphp#2268. When a fatal timeout error happens during a
curl_multioperation, the progress function apparently fires one last time whenphphas shut down, crashing the process.Checking for shutdown in the
curl_progressfunction fixes this (lines added in this PR). Would be better to fix the underlying issue that causes the function to fire after shutdown, not familiar with how the curl library works though. Happens only in ZTS.To reproduce:
build and start at port 8087
debug.Dockerfile (FrankenPHP with PHP debug symbols)
index.php (force a timeout with an active curl_progress function)
output