Description
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