-
Notifications
You must be signed in to change notification settings - Fork 123
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
Crash in [@ neqo_transport::connection::Connection::build_packet_header] #1429
Comments
The likely source of the The remote connection ID is set when a path becomes permanent. Temporary paths is a concept we use for incoming packets on new paths. We should not be sending The local connection ID is set only for handshake packets. That carries a risk. If we are in a position where we don't have a local connection ID on the path, but we have to send A simple test you might write to evaluate that is one where you haven't completed the handshake, but then a packet containing a garbage frame comes in on a different path. That packet would have a short header (or not, check both). If that crashes, then my theory might be solid. That's what I'd do to understand the problem, which is always the first thing to try. We might get a better and more comprehensive fix if we do that. A simple patch to prevent the panic might be to check in |
* fix: Check whether CIDs are empty WIP Fixes #1429 * Update neqo-transport/src/path.rs Co-authored-by: Martin Thomson <mt@lowentropy.net> Signed-off-by: Lars Eggert <lars@eggert.org> * Suggestion from @martinthomson * Update neqo-transport/src/qlog.rs Co-authored-by: Max Inden <mail@max-inden.de> Signed-off-by: Lars Eggert <lars@eggert.org> * Suggestion from @mxinden @mxinden, is `take()` the way to go here? * Log error * Fix test * Simplify test --------- Signed-off-by: Lars Eggert <lars@eggert.org> Co-authored-by: Martin Thomson <mt@lowentropy.net> Co-authored-by: Max Inden <mail@max-inden.de>
See https://bugzilla.mozilla.org/show_bug.cgi?id=1829989.
The crash reason is
called
Option::unwrap()on a
Nonevalue
.Crash stack:
It's not clear to me where
unwrap
is called inside functionbuild_packet_header
. Maybe @martinthomson knows?The text was updated successfully, but these errors were encountered: