[
https://issues.apache.org/jira/browse/TS-3947?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15486431#comment-15486431
]
Masaori Koshiba commented on TS-3947:
-------------------------------------
What is going on when this failure is happen is below.
1. TS received WINDOW_UPDATE frames and
{{Http2ConnectionState::send_goaway_frame}} is called.
2. GOAWAY frame is written in {{write.vio.buffer}} of SSLVConnection.
3. {{HTTP2_SESSION_EVENT_FINI}} event is sent from
{{Http2ConnectionState::send_goaway_frame}} and {{SSLVConnection::do_io_close}}
is called immediately. So GOAWAY frame which is in {{write.vio.buffer}} is not
sent to client.
Backtrace at {{SSL_shutdown(ssl)}} in {{SSLNetVConnection::do_io_close}}
{noformat}
Breakpoint 1, SSLNetVConnection::do_io_close (this=0x60ae0001cb70, lerrno=-1)
at SSLNetVConnection.cc:837
837 int ret = SSL_shutdown(ssl);
(gdb) bt
#0 SSLNetVConnection::do_io_close (this=0x60ae0001cb70, lerrno=-1) at
SSLNetVConnection.cc:837
#1 0x00000000005c1359 in ProxyClientSession::handle_api_return
(this=0x60b00001e800, event=60000) at ProxyClientSession.cc:185
#2 0x00000000005c0fbd in ProxyClientSession::do_api_callout
(this=0x60b00001e800, id=TS_HTTP_SSN_CLOSE_HOOK) at ProxyClientSession.cc:159
#3 0x0000000000762f47 in Http2ClientSession::destroy (this=0x60b00001e800) at
Http2ClientSession.cc:82
#4 0x0000000000771caa in Http2ConnectionState::release_stream
(this=0x60b00001ea48, stream=0x0) at Http2ConnectionState.cc:994
#5 0x0000000000770066 in Http2ConnectionState::main_event_handler
(this=0x60b00001ea48, event=2252, edata=0x0) at Http2ConnectionState.cc:803
#6 0x0000000000536098 in Continuation::handleEvent (this=0x60b00001ea48,
event=2252, data=0x0) at ../iocore/eventsystem/I_Continuation.h:153
#7 0x00000000007755d7 in Http2ConnectionState::send_goaway_frame
(this=0x60b00001ea48, id=0, ec=HTTP2_ERROR_FLOW_CONTROL_ERROR)
at Http2ConnectionState.cc:1361
#8 0x0000000000770628 in Http2ConnectionState::main_event_handler
(this=0x60b00001ea48, event=2253, edata=0x7fffed0f3610) at
Http2ConnectionState.cc:835
#9 0x0000000000536098 in Continuation::handleEvent (this=0x60b00001ea48,
event=2253, data=0x7fffed0f3610) at ../iocore/eventsystem/I_Continuation.h:153
#10 0x0000000000762adf in send_connection_event (cont=0x60b00001ea48,
event=2253, edata=0x7fffed0f3610) at Http2ClientSession.cc:58
#11 0x0000000000766f9c in Http2ClientSession::do_complete_frame_read
(this=0x60b00001e800) at Http2ClientSession.cc:469
#12 0x00000000007673b6 in Http2ClientSession::state_process_frame_read
(this=0x60b00001e800, event=100, vio=0x60ae0001cc90, inside_frame=false)
at Http2ClientSession.cc:504
#13 0x0000000000765f01 in Http2ClientSession::state_start_frame_read
(this=0x60b00001e800, event=100, edata=0x60ae0001cc90) at
Http2ClientSession.cc:393
#14 0x0000000000764ff3 in Http2ClientSession::main_event_handler
(this=0x60b00001e800, event=100, edata=0x60ae0001cc90) at
Http2ClientSession.cc:299
#15 0x0000000000536098 in Continuation::handleEvent (this=0x60b00001e800,
event=100, data=0x60ae0001cc90) at ../iocore/eventsystem/I_Continuation.h:153
#16 0x0000000000a17c9e in read_signal_and_update (event=100, vc=0x60ae0001cb70)
at UnixNetVConnection.cc:148
#17 0x0000000000a1e576 in UnixNetVConnection::readSignalAndUpdate
(this=0x60ae0001cb70, event=100) at UnixNetVConnection.cc:1030
#18 0x00000000009e419e in SSLNetVConnection::net_read_io (this=0x60ae0001cb70,
nh=0x7ffff0c71490, lthread=0x7ffff0c6d800) at SSLNetVConnection.cc:579
#19 0x0000000000a05e5d in NetHandler::mainNetEvent (this=0x7ffff0c71490,
event=5, e=0x608e00006580) at UnixNet.cc:525
#20 0x0000000000536098 in Continuation::handleEvent (this=0x7ffff0c71490,
event=5, data=0x608e00006580) at ../iocore/eventsystem/I_Continuation.h:153
#21 0x0000000000a62a5f in EThread::process_event (this=0x7ffff0c6d800,
e=0x608e00006580, calling_code=5) at UnixEThread.cc:146
#22 0x0000000000a636ef in EThread::execute (this=0x7ffff0c6d800) at
UnixEThread.cc:273
#23 0x0000000000a612d6 in spawn_thread_internal (a=0x600800015b10) at
Thread.cc:84
#24 0x00007ffff4e64ac8 in ?? () from /lib64/libasan.so.0
#25 0x00007ffff34a5dc5 in start_thread () from /lib64/libpthread.so.0
#26 0x00007ffff27b028d in clone () from /lib64/libc.so.6
{noformat}
> Intermittent HTTP/2 failure with h2spec (6.9.1.)
> ------------------------------------------------
>
> Key: TS-3947
> URL: https://issues.apache.org/jira/browse/TS-3947
> Project: Traffic Server
> Issue Type: Bug
> Components: HTTP/2
> Reporter: Leif Hedstrom
> Assignee: Masaori Koshiba
> Fix For: 7.1.0
>
>
> I see this once in a while (not frequently)
> {code}
> 6.9.1. The Flow Control Window
> ✓ Sends multiple WINDOW_UPDATE frames on a connection increasing the
> flow control window to above 2^31-1
> × Sends multiple WINDOW_UPDATE frames on a stream increasing the flow
> control window to above 2^31-1
> - The endpoint MUST sends a RST_STREAM with the error code of
> FLOW_CONTROL_ERROR code.
> Expected: RST_STREAM frame (ErrorCode: FLOW_CONTROL_ERROR)
> Actual: DATA frame (Length: 257, Flags: 1)
> {code}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)