h2srv listening on 127.0.0.1:19178 scenario=scenario_z2.py [c0] preface ok [c0] -> SettingsFrame(stream_id=0, flags=[]): settings={3: 100, 4: 16777216} [c0] -> WindowUpdateFrame(stream_id=0, flags=[]): window_increment=1073741824 [c0] <- SettingsFrame(stream_id=0, flags=[]): settings={3: 100, 4: 65536, 2: 0} [c0] -> SettingsFrame(stream_id=0, flags=['ACK']): settings={} [c0] <- WindowUpdateFrame(stream_id=0, flags=[]): window_increment=1048510465 [c0] <- HeadersFrame(stream_id=1, flags=['END_HEADERS']): exclusive=False, depends_on=0, stream_weight=0, data= [(':method', 'PUT'), (':scheme', 'https'), (':authority', '127.0.0.1:19178'), (':path', '/x'), ('user-agent', 'curl/8.22.0'), ('accept', '*/*'), ('content-length', '586035')] [c0] -> WindowUpdateFrame(stream_id=1, flags=[]): window_increment=1073741824 [c0] [mono 19535.782155] conn0: A#1 upload stream 1 (PUT /x) — learning the whole body [c0] <- DataFrame(stream_id=1, flags=[]): [c0] <- DataFrame(stream_id=1, flags=[]): [c0] <- DataFrame(stream_id=1, flags=[]): [c0] <- DataFrame(stream_id=1, flags=[]): [c0] <- HeadersFrame(stream_id=3, flags=['END_HEADERS', 'END_STREAM']): exclusive=False, depends_on=0, stream_weight=0, data= [(':method', 'GET'), (':scheme', 'https'), (':authority', '127.0.0.1:19178'), (':path', '/y'), ('user-agent', 'curl/8.22.0'), ('accept', '*/*')] [c0] [mono 19535.782476] conn0: B#1 stream 3 (GET /y) — NOT answered (any header byte would make curl decline the REFUSED retry) [c0] <- WindowUpdateFrame(stream_id=1, flags=[]): window_increment=10420225 [c0] <- WindowUpdateFrame(stream_id=1, flags=[]): window_increment=10420225 [c0] <- DataFrame(stream_id=1, flags=[]): [c0] <- WindowUpdateFrame(stream_id=3, flags=[]): window_increment=10420225 [c0] <- WindowUpdateFrame(stream_id=3, flags=[]): window_increment=10420225 [c0] <- SettingsFrame(stream_id=0, flags=['ACK']): settings={} [c0] <- DataFrame(stream_id=1, flags=[]): [c0] <- DataFrame(stream_id=1, flags=[]): [c0] <- DataFrame(stream_id=1, flags=[]): [c0] <- DataFrame(stream_id=1, flags=[]): [c0] <- DataFrame(stream_id=1, flags=[]): [c0] <- DataFrame(stream_id=1, flags=[]): [c0] <- DataFrame(stream_id=1, flags=[]): [c0] <- DataFrame(stream_id=1, flags=[]): [c0] <- DataFrame(stream_id=1, flags=[]): [c0] <- DataFrame(stream_id=1, flags=[]): [c0] <- DataFrame(stream_id=1, flags=[]): [c0] <- DataFrame(stream_id=1, flags=[]): [c0] <- DataFrame(stream_id=1, flags=[]): [c0] <- DataFrame(stream_id=1, flags=[]): [c0] <- DataFrame(stream_id=1, flags=[]): [c0] <- DataFrame(stream_id=1, flags=[]): [c0] <- DataFrame(stream_id=1, flags=[]): [c0] <- DataFrame(stream_id=1, flags=[]): [c0] <- DataFrame(stream_id=1, flags=[]): [c0] <- DataFrame(stream_id=1, flags=[]): [c0] <- DataFrame(stream_id=1, flags=[]): [c0] <- DataFrame(stream_id=1, flags=[]): [c0] <- DataFrame(stream_id=1, flags=[]): [c0] <- DataFrame(stream_id=1, flags=[]): [c0] <- DataFrame(stream_id=1, flags=[]): [c0] <- DataFrame(stream_id=1, flags=[]): [c0] <- DataFrame(stream_id=1, flags=[]): [c0] <- DataFrame(stream_id=1, flags=[]): [c0] <- DataFrame(stream_id=1, flags=[]): [c0] <- DataFrame(stream_id=1, flags=[]): [c0] <- DataFrame(stream_id=1, flags=[]): [c0] <- DataFrame(stream_id=1, flags=['END_STREAM']): [c0] [mono 19538.786929] conn0: learned 586035 body bytes, L=102 -> RST_STREAM(REFUSED_STREAM) on A#1 (stream 1) and B#1 [3]; curl should retry BOTH on a fresh connection [c0] -> RstStreamFrame(stream_id=1, flags=[]): error_code=7 [c0] -> RstStreamFrame(stream_id=3, flags=[]): error_code=7 [c0] <- GoAwayFrame(stream_id=0, flags=[]): last_stream_id=0, error_code=0, additional_data=b'shutdown\x00' [c0] [mono 19538.787270] conn0 post-RST RX GoAwayFrame stream=0 [c0] [mono 19538.787300] conn0 end closed=True [c1] preface ok [c1] -> SettingsFrame(stream_id=0, flags=[]): settings={3: 100, 4: 65535} [c1] -> WindowUpdateFrame(stream_id=0, flags=[]): window_increment=1073741824 [c1] [mono 19538.929882] conn1: TLS was held 0.105s waiting for conn0 teardown (c0_closed seen: True) [c1] [mono 19538.929960] conn1: qualifying grid points j=[11, 18, 25]; Z2_JMOD prefs [2] -> chose 18 [c1] [mono 19538.929968] conn1: AIM j=18 -> leftover will start at body offset 425882: b'n the description above, here are some planned future releas' (ok (0 header-ish lines)) [c1] <- SettingsFrame(stream_id=0, flags=[]): settings={3: 100, 4: 65536, 2: 0} [c1] -> SettingsFrame(stream_id=0, flags=['ACK']): settings={} [c1] <- WindowUpdateFrame(stream_id=0, flags=[]): window_increment=1048510465 [c1] <- HeadersFrame(stream_id=1, flags=['END_HEADERS']): exclusive=False, depends_on=0, stream_weight=0, data= [(':method', 'PUT'), (':scheme', 'https'), (':authority', '127.0.0.1:19178'), (':path', '/x'), ('user-agent', 'curl/8.22.0'), ('accept', '*/*'), ('content-length', '586035')] [c1] -> WindowUpdateFrame(stream_id=1, flags=[]): window_increment=16384 [c1] -> WindowUpdateFrame(stream_id=1, flags=[]): window_increment=16384 [c1] -> WindowUpdateFrame(stream_id=1, flags=[]): window_increment=16384 [c1] -> WindowUpdateFrame(stream_id=1, flags=[]): window_increment=16384 [c1] -> WindowUpdateFrame(stream_id=1, flags=[]): window_increment=16384 [c1] -> WindowUpdateFrame(stream_id=1, flags=[]): window_increment=16384 [c1] -> WindowUpdateFrame(stream_id=1, flags=[]): window_increment=16384 [c1] -> WindowUpdateFrame(stream_id=1, flags=[]): window_increment=16384 [c1] -> WindowUpdateFrame(stream_id=1, flags=[]): window_increment=16384 [c1] -> WindowUpdateFrame(stream_id=1, flags=[]): window_increment=16384 [c1] -> WindowUpdateFrame(stream_id=1, flags=[]): window_increment=16384 [c1] -> WindowUpdateFrame(stream_id=1, flags=[]): window_increment=16384 [c1] -> WindowUpdateFrame(stream_id=1, flags=[]): window_increment=16384 [c1] -> WindowUpdateFrame(stream_id=1, flags=[]): window_increment=16384 [c1] -> WindowUpdateFrame(stream_id=1, flags=[]): window_increment=16384 [c1] -> WindowUpdateFrame(stream_id=1, flags=[]): window_increment=16384 [c1] -> WindowUpdateFrame(stream_id=1, flags=[]): window_increment=16384 [c1] -> WindowUpdateFrame(stream_id=1, flags=[]): window_increment=16384 [c1] [mono 19538.931150] conn1: A#2 on stream 1; granted 294912 extra bytes of stream window (j=18), then stalling [c1] [mono 19538.931183] ZT event 'a2' [c1] <- DataFrame(stream_id=1, flags=[]): [c1] -> WindowUpdateFrame(stream_id=0, flags=[]): window_increment=16384 [c1] <- DataFrame(stream_id=1, flags=[]): [c1] -> WindowUpdateFrame(stream_id=0, flags=[]): window_increment=16384 [c1] <- DataFrame(stream_id=1, flags=[]): [c1] -> WindowUpdateFrame(stream_id=0, flags=[]): window_increment=16384 [c1] <- DataFrame(stream_id=1, flags=[]): [c1] -> WindowUpdateFrame(stream_id=0, flags=[]): window_increment=16282 [c1] <- HeadersFrame(stream_id=3, flags=['END_HEADERS', 'END_STREAM']): exclusive=False, depends_on=0, stream_weight=0, data= [(':method', 'GET'), (':scheme', 'https'), (':authority', '127.0.0.1:19178'), (':path', '/y'), ('user-agent', 'curl/8.22.0'), ('accept', '*/*')] [c1] [mono 19538.931928] conn1: B stream 3 left UNANSWERED (Z2_B_MODE=interim): optional ':status 102' keepalive every Z2_B_TICK102 s (default off) [c1] -> HeadersFrame(stream_id=3, flags=[]): exclusive=False, depends_on=0, stream_weight=0, data= [c1] -> ContinuationFrame(stream_id=3, flags=[]): data= [c1] -> ContinuationFrame(stream_id=3, flags=[]): data= [c1] -> ContinuationFrame(stream_id=3, flags=[]): data= [c1] -> ContinuationFrame(stream_id=3, flags=['END_HEADERS']): data= [c1] [mono 19538.932524] conn1: B PRIME sent: ':status 103' + raw literal name=65070 value=16586 bytes [c1] <- WindowUpdateFrame(stream_id=1, flags=[]): window_increment=10420225 [c1] <- WindowUpdateFrame(stream_id=1, flags=[]): window_increment=10420225 [c1] <- DataFrame(stream_id=1, flags=[]): [c1] -> WindowUpdateFrame(stream_id=0, flags=[]): window_increment=101 [c1] <- WindowUpdateFrame(stream_id=3, flags=[]): window_increment=10420225 [c1] <- WindowUpdateFrame(stream_id=3, flags=[]): window_increment=10420225 [c1] <- SettingsFrame(stream_id=0, flags=['ACK']): settings={} [c1] <- DataFrame(stream_id=1, flags=[]): [c1] -> WindowUpdateFrame(stream_id=0, flags=[]): window_increment=16384 [c1] <- DataFrame(stream_id=1, flags=[]): [c1] -> WindowUpdateFrame(stream_id=0, flags=[]): window_increment=16384 [c1] <- DataFrame(stream_id=1, flags=[]): [c1] -> WindowUpdateFrame(stream_id=0, flags=[]): window_increment=16384 [c1] <- DataFrame(stream_id=1, flags=[]): [c1] -> WindowUpdateFrame(stream_id=0, flags=[]): window_increment=16384 [c1] <- DataFrame(stream_id=1, flags=[]): [c1] -> WindowUpdateFrame(stream_id=0, flags=[]): window_increment=16384 [c1] <- DataFrame(stream_id=1, flags=[]): [c1] -> WindowUpdateFrame(stream_id=0, flags=[]): window_increment=16384 [c1] <- DataFrame(stream_id=1, flags=[]): [c1] -> WindowUpdateFrame(stream_id=0, flags=[]): window_increment=16384 [c1] <- DataFrame(stream_id=1, flags=[]): [c1] -> WindowUpdateFrame(stream_id=0, flags=[]): window_increment=16384 [c1] <- DataFrame(stream_id=1, flags=[]): [c1] -> WindowUpdateFrame(stream_id=0, flags=[]): window_increment=16384 [c1] <- DataFrame(stream_id=1, flags=[]): [c1] -> WindowUpdateFrame(stream_id=0, flags=[]): window_increment=16384 [c1] <- DataFrame(stream_id=1, flags=[]): [c1] -> WindowUpdateFrame(stream_id=0, flags=[]): window_increment=16384 [c1] <- DataFrame(stream_id=1, flags=[]): [c1] -> WindowUpdateFrame(stream_id=0, flags=[]): window_increment=16384 [c1] <- DataFrame(stream_id=1, flags=[]): [c1] -> WindowUpdateFrame(stream_id=0, flags=[]): window_increment=16384 [c1] <- DataFrame(stream_id=1, flags=[]): [c1] -> WindowUpdateFrame(stream_id=0, flags=[]): window_increment=16384 [c1] <- DataFrame(stream_id=1, flags=[]): [c1] -> WindowUpdateFrame(stream_id=0, flags=[]): window_increment=16384 [c1] <- DataFrame(stream_id=1, flags=[]): [c1] -> WindowUpdateFrame(stream_id=0, flags=[]): window_increment=16384 [c1] <- DataFrame(stream_id=1, flags=[]): [c1] -> WindowUpdateFrame(stream_id=0, flags=[]): window_increment=16384 [c1] <- DataFrame(stream_id=1, flags=[]): [c1] -> WindowUpdateFrame(stream_id=0, flags=[]): window_increment=16384 [c1] -> SettingsFrame(stream_id=0, flags=[]): settings={4: 0} [c1] [mono 19539.338674] conn1: SETTINGS INITIAL_WINDOW_SIZE=0 (so S' opens flow-blocked with its sendbuf full) [c1] [mono 19539.580963] gate CLOSED: accept paused (ack=True), 17 dummy connections parked, ENGAGED=True [c1] -> RstStreamFrame(stream_id=1, flags=[]): error_code=7 [c1] [mono 19539.581044] conn1: A#2 stalled at 360447 body bytes -> trigger refused [c1] <- SettingsFrame(stream_id=0, flags=['ACK']): settings={} [c1] <- HeadersFrame(stream_id=5, flags=['END_HEADERS']): exclusive=False, depends_on=0, stream_weight=0, data= [(':method', 'n'), (':scheme', 'https'), (':path', 'the description above, here are some planned future release')] [c1] [mono 19539.581235] *** RESURRECTED stream 5 on conn1: :method='n' :path='the description above, here are some planned future release' (file offset 425882) — B is on this same connection: True [c1] -> PingFrame(stream_id=0, flags=[]): opaque_data=b'PINPING\x00' [c1] [mono 19539.631526] *** PIN: NST(32848 zero bytes) sent to occupy S1+S2 while A#3's SYN is being dropped [c1] [mono 19539.881695] gate OPEN: accept resumed (dummies closed; the client's pending SYN retransmit will now be accepted) [c1] [mono 19539.881741] ZT event 'res' [c1] <- PingFrame(stream_id=0, flags=['ACK']): opaque_data=b'PINPING\x00' [c2] preface ok [c2] -> SettingsFrame(stream_id=0, flags=[]): settings={3: 100, 4: 16777216} [c2] -> WindowUpdateFrame(stream_id=0, flags=[]): window_increment=1073741824 [c2] <- SettingsFrame(stream_id=0, flags=[]): settings={3: 100, 4: 65536, 2: 0} [c2] -> SettingsFrame(stream_id=0, flags=['ACK']): settings={} [c2] <- WindowUpdateFrame(stream_id=0, flags=[]): window_increment=1048510465 [c2] <- HeadersFrame(stream_id=1, flags=['END_HEADERS']): exclusive=False, depends_on=0, stream_weight=0, data= [(':method', 'PUT'), (':scheme', 'https'), (':authority', '127.0.0.1:19178'), (':path', '/x'), ('user-agent', 'curl/8.22.0'), ('accept', '*/*'), ('content-length', '586035')] [c2] [mono 19540.648648] conn2: A#3 stream 1 (PUT /x) — accepting in full [c2] -> WindowUpdateFrame(stream_id=1, flags=[]): window_increment=16777216 [c2] <- DataFrame(stream_id=1, flags=[]): [c2] -> WindowUpdateFrame(stream_id=0, flags=[]): window_increment=16384 [c2] <- DataFrame(stream_id=1, flags=[]): [c2] -> WindowUpdateFrame(stream_id=0, flags=[]): window_increment=16384 [c2] <- DataFrame(stream_id=1, flags=[]): [c2] -> WindowUpdateFrame(stream_id=0, flags=[]): window_increment=16384 [c2] <- DataFrame(stream_id=1, flags=[]): [c2] -> WindowUpdateFrame(stream_id=0, flags=[]): window_increment=16282 [c2] <- WindowUpdateFrame(stream_id=1, flags=[]): window_increment=10420225 [c2] <- WindowUpdateFrame(stream_id=1, flags=[]): window_increment=10420225 [c2] <- DataFrame(stream_id=1, flags=[]): [c2] -> WindowUpdateFrame(stream_id=0, flags=[]): window_increment=101 [c2] <- SettingsFrame(stream_id=0, flags=['ACK']): settings={} [c2] <- DataFrame(stream_id=1, flags=[]): [c2] -> WindowUpdateFrame(stream_id=0, flags=[]): window_increment=16384 [c2] <- DataFrame(stream_id=1, flags=[]): [c2] -> WindowUpdateFrame(stream_id=0, flags=[]): window_increment=16384 [c2] <- DataFrame(stream_id=1, flags=[]): [c2] -> WindowUpdateFrame(stream_id=0, flags=[]): window_increment=16384 [c2] <- DataFrame(stream_id=1, flags=[]): [c2] -> WindowUpdateFrame(stream_id=0, flags=[]): window_increment=16283 [c2] <- DataFrame(stream_id=1, flags=[]): [c2] -> WindowUpdateFrame(stream_id=0, flags=[]): window_increment=16384 [c2] <- DataFrame(stream_id=1, flags=[]): [c2] -> WindowUpdateFrame(stream_id=0, flags=[]): window_increment=16384 [c2] <- DataFrame(stream_id=1, flags=[]): [c2] -> WindowUpdateFrame(stream_id=0, flags=[]): window_increment=16384 [c2] <- DataFrame(stream_id=1, flags=[]): [c2] -> WindowUpdateFrame(stream_id=0, flags=[]): window_increment=16384 [c2] <- DataFrame(stream_id=1, flags=[]): [c2] -> WindowUpdateFrame(stream_id=0, flags=[]): window_increment=16384 [c2] <- DataFrame(stream_id=1, flags=[]): [c2] -> WindowUpdateFrame(stream_id=0, flags=[]): window_increment=16384 [c2] <- DataFrame(stream_id=1, flags=[]): [c2] -> WindowUpdateFrame(stream_id=0, flags=[]): window_increment=16384 [c2] <- DataFrame(stream_id=1, flags=[]): [c2] -> WindowUpdateFrame(stream_id=0, flags=[]): window_increment=16384 [c2] <- DataFrame(stream_id=1, flags=[]): [c2] -> WindowUpdateFrame(stream_id=0, flags=[]): window_increment=16384 [c2] <- DataFrame(stream_id=1, flags=[]): [c2] -> WindowUpdateFrame(stream_id=0, flags=[]): window_increment=16384 [c2] <- DataFrame(stream_id=1, flags=[]): [c2] -> WindowUpdateFrame(stream_id=0, flags=[]): window_increment=16384 [c2] <- DataFrame(stream_id=1, flags=[]): [c2] -> WindowUpdateFrame(stream_id=0, flags=[]): window_increment=16384 [c2] <- DataFrame(stream_id=1, flags=[]): [c2] -> WindowUpdateFrame(stream_id=0, flags=[]): window_increment=16384 [c2] <- DataFrame(stream_id=1, flags=[]): [c2] -> WindowUpdateFrame(stream_id=0, flags=[]): window_increment=16384 [c2] <- DataFrame(stream_id=1, flags=[]): [c2] -> WindowUpdateFrame(stream_id=0, flags=[]): window_increment=16384 [c2] <- DataFrame(stream_id=1, flags=[]): [c2] -> WindowUpdateFrame(stream_id=0, flags=[]): window_increment=16384 [c2] <- DataFrame(stream_id=1, flags=[]): [c2] -> WindowUpdateFrame(stream_id=0, flags=[]): window_increment=16384 [c2] <- DataFrame(stream_id=1, flags=[]): [c2] -> WindowUpdateFrame(stream_id=0, flags=[]): window_increment=16384 [c2] <- DataFrame(stream_id=1, flags=[]): [c2] -> WindowUpdateFrame(stream_id=0, flags=[]): window_increment=16384 [c2] <- DataFrame(stream_id=1, flags=[]): [c2] -> WindowUpdateFrame(stream_id=0, flags=[]): window_increment=16384 [c2] <- DataFrame(stream_id=1, flags=[]): [c2] -> WindowUpdateFrame(stream_id=0, flags=[]): window_increment=16384 [c2] <- DataFrame(stream_id=1, flags=[]): [c2] -> WindowUpdateFrame(stream_id=0, flags=[]): window_increment=16384 [c2] <- DataFrame(stream_id=1, flags=[]): [c2] -> WindowUpdateFrame(stream_id=0, flags=[]): window_increment=16384 [c2] <- DataFrame(stream_id=1, flags=[]): [c2] -> WindowUpdateFrame(stream_id=0, flags=[]): window_increment=16384 [c2] <- DataFrame(stream_id=1, flags=[]): [c2] -> WindowUpdateFrame(stream_id=0, flags=[]): window_increment=16384 [c2] <- DataFrame(stream_id=1, flags=[]): [c2] -> WindowUpdateFrame(stream_id=0, flags=[]): window_increment=16384 [c2] <- DataFrame(stream_id=1, flags=[]): [c2] -> WindowUpdateFrame(stream_id=0, flags=[]): window_increment=16384 [c2] <- DataFrame(stream_id=1, flags=['END_STREAM']): [c2] -> WindowUpdateFrame(stream_id=0, flags=[]): window_increment=12697 [c2] -> HeadersFrame(stream_id=1, flags=['END_HEADERS']): exclusive=False, depends_on=0, stream_weight=0, data= [c2] -> DataFrame(stream_id=1, flags=[]): [c2] [mono 19540.652179] conn2: A#3 upload complete (586035 bytes) -> HEADERS 200 + 1 body byte; holding the rest until the latch [c1] -> HeadersFrame(stream_id=5, flags=['END_HEADERS']): exclusive=False, depends_on=0, stream_weight=0, data= [c1] [mono 19540.969331] *** LATCH(s100): ':status 100' on S'=5 while E_A is alive and in A#3's body phase [c1] [mono 19540.969367] ZT event 'latch' [c2] -> DataFrame(stream_id=1, flags=['END_STREAM']): [c2] [mono 19541.175536] conn2: A#3 body completed 0.21s after the latch -> the tool will now free E_A; lingering [c1] -> WindowUpdateFrame(stream_id=5, flags=[]): window_increment=1 [c1] [mono 19542.379018] *** REFILL: NST(3368 bytes) sent on conn1 1.20s after A#3 was answered, + WINDOW_UPDATE(S',1) as a probe (watch ud.magic/ud.mid in the client log) [c1] [mono 19542.379054] ZT event 'refill' [c1] <- DataFrame(stream_id=5, flags=[]): [c1] -> WindowUpdateFrame(stream_id=0, flags=[]): window_increment=1 [c1] [mono 19542.379179] *** DATA on resurrected stream 5: len=1 (total 1) first16=b'-' [c1] [mono 19542.681200] ZT event 'refill+300' [c1] [mono 19542.681294] ZT ticket: NewSessionTicket len=2840 (malloc 2840 -> chunk 0xb20; frees the previous ticket buffer first) [c1] [mono 19542.681307] ZT fake2: NST#2 2840 bytes (magic+mid=1) [c1] [mono 19542.882673] ZT event 'refill+500' [c1] [mono 19542.887589] ZT spliceG: send1=[7 tiny][2KB sort][1xx-A raw server v1=34660] (36903 B); send2=[1000 status drains][1xx-B huffman server v=[3000, 2592]][splice S'=5][8 x W1 down=0x18300 over=0x182f0] (22747 B) [c1] -> WindowUpdateFrame(stream_id=0, flags=[]): window_increment=115439 [c1] -> WindowUpdateFrame(stream_id=5, flags=[]): window_increment=115439 [c1] <- DataFrame(stream_id=5, flags=[]): [c1] <- DataFrame(stream_id=5, flags=[]): [c1] [mono 19546.196120] Z9: pulled 32697 bytes of DATA on S'=5 (wanted 115439) in 3.006s; 0 other frames [c1] [mono 19546.196251] Z9: leaked 16314 bytes: 652c0a7468656e2070617374652074686973206465736372697074696f6e20696e746f207468652043564520496420726571756573742e0a0a232323206076756c6e2e706d600a0a546865206e65772069737375652073686f756c6420626520 [c1] [mono 19546.197914] Z9: no main_arena pointer found in 16314 bytes (libcurl_base=None) [c1] [mono 19564.943351] conn1 loop end closed=False resurrected=5 data_on_resurrected={5: 1} got=360447 granted=294912 rst_sent=True [c2] [mono 19565.244529] conn2 end closed=True