Repository navigation
Commit db1b93a
committed
http2: flush final GOAWAY after pending writes
Keep the native close pending when an active socket write prevents the
terminal GOAWAY from being serialized. Finish the close after the
outgoing buffers become available, preserving the requested error code.
Handle synchronous completion and transport errors without retrying
writes to a failed transport or losing the socket close notification.
Add a deterministic regression for default and custom GOAWAY codes, both
inside and outside the receive callback.
Fixes: #66832
Assisted-by: Codex
Signed-off-by: Emerson Gomes <emerson.gomes@gmail.com>1 parent e463b48 commit db1b93a
3 files changed
Lines changed: 124 additions & 15 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
829 | 829 | | |
830 | 830 | | |
831 | 831 | | |
| 832 | + | |
| 833 | + | |
| 834 | + | |
832 | 835 | | |
833 | 836 | | |
834 | 837 | | |
835 | 838 | | |
836 | | - | |
837 | | - | |
838 | 839 | | |
839 | 840 | | |
840 | 841 | | |
841 | 842 | | |
842 | 843 | | |
843 | 844 | | |
844 | | - | |
| 845 | + | |
| 846 | + | |
| 847 | + | |
845 | 848 | | |
846 | 849 | | |
847 | 850 | | |
| |||
850 | 853 | | |
851 | 854 | | |
852 | 855 | | |
853 | | - | |
| 856 | + | |
854 | 857 | | |
855 | 858 | | |
856 | 859 | | |
857 | | - | |
| 860 | + | |
858 | 861 | | |
859 | 862 | | |
860 | | - | |
861 | | - | |
| 863 | + | |
| 864 | + | |
| 865 | + | |
| 866 | + | |
| 867 | + | |
| 868 | + | |
| 869 | + | |
862 | 870 | | |
863 | 871 | | |
864 | 872 | | |
| |||
893 | 901 | | |
894 | 902 | | |
895 | 903 | | |
896 | | - | |
897 | | - | |
| 904 | + | |
| 905 | + | |
| 906 | + | |
| 907 | + | |
898 | 908 | | |
899 | | - | |
| 909 | + | |
900 | 910 | | |
901 | 911 | | |
902 | 912 | | |
| |||
1844 | 1854 | | |
1845 | 1855 | | |
1846 | 1856 | | |
| 1857 | + | |
| 1858 | + | |
1847 | 1859 | | |
1848 | 1860 | | |
1849 | 1861 | | |
| 1862 | + | |
| 1863 | + | |
| 1864 | + | |
| 1865 | + | |
| 1866 | + | |
1850 | 1867 | | |
1851 | 1868 | | |
1852 | 1869 | | |
| |||
1943 | 1960 | | |
1944 | 1961 | | |
1945 | 1962 | | |
1946 | | - | |
| 1963 | + | |
1947 | 1964 | | |
1948 | 1965 | | |
1949 | 1966 | | |
| |||
2065 | 2082 | | |
2066 | 2083 | | |
2067 | 2084 | | |
| 2085 | + | |
2068 | 2086 | | |
2069 | 2087 | | |
2070 | 2088 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1001 | 1001 | | |
1002 | 1002 | | |
1003 | 1003 | | |
1004 | | - | |
1005 | | - | |
| 1004 | + | |
| 1005 | + | |
1006 | 1006 | | |
1007 | 1007 | | |
1008 | 1008 | | |
| |||
1019 | 1019 | | |
1020 | 1020 | | |
1021 | 1021 | | |
1022 | | - | |
1023 | | - | |
| 1022 | + | |
| 1023 | + | |
1024 | 1024 | | |
1025 | 1025 | | |
1026 | 1026 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
0 commit comments