From 86b00a01084840a3a07d2accb6a1aae6c727eb0a Mon Sep 17 00:00:00 2001 From: Martin Linzmayer Date: Fri, 15 May 2026 16:15:18 +0200 Subject: [PATCH 1/2] fix: prevents agent from hanging after receiving 0 message --- agent/src/Server.php | 10 +++++++ agent/tests/AgentForwardingTest.php | 25 ++++++++++++++++ agent/tests/TestAgent.php | 46 +++++++++++++++++++++++++---- 3 files changed, 75 insertions(+), 6 deletions(-) diff --git a/agent/src/Server.php b/agent/src/Server.php index 21d3b7d..769cc36 100644 --- a/agent/src/Server.php +++ b/agent/src/Server.php @@ -85,6 +85,16 @@ public function run(): void // The message length includes the 4 bytes of the header itself $messageLength = $unpackedHeader[1]; + if ($messageLength < 5) { + \call_user_func($this->onConnectionError, new \RuntimeException( + \sprintf('Invalid envelope frame length of %d bytes. The length must include the 4-byte header and at least 1 byte of payload.', $messageLength) + )); + + $connection->close(); + + return; + } + if ($messageLength - 4 > self::MAX_ENVELOPE_SIZE) { \call_user_func($this->onConnectionError, new \RuntimeException( \sprintf('Envelope size of %d bytes exceeds maximum allowed size of %d bytes.', $messageLength - 4, self::MAX_ENVELOPE_SIZE) diff --git a/agent/tests/AgentForwardingTest.php b/agent/tests/AgentForwardingTest.php index 5b7423d..f6c8083 100644 --- a/agent/tests/AgentForwardingTest.php +++ b/agent/tests/AgentForwardingTest.php @@ -61,6 +61,31 @@ public function testAgentForwardsMultipleEnvelopesToUpstream(): void $this->assertEquals(2, $serverOutput['request_count']); } + public function testAgentRejectsZeroLengthFrameWithoutBlockingEventLoop(): void + { + $this->startTestAgent(); + + try { + $this->sendRawDataToAgent(pack('N', 0)); + + // Give the agent a chance to process the malformed frame before checking liveness. + usleep(100000); + + $status = $this->getControlServerStatus(1.0); + + if ($status === false) { + $this->forceStopTestAgent(); + } + + $this->assertTrue($status !== false, 'The control server should remain responsive after a zero-length frame.'); + $this->assertSame(['queue_size' => 0], json_decode((string) $status, true)); + } finally { + if ($this->agentProcess !== null) { + $this->stopTestAgent(); + } + } + } + public function testAgentCompressesEnvelopeToUpstream(): void { if (!\extension_loaded('zlib')) { diff --git a/agent/tests/TestAgent.php b/agent/tests/TestAgent.php index fa8e4a4..3869791 100644 --- a/agent/tests/TestAgent.php +++ b/agent/tests/TestAgent.php @@ -126,6 +126,19 @@ public function startTestAgent(): string * The envelope must be a string in Sentry envelope format. */ public function sendEnvelopeToAgent(string $envelope): void + { + // The agent uses a 4-byte big-endian length prefix protocol + // The length includes the 4 bytes of the header itself + $length = \strlen($envelope) + 4; + $header = pack('N', $length); + + $this->sendRawDataToAgent($header . $envelope); + } + + /** + * Send raw data to the test agent. + */ + public function sendRawDataToAgent(string $data): void { if ($this->agentProcess === null) { throw new \RuntimeException('There is no test agent instance running.'); @@ -138,12 +151,7 @@ public function sendEnvelopeToAgent(string $envelope): void throw new \RuntimeException("Failed to connect to test agent: {$errstr} ({$errno})"); } - // The agent uses a 4-byte big-endian length prefix protocol - // The length includes the 4 bytes of the header itself - $length = \strlen($envelope) + 4; - $header = pack('N', $length); - - fwrite($socket, $header . $envelope); + fwrite($socket, $data); // Gracefully shutdown the write side, ensuring all data is sent before closing stream_socket_shutdown($socket, \STREAM_SHUT_WR); @@ -151,6 +159,23 @@ public function sendEnvelopeToAgent(string $envelope): void fclose($socket); } + /** + * Get the raw control server status response. + * + * @return string|false + */ + public function getControlServerStatus(float $timeout = 1.0) + { + if ($this->agentProcess === null) { + throw new \RuntimeException('There is no test agent instance running.'); + } + + $controlServerAddress = "127.0.0.1:{$this->controlServerPort}"; + $streamContext = stream_context_create(['http' => ['timeout' => $timeout]]); + + return @file_get_contents("http://{$controlServerAddress}/status", false, $streamContext); + } + /** * Wait for the agent queue to drain (all envelopes processed). * @@ -223,6 +248,15 @@ public function stopTestAgent(): string // Wait for the queue to drain before killing the process $this->waitForQueueDrain(); + return $this->forceStopTestAgent(); + } + + protected function forceStopTestAgent(): string + { + if (!$this->agentProcess) { + throw new \RuntimeException('There is no test agent instance running.'); + } + for ($i = 0; $i < 20; ++$i) { $status = proc_get_status($this->agentProcess); From b846854dfb2c1505c808c785d34964960a5ef717 Mon Sep 17 00:00:00 2001 From: github-actions <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 15 May 2026 14:24:17 +0000 Subject: [PATCH 2/2] Add PHAR artifact --- bin/sentry-agent | Bin 1865991 -> 1935455 bytes bin/sentry-agent.sig | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/sentry-agent b/bin/sentry-agent index 08a0bc0e4f96ee47f11f961b57a4f5d0fafd5973..86ed7fb94975819067fafe862e205a711c00fba4 100755 GIT binary patch delta 70597 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�$ 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 axa!d-e}C5&ap4C>!+GbOw`9Tc1^*8n#`x&~ delta 9438 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 diff --git a/bin/sentry-agent.sig b/bin/sentry-agent.sig index 164e9dd..a5594bb 100644 --- a/bin/sentry-agent.sig +++ b/bin/sentry-agent.sig @@ -1 +1 @@ -C779A799D4389C7E52048F1271B64B01DFFBD75C59E111C5DB180004E980D2CD6F56D59FDD14825EE3F6F8F002F5405D0CB97FB46199D730C7FDB77D4BB5A9A4 +AFBE92B982EC0B29C172B8DCC97652704441D3559372FDE7A513B66CB759E655836548F1B7A67547BAE87141E7AC3FB12E51B53A835A23B6BEE2A25E7F44F908