bneradt opened a new issue, #11114:
URL: https://github.com/apache/trafficserver/issues/11114
Docs is running HTTP/3. We see this crash with some regularity on the box
(maybe once an hour or so):
```gdb
(gdb) bt
#0 __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
#1 0x00007ffff66ba859 in __GI_abort () at abort.c:79
#2 0x000055555611e6e2 in ink_abort (message_format=0x555556b74840 "%s:%d:
failed assertion `%s`") at
/home/bneradt/src/trafficserver_10/src/tscore/ink_error.cc:99
#3 0x0000555556118556 in _ink_assert (expression=0x555556be3e60
"default_handler != (HttpSMHandler) nullptr", file=0x555556bdff80
"/home/bneradt/src/trafficserver_10/src/proxy/http/HttpSM.cc", line=2620) at
/home/bneradt/src/trafficserver_10/src/tscore/ink_assert.cc:35
#4 0x0000555556208317 in HttpSM::main_handler (this=0x626000057100,
event=105, data=0x0) at
/home/bneradt/src/trafficserver_10/src/proxy/http/HttpSM.cc:2620
#5 0x00005555560b6417 in Continuation::handleEvent (this=0x626000057100,
event=105, data=0x0) at
/home/bneradt/src/trafficserver_10/include/iocore/eventsystem/Continuation.h:228
#6 0x0000555556aa2d35 in HQTransaction::_signal_event (this=0x62600004b100,
event=105) at
/home/bneradt/src/trafficserver_10/src/proxy/http3/Http3Transaction.cc:353
#7 0x0000555556aa5e16 in Http3Transaction::state_stream_open
(this=0x62600004b100, event=105, edata=0x0) at
/home/bneradt/src/trafficserver_10/src/proxy/http3/Http3Transaction.cc:506
#8 0x00005555560b6417 in Continuation::handleEvent (this=0x62600004b100,
event=105, data=0x0) at
/home/bneradt/src/trafficserver_10/include/iocore/eventsystem/Continuation.h:228
#9 0x0000555556a9cdc7 in HQSession::main_event_handler
(this=0x619000143c80, event=105, edata=0x61b00002a2e0) at
/home/bneradt/src/trafficserver_10/src/proxy/http3/Http3Session.cc:167
#10 0x00005555560b6417 in Continuation::handleEvent (this=0x619000143c80,
event=105, data=0x61b00002a2e0) at
/home/bneradt/src/trafficserver_10/include/iocore/eventsystem/Continuation.h:228
#11 0x000055555692cfbf in QUICNetVConnection::_propagate_event
(this=0x61b00002a080, event=105) at
/home/bneradt/src/trafficserver_10/src/iocore/net/QUICNetVConnection.cc:264
#12 0x000055555692c25d in QUICNetVConnection::state_established
(this=0x61b00002a080, event=105, data=0x60900014eb20) at
/home/bneradt/src/trafficserver_10/src/iocore/net/QUICNetVConnection.cc:211
#13 0x00005555560b6417 in Continuation::handleEvent (this=0x61b00002a080,
event=105, data=0x60900014eb20) at
/home/bneradt/src/trafficserver_10/include/iocore/eventsystem/Continuation.h:228
#14 0x0000555556a28851 in EThread::process_event (this=0x7ffff031b800,
e=0x60900014eb20, calling_code=105) at
/home/bneradt/src/trafficserver_10/src/iocore/eventsystem/UnixEThread.cc:163
#15 0x0000555556a28da5 in EThread::process_queue (this=0x7ffff031b800,
NegativeQueue=0x7fffefbbd090, ev_count=0x7fffefbbd000, nq_count=0x7fffefbbcff0)
at /home/bneradt/src/trafficserver_10/src/iocore/eventsystem/UnixEThread.cc:198
#16 0x0000555556a29559 in EThread::execute_regular (this=0x7ffff031b800) at
/home/bneradt/src/trafficserver_10/src/iocore/eventsystem/UnixEThread.cc:277
#17 0x0000555556a29dcb in EThread::execute (this=0x7ffff031b800) at
/home/bneradt/src/trafficserver_10/src/iocore/eventsystem/UnixEThread.cc:350
#18 0x0000555556a26bfe in spawn_thread_internal (a=0x60600002ba60) at
/home/bneradt/src/trafficserver_10/src/iocore/eventsystem/Thread.cc:68
#19 0x00007ffff6894609 in start_thread (arg=<optimized out>) at
pthread_create.c:477
#20 0x00007ffff67b7133 in clone () at
../sysdeps/unix/sysv/linux/x86_64/clone.S:95
(gdb) f 4
#4 0x0000555556208317 in HttpSM::main_handler (this=0x626000057100,
event=105, data=0x0) at
/home/bneradt/src/trafficserver_10/src/proxy/http/HttpSM.cc:2620
2620 ink_assert(default_handler != (HttpSMHandler) nullptr);
(gdb) l
2615 jump_point = (static_cast<VIO *>(data) == vc_entry->read_vio) ?
vc_entry->vc_read_handler : vc_entry->vc_write_handler;
2616 ink_assert(jump_point != (HttpSMHandler) nullptr);
2617 ink_assert(vc_entry->vc != (VConnection *)nullptr);
2618 (this->*jump_point)(event, data);
2619 } else {
2620 ink_assert(default_handler != (HttpSMHandler) nullptr);
2621 (this->*default_handler)(event, data);
2622 }
2623
2624 // The sub-handler signals when it is time for the state
(gdb) up
#5 0x00005555560b6417 in Continuation::handleEvent (this=0x626000057100,
event=105, data=0x0) at
/home/bneradt/src/trafficserver_10/include/iocore/eventsystem/Continuation.h:228
228 return (this->*handler)(event, data);
(gdb) up
#6 0x0000555556aa2d35 in HQTransaction::_signal_event (this=0x62600004b100,
event=105) at
/home/bneradt/src/trafficserver_10/src/proxy/http3/Http3Transaction.cc:353
353 this->_write_vio.cont->handleEvent(event);
(gdb) l
348 void
349 HQTransaction::_signal_event(int event)
350 {
351 if (this->_write_vio.cont) {
352 SCOPED_MUTEX_LOCK(lock, this->_write_vio.mutex, this_ethread());
353 this->_write_vio.cont->handleEvent(event);
354 }
355 if (this->_read_vio.cont && this->_read_vio.cont !=
this->_write_vio.cont) {
356 SCOPED_MUTEX_LOCK(lock, this->_read_vio.mutex, this_ethread());
357 this->_read_vio.cont->handleEvent(event);
(gdb) p *this
$3 = {
<ProxyTransaction> = {
<VConnection> = {
<Continuation> = {
<force_VFPT_to_top> = {
_vptr.force_VFPT_to_top = 0x5555572dc358 <vtable for
Http3Transaction+16>
},
members of Continuation:
handler = &virtual table offset 408,
handler_name = 0x55555703e940 "&Http3Transaction::state_stream_open",
mutex = {
m_ptr = 0x60c0000af6c0
},
link = {
<SLink<Continuation>> = {
next = 0x0
},
members of Link<Continuation>:
prev = 0x0
},
control_flags = {
raw_flags = 0
},
thread_affinity = 0x0
},
members of VConnection:
lerrno = 0
},
members of ProxyTransaction:
upstream_outbound_options = {
transport_type = 0,
outbound = {
_ip4 = std::optional<swoc::_1_5_9::IP4Addr> [no contained value],
_ip6 = std::optional<swoc::_1_5_9::IP6Addr> [no contained value]
},
outbound_port = 0,
f_outbound_transparent = false,
f_transparent_passthrough = false,
host_res_preference = {
_M_elems = {HOST_RES_PREFER_IPV4, HOST_RES_PREFER_IPV6,
HOST_RES_PREFER_NONE}
},
session_protocol_preference = {
m_bits = 0
}
},
_proxy_ssn = 0x619000143c80,
_sm = 0x626000057100,
_reader = 0x62600004b1c8
},
members of HQTransaction:
_thread = 0x7ffff031b800,
_read_vio_buf = {
size_index = 5,
water_mark = 0,
_writer = {
m_ptr = 0x0
},
readers = {{
accessor = 0x0,
mbuf = 0x62600004b1b0,
block = {
m_ptr = 0x0
},
start_offset = 0,
size_limit = 9223372036854775807
}, {
accessor = 0x0,
mbuf = 0x0,
block = {
m_ptr = 0x0
},
start_offset = 0,
size_limit = 9223372036854775807
}, {
accessor = 0x0,
mbuf = 0x0,
block = {
m_ptr = 0x0
},
start_offset = 0,
size_limit = 9223372036854775807
}, {
accessor = 0x0,
mbuf = 0x0,
block = {
m_ptr = 0x0
},
start_offset = 0,
size_limit = 9223372036854775807
}, {
accessor = 0x0,
mbuf = 0x0,
block = {
m_ptr = 0x0
},
start_offset = 0,
size_limit = 9223372036854775807
}},
_location = 0x0
},
_info = @0x613000076250,
_sent_bytes = 0,
_read_vio = {
cont = 0x626000057100,
nbytes = 9223372036854775807,
ndone = 0,
op = 1,
_disabled = false,
buffer = {
name = 0x0,
mbuf = 0x62600004b1b0,
entry = 0x0
},
vc_server = 0x62600004b100,
mutex = {
m_ptr = 0x60c0000af6c0
}
},
_write_vio = {
cont = 0x626000057100,
nbytes = 0,
ndone = 0,
op = 2,
_disabled = false,
buffer = {
name = 0x0,
mbuf = 0x0,
entry = 0x0
},
vc_server = 0x62600004b100,
mutex = {
m_ptr = 0x60c0000af6c0
}
},
_read_ready_event = 0x0,
_read_complete_event = 0x0,
_write_ready_event = 0x0,
_write_complete_event = 0x0,
_transaction_done = false
}
```
--
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.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]