h2srv listening on 127.0.0.1:19224 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:19224'), (':path', '/x'), ('user-agent', 'curl/8.23.0-DEV'), ('accept', '*/*'), ('content-length', '586035')] [c0] -> WindowUpdateFrame(stream_id=1, flags=[]): window_increment=1073741824 [c0] [mono 23601.075031] 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:19224'), (':path', '/y'), ('user-agent', 'curl/8.23.0-DEV'), ('accept', '*/*')] [c0] [mono 23601.075386] 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 23605.080741] conn0: learned 586035 body bytes, L=106 -> 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 23605.081107] conn0 post-RST RX GoAwayFrame stream=0 [c0] [mono 23605.081136] 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 23605.222581] conn1: TLS was held 0.105s waiting for conn0 teardown (c0_closed seen: True) [c1] [mono 23605.222645] conn1: qualifying grid points j=[1, 11, 18]; Z2_JMOD prefs [2] -> chose 18 [c1] [mono 23605.222653] conn1: AIM j=18 -> leftover will start at body offset 425878: b'ed on the description above, here are some planned future re' (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:19224'), (':path', '/x'), ('user-agent', 'curl/8.23.0-DEV'), ('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 23605.223842] conn1: A#2 on stream 1; granted 294912 extra bytes of stream window (j=18), then stalling [c1] [mono 23605.223874] 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=16278 [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:19224'), (':path', '/y'), ('user-agent', 'curl/8.23.0-DEV'), ('accept', '*/*')] [c1] [mono 23605.224645] 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 23605.225174] 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=105 [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 23605.631254] conn1: SETTINGS INITIAL_WINDOW_SIZE=0 (so S' opens flow-blocked with its sendbuf full) [c1] [mono 23605.873847] gate CLOSED: accept paused (ack=True), 17 dummy connections parked, ENGAGED=True [c1] -> RstStreamFrame(stream_id=1, flags=[]): error_code=7 [c1] [mono 23605.873930] conn1: A#2 stalled at 360447 body bytes -> trigger refused [c1] <- SettingsFrame(stream_id=0, flags=['ACK']): settings={} [c1] [mono 23631.236506] conn1 loop end closed=False resurrected=None data_on_resurrected={} got=360447 granted=294912 rst_sent=True