-
Notifications
You must be signed in to change notification settings - Fork 127
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Consider to send PING as a keeplive #2087
Comments
My understanding is that we already have the capability in the stack. When we create a connection, we set the keepalive flag on that stream. The bug indicates that something isn't working. But I can't see how we wouldn't be sending a PING as needed. Investigation might be needed. |
Do we have a test for this situation? If yes, is it correct? If no, let's add one and see what the result is. |
There are plenty of tests from here on down:
|
Got another bug 1920697 about this.
The log shows that the connection was closed due to idle timeout and we don't send any ping within 30s. I'll try to write a xpcshell test and see if I can create a neqo test case to reproduce. |
So, I think this is really regressed by #1491. We do have a test for this case. neqo/neqo-transport/src/connection/tests/idle.rs Lines 493 to 498 in 55e3a93
The test waits for
It tells the caller to wait the whole idle timeout. As a result, if process_output isn't called again within idle timeout , the PING is never sent.
I am going to write a PR to fix this. |
See bug 1914309. I assume it's that the server took more than 30 seconds to respond, leading to the connection being closed due to idle timeout.
Sending a PING as a keepalive when there are outstanding requests could help fix this issue. Additionally, Chrome has already implemented this behavior, so it might be worth considering for us as well.
The text was updated successfully, but these errors were encountered: