[
https://issues.apache.org/jira/browse/TS-4902?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15535992#comment-15535992
]
Susan Hinrichs commented on TS-4902:
------------------------------------
Saw another crash in this area while testing fix for TS-4813.
{code}
#0 0x0000003231032625 in raise () from /lib64/libc.so.6
#1 0x0000003231033d8d in abort () from /lib64/libc.so.6
#2 0x00002b49eb4b9d8d in ink_abort (message_format=0x2b49eb4ccbdc "%s:%d:
failed assertion `%s`") at ink_error.cc:79
#3 0x00002b49eb4b7586 in _ink_assert (expression=0x805adf
"client_streams_in_count > 0", file=0x805688 "Http2ConnectionState.cc",
line=1005) at ink_assert.cc:37
#4 0x000000000065adeb in Http2ConnectionState::delete_stream
(this=0x2b4a34a5c190, stream=0x2aac54a69c40) at Http2ConnectionState.cc:1005
#5 0x000000000065be03 in Http2ConnectionState::send_data_frames
(this=0x2b4a34a5c190, stream=0x2aac54a69c40)
at Http2ConnectionState.cc:1191
#6 0x000000000064b57c in Http2Stream::do_io_close (this=0x2aac54a69c40) at
Http2Stream.cc:330
#7 0x00000000005edb61 in HttpSM::tunnel_handler_ua (this=0x2b4a442dcb40,
event=103, c=0x2b4a442ddeb8) at HttpSM.cc:3320
#8 0x00000000006439d5 in HttpTunnel::consumer_handler (this=0x2b4a442dde70,
event=103, c=0x2b4a442ddeb8) at HttpTunnel.cc:1392
#9 0x00000000006442d1 in HttpTunnel::main_handler (this=0x2b4a442dde70,
event=103, data=0x2aac54a69fd0) at HttpTunnel.cc:1647
#10 0x00000000005145dc in Continuation::handleEvent (this=0x2b4a442dde70,
event=103, data=0x2aac54a69fd0)
at ../iocore/eventsystem/I_Continuation.h:153
#11 0x000000000064a8ea in Http2Stream::main_event_handler (this=0x2aac54a69c40,
event=103, edata=0x2b4a07168100) at Http2Stream.cc:88
#12 0x00000000005145dc in Continuation::handleEvent (this=0x2aac54a69c40,
event=103, data=0x2b4a07168100)
at ../iocore/eventsystem/I_Continuation.h:153
#13 0x00000000007bc9be in EThread::process_event (this=0x2b49ed3ee010,
e=0x2b4a07168100, calling_code=103) at UnixEThread.cc:143
#14 0x00000000007bcc2d in EThread::execute (this=0x2b49ed3ee010) at
UnixEThread.cc:197
#15 0x00000000007bbfd2 in spawn_thread_internal (a=0x15efb60) at Thread.cc:84
#16 0x00002b49ec20caa1 in start_thread () from /lib64/libpthread.so.0
#17 0x00000032310e893d in clone () from /lib64/libc.so.6
{code}
Digging in at frame 4, stream_list.head is null, but stream->link.prev is
non-NULL. stream->link.prev->link.next == stream. But they seem to have been
lost from the Http2ConnectionState.stream_list
> Http2ConnectionState::stream_list gets in bad state
> ---------------------------------------------------
>
> Key: TS-4902
> URL: https://issues.apache.org/jira/browse/TS-4902
> Project: Traffic Server
> Issue Type: Bug
> Components: HTTP/2
> Reporter: Susan Hinrichs
>
> Saw this in one of my runs while debugging TS-4900 and TS-4813. It might
> have been due to my attempted fix, but I don't think so.
> I left current master running in production for an hour. When I returned,
> CPU utilization had jumped from 70% to 400%. perf top showed that the
> majority of time was being spent in Http2ConnectionState::restart_streams.
> Connected with debugger and two threads were spinning in that method. In
> each case this->stream_list.head->link.next ==
> this->stream_list.head->link.prev and this->thread_list.head->link.next !=
> NULL.
> I assume that was are missing some locking and the stream_list is being
> manipulated by two threads in parallel.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)