This is an automated email from the ASF dual-hosted git repository.
rmaucher pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/tomcat.git
The following commit(s) were added to refs/heads/main by this push:
new ccd8d32778 Skip test on MacOS
ccd8d32778 is described below
commit ccd8d3277877c7fa7add9116378bef9c10e944bc
Author: remm <[email protected]>
AuthorDate: Wed Sep 30 15:09:35 2026 +0200
Skip test on MacOS
The explanation does sound convincing, so it seems best to skip it.
---
.../apache/tomcat/security/TestSecurity2026WebSocket.java | 12 ++++++++++++
1 file changed, 12 insertions(+)
diff --git a/test/org/apache/tomcat/security/TestSecurity2026WebSocket.java
b/test/org/apache/tomcat/security/TestSecurity2026WebSocket.java
index 43a34f5ccd..9e852f08a1 100644
--- a/test/org/apache/tomcat/security/TestSecurity2026WebSocket.java
+++ b/test/org/apache/tomcat/security/TestSecurity2026WebSocket.java
@@ -34,6 +34,7 @@ import jakarta.websocket.WebSocketContainer;
import jakarta.websocket.server.ServerEndpointConfig;
import org.junit.Assert;
+import org.junit.Assume;
import org.junit.Test;
import org.apache.catalina.Context;
@@ -91,6 +92,17 @@ public class TestSecurity2026WebSocket extends
WebSocketBaseTest {
*/
@Test
public void testCVE_2026_77791() throws Exception {
+ /*
+ * Skipped on macOS. The test relies on a stalled (zero TCP receive
window) connection keeping the server's
+ * pending write stuck for the whole blocking send timeout. The macOS
TCP stack does not honor that premise:
+ * it tends to tear such connections down early (e.g. RST on segments
overlapping the zero window) so the
+ * pending write fails after a few polling iterations. The server then
closes long before the blocking send
+ * timeout expires (observed: ~126ms vs the expected ~2s), which trips
the sanity check below without the
+ * wait under test ever having been exercised. This is an OS TCP
behavior difference, not a Tomcat issue.
+ */
+ Assume.assumeFalse("macOS TCP stack does not keep the stalled write
stuck. See comment in code.",
+ System.getProperty("os.name").contains("OS X"));
+
serverSendLatch = new CountDownLatch(1);
// Never released. The server's pending data message write must never
complete, forcing
// acquireMessagePartInProgressSemaphore() to wait for the full
blocking send timeout.
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]