Created attachment 3036 [details] proposed patch Reproducer: 1. Start a server: /usr/sbin/sshd -D -ddd -p 8022 -o "ClientAliveCountMax=0" -o "ClientAliveInterval=900" -o "RekeyLimit=default 45s" -e 2. Connect with client ssh -p 8022 root@localhost "date; while :; do sleep 10; date; done" Actual result: No rekey happens, connection is dropped with error Timeout, client not responding. Expected result: Rekey happens in 45 seconds, the connection is not dropped Diagnostics: The function wait_until_can_do_something() is selecting the timeout for select() function, but sets client_alive_scheduled even if it is scheduled for later than rekey should happen. Proposed solution: The client_alive_scheduled variable should be set only if the time is lower than the time for external event (rekeying). The attached patch resolved the problem for me and with openssh-7.4 all tests passed.
Looks reasonable to me, adding to the list for 7.6.
Move to OpenSSH 7.8 tracking bug
Retarget remaining bugs planned for 7.8 release to 7.9
Retarget unfinished bugs to OpenSSH 8.0
ping. Any update on this?
Patch applied and will be in OpenSSH 8.0 - thanks!
closing resolved bugs as of 8.6p1 release