-
-
Notifications
You must be signed in to change notification settings - Fork 360
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
Underflow computing growth in stream data flow control credit #1818
Comments
Thanks for the report!
This is the backtrace for the poisoned mutex panic, not the original underflow panic that caused it. You'll want to look just above in the logs.
That's surprising. |
Hey @Ralith, thanks for the response! At the time I wasn't capturing quinn logs to save space and all I have there is occasional |
Panic backtraces aren't Quinn logs; they're produced by the panic handler, which by default looks for Might be worth investigating hooking a smart fuzzer up to the stream bookkeeping directly, if you've got no idea at all what triggered this. |
I caught an 'attempt to substract with overflow' panic here
Unfortunately there are too many logs to attach, but apparently a lot of packets are lost and something goes beyond the window. |
Did you get a backtrace? |
Spent some hours staring at this and I think I found the issue: #1869. This could only arise with specific patterns of packet loss on a stream that's already been stopped (e.g. dropped) by the application, which explains the rarity. |
We've encountered a panic in
quinn-proto-0.10.4
. We're usingquinn-0.10.2
withlibp2p-0.53.1
.Full Backtrace
I don't think I can provide much details on reproduction. Code was running on the network for ~5h while I was trying to reproduce another bug when I saw this panic.
let diff = max_stream_data - self.sent_max_stream_data;
seems to be the offending substraction, but I don't know quinn well enought to tell whether that's a cause (to be fixed with e.g. saturating substraction) or a symptom of a deeper issue.The text was updated successfully, but these errors were encountered: