-
Notifications
You must be signed in to change notification settings - Fork 586
Description
Describe the bug
Stream could be opened successfully with MsQuicStreamOpen
after MsQuicConnectionShutdown
is called.
MsQuicConnectionShutdown
is async task,
Line 252 in 9cab5bf
QuicConnQueueHighestPriorityOper(Connection, Oper); |
MsQuicStreamOpen
is sync call, but there is no synchronization in MsQuicStreamOpen
when it checks the states of connection
Line 653 in 9cab5bf
if (ClosedLocally || Connection->State.ClosedRemotely) { |
It could cause stream leaks when the opened stream is not removed here (when processing ):
Line 1631 in 9cab5bf
QuicStreamSetShutdown(&Connection->Streams); |
Our application do refcounting for conn handle, that it only calls CONNECTION_CLOSE
when all the stream handles belong to the conn are closed.
trouble connection: 0xffff42428100
trouble stream: 0xffff5388e880
Affected OS
- Windows
- Linux
- macOS
- Other (specify below)
Additional OS information
ubuntu22.04 arm64
MsQuic version
v2.3
Steps taken to reproduce bug
- Client establish connection to Server.
- Client shutdown the connection.
- Client Open the stream on the connection.
Expected behavior
For step 3, it should either
a) fail to open the stream
b) open success but get a "Stream_SHUTDOWN_COMPLETE" event.
Actual outcome
Open success but NO "Stream_SHUTDOWN_COMPLETE" event, completely quiet on callback.
Additional details
Metadata
Metadata
Assignees
Labels
Type
Projects
Status