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]

Reply via email to