]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
[3.13] gh-154366: Fix test_asyncio.test_sendfile timing out on DragonFly BSD (GH...
authorMiss Islington (bot) <31488909+miss-islington@users.noreply.github.com>
Tue, 21 Jul 2026 15:26:45 +0000 (17:26 +0200)
committerGitHub <noreply@github.com>
Tue, 21 Jul 2026 15:26:45 +0000 (15:26 +0000)
A 4 KiB receive buffer makes DragonFly defer every window update to the
delayed ACK timer, so each buffer worth of data costs 100 ms.  Use a
larger socket buffer there; it is still small enough to pause the
protocol long before all data is sent.
(cherry picked from commit a6e1b836ec5055cbc8be477ca0c2df0cc12b8cb5)

Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
Lib/test/test_asyncio/test_sendfile.py

index 63ac04f5703fe3fbfd499ff5df8b0832adc92524..46761c80573fa6dbb9a9aa06fe1ce210df7a00f1 100644 (file)
@@ -98,7 +98,12 @@ class SendfileBase:
     # 64 KiB page configuration.
     DATA = b"x" * (1024 * 17 * 64 + 1)
     # Reduce socket buffer size to test on relative small data sets.
-    BUF_SIZE = 4 * 1024   # 4 KiB
+    if sys.platform.startswith('dragonfly'):
+        # A smaller buffer makes every window update wait 100 ms for the
+        # delayed ACK timer.
+        BUF_SIZE = 32 * 1024  # 32 KiB
+    else:
+        BUF_SIZE = 4 * 1024   # 4 KiB
 
     def create_event_loop(self):
         raise NotImplementedError