Commit cfa449c
Keep the read callback registered on a local STOP_SENDING
Summary:
When the application calls `stopSending` on an h3 WebTransport stream we sent
STOP_SENDING with `setReadCallback(id, nullptr, err)`, which also unregisters
the read callback. The peer's RESET_STREAM then never reached us, so
`WtStreamManager` never saw the ingress side close and never returned the
stream credit, and we never sent MAX_STREAMS. This uses `QuicSocket::stopSending`
instead, which sends STOP_SENDING and leaves the read callback in place. That
matches the http/2 path, which also waits for the peer's WT_RESET_STREAM before
reaping the read side.
Reviewed By: hanidamlaj
Differential Revision: D116105653
fbshipit-source-id: 90df54796a4c076fb0850ad11263de20699692a01 parent dfa593a commit cfa449c
2 files changed
Lines changed: 40 additions & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
44 | 44 | | |
45 | 45 | | |
46 | 46 | | |
47 | | - | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
48 | 50 | | |
49 | 51 | | |
50 | 52 | | |
| |||
Lines changed: 37 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
319 | 319 | | |
320 | 320 | | |
321 | 321 | | |
| 322 | + | |
| 323 | + | |
| 324 | + | |
| 325 | + | |
| 326 | + | |
| 327 | + | |
| 328 | + | |
| 329 | + | |
| 330 | + | |
| 331 | + | |
| 332 | + | |
| 333 | + | |
| 334 | + | |
| 335 | + | |
| 336 | + | |
| 337 | + | |
| 338 | + | |
| 339 | + | |
| 340 | + | |
| 341 | + | |
| 342 | + | |
| 343 | + | |
| 344 | + | |
| 345 | + | |
| 346 | + | |
| 347 | + | |
| 348 | + | |
| 349 | + | |
| 350 | + | |
| 351 | + | |
| 352 | + | |
| 353 | + | |
| 354 | + | |
| 355 | + | |
| 356 | + | |
| 357 | + | |
| 358 | + | |
322 | 359 | | |
323 | 360 | | |
324 | 361 | | |
| |||
0 commit comments