UDP transport: add(peer, 0) from ACK logic does not work, state blocked
Opened 19 months ago
#2642newdefect
UDP transport: add(peer, 0) from ACK logic does not work, state blocked
Reported by:joggerOwned by:zzz Priority: major Milestone: undecided Component: router/transport Version: 0.9.42 Keywords:
Cc:
Parent Tickets:
Sensitive: no
Description
If locked_shouldSend() once returns NO_BW, it has set a nextSendTime for the state. Until that time has come due the state remains blocked for repeated calls with ShouldSend?.NO.
This completely defeats the add(peer, 0) from the ACK logic waking up packet pusher that intends to let this peer go right away freeing up its send window.
Quick fix would be to let locked_shouldSend also try all states with zero pushcount. However this would add additional statements to the hot path as long as we still use round robin.