Branch: refs/heads/openssl-4.1
Home:
https://github.com/openssl/openssl
Commit: 2c20ed37360cf0660159baefcb026df88bdebe74
https://github.com/openssl/openssl/commit/2c20ed37360cf0660159baefcb026df88bdebe74
Author: Ryan Hooper <ry...@openssl.foundation>
Date: 2026-10-14 (Wed, 14 Oct 2026)
Changed paths:
M test/dtlsssllistenertest.c
Log Message:
-----------
test/dtlsssllistenertest.c: fix flaky zero-wait handshake loops
test_dtls_listener_max_dgram_size_functional()
and test_dtls_notifier_signalled_on_accept_queue_push() drive a real
loopback UDP handshake in a fixed 100-iteration loop that polls
with a zero timeout and never sleeps between attempts. If loopback
delivery lags - as it does intermittently on macOS CI runners -
the loop can exhaust its budget before a datagram becomes readable
and the test fails with "did not converge", even though the listener
is working correctly.
This is the same bug fixed in drive_until_connection_queued()
by 271222650b ("dtls: fix flaky cookie exchange loop in listener
test"). Apply the same treatment here: sleep 10ms between iterations
so a delayed datagram has time to arrive, and raise the iteration
cap to 200 so the budget still covers the client's 1s initial
retransmit timer if a datagram is lost outright.
Every other real-socket convergence loop in the file already waits
on the SSL_poll() call itself (poll_timeout.tv_usec = 100000) rather
than busy-spinning, and the remaining zero-timeout loops are backed
by an in-memory dgram BIO pair with synchronous delivery, so neither
needed this fix.
Assisted-by: Claude:claude-sonnet-5
Reviewed-by: Jakub Zelenka <jakub....@openssl.foundation>
Reviewed-by: Mounir Idrassi <
mounir....@idrix.fr>
Reviewed-by: Eugene Syromiatnikov <
es...@openssl.org>
Merge-date: Wed Oct 14 11:41:42 2026
Merged-from:
https://github.com/openssl/openssl/pull/32673
(cherry picked from commit ed57129cd43b77e077c68fd5f7ea951976766f38)
To unsubscribe from these emails, change your notification settings at
https://github.com/openssl/openssl/settings/notifications