[openssl/openssl] 2c20ed: test/dtlsssllistenertest.c: fix flaky zero-wait ha...

1 view
Skip to first unread message

Ryan Hooper

unread,
Oct 14, 2026, 7:46:40 AM (8 days ago) Oct 14
to openssl...@openssl.org
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
Reply all
Reply to author
Forward
0 new messages