Skip to content

Http3 transaction crash #9782

@brbzull0

Description

@brbzull0

After merging from master, I've got the following crash. This seem it was introduced by #9729

ink_assert(this->_write_ready_event == e);

(gdb) bt
#0  __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
#1  0x00007ffff7127859 in __GI_abort () at abort.c:79
#2  0x00007ffff7ef0ff1 in ink_abort (message_format=0x7ffff7f5e020 "%s:%d: failed assertion `%s`") at ink_error.cc:99
#3  0x00007ffff7eebe9d in _ink_assert (expression=0x55555609c1b0 "this->_write_ready_event == e", file=0x55555609c158 "Http3Transaction.cc", line=309)
    at ink_assert.cc:37
#4  0x0000555555f7ea02 in HQTransaction::_close_write_ready_event (this=0x7fffd0101f60, e=0x0) at Http3Transaction.cc:309
#5  0x0000555555f80cff in Http3Transaction::state_stream_closed (this=0x7fffd0101f60, event=101, data=0x0) at Http3Transaction.cc:507
#6  0x0000555555a45497 in Continuation::handleEvent (this=0x7fffd0101f60, event=101, data=0x0)
    at /home/dmeden/code/git/trafficserver-h3/iocore/eventsystem/I_Continuation.h:228
#7  0x0000555555f76e3c in Http3App::_handle_bidi_stream_on_write_ready (this=0x7fffd00e3970, event=101, vio=0x7fffd00fef08) at Http3App.cc:338
#8  0x0000555555f75d1c in Http3App::main_event_handler (this=0x7fffd00e3970, event=101, data=0x5555565d6800) at Http3App.cc:141
#9  0x0000555555a45497 in Continuation::handleEvent (this=0x7fffd00e3970, event=101, data=0x5555565d6800)
    at /home/dmeden/code/git/trafficserver-h3/iocore/eventsystem/I_Continuation.h:228
#10 0x0000555555fbbaed in EThread::process_event (this=0x555556b484b0, e=0x5555565d6800, calling_code=101) at UnixEThread.cc:149
#11 0x0000555555fbbd3a in EThread::process_queue (this=0x555556b484b0, NegativeQueue=0x7fffd7efd0f0, ev_count=0x7fffd7efd0a4, nq_count=0x7fffd7efd0a0)
    at UnixEThread.cc:184
#12 0x0000555555fbc18d in EThread::execute_regular (this=0x555556b484b0) at UnixEThread.cc:262
#13 0x0000555555fbc474 in EThread::execute (this=0x555556b484b0) at UnixEThread.cc:334
#14 0x0000555555fbabbc in spawn_thread_internal (a=0x5555565ccc40) at Thread.cc:79
#15 0x00007ffff7780609 in start_thread (arg=<optimized out>) at pthread_create.c:477
#16 0x00007ffff7224133 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
(gdb) f 4
#4  0x0000555555f7ea02 in HQTransaction::_close_write_ready_event (this=0x7fffd0101f60, e=0x0) at Http3Transaction.cc:309
309       ink_assert(this->_write_ready_event == e);
(gdb) print e
$17 = (Event *) 0x0
(gdb) f 8
#8  0x0000555555f75d1c in Http3App::main_event_handler (this=0x7fffd00e3970, event=101, data=0x5555565d6800) at Http3App.cc:141
141           this->_handle_bidi_stream_on_write_ready(event, vio);
(gdb) print data->_location
$18 = (const void *) 0x555555fa62fa <QUICStreamVCAdapter::encourge_write()+232>
(gdb) print data
$19 = (Event *) 0x5555565d6800
(gdb)

the only way to get this was using h2load and using some concurrent requests.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    Status

    Done

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions