Commit a374830
authored
Stabilize HTTP/2: fix resource leaks and RFC conformance (#2197)
Motivation:
The HTTP/2 path is newer and less hardened than HTTP/1.1. Bring its
resource lifecycle, RFC 9113/9110 conformance, and connection/stream
management to parity, covering flow control, multiplexing, and
GOAWAY/RST/SETTINGS edge cases.
Modification:
Bind stream-slot and request-body release to the channel lifecycle,
stream request bodies under flow-control backpressure, enforce RFC
9113/9110 conformance (RST_STREAM codes, 1xx interim, Expect
100-continue, TE, :authority, MAX_CONCURRENT_STREAMS=min), gate
WebSocket off HTTP/2, drain pendingOpeners on GOAWAY/SETTINGS, and
restore Http2ConnectionState binary compatibility. HTTP/1.1 behaviour
and public API are unchanged.
Result:
Stablize HTTP/2 even futher for edge cases
Fixes #21601 parent e6955c1 commit a374830
33 files changed
Lines changed: 3675 additions & 245 deletions
File tree
- client/src
- main
- java/org/asynchttpclient
- config
- netty
- channel
- handler
- intercept
- request
- body
- ssl
- resources/org/asynchttpclient/config
- test/java/org/asynchttpclient
- netty
- channel
- handler
- request
- ssl
- docs
Lines changed: 10 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
321 | 321 | | |
322 | 322 | | |
323 | 323 | | |
| 324 | + | |
| 325 | + | |
| 326 | + | |
| 327 | + | |
| 328 | + | |
| 329 | + | |
| 330 | + | |
| 331 | + | |
| 332 | + | |
| 333 | + | |
324 | 334 | | |
325 | 335 | | |
326 | 336 | | |
| |||
Lines changed: 17 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
107 | 107 | | |
108 | 108 | | |
109 | 109 | | |
| 110 | + | |
110 | 111 | | |
111 | 112 | | |
112 | 113 | | |
| |||
181 | 182 | | |
182 | 183 | | |
183 | 184 | | |
| 185 | + | |
184 | 186 | | |
185 | 187 | | |
186 | 188 | | |
| |||
277 | 279 | | |
278 | 280 | | |
279 | 281 | | |
| 282 | + | |
280 | 283 | | |
281 | 284 | | |
282 | 285 | | |
| |||
381 | 384 | | |
382 | 385 | | |
383 | 386 | | |
| 387 | + | |
384 | 388 | | |
385 | 389 | | |
386 | 390 | | |
| |||
682 | 686 | | |
683 | 687 | | |
684 | 688 | | |
| 689 | + | |
| 690 | + | |
| 691 | + | |
| 692 | + | |
| 693 | + | |
685 | 694 | | |
686 | 695 | | |
687 | 696 | | |
| |||
942 | 951 | | |
943 | 952 | | |
944 | 953 | | |
| 954 | + | |
945 | 955 | | |
946 | 956 | | |
947 | 957 | | |
| |||
1043 | 1053 | | |
1044 | 1054 | | |
1045 | 1055 | | |
| 1056 | + | |
1046 | 1057 | | |
1047 | 1058 | | |
1048 | 1059 | | |
| |||
1391 | 1402 | | |
1392 | 1403 | | |
1393 | 1404 | | |
| 1405 | + | |
| 1406 | + | |
| 1407 | + | |
| 1408 | + | |
| 1409 | + | |
1394 | 1410 | | |
1395 | 1411 | | |
1396 | 1412 | | |
| |||
1658 | 1674 | | |
1659 | 1675 | | |
1660 | 1676 | | |
| 1677 | + | |
1661 | 1678 | | |
1662 | 1679 | | |
1663 | 1680 | | |
| |||
Lines changed: 12 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
478 | 478 | | |
479 | 479 | | |
480 | 480 | | |
| 481 | + | |
| 482 | + | |
| 483 | + | |
| 484 | + | |
| 485 | + | |
| 486 | + | |
| 487 | + | |
| 488 | + | |
| 489 | + | |
| 490 | + | |
| 491 | + | |
| 492 | + | |
481 | 493 | | |
482 | 494 | | |
483 | 495 | | |
| |||
Lines changed: 20 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
31 | 31 | | |
32 | 32 | | |
33 | 33 | | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
34 | 54 | | |
35 | 55 | | |
36 | 56 | | |
| |||
Lines changed: 6 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
88 | 88 | | |
89 | 89 | | |
90 | 90 | | |
| 91 | + | |
91 | 92 | | |
92 | 93 | | |
93 | 94 | | |
| |||
360 | 361 | | |
361 | 362 | | |
362 | 363 | | |
| 364 | + | |
| 365 | + | |
| 366 | + | |
| 367 | + | |
| 368 | + | |
363 | 369 | | |
364 | 370 | | |
365 | 371 | | |
| |||
Lines changed: 32 additions & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
189 | 189 | | |
190 | 190 | | |
191 | 191 | | |
| 192 | + | |
| 193 | + | |
192 | 194 | | |
193 | 195 | | |
194 | 196 | | |
| |||
256 | 258 | | |
257 | 259 | | |
258 | 260 | | |
259 | | - | |
| 261 | + | |
| 262 | + | |
| 263 | + | |
| 264 | + | |
| 265 | + | |
| 266 | + | |
| 267 | + | |
| 268 | + | |
| 269 | + | |
| 270 | + | |
| 271 | + | |
| 272 | + | |
| 273 | + | |
| 274 | + | |
| 275 | + | |
| 276 | + | |
| 277 | + | |
| 278 | + | |
| 279 | + | |
| 280 | + | |
| 281 | + | |
| 282 | + | |
| 283 | + | |
260 | 284 | | |
261 | 285 | | |
262 | 286 | | |
| |||
353 | 377 | | |
354 | 378 | | |
355 | 379 | | |
| 380 | + | |
| 381 | + | |
| 382 | + | |
| 383 | + | |
| 384 | + | |
| 385 | + | |
| 386 | + | |
356 | 387 | | |
357 | 388 | | |
358 | 389 | | |
| |||
Lines changed: 49 additions & 11 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
360 | 360 | | |
361 | 361 | | |
362 | 362 | | |
363 | | - | |
| 363 | + | |
| 364 | + | |
| 365 | + | |
| 366 | + | |
| 367 | + | |
| 368 | + | |
| 369 | + | |
| 370 | + | |
| 371 | + | |
| 372 | + | |
| 373 | + | |
| 374 | + | |
364 | 375 | | |
365 | 376 | | |
366 | 377 | | |
367 | 378 | | |
368 | 379 | | |
369 | 380 | | |
370 | 381 | | |
371 | | - | |
372 | | - | |
| 382 | + | |
| 383 | + | |
373 | 384 | | |
374 | 385 | | |
375 | 386 | | |
376 | 387 | | |
| 388 | + | |
| 389 | + | |
| 390 | + | |
| 391 | + | |
| 392 | + | |
| 393 | + | |
| 394 | + | |
| 395 | + | |
| 396 | + | |
| 397 | + | |
| 398 | + | |
| 399 | + | |
| 400 | + | |
377 | 401 | | |
378 | 402 | | |
379 | 403 | | |
| |||
466 | 490 | | |
467 | 491 | | |
468 | 492 | | |
469 | | - | |
470 | | - | |
| 493 | + | |
| 494 | + | |
471 | 495 | | |
472 | 496 | | |
473 | 497 | | |
| |||
489 | 513 | | |
490 | 514 | | |
491 | 515 | | |
492 | | - | |
| 516 | + | |
493 | 517 | | |
494 | 518 | | |
495 | 519 | | |
| |||
527 | 551 | | |
528 | 552 | | |
529 | 553 | | |
530 | | - | |
| 554 | + | |
531 | 555 | | |
532 | | - | |
| 556 | + | |
533 | 557 | | |
534 | 558 | | |
535 | 559 | | |
| |||
580 | 604 | | |
581 | 605 | | |
582 | 606 | | |
583 | | - | |
| 607 | + | |
| 608 | + | |
584 | 609 | | |
585 | 610 | | |
586 | 611 | | |
| |||
710 | 735 | | |
711 | 736 | | |
712 | 737 | | |
713 | | - | |
| 738 | + | |
| 739 | + | |
| 740 | + | |
| 741 | + | |
| 742 | + | |
714 | 743 | | |
715 | 744 | | |
716 | 745 | | |
| |||
734 | 763 | | |
735 | 764 | | |
736 | 765 | | |
737 | | - | |
| 766 | + | |
| 767 | + | |
| 768 | + | |
738 | 769 | | |
739 | 770 | | |
740 | 771 | | |
| |||
772 | 803 | | |
773 | 804 | | |
774 | 805 | | |
| 806 | + | |
| 807 | + | |
| 808 | + | |
| 809 | + | |
| 810 | + | |
| 811 | + | |
| 812 | + | |
775 | 813 | | |
776 | 814 | | |
777 | 815 | | |
| |||
0 commit comments