bdgranger commented on issue #7581:
URL: https://github.com/apache/trafficserver/issues/7581#issuecomment-800538431
An example of the Http2 stream_release crash:
```c++
(gdb) bt
#0 0x0000000000718022 in Mutex_trylock (t=0x2b9c77445010, m=<optimized out>)
at /usr/src/debug/trafficserver-8.1.2/iocore/eventsystem/I_Lock.h:287
#1 MutexTryLock (t=0x2b9c77445010, am=..., this=0x2b9c7df4db60)
at /usr/src/debug/trafficserver-8.1.2/iocore/eventsystem/I_Lock.h:555
#2 _close_vc (total_idle_count=<synthetic pointer>,
total_idle_time=<synthetic pointer>, closed=<synthetic pointer>,
handle_event=<synthetic pointer>, now=1615767053666485882, vc=<optimized
out>, this=0x2b9c77448cf0) at UnixNet.cc:648
#3 manage_keep_alive_queue (this=0x2b9c77448cf0) at UnixNet.cc:626
#4 NetHandler::add_to_keep_alive_queue (this=0x2b9c77448cf0, vc=<optimized
out>) at UnixNet.cc:698
#5 0x00000000005854c2 in Http2ConnectionState::release_stream
(this=this@entry=0x2b9ccb364f78,
stream=stream@entry=0x2ba7d54626c0) at Http2ConnectionState.cc:1403
#6 0x00000000005924df in Http2Stream::destroy (this=0x2ba7d54626c0) at
Http2Stream.cc:784
#7 0x000000000058ea8f in Http2Stream::terminate_if_possible
(this=this@entry=0x2ba7d54626c0) at Http2Stream.cc:414
#8 0x0000000000591a37 in Http2Stream::main_event_handler
(this=0x2ba7d54626c0, event=<optimized out>, edata=<optimized out>)
at Http2Stream.cc:149
#9 0x0000000000760912 in handleEvent (data=0x2ba7d9fdd340, event=103,
this=<optimized out>) at I_Continuation.h:160
#10 EThread::process_event (this=this@entry=0x2b9c77445010,
e=e@entry=0x2ba7d9fdd340, calling_code=103) at UnixEThread.cc:131
#11 0x00000000007611de in EThread::process_queue
(this=this@entry=0x2b9c77445010,
NegativeQueue=NegativeQueue@entry=0x2b9c7df4de70,
ev_count=ev_count@entry=0x2b9c7df4de6c,
nq_count=nq_count@entry=0x2b9c7df4de68) at UnixEThread.cc:170
#12 0x00000000007617c8 in EThread::execute_regular (this=0x2b9c77445010) at
UnixEThread.cc:230
#13 0x000000000076030a in spawn_thread_internal (a=0x187b5d0) at Thread.cc:85
#14 0x00002b9c7331fe65 in start_thread () from /lib64/libpthread.so.0
#15 0x00002b9c7405588d in clone () from /lib64/libc.so.6
```
full bt:
```c++
(gdb) bt full
#0 0x0000000000718022 in Mutex_trylock (t=0x2b9c77445010, m=<optimized out>)
at /usr/src/debug/trafficserver-8.1.2/iocore/eventsystem/I_Lock.h:287
No locals.
#1 MutexTryLock (t=0x2b9c77445010, am=..., this=0x2b9c7df4db60)
at /usr/src/debug/trafficserver-8.1.2/iocore/eventsystem/I_Lock.h:555
No locals.
#2 _close_vc (total_idle_count=<synthetic pointer>,
total_idle_time=<synthetic pointer>, closed=<synthetic pointer>,
handle_event=<synthetic pointer>, now=1615767053666485882, vc=<optimized
out>, this=0x2b9c77448cf0) at UnixNet.cc:648
lock = {m = {m_ptr = 0x0}, lock_acquired = true}
diff = <optimized out>
#3 manage_keep_alive_queue (this=0x2b9c77448cf0) at UnixNet.cc:626
vc = 0x2b9fee0b4000
total_connections_in = <optimized out>
vc_next = 0x0
closed = 0
total_idle_time = 0
handle_event = 0
total_idle_count = 0
#4 NetHandler::add_to_keep_alive_queue (this=0x2b9c77448cf0, vc=<optimized
out>) at UnixNet.cc:698
__FUNCTION__ = "add_to_keep_alive_queue"
#5 0x00000000005854c2 in Http2ConnectionState::release_stream
(this=this@entry=0x2b9ccb364f78,
stream=stream@entry=0x2ba7d54626c0) at Http2ConnectionState.cc:1403
vc = <optimized out>
__FUNCTION__ = "release_stream"
lock = {m = {m_ptr = 0x2ba2b7624950}, locked_p = true}
#6 0x00000000005924df in Http2Stream::destroy (this=0x2ba7d54626c0) at
Http2Stream.cc:784
h2_proxy_ssn = 0x2b9ccb364cb0
lock = {m = {m_ptr = 0x2ba2b7624950}, locked_p = true}
__FUNCTION__ = "destroy"
lock = {m = {m_ptr = 0x2b9fed9c5670}, locked_p = true}
cid = 23156238
#7 0x000000000058ea8f in Http2Stream::terminate_if_possible
(this=this@entry=0x2ba7d54626c0) at Http2Stream.cc:414
h2_proxy_ssn = 0x2b9ccb364cb0
lock = {m = {m_ptr = 0x2ba2b7624950}, locked_p = true}
__FUNCTION__ = "terminate_if_possible"
#8 0x0000000000591a37 in Http2Stream::main_event_handler
(this=0x2ba7d54626c0, event=<optimized out>, edata=<optimized out>)
at Http2Stream.cc:149
lock = {m = {m_ptr = 0x2b9fed9c5670}, locked_p = true}
__FUNCTION__ = "main_event_handler"
e = <optimized out>
#9 0x0000000000760912 in handleEvent (data=0x2ba7d9fdd340, event=103,
this=<optimized out>) at I_Continuation.h:160
No locals.
#10 EThread::process_event (this=this@entry=0x2b9c77445010,
e=e@entry=0x2ba7d9fdd340, calling_code=103) at UnixEThread.cc:131
c_temp = <optimized out>
lock = {m = {m_ptr = 0x2b9fed9c5670}, lock_acquired = true}
#11 0x00000000007611de in EThread::process_queue
(this=this@entry=0x2b9c77445010,
NegativeQueue=NegativeQueue@entry=0x2b9c7df4de70,
ev_count=ev_count@entry=0x2b9c7df4de6c,
nq_count=nq_count@entry=0x2b9c7df4de68) at UnixEThread.cc:170
e = 0x2ba7d9fdd340
#12 0x00000000007617c8 in EThread::execute_regular (this=0x2b9c77445010) at
UnixEThread.cc:230
done_one = <optimized out>
sleep_time = <optimized out>
e = <optimized out>
NegativeQueue = {<DLL<Event, Event::Link_link>> = {head = 0x0}, tail
= 0x0}
next_time = <optimized out>
delta = <optimized out>
prev_metric = 0x2b9c7754bf30
nq_count = 184
ev_count = 185
METRIC_INIT = {_loop_time = {_start = 0, _min = 9223372036854775807,
_max = 0}, _events = {_min = 2147483647, _max = 0,
_total = 0}, _count = 0, _wait = 0}
#13 0x000000000076030a in spawn_thread_internal (a=0x187b5d0) at Thread.cc:85
p = 0x187b5d0
#14 0x00002b9c7331fe65 in start_thread () from /lib64/libpthread.so.0
No symbol table info available.
#15 0x00002b9c7405588d in clone () from /lib64/libc.so.6
No symbol table info available.
```
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]