Commit 89dd6bf
committed
Fix flow control bypass during client response draining in ext_proc.
When activateCall is called during draining (initiated by response drain), it flushes requests buffered in DelayedClientCall directly to the rawCall, bypassing flow control checks.
To fix this:
1. Buffer request(n) calls in pendingRequests when the call is IDLE, instead of letting them go to DelayedClientCall.
2. Guard drainPendingRequests to check isResponseSidecarReady and abort if it is false (keeping requests buffered).
3. Trigger drainPendingRequests when response drain completes.
Also updated tests to verify early request buffering during response drain.
TAG=agy
CONV=2c1e4760-c239-4698-810a-162bf10fccc41 parent aefc6d0 commit 89dd6bf
2 files changed
Lines changed: 33 additions & 7 deletions
File tree
- xds/src
- main/java/io/grpc/xds
- test/java/io/grpc/xds
Lines changed: 8 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
726 | 726 | | |
727 | 727 | | |
728 | 728 | | |
| 729 | + | |
| 730 | + | |
| 731 | + | |
729 | 732 | | |
730 | 733 | | |
731 | 734 | | |
| |||
828 | 831 | | |
829 | 832 | | |
830 | 833 | | |
| 834 | + | |
| 835 | + | |
| 836 | + | |
| 837 | + | |
831 | 838 | | |
832 | 839 | | |
833 | 840 | | |
| |||
1391 | 1398 | | |
1392 | 1399 | | |
1393 | 1400 | | |
| 1401 | + | |
1394 | 1402 | | |
1395 | 1403 | | |
1396 | 1404 | | |
| |||
Lines changed: 25 additions & 7 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
9020 | 9020 | | |
9021 | 9021 | | |
9022 | 9022 | | |
| 9023 | + | |
| 9024 | + | |
9023 | 9025 | | |
9024 | 9026 | | |
9025 | 9027 | | |
| |||
9032 | 9034 | | |
9033 | 9035 | | |
9034 | 9036 | | |
9035 | | - | |
9036 | | - | |
9037 | | - | |
9038 | | - | |
| 9037 | + | |
| 9038 | + | |
| 9039 | + | |
| 9040 | + | |
| 9041 | + | |
| 9042 | + | |
| 9043 | + | |
| 9044 | + | |
| 9045 | + | |
| 9046 | + | |
| 9047 | + | |
| 9048 | + | |
| 9049 | + | |
| 9050 | + | |
9039 | 9051 | | |
9040 | 9052 | | |
9041 | 9053 | | |
| |||
9094 | 9106 | | |
9095 | 9107 | | |
9096 | 9108 | | |
| 9109 | + | |
| 9110 | + | |
| 9111 | + | |
| 9112 | + | |
| 9113 | + | |
| 9114 | + | |
| 9115 | + | |
| 9116 | + | |
| 9117 | + | |
9097 | 9118 | | |
9098 | 9119 | | |
9099 | 9120 | | |
9100 | 9121 | | |
9101 | 9122 | | |
9102 | 9123 | | |
9103 | | - | |
9104 | | - | |
9105 | | - | |
9106 | 9124 | | |
9107 | 9125 | | |
9108 | 9126 | | |
| |||
0 commit comments