bneradt opened a new issue, #11115: URL: https://github.com/apache/trafficserver/issues/11115
Seen on docs with HTTP/3 configured:
```gdb
Thread 5 "[ET_NET 2]" received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7fffefa1a700 (LWP 3677270)]
0x0000555556a8be37 in QUICStreamAdapter::stream (this=0x50) at
/home/bneradt/src/trafficserver_10/include/iocore/net/quic/QUICStreamAdapter.h:37
37 return _stream;
(gdb) bt
#0 0x0000555556a8be37 in QUICStreamAdapter::stream (this=0x50) at
/home/bneradt/src/trafficserver_10/include/iocore/net/quic/QUICStreamAdapter.h:37
#1 0x0000555556accfae in QPACK::_on_read_ready (this=0x612000031cc0,
vio=0x60900014ccc0) at
/home/bneradt/src/trafficserver_10/src/proxy/http3/QPACK.cc:1052
#2 0x0000555556ac3bd2 in QPACK::event_handler (this=0x612000031cc0,
event=100, data=0x60900014ccc0) at
/home/bneradt/src/trafficserver_10/src/proxy/http3/QPACK.cc:196
#3 0x00005555560b6417 in Continuation::handleEvent (this=0x612000031cc0,
event=100, data=0x60900014ccc0) at
/home/bneradt/src/trafficserver_10/include/iocore/eventsystem/Continuation.h:228
#4 0x0000555556a28851 in EThread::process_event (this=0x7ffff020c800,
e=0x60900014ccc0, calling_code=100) at
/home/bneradt/src/trafficserver_10/src/iocore/eventsystem/UnixEThread.cc:163
#5 0x0000555556a28da5 in EThread::process_queue (this=0x7ffff020c800,
NegativeQueue=0x7fffefa19090, ev_count=0x7fffefa19000, nq_count=0x7fffefa18ff0)
at /home/bneradt/src/trafficserver_10/src/iocore/eventsystem/UnixEThread.cc:198
#6 0x0000555556a2933c in EThread::execute_regular (this=0x7ffff020c800) at
/home/bneradt/src/trafficserver_10/src/iocore/eventsystem/UnixEThread.cc:256
#7 0x0000555556a29dcb in EThread::execute (this=0x7ffff020c800) at
/home/bneradt/src/trafficserver_10/src/iocore/eventsystem/UnixEThread.cc:350
#8 0x0000555556a26bfe in spawn_thread_internal (a=0x60600002bb20) at
/home/bneradt/src/trafficserver_10/src/iocore/eventsystem/Thread.cc:68
#9 0x00007ffff6894609 in start_thread (arg=<optimized out>) at
pthread_create.c:477
#10 0x00007ffff67b7133 in clone () at
../sysdeps/unix/sysv/linux/x86_64/clone.S:95
(gdb) f
#0 0x0000555556a8be37 in QUICStreamAdapter::stream (this=0x50) at
/home/bneradt/src/trafficserver_10/include/iocore/net/quic/QUICStreamAdapter.h:37
37 return _stream;
(gdb) l
32 virtual ~QUICStreamAdapter() = default;
33
34 QUICStream &
35 stream()
36 {
37 return _stream;
38 }
39
40 virtual int64_t write(QUICOffset offset, const uint8_t *data,
uint64_t data_length, bool fin) = 0;
41 Ptr<IOBufferBlock> read(size_t len);
(gdb) p *this
Cannot access memory at address 0x50
(gdb) p this
$1 = (QUICStreamAdapter * const) 0x50
(gdb) up
#1 0x0000555556accfae in QPACK::_on_read_ready (this=0x612000031cc0,
vio=0x60900014ccc0) at
/home/bneradt/src/trafficserver_10/src/proxy/http3/QPACK.cc:1052
1052 QUICStreamId stream_id = static_cast<QUICStreamVCAdapter
*>(vio->vc_server)->stream().id();
(gdb) l
1047
1048 int
1049 QPACK::_on_read_ready(VIO *vio)
1050 {
1051 int nread = 0;
1052 QUICStreamId stream_id = static_cast<QUICStreamVCAdapter
*>(vio->vc_server)->stream().id();
1053
1054 if (stream_id == this->_decoder_stream_id) {
1055 nread = this->_on_decoder_stream_read_ready(*vio->get_reader());
1056 } else if (stream_id == this->_encoder_stream_id) {
(gdb) p *vio
$5 = {
cont = 0x555557265d80 <vtable for Event+16>,
nbytes = 106790067051712,
ndone = 106377750161344,
op = -1094795776,
_disabled = 190,
buffer = {
name = 0x7ffff020c800 "\360\262+WUU",
mbuf = 0x64bebebe0c,
entry = 0x0
},
vc_server = 0x0,
mutex = {
m_ptr = 0x613000080ab0
}
}
(gdb) p vio->vc_server
$7 = (VConnection *) 0x0
(gdb) p *this
$2 = {
<QUICApplication> = {
<Continuation> = {
<force_VFPT_to_top> = {
_vptr.force_VFPT_to_top = 0x5555572ca790 <vtable for QPACK+16>
},
members of Continuation:
handler = (int (Continuation::*)(Continuation * const, int, void *))
0x555556ac3b7a <QPACK::event_handler(int, Event*)>,
handler_name = 0x55555706b720 "&QPACK::event_handler",
mutex = {
m_ptr = 0x60c00002a7c0
},
link = {
<SLink<Continuation>> = {
next = 0x0
},
members of Link<Continuation>:
prev = 0x0
},
control_flags = {
raw_flags = 0
},
thread_affinity = 0x0
},
members of QUICApplication:
_qc = 0x61b00003cac8
},
members of QPACK:
_dynamic_table = {
static ADDITIONAL_32_BYTES = 32 ' ',
_maximum_size = 0,
_available = 0,
_entries_inserted = 0,
_entries = 0x0,
_max_entries = 0,
_entries_head = 4294967295,
_entries_tail = 4294967295,
_storage = {
_overwrite_threshold = 0,
_data = 0x0,
_data_size = 0,
_head = 4294967295,
_tail = 4294967295
}
},
_references = std::map with 39 elements = {
[0] = {
smallest = 0,
largest = 0
},
[4] = {
smallest = 0,
largest = 0
},
[8] = {
smallest = 0,
largest = 0
},
[12] = {
smallest = 0,
largest = 0
},
[16] = {
smallest = 0,
largest = 0
},
[20] = {
smallest = 0,
largest = 0
},
[24] = {
smallest = 0,
largest = 0
},
[28] = {
smallest = 0,
largest = 0
},
[32] = {
smallest = 0,
largest = 0
},
[36] = {
smallest = 0,
largest = 0
},
[40] = {
smallest = 0,
largest = 0
},
[44] = {
smallest = 0,
largest = 0
},
[48] = {
smallest = 0,
largest = 0
},
[52] = {
smallest = 0,
largest = 0
},
[56] = {
smallest = 0,
largest = 0
},
[60] = {
smallest = 0,
largest = 0
},
[64] = {
smallest = 0,
largest = 0
},
[68] = {
smallest = 0,
largest = 0
},
[72] = {
smallest = 0,
largest = 0
},
[76] = {
smallest = 0,
largest = 0
},
[80] = {
smallest = 0,
largest = 0
},
[84] = {
smallest = 0,
largest = 0
},
[88] = {
smallest = 0,
largest = 0
},
[92] = {
smallest = 0,
largest = 0
},
[96] = {
smallest = 0,
largest = 0
},
[100] = {
smallest = 0,
largest = 0
},
[104] = {
smallest = 0,
largest = 0
},
[108] = {
smallest = 0,
largest = 0
},
[112] = {
smallest = 0,
largest = 0
},
[116] = {
smallest = 0,
largest = 0
},
[120] = {
smallest = 0,
largest = 0
},
[124] = {
smallest = 0,
largest = 0
},
[128] = {
smallest = 0,
largest = 0
},
[132] = {
smallest = 0,
largest = 0
},
[136] = {
smallest = 0,
largest = 0
},
[140] = {
smallest = 0,
largest = 0
},
[144] = {
smallest = 0,
largest = 0
},
[148] = {
smallest = 0,
largest = 0
},
[152] = {
smallest = 0,
largest = 0
}
},
_max_field_section_size = 4294967295,
_max_table_size = 0,
_max_blocking_streams = 0,
_event_handler = 0x0,
_invalid = false,
_blocked_list = {
_head = 0x0,
_tail = 0x0,
_count = 0
},
_largest_known_received_index = 0,
_encoder_stream_id = 0,
_decoder_stream_id = 6,
_encoder_stream_sending_instructions = 0x611000021100,
_decoder_stream_sending_instructions = 0x611000021240,
_encoder_stream_sending_instructions_reader = 0x611000021118,
_decoder_stream_sending_instructions_reader = 0x611000021258,
_arena = {
m_blocks = 0x61900021c080
}
}
```
--
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]
