From: Matt Caswell Date: Wed, 17 Jun 2026 10:18:12 +0000 (+0100) Subject: Fix intermittent failure in check_pc_flood radix test X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=75f59968b838dabc3ff441ae2841c10e0df64b2b;p=thirdparty%2Fopenssl.git Fix intermittent failure in check_pc_flood radix test check_flood_stats read the path challenge/response counters immediately after the client's write returned, but the flood is delivered over a real socket and processed by the connection's assist thread asynchronously. Spin until the counters reach their expected values, the same way check_rejected already does, instead of failing on the first observation. Observed failure: https://github.com/openssl/openssl/actions/runs/27669771673/job/81831310551?pr=31538 Assisted-by: Claude:claude-sonnet-4-6 Reviewed-by: Nikola Pajkovsky Reviewed-by: Milan Broz MergeDate: Thu Jun 18 13:07:27 2026 (Merged from https://github.com/openssl/openssl/pull/31561) --- diff --git a/test/radix/quic_tests.c b/test/radix/quic_tests.c index a840c02ee86..ed2685d14c1 100644 --- a/test/radix/quic_tests.c +++ b/test/radix/quic_tests.c @@ -596,6 +596,14 @@ DEF_FUNC(check_flood_stats) path_challenge_count = ossl_quic_channel_get_path_challenge_count(ch); path_response_count = ossl_quic_channel_get_path_response_count(ch); + /* + * The flood is delivered over a real socket and processed by the + * connection's assist thread asynchronously, so give it a chance to + * catch up rather than failing on the first observation. + */ + if (path_challenge_count < 16 || path_response_count < 1) + F_SPIN_AGAIN(); + if (!TEST_uint64_t_eq(path_challenge_count, 16)) goto err; if (!TEST_uint64_t_eq(path_response_count, 1))