From 45314752f0993435c4e1903c48606de42ef0889b Mon Sep 17 00:00:00 2001 From: Diogo Martins Date: Wed, 4 Nov 2026 20:59:20 +0000 Subject: [PATCH 1/3] nghttp2: a peer's RST_STREAM(NO_ERROR) on a request still arriving releases it, as any other reset does The shim reported a stream's close to the managed side only when it carried an error code, taking a NO_ERROR close for the normal end of a completed stream. A peer's RST_STREAM(NO_ERROR) closes with NO_ERROR too, and on a request still arriving (headers without END_STREAM) that left the half-built request and its arena in _pending until the connection closed (#493). on_frame_recv now reports a peer's RST_STREAM(NO_ERROR) as it arrives, just before nghttp2 closes the stream. on_stream_close cannot tell it from a normal end: nghttp2 marks a stream half-closed when it receives RST_STREAM, before the close callback. Error resets are still reported from on_stream_close, a managed side reading bodies itself still hears every close there, and a normal end still makes no call into C#. Both runtimes' libraries are rebuilt with scripts/build-nghttp2-native.sh; main's shim rebuilds byte for byte identical with the same toolchains (x64 on the host, arm64 cross-compiled in an Ubuntu 24.04 container). --- .../ioxide.nghttp2/Interop/Nghttp2.cs | 2 + .../native/ioxide_nghttp2_shim.c | 14 +++- .../linux-arm64/native/libioxide_nghttp2.so | Bin 301672 -> 301672 bytes .../linux-x64/native/libioxide_nghttp2.so | Bin 261792 -> 261792 bytes .../Nghttp2StreamCloseTests.cs | 62 ++++++++++++++++++ tests/Ioxide.Tests.Unit/Program.cs | 1 + 6 files changed, 78 insertions(+), 1 deletion(-) create mode 100644 tests/Ioxide.Tests.Unit/Nghttp2StreamCloseTests.cs diff --git a/src/protocols/ioxide.nghttp2/Interop/Nghttp2.cs b/src/protocols/ioxide.nghttp2/Interop/Nghttp2.cs index b4862e54..34d77ef0 100644 --- a/src/protocols/ioxide.nghttp2/Interop/Nghttp2.cs +++ b/src/protocols/ioxide.nghttp2/Interop/Nghttp2.cs @@ -34,6 +34,8 @@ internal struct Callbacks /// validated out of . With non-zero nghttp2 /// sends no WINDOW_UPDATE for DATA by itself - every byte handed to OnData is credited once, /// through - and OnStreamError reports every close, NO_ERROR included. + /// Without it, OnStreamError reports a close with an error code and a peer's RST_STREAM(NO_ERROR), + /// but not the normal NO_ERROR end of a request and its response. /// Returns the handle, or 0 on failure. [DllImport(Lib)] internal static extern nint ih2_server_new(Callbacks callbacks, void* user, int manualFlow); diff --git a/src/protocols/ioxide.nghttp2/native/ioxide_nghttp2_shim.c b/src/protocols/ioxide.nghttp2/native/ioxide_nghttp2_shim.c index 3c7ba4f0..f039e9ee 100644 --- a/src/protocols/ioxide.nghttp2/native/ioxide_nghttp2_shim.c +++ b/src/protocols/ioxide.nghttp2/native/ioxide_nghttp2_shim.c @@ -146,6 +146,17 @@ static int on_frame_recv(nghttp2_session *session, const nghttp2_frame *frame, v c->cbs.on_end_stream(c->user, frame->hd.stream_id); } + /* A peer's RST_STREAM(NO_ERROR) closes a stream as quietly as its normal end, so on_stream_close + * cannot tell the two apart: nghttp2 marks the stream half-closed before it closes it. It is + * reported here instead, where the reset itself arrives - on a stream whose request is still + * arriving, the managed side holds a half-built request that nothing else releases (#493). + * Resets with an error code are reported from on_stream_close, which a managed side that reads + * request bodies itself hears for every close. */ + if (frame->hd.type == NGHTTP2_RST_STREAM && frame->rst_stream.error_code == NGHTTP2_NO_ERROR && + !c->manual_flow && c->cbs.on_stream_error != NULL) { + c->cbs.on_stream_error(c->user, frame->hd.stream_id, NGHTTP2_NO_ERROR); + } + return 0; } @@ -168,7 +179,8 @@ static int on_stream_close(nghttp2_session *session, int32_t stream_id, uint32_t /* NO_ERROR here is the normal end of a stream whose response already completed, so only a * real error is worth waking the managed side for - unless it reads request bodies itself: - * a peer's RST_STREAM(NO_ERROR) ends one of those too. */ + * a peer's RST_STREAM(NO_ERROR) ends one of those too. Otherwise that reset is reported from + * on_frame_recv, as it arrives. */ if ((error_code != NGHTTP2_NO_ERROR || c->manual_flow) && c->cbs.on_stream_error != NULL) { c->cbs.on_stream_error(c->user, stream_id, error_code); } diff --git a/src/protocols/ioxide.nghttp2/runtimes/linux-arm64/native/libioxide_nghttp2.so b/src/protocols/ioxide.nghttp2/runtimes/linux-arm64/native/libioxide_nghttp2.so index c89102ff143b4407660d15f5e369b3d0cd7911e2..129794f7986bb2df1e89b1d95b21bad9960d4e8f 100755 GIT binary patch delta 55476 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 z z)+^(JhiRD2B_%Lro;Hf`_{+}3rHZ-*Y6RE28a}IV!+2P5{FL1FaK7_X)iNVO|5WHY zYGgW4tmtZWF-C-Lr#(z>v$aehS2+`+BiFmuv?TIWHr+Bm5;`W%>)7ZPJpQus!Y|Go z5IkG;#U|)H&qpeEomf32bn<7kyv%inHz1AMBm4?%60kS;k;*bmNLBRH zGOPw-ws`oNXbnE0eAaWr%Nmy(M?kE;CwLftw;nzxZRT!UtP0&ml}tx?X@!&~b$U!_ zoGUXOwhb8mk_WqtWiIHN_*qq`-YXgsIw9?-+n2xm!Pz1%pF!2 zBP2BD3Z@O)il%!i_g1D8GGOYYv-$U>*f{>eE7O6umDM&ezIdsk(YK&${IL)+xvNq%c7}J(Z-8{kM}79+r`d*3Z76C;I)RX?HM5=wrP4^ zzVf$;D$5bN27RL(p&MDO%4w70o)E3L6jvz4{e#A(OR5C_h2YtA1XjJ#Un)B?q2JzRk$ZQ?7c zu$Zcv@oiD+p^geX2KlM4f*Z!x9mjPMG{$uJ7G*@=q?TQ+JiuecEv`kS0hySlVnFDm z+*I`h^gY4xvkuE%yw#PtH7e7bR(eI060=o%mPujf1rNybSnFSfg)E1V z-k_@z{k4Ke=-{n*7{{T?dbD%!6GiLC>4<1Wsg&u4=T$fCQWxW*&>q^#bhKOHva@QG z7OAp5)WNjh*2g~-I!t{QovCu8=dJXb&_Norj4xMoxzL%blyN^51YkUVt!fXwFMEs7 z_$oQmKItr-J1jJ21JE@=+dTQY&`H5{*PRkPEVGKn@tfaPE4R|H0w?$~I8JYIvD0-L7Ap3+y&)aE&V4N2N?hWd723nGHhY@S5qcZ7lp`Dt8Cd_|bLCH$A7mC3KYfm`TGGM1@s}#e!(NO6Xv{y zwgu~$(0i-wuTo4yvIef_r34U~B&=->)P?~~lm2yIX$({-{g z2@Cy4p(E7DbW)5XaIJJ+=osx`x*b0X&MCwC-!K+muUw1K5vD!(8ylQ_*8hgFQRoJ8 zRD&*yDZEN)8O=h6sg&uYOr@J8clT88txUIHQMjInM}_uL2h)C;X?IKRm1_+n6C2Ml z>SH?edxiH(*+I~J1Hxtz(@nOU;qyY{PF@2#aZcsdUGk>TI6q@Lm{3-mrEFK3GLC`G zv|k=_eL`0X-A?{u}9#!9)%00|LH4lwPqh2r}{H<9CRHZF5fRC3Sz ziYhxurJ&8kF}mw+oQUe9vT{*-T+~9;!B%{7+N0yWN9cCyW4cP#?P1A%QD}55=$f$Y z?!IZA@*%!nx=iBX?*$LoR##66zKu53qO^V~ZOR#;+i54$t)D6{lH$y`(Ab)1Iv@*X zJ$!tqG6!LVhM6{AQ`xd5cdgLa3f>4hC^u%^oGn5ZQYGk?xNTM$5IP~d*CDa`uHdl~ z3ee_05j_59g*S`->>HJn(bEdhH`4;aJ*L%!^!7$9t0T5qx?Yt0!Z{Lf6X|O%)jEP!YR<<6=o_VvfzU^ZLR0zI8=N~hrMGz@chg>2#cu{JlR%yo(vv)~R#R=Ye4g(b}M1W#V14M99GCT+Ka$AtIg zs5@9t>^&v8pY{aN)Kzke(jE1t&{zmC9lxluY5MXM?brm`XY1zjTa>ddDrLH1SUKwx zpPvvKi#pIX(Z4F=y5)8Y9e-(Nq1}R)y`gX&a|Z?YQ6HB!KBDM4bupISs+_^ffax+@ z|9wYj{N?knf)2=F(LuFWXoEH}oiJ1#bV%~oXt`U$w3F$OJeibB*;(rqjrS;+4$G=! zi_kX;?Kv>~RoBC}Ieb*}6W5ybki4oHqMbi+txFHfM?AmqNByE~kR0S%m)SO;I#yr9 K2WrTb@BDu_EG={Z diff --git a/src/protocols/ioxide.nghttp2/runtimes/linux-x64/native/libioxide_nghttp2.so b/src/protocols/ioxide.nghttp2/runtimes/linux-x64/native/libioxide_nghttp2.so index bb65d6b6e5b85f0281cc5f6f2b2299d50807d11b..b6c9de7f953213c963cda50b4d02b545ecf0deef 100755 GIT binary patch delta 48061 zcmb?^cU)9Q)b`E=6$NAwkRrmOC7R5fzNa0*Vb0gSpX(#u!XA zu_hP`1{?OSSYlVO-xUk?&VJ9_nYHk}@AucYzu)-moipXkIcLtCnLCR)9~^Q%IAs4+ zxz(RU!#=Gxu4p1T$Gq-VRO$4IJ+3wbpFJsEa<<;HAIEQcAoX#G(+Bc$Rn^iOO^4bV zO*IXk4)gpzB7cmP$iK=nMv44Bm3V%lys(;UT*5J43z_QYq&=r<%lNa0$k#aV{4^_G z{=CSyw&wZS@{?-8BvJNpa*Zp!$IDa}WlEhyo9^!8EC`v4f1p+ zSNEhNJo~7i_VMM^9C;(Cng+bCrLS7SoSG)zaB`J&x8%1@4crsoaZUmRL!=5Xlr2X) zySf+D|FVhgI!-N=$2z;pinF%zbbp?cD6c^IggKm(zeHlX_R+ssI44Vlb6@a z#KqNJ7r@(x1l3Qnt%Vu_YHl-5tuCmALZE4Ke^3i<@@!{8z5cQ8LQplKyzUu6U8>_P z8{|DMu5pE~oX^IBn(4x+S`DwYR^*QrJ!)_842vlLti{Xc%0AV>i63uGD{Aek&#BpR zM^KZRacVRNO~q;!>U2iE$g|f8s<$Jj8sv?v<@dbFIMMQghL*ZFK+Or{+{OxOsxaSN z+0oV2Jv)mxY2<}8gN3Oj%F(Wnz!grtF6tf^R82WUTqKNJSAmyL6nr`e11*+Uu)a?4 z>?@+R2@n*Uc)9XvPz_Ibb`wGE7HAnGadS=8R_1l<3Fa6j^}Gbc)mr~^BeGdJ-2O{x;eV*F7q}mTBz&J%OuEq++fwB zg}+71fnpNo$WPo{Iw-NAV=r}h)Iu8G!)d84QlpSljx@#M9 z>KG21Wi>dpRE`F<_y(_J@hT-^bP4iUQ1#V$rFNp__%L2qFR!SHA;)TA1Rh$vE&WQPvCWm;r#-#~I6(gwog~W7?d0)pw z{?|I*W{&VJROCMrfkm3U5PhXR;Mo>?_P~VVmaqp@O}RC6r|@I&9-tb^QRh_Tb+ct3 zZ`94;{9x*-pLCc9YZ<-*RILamE(+=yVKc?@bWjUk@NA1k^#psYZi2iK)I?$1miaqL zNHs^k!TP<#>ssc;G~pQ%WJev=Wx}1!AklBO@C-R}G^h!)InNeaQ?-A_~wgV8dc6XnyOCRX8f(V+TyAH=B!nfSn~l=0jPg1R4Vu)10y z2Op9DR!F$uG0!lH{4HXJ!ZY|FGWmh`^`n@mtA&p;$O}Qu78(x`bsIvAT()~aEw$lw zs|)HOF&G#g@JiTqVdIK}{6)V9}{r^sASrv%10% zEHmh80Ou-A-dM{uHEkZ}Do^y=Q%GK0jpyGI`Eg?HOB4Z%FDGmAM0BBf!VA_H<$H-< z62&^$U*uo*61{Vt-%HHOBzXm>X=gbj?F2u& zgxqrE)1VfVtIJ9;jpWM2*A>CHyKk_&p)Ifa4fMf2GCE>qlH~rr=v~BG-*ciSMc9d6 zUI?lolh?IGQ=Kq;RyR@J18QNpS$s=SF~?cULTebT`WgLkrSPc(dvM|{Ul!CKg>Ole zJAzsmz^Pvg>NOY@?{_+*mWw^=2_LSPH-f4w$JI*VQL*}inj_Y}uA*gUAx}h)brF{e z|A56p{ro4iua~1i&9&uR$$~12@g~V*K`m&`sgndXy`F{V6`*FfA_J}pT2G_3W07?IGjgJ?NW=qO1J0X0eC*#iZ2RVeQlGuqG9v2-7A`M#h|r~Uu1 za`jm%%)Ky%lO4DXYW#%D)609%bg4b3Vm(tovT&w)`H7#aJh!&C@-u7R8K$v6oS+>q zAIU*u&~a*^+!0iLJ)Ug|4wkubYK}Y|R2^H%@VTr0tI^C8t_Mm5wXid1&|mP`NN`dp z-vG5(OfbtrWhEx3L3XSM#R$g)ud0527h}Yh0938mZaE2ROVMwxJQh@)#5-ImsE*J9 zH^dd7CLZKGTijN2p|(=_G^p9-0=}NYHRs4A0FJwqH#t_cyiP3Dnl8M}H5@dg7Vj}l z^aYDlKW@S_6XpH^=u2qIM^Kjw^Md0BwRk^o?5&_)5^X}uj4G7>r=b2W91wQ!pyu4* z*-)1H2^N8Vf$S3q_f&3-?}9nE2;e|16+so|r}|kZ95MqfEmoSGo0?ZmXl;vIykdyGq(sI^zPRM-Hh1y6Z4OjP|$_~;h* zfT|H2U1X}Czr`|%u%6WwHh@zM^|L30_nRd9G=Tja;M_J9)DTfuFLwkrEtFHU1$BZ5 zj4Uss4vBMG3y(+#u?u5>}i5}stV^y`-*2+_-O~# zusLfG7GiPzFT`xkm7{|((}f$gc&7@Y7Hk02#A4p&SE8?WVg}{ND}r594Pw(PP8T%q zg}yYx^Z1Bbe+#=Zh`?Ga@;iu8Ys9kGMC6BwW1~b7T<#b7(?mOkTzYa7y`vl+sEsJJ z;Um>N;{`F@)K6=e8Iyok%s7iRGSg-G1@b~YJYl)H+*e2d#{qg*QYv542V=X!HPT14 zeB9FVC7uz?$(lcef6fsuXSXPSq$2MzNA4H`{R*FEvAT&66ypbh9jJw33ulp@z8LSvaAK8gakA~0+zLD$0z@QzLJW#z=8xP8G=vvhlZFP z?wpE=tbQDY=gE;n8e;2MjY|M7Mg4TPa8i}m63$l>A;L|K*n~q+>Su!}pC&IvU)h2R z=dXUM2~A;*Xy}@nAVMyS#QqXg%_Cmg;v4gYPtMkI-Yk~39V{^^X^wN=EIi*4?HGg{ zEakrvep1JE5umYj{FUfHFC1$t!R`#vL9RSK41tJncI^c9P6LYyH-=&971MIApgs}P zMk}TbRyg&uOqf)XGiTZ|{jU1(){wj8 z1+{n}r~V8M*k_1{-QZS0Ettirb2w2`DoiR{J`HNpRi2&73u$EGEYf7s7>hwit^g5s zYSue(u5dmCYHlq~wMeyvF!4gUKd9Nlu%^SIvd>6icDeFGP}AD;x-6b&pZ)ONOtoq9 z9#9hkIXfE#SC{Hq`hC(Er!qn>U`G8o3$C={ij|cEF*pNoJk^*^6M6i456V6Bn!OxLkUZz-n5&_?Tj`wm(jG`Te%to3h`!t2= z*W^4~Jk51{QH?|H2&zs{XNZ>j2q_iH(?Km2x)>^`oy5iy(F&*?cI*Lq)i?T|tVocv}6H?H-@4oEJ&e~aLQXXfvGR`VUQH+_b^!SoolsVqUm^n2( zb;~VRNCw))>1etNJM`O4bZ<@Sdqk z4yD{!spDUiGL1Hy%?{qN8qKD(v-X6f$_vg#rjCDWHqR<>n8i+ejG0ls#;iug(7!VB ziPB&8L=e2dxxd-xy>s`rIx!`*B8s~5F zawmZ$E1ALZZkH%Kr&)kHekHH`BWuPM4yhf9K1Dg8LhRw`$qSP?i<~2pE1k6 z&(B1YpURY%)u?bX0W^EPfM}G>n=0S#BN4w%L+(}~?(Zo|UFW6Juo$3}oQYBp{JmiE zqx|o^iKK=cs_Z1Ixx={hLqsXND<_$5yZbLfgU@+` z%Tm+^55lu437baW&nME0%W}O3-3i41ppkUhGL7hf&QJ<=qe4 z6N7C3$kV;{WwSY-%>~Tt*u6~F@H<1Y6D=aDyKaP^~3(#<0I z{i7CSg&g%bkfg}N9(()OIWOD=(@J!gxQypr;o;sHGhQicub9non3xqZ4k*jzzaLK} z33B~X196bQDGimb7RtYswuecSmbNCXn{()1HQqWAZ;w2asX1%d@tmrkwb!Jvk-+^(=x6mX&91qz_qg$n&Y>r2O~uIMPLa z^V~pU^rME|S*g<|0^L$y2jty5uojwJ^e0)ki^|B7>A-{O(6LqlAY=&!v-(($h ze%Z!e$Hb78>Xz)KL>z@JABypZtTjL^?;1^Si#aQSa;H}!8fc6fI*z>F^(C!TJ*mQ())$CwL!v-iPuX`sl)0=*!5b zIoVOLz{rhM7A%qx#*uplUN%PCd*6^D4J<2?ocp?->+i?R=IG4itJcP>sgf~$A2FsM zsHprRm%dJDw~X}ej6MxX*RkHgFAq^j2^6ZSqBb9S%`sU ztHvQjpp~1w>(aN~SvDrF_k0##C~`F+rXwpt9|5<_fAIRY1U^~9g`y#0cL5|ihRN{+zQNn?&Csy zj`oktMEm1-`}Vy30~64Gh&=y&t!m3v?N7C?gLNqw-dq!ry7{cGf$qO0z4s`ixb_xX~f*lLjFhrI9Ls@w0O3Y=4JT=hLDNPPC9$M)n zV`f7ptIW4eVXGWN5eq9KGW zsWHtVWikc=`Nn75jL&!(kHBG`oNn$&Y~=sUek4u)V0M)*o?29$gt?DPLwDf_$so7J z*q34Xdkj!|EgDD$lR=A)kT|lGIuQ~o-P=#w5aLUw(@}(EjJk(86wN|6<}~Jk4^?4t znO%Gl<~)weOhy=W_K+&CkFps!4ZSVmy>;)W_LlH9dYimol}#)oui)fxPBx4Mxex6x zkw8*Fvm_GdK4B_Kt>LBC_Ej5UURpUxA4^0}vZ&6AxJa)K(k5190NF&BT9KM$5#44* zbnac?zw^)Xx~u!Bbr0iGf^wWbu_Eq`YBBORj$-IeN6GhSnq`NFq6)1X+|ro29wq;an@VDKtH8NgT za+I;mLMj#@t+SRebe(K|XGDRVC7b45N1{kzS-3HQ0~=PM3EvQ@v@-cmyBG zW{1g0x7d(%B%b!KOhQNil`E5hq#J!znfQ@u)Vm6)LB`R@DkR*l=N?w~E{l0j($p%X zA2~&@S0Mq~%?Dt083!;4+cVEQi@Mp84$__dbhs^PN-EQpwrDGa9=9b+FpME~q&KiA*}uJ}zi9hJNQlnz32qLM}y&90j$vPzTwldplL_a{-D|t~zbw8QH+e z;hgM6j`vgYr$;tn4at`?jjH&a`d~$CwQqC$ARI|8TV3!f~I-A1TU> zr@cIgNAn(=8F?mnz!cjq%AQ@v>%7~@p1iWKd8y>m_MRjlVK6#24TKM1mTvqL58dzp zKf<0BlsC2h^t>8_F*WATqRFm*plar(B=o{2_-uN}llX&$QcvPc4$}%XNu2cPADU2; z_*UzIahQf6tP#y$Tuo=!B+b1KLl&5%to~H=z>MJq#Dpb=WsRV>YLaUti0<(sZqnIx z^okee!9E(`O`1v=#t?7P6F#@V8`N{F=w)xx$Z<5d%GeuHfO8Bx)<%1((-B?j`&H^{ zV0|!V0pMcCh!tg zyhIoS1h|SVN_}#sbhnPQt&#p08=4hXOoy30aKiK~+F^{H?+}ME72K(>51C9x(;Oe- z=GJAc*{q&NII*=j(`tyr;{s!*%V1jQL%iDeV@qX5_7oiCA=3cMaBxgx$9=4!j-2=t z9+5jr8%pLBrVo#IdY-6t+(=8;^y3+oFDtJ`M=`L+tVt?21ae^Nub{TsdPPrf16G_D>= z40(q5Ab&g#AK_FUhpUD&6wX6=x9oGBi|r3=!HQn42gi4aRu3Qpe8Mmiwy3f7wN*$# z$PrVm-%(Eu)A4L_rb|%FYa>{)1!9lQne@B(3cquKegjZ?2@H0udpNq6-5_ z^~zh&2@`*Pnj45g66`OiDG>jJ1d;00HHdiF_5Sr^Wi4$ML_F&>L{41hW?!ZTHWhDy zFBVT7nyF@~ic6)_f`~5g`U+_{_ zZ7^2zb4%&bVA7IkslA?fV5<1*NkbA%`{>CGsca!F))N=foxaqQXyQV{Lr9NM&n1u` z51*%C&!Ws<2*<@dVQj`zrRXQs18_k`J1mOzO;iHu-VjpPZqP4GZFl1{%t}xCJcKl; zceFc3F^7+0f?ge@cL+u?<423husyoQ6iVBLl6r3bFf1mt1dzF-RRg3wbbctQ>$es& z5l&K5vJvvRhL;NYF)RRbts0EPMbC)daqjG8cRA; z!v*M99G&4vkac%}&TUBQK%;*(B(Y=!eb$gfx_{I4QwJj&s2!ByO^-5xwh1Gx5qK>K zBLTKQ{s7S&%Gjs8TTJ(bkvOkh_~HEdd;-qL8zAsCr8(0ZWT>RmfJVfZNj;$v83aq( z(uhnV%V}_9Qk~49ts9fZQfVfg)|hycV7k09$-|6OBjH&yASSTOWIK}%Z$g^b?f71` z(@1E(GF{(GIHNE?R{@xT;(uUq`N+LbB&tVpzhE`rL(|5onljH$x$25aRMv@w}8)viDHu2f` zSh)v%!90wI(m#69nRHSlrbiO}B~rDzZIK9Sqp4>UaSI&=S+F_s5;H+v=9ShseuYvy zwEraYc6C+Z6*YnIy3-+1q+`H~EM^ueS7Vr64xSB7ZhZznfDluuG>cKy1>26^h$6vu zJJ^`H(nF|cGtybQHlL1dhB@p=mo+2qwZ5HiHt))TG?-ZLq&t?(!sf)CSke2< zNoGyD00r48I-L0gV^&w~E~W+}4p3~A-t>nSq?P{^%zrhP?F#0mW0BbL9o7d^f2
y&ZUH*B-CYQ2~{$?N%)z;L495ag4c2#m3eP|$! zNh|6bO@gI2b7|LTGQ*`H6n$4fQ%dG^nDjnOi!&MYK{Sc9?ZHTlS%mPRE#d62_h?Bn zovZj*@_VF-D!)>%7!uW@8Rj@|%tob@{Iy*jNM8&@{Z{e|wEZ9!+8%_93s|e%yj5*G z>Y#03x+I2-u^R+FGE)-R1dX81u_W2`HVO%;6)6{{q0a*_NiX_qEOuuTXkIKC?V0p> znMk#a>1$Pf1`Q1vMx1GvRzz$3qS(8stSNO_-l_6=3WmwQ*`g{~U4qyte+Fk2(IcDH zi@m_ABVFH$gpzM)5rarttu+}z66w^|Toy(RW>Xy zghsU?OR+Gdb)=qgq?yB62qtrr8w>ToYziF~M;dCU zL#5fDauJEe!Ckea$KtR<+DuJx#FOOFifzfzM*RXl4cou7NhQjPJ zy03Z!z|6KSNvK+_#%EPWFK$P|eJ0fVEXz-A&7{ZpgcM#(qdnUp%s54-wIeO627F%n zH+rlc39EX?{j(MlseL^0mtIYzP2x#?NtsHA#3LAKOXYa@cLYZ9WMb8S{7{2U3nl=2 zn%JJKtZkg4DmGd48=*cr%-n-1B2>MV`h7*R+(yBLaeGx?+*rbn74-O52qz-w`>%-6 z{o;5o4R?%0jq%_}TZKGSuz~FWfwrWRJ3ydY=uaJBVN2<;4x|qmO#Kr`g3Gx{YSmfu z!5_{t7>lPT(X0d<3hk%=CXhtZka~2)rhOP4-I2sLuyTRrrtfF2LS>7KJ-VOix3SD) z;5FmSQdmCU`NF0I4<6pq`ycyI!lDh{n_kg`@doO8S5`P(MzcQN!Wu@~hyY1}49YgF2()YGX$E zKpe^g9HL>?y=e4lIe3EWN0@c9n1lE*j_&D98aVfzz{md|#xIo7mRfZozD`@dK?88K z_QG8pQaaP7U5GyRCVIzueL#u(Rvl2AwC&rmx@nT5_%f$WX{a=ZG>lp6(%2%Nagc2} z=R?J!rN_$O^sg?YTeU9WI=hpv zf_F2OKw6`W8T;6(7mNZ1hpjJAJ~rbG3;K2@vD)g+_snqW*@O7n%|{_M>#;&;d=E0! zMMfdCaxb%8kIc>qA+V3f%J=ko58^|9S=^KKbhF|GN;5NiK;~@2&-jEk$M!^-Dpc-C z>Ox>RKBz|~(c3*qGv~-LYMXmwGoEDJ4^alBwR9&rDJ;G{Po>%`g<>uMAlH} z-lS0#t5L$sjG&!+!+tl@Nep10y-9nia14Fan+&gBVKgfRX6MFc+^{gBp`-hdCfJCq z>Vx)+Fai1yZ~FyMgg6YkHJIA=CEdtmI-oCURi)KnVM}&&V_)Lz{jEAYhnX2L^JpCS z!t0xa)f6fB$I{z<(KnH!D&}| zI1%pXFujvV!gNjpU<3SU8>i}zqaC(BS01BBRbG#k%`~DvITGM85IHF27MIb|hMh3X zdI+DO#zOHK=aoR%wYnKr7Sf;r#Jy7`X6W1ry@#Hncc?q%OOR?dzp#*lfhf_#K8C2* zSY)~}5kvgtTp4ka&m5@|M12Mlcb96&GdZ$oLA_IX9!L)kC4HqEHE5k-Bv!goMn?|AA@V&tx?>pn zIYE02C-HU(Wg5Pwna+No3kPGzesDMmta0oEvYCOIW9zg8gXlg??~Ebjbc-`2qvNQ!zkj&C|{khj|M2oM0}DNaF+e|)zR)f zz6qU-ONeN9UInOb4sD!7nxuZs$P;+Cft-97vsP(>R>ThUUlwl~5A9XM&O2;8JtnF0j+3n!xeq57a&j~-wJKLR`2f5^zVju{*+x#k2~c(}9*gPQ zht?cRM*3Oz!sz&U7_+M_{qXpIpND-#{~oIzsGk^1ws;)v0`=}Qc|m>batSYvO}`RN zmyJUp(1hL{hY0068Z#cwd^{a7o)}XvcV{yUdu=QTeORCBc^q4d3PAacg|UqKf3r~K zD|A{EeQ34~LQ(cnwxJ#~ugw@@^mOwJNX}uV6W$lcVkh@AC(d+2F5(@WEG3gzH`K>It|*>5rVuBBQRNR0S=Ds9GzG_w z&h$tMcK&Zgudyf;oi@ccQIk>~Z|<3!d8KTi`U%9pw67W}|HpD9pN&?8y(GM$xeoiH`hCf0&5aGn4L}h%>AK^xZ_b_>DAZ5<=dk zbo?ZoJGQ0!CXuziW1wi$cdwb^UMW9x=50QKxY4E`Z!?}Q{Eh@xO#^$TKv6P=9{mo- z{dgnv9r+rfiJOeY94${K3A%{3&~C(REfz3`8U1j|EM%!(`nsz$rMD(ybsb2XP9Yn~ zSo&ZJY2;J_iLufAghM3W>lzw1mDH_TEe^eAz2N+uE?7Vd|Yw4)2BVXttC z?wUrz$Wi)i8VPp04=ZJ?u7_qmvl5Ia72Lp2rxKm^6traufcx0ZraVq@vr>sigiE|y zb(SNf2*0wpGN$hZ1aeq0Zr)TU|5_Y=E00$bG$l|LL;3v9j9P6bkTI;9jLV9vi$D}imiCbxj!p13s`1np^9C!Xgc0fHlw;3 zSlb5E9y2g;{AtPz(nxyRmadMeV@Ei24TX#Q-%s=5x0acu%XXfdIc!06^loU+Gi|gK2P~Qisf8s zm9d<;bJMvJmDdee8T0pW5!U0q8A?&Q5ygF;-Z7V2F@s39Hx4Xe=lDi;Xu#gRPiNIS zamD=t=LpRVW-?g)%i3Ho=s5f>@*f%M;7&ac`Rmotq z*up=Ai+UN8Y?thfg)f)d&n2Va-M*U(2i%aZWq?&@E=k29b*~IKU=3Z7LFP3kh<5Um zyjbUrMqgBU@Mp7m66A*2|7l3+WtAP~%!49u1U!uPpGW4olXs|_!Rv0gpw=B`LfwC< zbtYLuTF}2TNj-;F5Dv~!aZQCq%0ubhOvGBJXw~_omS-Ob+L&3v9)d7tq#NL?Kki`` z()jtLlXN|d=FG>24X6I|;r$lVSMy18-M8VY8nY3Fn=LXGJ(N+#abZ$Nrt?|rb5r9wO%E0gKiMn9ABM(-pI z{t@BWAUf$sk|UjMN^2~_xQw*bB9bSSM$ocFWF+iv#9~sXO8xq31aW|!ye=kwwtc{a zdPwptj2>G|YDQpId^!CL=n&<=%eI>l-`83SBqx-gr$EWUH=ogz>YYU zkanaqEnI@r*}+sXGm)v(`e(An)8PTsHmwHJSEG`H zs@j51Lv61D%x3ENGtBMz&!ndNx)K!ol^2`CiybaRF_{J|BN+~p8Zh25A=#Sqz5(64 zjO4L<8^2(-;R?$yBnCUGN57E&9EJydEO|hA5Jb-`#{m}J;Qva_ItBZ(fhz1o>@Hjq zCdme>&B4BXFAdBgv32`~usC&R4*XZh%aAk5)WDAlx#?$-kw0COgW=Vp$8t!dv2Gn! z#H8L*DT=RmgWXems{68;GZ?DSYj<#9!kP-NgDWezGmhXnjua`s(yvyK5Zh+881w85 z2dBg<$TG}Azu(9);z6JN28Epuq;9{H-(6N5hGc@+(NFq*9V>r8dE`e6f5)4dBlP+2 zWM@bXAI8E4ajL{3bS4)u<#FK&`?` zY_4e$z}q@>|0W+o`1jtR-y<0fPr?V(x0S`&%u+3C?6&_W3Oo*E3UQG zsWod496HabK#hMAozGGfV+G#V5T+Re`LIc7i(eKZKa6Jl3DqXj6My2m&v;13G#>#9 zbTknlueP+0m}X84#(9kCz}=Y{TkBP?lO23?d_(`*OJJZ&zL#!9*iDf?V5syGk4Bq ztWmmnEpBD~LiOuN8@pC+>iA-P-4G6^uOlt&=Y7g~>`hN0OL|nBYS)uqcK?7s%u`ml z4V|!_43cho(W~pp*S1ewEjsv?w%$PM)NoYo1?o3?F{Za+(a<==Di|_e6K)_|LKdRN zmt!qLm5*bU@bHBlgwRoc!4BX6{(@hU=&`@>f=*lA((Pif#v+XQp!;Y=fP(exlX91t3YN?$TI1GDBMW2?N&F?P<0 z9?ivFoc+{&Bk7HUgp`dW#@!lX$N9BgblOf&NS!46hCIaJAG*`i8_BmWv1kSQhmMpb zT47;{wC_K}tNIGYG}m3-kCq*jx9}gVJ5p(Nx@!~BOV{0K=_XRA{-LU1R(*5sFjHnr zX9d1Gf4xye z8*U+P#<3796J}Fbbo9$v>g(7PgE9h~emQlw!SaM;9xGSWA%8Y?alpETgx2qnhoI}m zV~i@x<<@5KsC-ZdA5x&$;oOV+_cLtNSuPXk(=CXq6KKFz;#a%3GaKEk!w?`lUS!iR z7`hdXklkp`pvhZ_5rNE3l$S0#)4N+qvye4RDqqZ_S9sg;QH36O_`U?GkK|5hsBb|p0TvF(6rS~6)H2Ge#)BQ-nb_0!L;|jWg;x6yLUmsE$R7Pq@(*_ELr)x@dHVO0b_qx z!+@2rSiGJy>?So`#xVVp4eSD;Dd-#%SCP_=j@wPbTAyDBV`gtZOq#pc1HGyMYL>l* zwb$B3ZSU%DYI|9jjf%o#eQ2M0@Ydz5Wj}t#mOj``8o0HDG?^B5!hhi%2zy1q)(5-* zFThKk`ZTG4IFH!91$`BvFXO<=CfymdVZu~Wd|*nf?uV-w=3D%OiR6ebO|Nd_J5woR zx&&%8{Z-1S_PY_sbReVshJ|+3oPtU zVy2SiGKj|RA->^VSYxa3+gJ!t&l`(_WRxf_k4B7qg_9jQxf3JTq&a&q=`!fKJ*0N( z0Y3g&M^ryy-}(S5WpW08$Wa;W#TZ;}t@1yVkvDVlcuw|3(@H8QEBiq{?Wl6pg_D1R z<53bpRs#E}O@tjn8L^+$=Rk|tIPBkuLQ!=3UfkO3P8aVb{iPQg`erZr&3o)V6u-iw zzz@sS(nA?Tm95a^b3*g?A=<<%q5VYf?1q73?%^HM$5%agsj(k{i7owMKiri>uk6QM z{F7EcK>S_2z!i!gMJ$9GvFx=IUYT@0fWX0t&O1OB){MYAmVKs3l>2mzQe1JbP?Lrq zB(c>D<}x$eEgGjEVwVCqkG1Jpm@kVx>>Qj=3vX^_`)8&VWpWVF=Wmxgb*qcL7dipSlte*%msX4EdMwss< zyRmmse(Y!G~x*2sR8uoBe)*(M8mpZ_i`L&&O+C$o4&O0 z2>Gh^g7>T&^)1Z4S7qwmIJ{S}&e)e6D}IA9ibfyBg|;e?CZnJ*ILDh7Ygj-1_9z)* zck128Hms@XD5>fE$J?^ceqEM+mzd6JsK+rlQe3h>hCS&-nsN+xFeB*ZV+eKY(2K{g zhw`I!kCWgA-63nsJ)c{G+kLo-6rYhYF+SrBt`f01YQug*t5v?E>BmW^T_q-S{`M4C zevgyJ-d$m6B_~u7vCupkk;6aWN?ZkMLaU!Z|2=5e6NpM<>5>y9K8%sk6!oRrljM8EgE=Qj4abd8Q;CmwS%8;ij`a9RV*J`4 z*$8J2;&)iqvyMy)ip{vm-?z44<^NWX2zkb|=g3&jE_Et0`Y(~Q#S22Al}DhfzZ>4h zRBIZG9S0)M@u#pmJV}dAk%lfyF)WLAZwq-u1sbX53RSX2lo|#v~GTATjJ+oDsLc<~?Dh)i>20=<+kr-6)7e&3UDa zrB~08D8De|@ZUVlfb(69)g`|Mi)peN)#CH5GeDU}Tbv~+F0Wx4mhSh8?(vTPEb+AO z{z$ZJR^C6PPtTHi%@(4xxHvZg?4VyZ8MecM;dV{md=v$^g(&QlXmxO4_m%SU9qn-r z`^DXK!8u$JaHf~eL7>s}{W)9;zVU+A{Ev9oPEu`%PqmeTo2z)8YQ!E2B6zG6y{2FP zN8;?PRXG$vIJiBv`9IRW+DLSj>5LN}b%HtjLd{O+F;@mt<9SlMLiFP@b2iO6hgaWW zujpmg_bd7VeUs;`Yh5kq+F}Nlp6wod*0aMa)^l4sw1d&Hj)&i;TUgJK$rl}ucuk#I z&-ZB@dZtkqu^mjI6EBj0F-tK%xRD=Y;R&*K8WCNxd5B--v7eA&b}A81)dF*&A-u%J z)<-xy^vO)?D25#;VpA*&sw--IzYMQWl6|eyPg>&#)yaNf&oCFycz5e~iNx6TfB?}v z6JHihyhI{g&SF-m7NYiQM$^{VdH;0@7fWv_^u#6NQTad#T4i@9so^4yinctXlP;2a zW9~yt|IYzrz;sdIe;a@Y$mItxTlwDxFoo{9Ok(U;gBLM?Yjs%$Z?S0XeI-AVO zn`gA^Rnp6`8Q9CXkBgXCOpFVOGrT`ua- zw5uez+6D~x^V(TY>7J{^%c~}Zg9zK;?1;o|JpOxai9UZil0BP zDffJ-+_S0NGgFDncvH-Z)A=v~UudzO1HUw%(!>X#ifFIS;m zx#xs(&*d9DU5+7Bxo59(^`G=CSHN-pmkf0-S7E>WC4I%`&$HO3Vh(a(opb5VTR1nzIV0bl4_Y z%pNU1#N7N``{&9%&-!4z}=fBF8-%##( zWx3}+*fZL_&5*_ZaT$ft8AsCJ;P>>8?vj31q#&>TeKNs{{7d&g#PP`KmGt35QcHTc zGSBf5xl%a@}aGT1&5SCrJ1^`7$I89M0$DaLVduQEh{Mw(KFquE=>=&>?fBdJ6E z&19~<=V4Z#y{)>3d$BvsB;N6NG{Jwcmi!I-b=mku9#T3PvuL^0(DTX>3(a9Be1!Vz zvp<;>GAkr5dMJ70c*CAZzE#>CM7gZVN$}y3L`wCmhG+HnE02{qxZz`r9O*XhG=6Z# zUN~a+&#%jxM$sEY@(*z;K#9!ltI@tv3E%lI;kM`C*}*Yg%`V-o7J-O0%I)2>sU+$B z20#>|j|(UM*FJX8g_88jE*7tl)E&iRyuka>O1fa*e;=!^{>b6{F*?y&`kqvvHWj2g z?x`4QKKt9*FpN#37&N;IP;k^*K?=iGZE^+4AJ-~ZR*)9h-`{SDfd5gx$!k$j@+1hi z`&5$rZ~!o~k`!V)6hBj9SJ@JtRjLZWklYyN|K%g{0nYap(OS* zh6Lq4#%5}SZG;*Z#br*w&!;EiO4eINL)%xDe#N=q!^%>Gbhk^Me-&v0A%D?dZKc{c zC)#H#B}%4Fw2qzBLAtn|POy_gNpjvAI|;wB$1mONG0vR4_EjZ2f}gJUa**2MqQEK# zsTo;IZ#hU!JG9uu|w5tA$rKfuJ1>568N=LfGQS$R1z6+5G`=tr)Es1OKpQfxbnM&29It}ii zX;sFIXZ{Cf)W2LZMyE90fyQC4>du4xsh~GIY1eAf$ZFYXFoy1bBf8Aoty*V0dZwDB zkRRxFC+NV77CA`^@T%q;XQ?^Kp&Oi$8AMMzLtg_@=;#_!eH!5+dEg>w7Z<4~dz0)U z9d@7n7aPl7wmF+SmAMhN3$ylBs^)!PU9uu>BQ|^tXXo}~!4RxPr##=5x7JlUN$k3) z)r;6>;Rv1SF7?Hc%uRP`p!8}DZQ}v;9;UNAr24o(w8=xt@u)lor_C92iZP)~@7@SI z!>oSuO&%C*O4xf_PpJ_`aotmDjGMeJHNk3gI;N&nJ-pJNs%lYJJ*zR@gDgb&^~qW7 z&IMT+wUXI2pWBIaXH6-_dHwp2O8ZLe>W)xnFA0AP8#W;{rv9NNENTV~eiGNoOR7_U z)|&rSQ&m_epKEFjUFjw1wYkYmjJSOL4%1DGF!VNl#D`Z>|9VRu$jZFRI_ac@fnKbI z356fN)|OJq=)Bjpr3F^f_3m`8pA?5P-7|htKd3LnUm8pfQtB^FVprShNih&g*Lu=U z-12e?kaF=?0QLt+KIBl|-2mwXk$Ntp2LdFWbm7Om3qjI#67%iyFN9=jv-Hd73qO4M zoVVtXKKXqZ=6mD3HjSWS>79|LHi8)TOC3HE85qxU82jC4Q|+>CK)my|X;0 zw@)&d{NCd5C(|X3erPIzmHRxe1*ptWdUl-8-viYl()T&w3MXgVV7t5 zdnN7asdQFM=`a;Lx2E{<2nHL;%53Is`0+9_#;gRQ49G!@Jd%@bIC&r=+i`MDM#fLF zn5aztY7Y$=`5|jOGRxkJ(dTgbQBJpF^pm{vKUt6z&$pKAIN6_(|DHlq-;(N;DzWOV zt!baOl5Z_FOnSw_BzE}`9kM_C4E2^Vw%E_<@%Evuw46<^cG490B8rl=ctGXkrYwb7^#5d+A%LWO<&| zS5i2^VNg^DDbYO}k!t=%-iLK4C>ZZYLhxT1C9T{ z8;@4+ST#EZDJreTVtvi3@D0eu^mkS%GfMWt23oMvIlQzJFMSY~dK6cb23g0*YdD!- zu5VTorIgo6%+Jh(;d4J9-95Tnbl2!ET|3k3T_tbn@j`0uD*1a=7-tzm@@O2m@U!st z^>8BoR56XGt-49WNGkoSn-t~#8+K6^gWp<170PhdReqjTcj<)9)e}Zsk_Z&DAxF4s7w{ad7 zi{y+n6GwBt@5{{Tcsb#T6okZHWW^)(K^ld`Xj72vkZRzq-e%x_q;p8Ok)9)2BcIWn zQ}NGAWE{uKQD3~2jlv7#c)ZNqk9U$R9mn_ic*l4ZuX%m(-u*pZ)3FrqXf`jydroW6 zcYr3lg>#&`BSua4R5hg1=%SkT(zdkiC%PtS4fWj-$AbU|{)RfOAK zNVw&&9_dG?r2T}4`kv>s^((s3la-q0aZ5Ko-G(B_}6^em(q~f#U}E zAD`ziUka(1nt)zdVhkJlfFsl_M2&2u9DGki(jq^nCkDd4BOOLk@H`AH+`_7)9i07qr&kvGQ z>Nz|%=?kTRWG|3?XXzGb3~QCkx6m2B7G*xqJBhpp(;-=r;%7kT~x0$If$M z*yTDk7o&ZapW7XioqvJl!*+V)WnGgxlbQvCp~@kc1xTex2}5Cn$jb$m=6$#>b#O?{ z#xHn|J7_e8z}vv2yC2N28RCjfm{y}P;C?_7un@Q&sJ;KeydRhVyvp){Hh5274DP|*Cr90g1QCIEAQgMh`riNI1| zHZV<7W-bI40AB-h2o@rD(1AUGTB*!D3YZPt1}p>?1B-#r8QrSP?CAjs0QJB`U}_(H zNyC>UU?FfdD`1WF8mI@BGCD8_K|~JF04xR$1C|1(0JRkm3jhtk^}qyR0Wb}y0JDMb zfyKaZPn55S;0ah-u`Ja*1z&WP&;T$Aco>)iyb3G;mI4cb)(BrTHedu;3Y-GeS4PkQ zOac}#Iu1@A0JT630Df1nO+d%xNqixE`2m%hq;$DMrQvV45AGAa9JszRWxb zm;_7%YO10FPzx*o<^W59r9gijMCkw(084>0fm&^uIfp$13xRq^#0bD#U>Jhav}$GM zWME;cQQU=T315MO%WODS*^P*(#ZX6T6yfd*hPFah`+SOC=5 zflg~;1VFu4nK>7jqRQ0tElfr-HVz$D;BU>fiNuo%epUz&QbcAy@} z{=<|cU@R~j*aMgg991tBBgdCCRxqH<{3Fl+Tn#J$?f@173xUPJ+rU!bYoI0&(JnTL zTA&W71BL+10m92 zGz`?}Aqik<2r9DtP)G_`2z<|;BhWE+wYk7Pz@(<=2&j$3Gz1!e?Eg$G2Kv_r!%>+3 zMtsrZOCMl1Fb$Xk{1KQ7Tn*GVgDn7cz+#{t_#9Z;9E@R~Ziq%lz`~X&2TX`XcpeN1 z0E2*~z#iLIFh;A@c0L&hWdh8jvAE+M&$p8z7!{{1=p%IWIP&X3w zfw{n|z`{|GNE6f>3*!S8q^4kg<4fW+7*RMXq+@#o%)u7SHv$b~+tmkX044$1R%<28 z2krnC0~KK6QjEMQItB&-bAd)+F>nx2`!g5<>VZE34ZzjF)I@yQfiKy>i@+S<17PAZ zj5rbu{elqzlYT`*z=9PR5wH|^j?sUEYJi%R5N#CdpTjdS7iirKBmNK54p?v={(|8J z7%xzB5t3_$`LD&7i^$Lc9{>$NO>?LM=nPB*`U8`IQNT1{0x%mm2$%z$2+Re}2Nqv~ ziv}7lLo&dGEAXf-(Ec?@4yXri0~&zGTVVbt;!80yvVqTm#XuVaMhNr-CKbU!0TYU` z1^}~fpkW}}oeqjd{X1B+fVp=u(w1OQf$s+<+{bhSY97G)V?cih$pNz;K~=F($z!a7 zsrZtOFKH~J6dVC{z+(3N1UhVmXJ8+o9+(6)0A~UdfIk7#fa@9kDMk*=2A%`v0u^BK z3orsSyu|jpHOd2hfd#dUJXaE+vVA}>PsE!Q*FwqqOEkieK*V-ZuaC^Xx9$y*TzOdhc9|;cSivYz%*bIa5Yd9j0(VPpl>`F1cn21f$_jn;4omC z9=jD_Hn0F#091g5!1q7{etZ+w9wQD#6b{S|!=4|QlZr2g|4&=j0v=U$t_vs-{_E^@;yCy2?@RvV|JPpoarRz&pMBgFb?bh8gtO4KqoN8kBR}afnHz<&0D({P*IIiy(YJM-3bTbAdsi7Z?Io0b77|z%Vcfi~+X+ zc6F%Mk|bOPIe9$*L13ycGOz?5s?AD9gc086gH{14&}ABYgJ7T5$_18f0q0EU50 zzzA?ZFbX^di~-w$abOH+_|Oob6X>`W6#(V}y+AL}2do16fpx$DuyG^)2;z?rFa&G{ zHUSR+TY#;=Ffa;?0M7%Xz{|iG&{>NL01JRdB?c$Z30w;F00TfTa2?PG+yV>$_X0z} zjbZ%3@2x!v3(L%^mLnE%cABMjmIFanGKW5Bn7UO!q43;>Pmp#wd@D6kx8tnBS= z0P=Z91jy$W9l$2wC1B(x^h_Q2n^7<@T91|kL${#9{C@)i$FLhvQ`{970>i){Fh&cm z*dMy?SrlO`NOwMHuS(CpUoA@ad}}~@_WX2bWxC_4fe1^GTkzBR_LbhLK%*wzS)1-K zocQw?e$Ik_f_bEJ{IugINclZD!!Dzn7~1GDfIAl-6@x|BFut4aTmc8{c()B74MBhF zv1j39NKEZz3rmELh| zgv1V0lwlkI*T}^BbmvVdh=Xe`c%$P=@5WsxRQ9gzYO<|t*RR!*qQdvD^cJ!$61S)g zc2(dkpPaV?T!2b#YKiSE{lKQi*qtBHQ#LihRrSG@-ZajN#BJY}g4*JB2x_)#Go)-& zFbu{HNKI5~S2?z3T4v{>V^?~)%AC09x>Um`16OJ?=tN*6xB#87tGgx)>b%lBL?kx9 z2+0A?D!&1oqaS*plU6HrE8e^EvQpRLwa)GoRcs&hAuUW%SK|rCjue&YI`q+%Ubi^I zM#gC9&)s`GMa{FFr!P{}jj0>X;?AEcN2+0Td#al3O2OI5{gR^qxXOVcMu$_?cogw& zs>&(a@X6Pe;R+ss#d>gqBp3HW8@P3p*AKn0n`ZV?#dF$WQO6c{r#m@U0os#&4(BJ# zVW=@z4z3KG*)!LqJGs}Ef(y{Teku#)AMb~XAD}P#p*9i9@2{q&HsWk&G1d3jGpVt^ z8is~%>aQ~KewtnVaUG-7*hs{aYl#@FRBV#EfD?1lD3>{QQx22)( zLE4dqtJ4UJQBnZ+S_3TB)A2Nw1U4gb8-TV$G}nw7d9r;oEGAP=D4Of|<I2tzYzcyWFgek-NV!^cu(q?VJIgXr<5OYIob4_OXZN?rBdweU(x%+)bvz7eGJhK z7Y0fh{SlCQ8i$x$b%^i`SGl0)3|C81kKxSnMLOkzm#2rTQFAJAG&x$zkXEtz;&kVA1JWIphz4xZ0h1_|!emYdOuTF&F)w9= zVO#cEwOn<;h}%|;_Qtd`j-t0>!!JL?1&yCLBdo^^MEXU#muC7T=5c|D{V zV$Q+hG|czYL^mdG1Ks4tq}WYc-I%fE^e&UfC~X8nO*@Spfz`xMYeyi~F2#$YFuJ02 zVuV`Z^5EE%gC-{qe$hPKu+Z2X_zF`^jv58SwK>SvP7ma$F%uj^div%Mcm0}?SaiTy zG0X#Q12|&{y^*6v7gZ$LAAwe$V9(2X8@Mvc%f;$=gl@{kOlhGLxoWEIGJT$lihHRt zPi5LmT(mL|^B-$u9!w*2A`h{oA*-iv+;an3Jv@OjMxp^{Y0gNsD77)Wr}y`mzj^fh zWR*rQj8yrEY^T_wfv${12W=tuD8M0_HcHLTbLRB)-V9GhW4dQGrolo?0}h_$m|nHC zeH8llB%K+BYNBEub&EZBB>l{z=Hi3VKK3AZqAB?(_VOt7Eam58Yx0A9H3miQ%jc*) zn%>A)lWZ}vjaDn{p7C_eXtf+I-Z$D@9L|7+i-}{fyIJq;={=}j>>GpY8KYBU5D14& zq0h!Bez|K}0RqIKsccna$MUeMKrOXhqJstKJVcuUHNIbaSx;}KjaFx>EXp4XelJ}& z7TwoKyT+;|{R|u&?s3rTUdUHKVCYnjQ{O=+A0DUnV3k-lUd?c~ukPvF!SVF3nt-bY z?xc=O;qiz|4fMzH*yc3S$K%nnampw}jeS&Eh{&=ufRiKcQbd+Ii7Xu5bBlQ@tSv<6 zucPgNqAjpYjM-~o(F_jPz)U>mHh@DUV8?s^AIEHR2qs~&6{$@3A($NHy!PGcEb*K= z4Y`&k7NNeEX+e=%WKU_JM~d(|nUq`U{USBeKI~TNDN-X+3vcb|ea{>`ci1s_=1;)j zX{B#ZP``8?pszcHhwoR=WeFki_!WjdZJj(E^^@HZx#$VaSix@whUZin+}2V z;_D0$S4tpZRWcKszXhoroHfOmJ1;I0xyz=D8o0QQT_gs`g2|ZO;5aKM#&U24N!(I! zo`j;junU081?Q#GVhpkN5|wMu-b0_3sBs7>857m@sScb_zQ!vgJup!%a;z+nlRq%u?6A+5KjvxDxKq(-M2 zI1+u2_dS_(V3I27w-^6Ux6vcRF{-;KA&9k5#$$n72*T&Hpvf?Ot`G{q)mx zhgYp6PpL{lbR1i%ZiM|NhKqEj6!t-?oPwFt%1}%#QK>2#9$VsI&kzjncsd=)q^9WKLtK@}teH`AQh`!-YRgm>5FUwqw>9Bq$4 zxs>=O7kROHP3J^b3IH7UZ&TlAxxIj zg=wldZ|^HTz29cjrM#85^WlKL<%MaSN~a?RU8H5x5dzoKW7GKt>eZgUdkyZ@%~-@8 zuhCzotC6Y4Uc-sA-hH`dASWEmKFNDBRSw6XJyfm=FkViTV|=%MOn`GPf({Eze!%Esqa|6)?fhbe5X$YKKW;In9vT=)x?N6QzvV=5Ar^Y&FB4 za+X%l#wBRO_c^FrTyK5S({~5KVR$cwQHH;<~^YNt{uM8xjT0(_F-liX`a>r1B(=pWc*# zvpSsJcYwp9GAX$eJETvrae_dpQV;6j_IGNWBoR2om!<8?m$L6V=IozJa4qpcg zZV!Tjnb`XlaNM3myS=8TZmtZsCs8^HiQALNod(C1N#we~Vdv;mnH#x1iPEt7h{{P^ zA-IAht^%AViSvWYP2w8BWhZg#!41>g#=fR*1Id>?u`(^-1|@O))GT>iwt-6?mmT1e z$7LMcH^(J*7AY8L$pe!g$??EU9Ka>u;ZV-po)nb7i zG>Zccy_}dk04@cEFEbe(ELy?&C}RPFMIGMJphmfO!y;8I7&wRzLZ38I{Q|QCwlBbD zaSdHqpmNlPlwSJNH04TdH!boPnik6zszulk>{^Ihz>+k2WuaQg9k&Rlo=5PBKU2j! z29R;Nn#XC)B4j|Yf<qu_Y;bR$Lzk+KqH0{H7+XBHM+JQ{_D>%iZ*rmV0a(&-KY`S@xdRGz_=sFH)9rHI-p1n)vkO1fytUQ+Q2036Hp3ep zIWfek9$@!;MLRd65k5Mx86}1&?E&=;4hT9QP+3!~Az;k_r$d)u$PlskJmH;_k4|_{ zjkLje^+UKB_Ea6+`4Aq?P~lePB*#{qIfsrGZN+H9h^&8D{oLI$M_1mOpdD~I6xX?l z@_)pG=queXO&W|M9JOh=hUGw;Zs{QDzIu^yLdbGFTl4)TH-8qM&V3m2#*hqfD}bL7 znLoLeQ>O;wlJG6kYAZ%&W9!Q9oF%#q90xdEEqv^A{l68E?iAiL-K7Ao$11BjkknuYHjrE=PZB>(c;^*e%q>#dw}cPVT6P!tyXFzW&9u{U zXVw03Yjl? z6E1nETNi3A|6#ET(++kLb89EoN%I#X<0zHos9YRtL`=bxAg)53y3O3@wewDC*lLkO zl)nSHTcmxwJaIbEC)cnXnXAjbTdPKw$N}2KvPYa3i0s4xAD11a!z_m<=+3jo^3@{a z$cW|8R_)x99~K!$Iy(^$al*J0L4m)RgOjyPr=y#=3`25H*0M2Mc(2%x7XDh{Jv()2 z&0a0sE___pJ@l%XHVDrje2+x$>{J<8Lv%~lX&=UOVub7bC|VMe~ zzewjsrOi}`&5XW8^(;H(0$Wk>+ah~u2g}A;UFb^5y+dSNf0ljtmMl)6i2R1gLF$HF z?fpQ@)&S0T>9Rd}x=ufoY~{koUe@+j$h%Sa7OH8+)d)&xMFY*$DzdRsXR8+eec>ZA z1FYh|wCrV}SS9vjvC-o$2`$srx?O`YQ+Pu!4HNiN>&p! zdAeTs%z87uBytN?vh0_xAEQ;{bCGd$&2nIru11H*Kyd+Bs&HnM$#X<(`O9J*?b;n5LI&FqVq!ryVTE@$IRc z?vpC)5*Y^*Tt*AM%Vh*)u2^NHxpf&)$|pDp&DG5en67ZUEHbV+%Pq2~STkg&$O!)| z8(->dB)Q)d84ns*jwJo68^1$bA!mv9_HA4GX4k_JTe-`H}M8-`d%aNoilgKS(dkk{irgK|s#XBPVsFY<- zQVmDph>^=~p?a2`@9IJ)%N6^M$he@8aVU83F?v~(GGUvlWBv9XQo__u3CsrupI5x^eY++zsPt!49kHBwbzp(heXCc{0YdO zD_XXu$4esnsfOjSgk5XJ=@J=7Wh^^K>fYQW&hzqh)o?*s4t%Bg2_oMoGA<}&4AC#1 zP?JaaD7_X;1TeNS@XvT3kd7VVQy zv1}v-)e#8YJiBlP@>9rux$~GU&TkPJn{1Zj=cH_@^LCMOj>EFASj*NtcuiznQI^B_ z9%4>myUsok`yMVEo9~~R8|-l@FBqp6&EJOcp;!f| z5^}XuT4Y`6Iha-4Zexqi_I=5AgYf>Ly2@5`3JM>ieOy{NDR>M7w0a77cSJ3uK5ufjB&y{<=)b=UnzW$>Yq|srBT`M%oKNftZePt&w6opRQLcL zd>^#ZQ%*;w2wx_AFlpiWuJB&!n`(1zCVoF_b9_5gQoZ&Lp~C^DY%vmBRu#!s~q<98xs zHa`tHAj^1~$Xz1GsFdZ9MA-f!PcPPW4N*PhDNRZJu~B4Witg_>B-a06 zb9Av^!pmyOHdo{@Rk9pAsdIlR@&=LdFplN;^;$kC@_&jPr+ucJ6r8>i8H0mm?_YJc z|CZdPlXTTEI1Zqtu?5=s!%FLSi0qLL#htpD9u+<&i=H)@4hxTSH@I`h_$A&*Pny5+ z)Ij7G+5wr*_?|g{!4Y~`mwHsp?!x^i_g93v*^3hgew>~Wd9TPVlz))rPR(0&cva*$ z)f~he#KdQ-&=qag?(|3&Av zjx6|9f9xDrlx1Jilq)XPGF}?Ta`;a=_Y)e7RU-RoAIm|>jlpH6ts-OF#j^34rqe~{ z_Y>;QvpoyhE1TXWBF97yQ7OxQ83>ll??U9C_>uk#<_Xd%T zmAcUB(xOK!{-QR_7yARk2WTIc)*_e8TEadT8FQ57*e%-K9*54(pSQ&Q6e8R6ke#Jc zs5rkzxj6?vN1IBr;~YS+?xJ2T1M{BF8BsjNH-p zbnf>>{;bb=CCf316V~1(y#a+4xxV z-xK*)BICg9Fyw%2*6tShZ+&H#vh0-WmM`)&?Ar9GsyAhR_=NP4$n_%oXa{6O(SwIE zg+20gz`8Oo^;vbZlaSmY&KD;iii|UnUqB8I)MY#>@>om&u7a0pexV~ZTX|$Lw$_^8 zh!u9bcZfHO^U)Q$Y(vh1mI*&o_{b$qSR=Jwcue#oD9t0+B3DY= zBQj39S#~yQ9`_Yy`isbZs%N=LVzLzn_)X2`Jf$6w?FK$(>i8bFqH1>`9vc^}+|vYCk)~-Ce?C z>T+p*3F25?%=CiDEz}8lMEDQ7DGNpZP-Hw$9r_ZUEMYZ%iC3eeH@u|ASK0nao4!<& R)5@>c;k5kd@h{am^}ljx`)L3G delta 48040 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 W)bfp*l;OBehf~M?SH4l7ss9DHAPg1& diff --git a/tests/Ioxide.Tests.Unit/Nghttp2StreamCloseTests.cs b/tests/Ioxide.Tests.Unit/Nghttp2StreamCloseTests.cs new file mode 100644 index 00000000..5a707730 --- /dev/null +++ b/tests/Ioxide.Tests.Unit/Nghttp2StreamCloseTests.cs @@ -0,0 +1,62 @@ +using System.Collections; +using System.Reflection; +using ioxide.nghttp2; + +namespace Ioxide.Tests; + +/// +/// A request its peer resets before it ends has to leave the connection whatever error code the reset carries: +/// nghttp2 closes and frees the stream on its side, and only the shim's close callback can release the half-built +/// request the managed side holds for it. +/// +internal static class Nghttp2StreamCloseTests +{ + public static void Register(Runner runner) + { + foreach ((uint code, string name) in new[] { (0u, "NO_ERROR"), (8u, "CANCEL") }) + { + uint error = code; + runner.Test($"nghttp2: a request its peer resets with {name} before it ends is released", () => + { + using var client = new StrictClient(); + var connection = new Nghttp2Connection(client); + + int served = 0; + Task run = connection.RunAsync(_ => + { + served++; + return Nghttp2Response.Text("ok"); + }); + + client.SendRequests(); // preface and SETTINGS + client.Drain(); + + // A POST's headers without END_STREAM, so its body is still owed, and then the reset. + client.Feed([.. Headers(1, post: true, endStream: false), .. Http2FlowControlTests.RstStream(1, error)]); + client.Drain(); + Assert.Equal(0, Pending(connection)); + Assert.Equal(0, served); + + client.Feed(Headers(3, post: false, endStream: true)); // and the connection serves on + client.Drain(); + Assert.Equal(1, served); + + client.Close(run); + connection.Dispose(); + }); + } + } + + // :method, :scheme http, :path /, and an :authority, which nghttp2 requires. + private static byte[] Headers(int streamId, bool post, bool endStream) + { + byte[] block = [post ? (byte)0x83 : (byte)0x82, 0x86, 0x84, 0x01, 9, .. "a.example"u8.ToArray()]; + return Http2FlowControlTests.FrameBytes(0x1, endStream ? (byte)0x5 : (byte)0x4, streamId, block); + } + + // The requests still being assembled. Nothing outside the connection can see them, so a leak shows nowhere else. + private static int Pending(Nghttp2Connection connection) + => ((IDictionary)typeof(Nghttp2Connection) + .GetField("_pending", BindingFlags.NonPublic | BindingFlags.Instance)! + .GetValue(connection)!).Count; +} diff --git a/tests/Ioxide.Tests.Unit/Program.cs b/tests/Ioxide.Tests.Unit/Program.cs index fe2963c8..ab52c680 100644 --- a/tests/Ioxide.Tests.Unit/Program.cs +++ b/tests/Ioxide.Tests.Unit/Program.cs @@ -28,6 +28,7 @@ private static int Main() Http2OutputQueueTests.Register(runner); Http2StreamedRequestTests.Register(runner); Http2TrailerTests.Register(runner); + Nghttp2StreamCloseTests.Register(runner); Http2RequestHeaderTests.Register(runner); Http2StreamedBodyTests.Register(runner); Http2FlowControlTests.Register(runner); From d88c5ed113846643593ce9afa60e74613ca96faa Mon Sep 17 00:00:00 2001 From: Diogo Martins Date: Thu, 5 Nov 2026 00:34:50 +0000 Subject: [PATCH 2/3] nghttp2: on_stream_close tells a peer's NO_ERROR reset from a normal end by whether our END_STREAM went out From review: the first version reported a peer's RST_STREAM(NO_ERROR) from on_frame_recv, on the premise that on_stream_close could not tell it from a stream's normal end. It can. A normal end always has our END_STREAM out first (nghttp2 sets SHUT_WR when it sends it), and in buffered mode our side cannot finish before the request has, so a NO_ERROR close with SHUT_WR unset is a reset. on_stream_close now reports a NO_ERROR close when nghttp2_session_get_stream_local_close says our side is still open, and on_frame_recv is back as on main. All close reporting stays in one callback, and a stale RST_STREAM on a stream already closed is no longer forwarded. Both runtimes' libraries are rebuilt from this source. --- .../ioxide.nghttp2/Interop/Nghttp2.cs | 4 ++-- .../native/ioxide_nghttp2_shim.c | 21 ++++-------------- .../linux-arm64/native/libioxide_nghttp2.so | Bin 301672 -> 301680 bytes .../linux-x64/native/libioxide_nghttp2.so | Bin 261792 -> 261824 bytes .../Nghttp2StreamCloseTests.cs | 6 +---- 5 files changed, 7 insertions(+), 24 deletions(-) diff --git a/src/protocols/ioxide.nghttp2/Interop/Nghttp2.cs b/src/protocols/ioxide.nghttp2/Interop/Nghttp2.cs index 34d77ef0..091607e0 100644 --- a/src/protocols/ioxide.nghttp2/Interop/Nghttp2.cs +++ b/src/protocols/ioxide.nghttp2/Interop/Nghttp2.cs @@ -34,8 +34,8 @@ internal struct Callbacks /// validated out of . With non-zero nghttp2 /// sends no WINDOW_UPDATE for DATA by itself - every byte handed to OnData is credited once, /// through - and OnStreamError reports every close, NO_ERROR included. - /// Without it, OnStreamError reports a close with an error code and a peer's RST_STREAM(NO_ERROR), - /// but not the normal NO_ERROR end of a request and its response. + /// Without it, OnStreamError reports every close but the normal end of a stream: NO_ERROR once + /// the response's END_STREAM has gone out. /// Returns the handle, or 0 on failure. [DllImport(Lib)] internal static extern nint ih2_server_new(Callbacks callbacks, void* user, int manualFlow); diff --git a/src/protocols/ioxide.nghttp2/native/ioxide_nghttp2_shim.c b/src/protocols/ioxide.nghttp2/native/ioxide_nghttp2_shim.c index f039e9ee..27ea15f4 100644 --- a/src/protocols/ioxide.nghttp2/native/ioxide_nghttp2_shim.c +++ b/src/protocols/ioxide.nghttp2/native/ioxide_nghttp2_shim.c @@ -146,17 +146,6 @@ static int on_frame_recv(nghttp2_session *session, const nghttp2_frame *frame, v c->cbs.on_end_stream(c->user, frame->hd.stream_id); } - /* A peer's RST_STREAM(NO_ERROR) closes a stream as quietly as its normal end, so on_stream_close - * cannot tell the two apart: nghttp2 marks the stream half-closed before it closes it. It is - * reported here instead, where the reset itself arrives - on a stream whose request is still - * arriving, the managed side holds a half-built request that nothing else releases (#493). - * Resets with an error code are reported from on_stream_close, which a managed side that reads - * request bodies itself hears for every close. */ - if (frame->hd.type == NGHTTP2_RST_STREAM && frame->rst_stream.error_code == NGHTTP2_NO_ERROR && - !c->manual_flow && c->cbs.on_stream_error != NULL) { - c->cbs.on_stream_error(c->user, frame->hd.stream_id, NGHTTP2_NO_ERROR); - } - return 0; } @@ -174,14 +163,12 @@ static int on_data_chunk_recv(nghttp2_session *session, uint8_t flags, int32_t s static int on_stream_close(nghttp2_session *session, int32_t stream_id, uint32_t error_code, void *user_data) { - (void)session; ih2_conn *c = user_data; - /* NO_ERROR here is the normal end of a stream whose response already completed, so only a - * real error is worth waking the managed side for - unless it reads request bodies itself: - * a peer's RST_STREAM(NO_ERROR) ends one of those too. Otherwise that reset is reported from - * on_frame_recv, as it arrives. */ - if ((error_code != NGHTTP2_NO_ERROR || c->manual_flow) && c->cbs.on_stream_error != NULL) { + /* NO_ERROR before our END_STREAM went out is a peer's reset, not the normal end; manual flow hears every close. */ + if ((error_code != NGHTTP2_NO_ERROR || c->manual_flow || + nghttp2_session_get_stream_local_close(session, stream_id) == 0) && + c->cbs.on_stream_error != NULL) { c->cbs.on_stream_error(c->user, stream_id, error_code); } diff --git a/src/protocols/ioxide.nghttp2/runtimes/linux-arm64/native/libioxide_nghttp2.so b/src/protocols/ioxide.nghttp2/runtimes/linux-arm64/native/libioxide_nghttp2.so index 129794f7986bb2df1e89b1d95b21bad9960d4e8f..d9346d259e06a524c2440cdce8f8d0dc9341984e 100755 GIT binary patch delta 61763 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 IZ~K@2H?V+^Q2+n{ diff --git a/src/protocols/ioxide.nghttp2/runtimes/linux-x64/native/libioxide_nghttp2.so b/src/protocols/ioxide.nghttp2/runtimes/linux-x64/native/libioxide_nghttp2.so index b6c9de7f953213c963cda50b4d02b545ecf0deef..d68f7101d57714285770527e78c9c1c9ba1dd3e6 100755 GIT binary patch delta 22185 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 W8CNVnmV77q-Kfs;vJd8Vs_;Lng8<6_ diff --git a/tests/Ioxide.Tests.Unit/Nghttp2StreamCloseTests.cs b/tests/Ioxide.Tests.Unit/Nghttp2StreamCloseTests.cs index 5a707730..ebeb2ea9 100644 --- a/tests/Ioxide.Tests.Unit/Nghttp2StreamCloseTests.cs +++ b/tests/Ioxide.Tests.Unit/Nghttp2StreamCloseTests.cs @@ -4,11 +4,7 @@ namespace Ioxide.Tests; -/// -/// A request its peer resets before it ends has to leave the connection whatever error code the reset carries: -/// nghttp2 closes and frees the stream on its side, and only the shim's close callback can release the half-built -/// request the managed side holds for it. -/// +/// A request its peer resets before it ends leaves the connection, whatever code the reset carries. internal static class Nghttp2StreamCloseTests { public static void Register(Runner runner) From 820fb231d473fb49bd93618b05ccf05b77597406 Mon Sep 17 00:00:00 2001 From: Diogo Martins Date: Thu, 5 Nov 2026 20:53:07 +0000 Subject: [PATCH 3/3] nghttp2: a test sees a streamed response hear its peer's NO_ERROR reset at its next flush, with or without bytes staged --- .../Nghttp2StreamCloseTests.cs | 40 +++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/tests/Ioxide.Tests.Unit/Nghttp2StreamCloseTests.cs b/tests/Ioxide.Tests.Unit/Nghttp2StreamCloseTests.cs index ebeb2ea9..ac22f746 100644 --- a/tests/Ioxide.Tests.Unit/Nghttp2StreamCloseTests.cs +++ b/tests/Ioxide.Tests.Unit/Nghttp2StreamCloseTests.cs @@ -1,4 +1,5 @@ using System.Collections; +using System.IO.Pipelines; using System.Reflection; using ioxide.nghttp2; @@ -41,6 +42,45 @@ public static void Register(Runner runner) connection.Dispose(); }); } + + // Its handler is dispatched and parked, with no headers out, so nothing it could send would ever call back. + foreach (int staged in new[] { 128 * 1024, 0 }) + { + int bytes = staged; + runner.Test($"nghttp2: a streamed response its peer resets with NO_ERROR hears the peer gone at a flush of {bytes} B", () => + { + using var client = new StrictClient(); + var connection = new Nghttp2Connection(client); + + var go = new TaskCompletionSource(); + var outcome = new TaskCompletionSource(); + Task run = connection.RunAsync(async (_, writer) => + { + await go.Task; + if (bytes > 0) // past the 64 KiB a flush may run ahead of nghttp2 + { + writer.GetSpan(bytes)[..bytes].Fill((byte)'x'); + writer.Advance(bytes); + } + FlushResult flushed = await writer.FlushAsync(); + outcome.SetResult(flushed.IsCompleted ? "peer gone" : "flushed"); + }); + + client.SendRequests(); // preface and SETTINGS + client.Drain(); + client.Feed(Headers(1, post: false, endStream: true)); + client.Drain(); + client.Feed(Http2FlowControlTests.RstStream(1, 0)); + client.Drain(); + go.SetResult(); + client.Drain(); + + Assert.True(outcome.Task.IsCompleted, "the flush of a stream its peer reset never returned"); + Assert.Equal("peer gone", outcome.Task.Result); + client.Close(run); + connection.Dispose(); + }); + } } // :method, :scheme http, :path /, and an :authority, which nghttp2 requires.