-
Notifications
You must be signed in to change notification settings - Fork 364
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
stale DTLS handshake / earlyStopRetransmission = true #335
Comments
There is a |
With earlyStopRetransmission = true and a client, which only sent the 1. message of a flight and then dies, this MaxRetransmission counter doesn't work, or? It works with earlyStopRetransmission = false. |
I ment, when the retransmission counter reaches this maximum. This works for a lot of cases, but with earlyStopRetransmission = true and a client the gets broken within a flight, I have my doubts about this mechansims is still working. |
I think so. And it seems ok for me. Retransmission aim to solve packet lost. In this case we don't face a packet lost. You seems to say that with earlyStopRetransmission = false, if max retransmission is reached, an handshake error is raised ? I didn't see that in the code. It seems to me we just stop retransmission. Anyway, I'm not sure we want to do that ? |
I think, that any unseccessfull outcome of the handshake should be somehow reported. I'm currently collecting the cases. |
In practice, the "stale ongoing handshake" will stay in the LRU cache (ConnectionStore) and will be removed when the LRU cache will be full. I think there is no memory leak. I think there is 2 uses cases :
|
The resulting issue is in my opinion in the coap layer. Without error nor sent callback, the exchange is not cleaned up. |
We agree, that's more or less what I suspected in 2). This reminds me an old discussion #74. The choice was : "this is up to the application layer to cancel request if they does not receive response in time". |
As @sbernard31 is right, that in both cases the handshake just gets stale without signalling an error, I close this issue to create a more general issue. |
What happends with handshakes, where the client gets broken within a "flight" (doesn't send data anymore)?
With earlyStopRetransmission = false, the flight retransmission counter of the server overflows and the handshake then fails. With earlyStopRetransmission = true I'm not sure, what happens.
Is there a unit tests for that case?
The text was updated successfully, but these errors were encountered: