quinn-rs / quinn

Async-friendly QUIC implementation in Rust
Apache License 2.0
3.76k stars 380 forks source link

reconnect bug #1544

Closed szguoxz closed 1 year ago

szguoxz commented 1 year ago

I have a client connect to a server, open a bi stream, start pipe the traffic back/forth, everything is cool. Then I Ctrl+C to kill the client, and restart the client. Then something went wrong, my client crashed. Based on my log, here is what happened on my client:

  1. connection established, open-bi stream succeeded.
  2. client sent something to server, and server received, works fine.
  3. server reply to the client, bum, it errors out. It seems on the server side, the sender is still trying to send to the old channel, which has nobody on the other end. Thus server close the channel.
  4. client errors out.

So it seems a bug, or a feature, you tell me. New connection use the old stream? I didn't look through the quinn code, but it seems this is what happened.

Ralith commented 1 year ago

This is not specific enough to be actionable. What does "errors out" mean? Do you have trace logs? Can you produce a minimal self-contained reproduction case?

szguoxz commented 1 year ago

Sorry, my bad. It's something else. Thanks.