From b3b344897694a104b288f7a4e19f3a0061c7f94d Mon Sep 17 00:00:00 2001 From: Chad Sikorra Date: Fri, 19 May 2017 13:02:26 -0500 Subject: [PATCH 1/2] Avoid timeouts when sending server log data via TCP. --- src/Symfony/Bridge/Monolog/Handler/ServerLogHandler.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Symfony/Bridge/Monolog/Handler/ServerLogHandler.php b/src/Symfony/Bridge/Monolog/Handler/ServerLogHandler.php index 599940e8d7714..341a75000cf94 100644 --- a/src/Symfony/Bridge/Monolog/Handler/ServerLogHandler.php +++ b/src/Symfony/Bridge/Monolog/Handler/ServerLogHandler.php @@ -54,12 +54,12 @@ public function handle(array $record) $recordFormatted = $this->formatRecord($record); - if (!fwrite($this->socket, $recordFormatted)) { + if (-1 === stream_socket_sendto($this->socket, $recordFormatted)) { fclose($this->socket); // Let's retry: the persistent connection might just be stale if ($this->socket = $this->createSocket()) { - fwrite($this->socket, $recordFormatted); + stream_socket_sendto($this->socket, $recordFormatted); } } } finally { From 023cf011456c81bdb4489f641a7bd7d46e00cbe3 Mon Sep 17 00:00:00 2001 From: Chad Sikorra Date: Fri, 19 May 2017 18:24:12 -0500 Subject: [PATCH 2/2] Close the socket using stream_socket to avoid hangs. --- src/Symfony/Bridge/Monolog/Handler/ServerLogHandler.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Symfony/Bridge/Monolog/Handler/ServerLogHandler.php b/src/Symfony/Bridge/Monolog/Handler/ServerLogHandler.php index 341a75000cf94..fb258808f3836 100644 --- a/src/Symfony/Bridge/Monolog/Handler/ServerLogHandler.php +++ b/src/Symfony/Bridge/Monolog/Handler/ServerLogHandler.php @@ -55,7 +55,7 @@ public function handle(array $record) $recordFormatted = $this->formatRecord($record); if (-1 === stream_socket_sendto($this->socket, $recordFormatted)) { - fclose($this->socket); + stream_socket_shutdown($this->socket, STREAM_SHUT_RDWR); // Let's retry: the persistent connection might just be stale if ($this->socket = $this->createSocket()) {