Skip to content

stream_select(): unable to select [4]: Interrupted system call (max_fd=5) #670

Closed
@bigdaddymax

Description

@bigdaddymax

After upgrading to 2.8.1 we get the ocasional following exceptions:

Fatal error: Uncaught ErrorException: stream_select(): unable to select [4]: Interrupted system call (max_fd=5) in /opt/www/sbwell.com/library/PhpAmqpLib/Wire/IO/StreamIO.php on line 474

It looks like the reason for this exception is the recent change in error_handler() function, in particular the way how specific warning is detected: #615

In previouse versions it was simple search for "Interrupted system call" substring.

Now it is looking for "errno=4":

        self::$ERRNO_EQUALS_EINTR = 'errno=' . SOCKET_EINTR;      
        
        // stream_select warning that it has been interrupted by a signal - EINTR
        if (strpos($errstr, self::$ERRNO_EQUALS_EINTR) !== false) {

The trick is that the real error string (in our case) does not contain "errno=XXX" substring at all:

stream_select(): unable to select [4]: Interrupted system call (max_fd=5)

I am not sure if the format of the error string depends on the OS or PHP version, we use PHP 7.1 and CentOS 6.10

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions