Commit 7c0124c
committed
fix(streamable-http): count bare-priming-then-EOF reconnects against the request budget
A reconnect that reaches EOF without delivering any real data (only a bare
id-bearing priming event) was resetting the attempt counter to 0 instead of
incrementing it. This let a server that repeatedly opened the resumable stream,
emitted only a priming event, and closed again reconnect forever rather than
giving up after MAX_RECONNECTION_ATTEMPTS and resolving the waiter with
CONNECTION_CLOSED.
Track whether any event with non-empty data was received during the reconnect.
A reconnect that made real progress (delivered a notification) still earns a
fresh budget for the next reconnect; a reconnect that saw only bare priming
events counts against the budget the same way a transport exception does.
Adds a regression test that drives _handle_reconnection with a mock transport
returning priming-then-EOF on every reconnect and asserts the waiter resolves
with CONNECTION_CLOSED after exactly MAX_RECONNECTION_ATTEMPTS attempts.
Fixes #33071 parent 31b76cb commit 7c0124c
2 files changed
Lines changed: 61 additions & 2 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
508 | 508 | | |
509 | 509 | | |
510 | 510 | | |
| 511 | + | |
511 | 512 | | |
512 | 513 | | |
513 | 514 | | |
| |||
525 | 526 | | |
526 | 527 | | |
527 | 528 | | |
528 | | - | |
| 529 | + | |
| 530 | + | |
| 531 | + | |
| 532 | + | |
| 533 | + | |
| 534 | + | |
| 535 | + | |
| 536 | + | |
529 | 537 | | |
530 | | - | |
| 538 | + | |
| 539 | + | |
531 | 540 | | |
532 | 541 | | |
533 | 542 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
736 | 736 | | |
737 | 737 | | |
738 | 738 | | |
| 739 | + | |
| 740 | + | |
| 741 | + | |
| 742 | + | |
| 743 | + | |
| 744 | + | |
| 745 | + | |
| 746 | + | |
| 747 | + | |
| 748 | + | |
| 749 | + | |
| 750 | + | |
| 751 | + | |
| 752 | + | |
| 753 | + | |
| 754 | + | |
| 755 | + | |
| 756 | + | |
| 757 | + | |
| 758 | + | |
| 759 | + | |
| 760 | + | |
| 761 | + | |
| 762 | + | |
| 763 | + | |
| 764 | + | |
| 765 | + | |
| 766 | + | |
| 767 | + | |
| 768 | + | |
| 769 | + | |
| 770 | + | |
| 771 | + | |
| 772 | + | |
| 773 | + | |
| 774 | + | |
| 775 | + | |
| 776 | + | |
| 777 | + | |
| 778 | + | |
| 779 | + | |
| 780 | + | |
| 781 | + | |
| 782 | + | |
| 783 | + | |
| 784 | + | |
| 785 | + | |
| 786 | + | |
| 787 | + | |
| 788 | + | |
739 | 789 | | |
740 | 790 | | |
741 | 791 | | |
| |||
0 commit comments