Skip to content

PHP-FPM children die with SIGPIPE since 8.3.10 #1854

@driskell

Description

@driskell

Description:

See: brefphp/aws-lambda-layers#192

We're seeing lots of random failures in 2.3.4 and 2.3.3 where the child dies of SIGPIPE at the start of a request - meaning something dropped a SIGPIPE prior to the request.

Error communicating with PHP-FPM to read the HTTP response. Bref will restart PHP-FPM now. Original exception message: hollodotme\FastCGI\Exceptions\ReadFailedException Stream got blocked, or terminated.

Followed immediately by (two examples, showing it happens different timings):

[28-Aug-2024 11:03:08] WARNING: [pool default] child 11 exited on signal 13 (SIGPIPE) after 49.066900 seconds from start
[28-Aug-2024 11:03:16] WARNING: [pool default] child 71 exited on signal 13 (SIGPIPE) after 7.462262 seconds from start

Then finally:

{
    "errorType": "Bref\\FpmRuntime\\FastCgi\\FastCgiCommunicationFailed",
    "errorMessage": "",
    "stack": [
        "#0 /var/task/vendor/bref/bref/src/Event/Http/HttpHandler.php(25): Bref\\FpmRuntime\\FpmHandler->handleRequest(Object(Bref\\Event\\Http\\HttpRequestEvent), Object(Bref\\Context\\Context))",
        "#1 /var/task/vendor/bref/bref/src/Runtime/Invoker.php(24): Bref\\Event\\Http\\HttpHandler->handle(Array, Object(Bref\\Context\\Context))",
        "#2 /var/task/vendor/bref/bref/src/Runtime/LambdaRuntime.php(94): Bref\\Runtime\\Invoker->invoke(Object(Bref\\FpmRuntime\\FpmHandler), Array, Object(Bref\\Context\\Context))",
        "#3 /var/task/vendor/bref/bref/src/FpmRuntime/Main.php(46): Bref\\Runtime\\LambdaRuntime->processNextEvent(Object(Bref\\FpmRuntime\\FpmHandler))",
        "#4 /opt/bref/bootstrap.php(17): Bref\\FpmRuntime\\Main::run()",
        "#5 {main}"
    ]
}

Similar to https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=280775 - which seems to refer to libxml

How to reproduce:

Install 2.3.4 or 2.3.3 Bref, use php-fpm as the runtime and send lots of requests.

I'm not entirely sure if this will reproduce it as I haven't tried but it definitely all goes away when downgrading back to 2.3.1.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions