From d88845f6a3b8a3380730f343c878d6ca77bbb064 Mon Sep 17 00:00:00 2001 From: "riseproject-dev[bot]" <330740410+riseproject-dev[bot]@users.noreply.github.com> Date: Thu, 22 Oct 2026 12:01:14 +0000 Subject: [PATCH 1/2] granian: Add version 2.8.5 Signed-off-by: riseproject-dev[bot] <330740410+riseproject-dev[bot]@users.noreply.github.com> --- docs/packages/granian.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/packages/granian.yaml b/docs/packages/granian.yaml index 7d251c01fec5..c6b05db2987e 100644 --- a/docs/packages/granian.yaml +++ b/docs/packages/granian.yaml @@ -32,3 +32,4 @@ versions: - filename: granian-2.8.4-cp314-cp314t-manylinux_2_34_riscv64.manylinux_2_39_riscv64.whl sha256: 3a310f43faa291ad17514102236ff006df8712fead48beff726250067828fdef requires-python: '>=3.10' +- version: 2.8.5 From e0dcff7b6597933224eec323fbc6bc8531e1c797 Mon Sep 17 00:00:00 2001 From: Ludovic Henry Date: Fri, 23 Oct 2026 04:58:46 +0800 Subject: [PATCH 2/2] granian: Carry patches over to version 2.8.5 The tests/test_uds.py wait-for-socket patch still applies unchanged. --- ...the-UDS-server-to-accept-connections.patch | 55 +++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 patches/granian/2.8.5/0001-tests-wait-for-the-UDS-server-to-accept-connections.patch diff --git a/patches/granian/2.8.5/0001-tests-wait-for-the-UDS-server-to-accept-connections.patch b/patches/granian/2.8.5/0001-tests-wait-for-the-UDS-server-to-accept-connections.patch new file mode 100644 index 000000000000..0a39f7791717 --- /dev/null +++ b/patches/granian/2.8.5/0001-tests-wait-for-the-UDS-server-to-accept-connections.patch @@ -0,0 +1,55 @@ +From f7906d6f5e6521f65b4eac8e1f5556a966199299 Mon Sep 17 00:00:00 2001 +From: Ludovic Henry +Date: Thu, 27 Aug 2026 00:00:00 +0000 +Subject: [PATCH] tests: wait for the UDS server to accept connections + +tests/test_uds.py gives the spawned server a flat 1.5s to import granian, +bind its socket and start accepting. That budget holds on upstream's x86 +runners and does not on the slower riscv64 ones, where the whole +tests/test_uds.py http section fails before the socket exists: + + httpx.ConnectError: [Errno 2] No such file or directory + httpx.ConnectError: [Errno 111] Connection refused + +tests/conftest.py already solves this for the TCP tests by retrying the +connection until it succeeds; do the same here. The wait returns as soon +as the socket answers, so faster hardware pays nothing. + +Upstream-Status: To upstream [not yet submitted] + +Signed-off-by: Ludovic Henry +--- + tests/test_uds.py | 13 ++++++++++++- + 1 file changed, 12 insertions(+), 1 deletion(-) + +diff --git a/tests/test_uds.py b/tests/test_uds.py +index 332a1a0..c2c91ae 100644 +--- a/tests/test_uds.py ++++ b/tests/test_uds.py +@@ -1,6 +1,7 @@ + import asyncio + import multiprocessing as mp + import os ++import socket + import stat + import sys + from contextlib import asynccontextmanager +@@ -50,7 +51,17 @@ async def _server( + + proc = mp.get_context('spawn').Process(target=_serve, kwargs=kwargs) + proc.start() +- await asyncio.sleep(1.5) ++ ++ conn_failures = 0 ++ while conn_failures < 10: ++ try: ++ await asyncio.sleep(1.5) ++ with socket.socket(socket.AF_UNIX, socket.SOCK_STREAM) as sock: ++ sock.settimeout(1) ++ sock.connect('granian.sock') ++ break ++ except Exception: ++ conn_failures += 1 + + try: + yield