Commit d2c52f0
authored
transport: fix server Recv hang on initial HEADERS with EndStream (#9391)
Fix server-side Recv hang when client sends HEADERS with EndStream set.
When a client initiates a stream with a HEADERS frame that has
EndStream=true, the server-side stream state is set to streamReadDone,
but the reader was not notified. This caused server-side Recv() calls to
hang indefinitely waiting for data.
This change writes an io.EOF error to the stream's receive buffer when
the stream is created with EndStream=true, ensuring Recv() returns
immediately with io.EOF. A new transport test has been added to verify
this behavior, and existing tests have been updated.
RELEASE NOTES:
* transport: fix an issue where server-side `Recv()` hung indefinitely
when a client initiated a stream with `HEADERS` having `EndStream` set.1 parent a9cbf17 commit d2c52f0
3 files changed
Lines changed: 64 additions & 6 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
531 | 531 | | |
532 | 532 | | |
533 | 533 | | |
| 534 | + | |
534 | 535 | | |
535 | 536 | | |
536 | 537 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
4765 | 4765 | | |
4766 | 4766 | | |
4767 | 4767 | | |
4768 | | - | |
4769 | | - | |
| 4768 | + | |
| 4769 | + | |
4770 | 4770 | | |
4771 | | - | |
4772 | | - | |
4773 | | - | |
| 4771 | + | |
| 4772 | + | |
| 4773 | + | |
| 4774 | + | |
| 4775 | + | |
| 4776 | + | |
| 4777 | + | |
| 4778 | + | |
| 4779 | + | |
4774 | 4780 | | |
4775 | | - | |
| 4781 | + | |
4776 | 4782 | | |
4777 | 4783 | | |
4778 | 4784 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
24 | 24 | | |
25 | 25 | | |
26 | 26 | | |
| 27 | + | |
27 | 28 | | |
28 | 29 | | |
29 | 30 | | |
| |||
302 | 303 | | |
303 | 304 | | |
304 | 305 | | |
| 306 | + | |
| 307 | + | |
| 308 | + | |
| 309 | + | |
| 310 | + | |
| 311 | + | |
| 312 | + | |
| 313 | + | |
| 314 | + | |
| 315 | + | |
| 316 | + | |
| 317 | + | |
| 318 | + | |
| 319 | + | |
| 320 | + | |
| 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 | + | |
0 commit comments