-
-
Notifications
You must be signed in to change notification settings - Fork 396
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
quinn-proto: Non-determinism in endpoint/connection/congestion #1684
Comments
It's more interesting to look at how those random number generators are used. Did we promise somewhere that it would be fully deterministic? |
Sure, I'll circle back on how those RNGs are are used. I got the idea that quinn-proto would be fully deterministic from here Lines 3 to 5 in e1e1e6e
I was thinking that it'd imply that there'd be no source of randomness from within, though it wasn't explicitly mentioned. |
Yeah, I suppose the "fully deterministic" is a bit of a lie! |
Yep, that comment is out of date. The randomized stuff is usually of little interest, though -- tokens and a few skipped packet numbers, and whatever BBR does if you opt into that. We could allow a RNG seed to be passed in to recover perfect determinism if someone actually wants that. |
For context, one of our nightly tests depends on I can write up a patch if people don't have the capacity to do it. |
I'd be happy to review such a patch. I think adding an argument to |
While debugging an issue I have, I found that
quinn-proto
protocol isn't fully deterministic. The source of randomness seems to be the call toStdRng::from_entropy
in three places:quinn/quinn-proto/src/endpoint.rs
Line 62 in e1e1e6e
quinn/quinn-proto/src/connection/mod.rs
Line 270 in e1e1e6e
quinn/quinn-proto/src/congestion/bbr/mod.rs
Line 99 in e1e1e6e
Are these intended?
Thank you for the help!
The text was updated successfully, but these errors were encountered: