You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@trafficserver.apache.org by "bneradt (via GitHub)" <gi...@apache.org> on 2024/01/16 23:45:47 UTC

[I] ATS Docs: Quic Crash in QUICStreamAdapter::stream [trafficserver]

bneradt opened a new issue, #10989:
URL: https://github.com/apache/trafficserver/issues/10989

   I enabled HTTP/3 via alt svc on Docs, and it crashes almost immediately with the following core:
   
   ```gdb
   Thread 6 "[ET_NET 3]" received signal SIGSEGV, Segmentation fault.
   [Switching to Thread 0x7fffef887700 (LWP 3958912)]
   0x0000555555f1f238 in QUICStreamAdapter::stream (this=0x50) at /home/bneradt/src/trafficserver_10/include/iocore/net/quic/QUICStreamAdapter.h:37
   37          return _stream;
   (gdb) bt
   #0  0x0000555555f1f238 in QUICStreamAdapter::stream (this=0x50) at /home/bneradt/src/trafficserver_10/include/iocore/net/quic/QUICStreamAdapter.h:37
   #1  0x0000555555f419f5 in QPACK::_on_read_ready (this=0x7fffdc02d330, vio=0x7fffa8000bf0) at /home/bneradt/src/trafficserver_10/src/proxy/http3/QPACK.cc:1042
   #2  0x0000555555f3d852 in QPACK::event_handler (this=0x7fffdc02d330, event=100, data=0x7fffa8000bf0) at /home/bneradt/src/trafficserver_10/src/proxy/http3/QPACK.cc:191
   #3  0x0000555555a9f2cb in Continuation::handleEvent (this=0x7fffdc02d330, event=100, data=0x7fffa8000bf0) at /home/bneradt/src/trafficserver_10/include/iocore/eventsystem/Continuation.h:228
   #4  0x0000555555ef30c7 in EThread::process_event (this=0x7ffff4001010, e=0x7fffa8000bf0, calling_code=100) at /home/bneradt/src/trafficserver_10/src/iocore/eventsystem/UnixEThread.cc:162
   #5  0x0000555555ef3315 in EThread::process_queue (this=0x7ffff4001010, NegativeQueue=0x7fffef8861b0, ev_count=0x7fffef88615c, nq_count=0x7fffef886158) at /home/bneradt/src/trafficserver_10/src/iocore/eventsystem/UnixEThread.cc:197
   #6  0x0000555555ef362f in EThread::execute_regular (this=0x7ffff4001010) at /home/bneradt/src/trafficserver_10/src/iocore/eventsystem/UnixEThread.cc:255
   #7  0x0000555555ef3a44 in EThread::execute (this=0x7ffff4001010) at /home/bneradt/src/trafficserver_10/src/iocore/eventsystem/UnixEThread.cc:348
   #8  0x0000555555ef224d in spawn_thread_internal (a=0x5555564447e0) at /home/bneradt/src/trafficserver_10/src/iocore/eventsystem/Thread.cc:68
   #9  0x00007ffff74a2609 in start_thread (arg=<optimized out>) at pthread_create.c:477
   #10 0x00007ffff73c7133 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
   (gdb) f 0
   #0  0x0000555555f1f238 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) up
   #1  0x0000555555f419f5 in QPACK::_on_read_ready (this=0x7fffdc02d330, vio=0x7fffa8000bf0) at /home/bneradt/src/trafficserver_10/src/proxy/http3/QPACK.cc:1042
   1042      QUICStreamId stream_id = static_cast<QUICStreamVCAdapter *>(vio->vc_server)->stream().id();
   (gdb) p vio->vc_server
   $1 = (VConnection *) 0x0
   ```
   
   This looks potentially similar, and maybe related to, https://github.com/apache/trafficserver/issues/9888. But the backtrace is different even though they both go through the `QUICStreamAdapter` so I thought I'd file it as a separate issue. They can be duplicated later if it turns out that they have the same root cause.


-- 
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: issues-unsubscribe@trafficserver.apache.org.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


Re: [I] ATS Docs: Quic Crash in QUICStreamAdapter::stream [trafficserver]

Posted by "maskit (via GitHub)" <gi...@apache.org>.
maskit closed issue #10989: ATS Docs: Quic Crash in QUICStreamAdapter::stream
URL: https://github.com/apache/trafficserver/issues/10989


-- 
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: issues-unsubscribe@trafficserver.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


Re: [I] ATS Docs: Quic Crash in QUICStreamAdapter::stream [trafficserver]

Posted by "maskit (via GitHub)" <gi...@apache.org>.
maskit commented on issue #10989:
URL: https://github.com/apache/trafficserver/issues/10989#issuecomment-1940487044

   A possible scenario is:
   - Stream X gets read-ready, and the vc adapter schedules `VC_EVENT_READ_READY ` in ` QUICStreamVCAdapter::encourge_read`
   - Stream X gets closed (`vio->vc_server` becomes `nullptr` in `QUICStreamVCAdapter::do_io_close`)
   - QPACK processes the scheduled event
   
   The scheduled event should be cancelled in the destructor of QUICStreamVCAdapter.


-- 
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: issues-unsubscribe@trafficserver.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org