]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
[3.14] 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:31:47 +0000 (17:31 +0200)
committerGitHub <noreply@github.com>
Tue, 21 Jul 2026 15:31:47 +0000 (15:31 +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 7afd7de3bb936e698b8ccc82cb094034659f14ea..bdc3aa604a158f3f1cc420f08407982924f8ff97 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