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

   ATS crashes after request is rejected in `Http3SessionAccept::accept()`, 
e.g. when ip-allow policy denies the client IP, with the following stack trace:
   ```
   (gdb) bt
   #0  hashbrown::raw::RawTable<(u64, ()), 
alloc::alloc::Global>::data_end<(u64, ()), alloc::alloc::Global> 
(self=<optimized out>)
       at 
/builddir/build/BUILD/rustc-1.70.0-src/vendor/hashbrown-0.12.3/src/raw/mod.rs:502
   #1  hashbrown::raw::RawTable<(u64, ()), alloc::alloc::Global>::iter<(u64, 
()), alloc::alloc::Global> (self=<optimized out>)
       at 
/builddir/build/BUILD/rustc-1.70.0-src/vendor/hashbrown-0.12.3/src/raw/mod.rs:937
   #2  hashbrown::map::HashMap<u64, (), 
core::hash::BuildHasherDefault<quiche::stream::StreamIdHasher>, 
alloc::alloc::Global>::iter<u64, (), 
core::hash::BuildHasherDefault<quiche::stream::StreamIdHasher>, 
alloc::alloc::Global> (self=<optimized out>) at 
/builddir/build/BUILD/rustc-1.70.0-src/vendor/hashbrown-0.12.3/src/map.rs:664
   #3  hashbrown::map::HashMap<u64, (), 
core::hash::BuildHasherDefault<quiche::stream::StreamIdHasher>, 
alloc::alloc::Global>::keys<u64, (), 
core::hash::BuildHasherDefault<quiche::stream::StreamIdHasher>, 
alloc::alloc::Global> (self=<optimized out>) at 
/builddir/build/BUILD/rustc-1.70.0-src/vendor/hashbrown-0.12.3/src/map.rs:557
   #4  hashbrown::set::HashSet<u64, 
core::hash::BuildHasherDefault<quiche::stream::StreamIdHasher>, 
alloc::alloc::Global>::iter<u64, 
core::hash::BuildHasherDefault<quiche::stream::StreamIdHasher>, 
alloc::alloc::Global> (self=<optimized out>) at 
/builddir/build/BUILD/rustc-1.70.0-src/vendor/hashbrown-0.12.3/src/set.rs:245
   #5  std::collections::hash::set::HashSet<u64, 
core::hash::BuildHasherDefault<quiche::stream::StreamIdHasher>>::iter<u64, 
core::hash::BuildHasherDefault<quiche::stream::StreamIdHasher>> 
(self=<optimized out>) at 
/builddir/build/BUILD/rustc-1.70.0-src/library/std/src/collections/hash/set.rs:191
   #6  quiche::stream::StreamIter::from (streams=<optimized out>) at 
quiche/src/stream.rs:758
   #7  quiche::stream::StreamMap::readable (self=<optimized out>) at 
quiche/src/stream.rs:556
   #8  quiche::Connection::readable (self=<optimized out>) at 
quiche/src/lib.rs:5053
   #9  quiche::ffi::quiche_conn_readable (conn=0x0) at quiche/src/ffi.rs:872
   #10 0x0000000000d68e80 in QUICNetVConnection::_handle_read_ready 
(this=0xffff68fa4a00) at QUICNetVConnection_quiche.cc:593
   #11 0x0000000000d67770 in QUICNetVConnection::state_established 
(this=0xffff68fa4a00, event=2500, data=0x0) at QUICNetVConnection_quiche.cc:189
   #12 0x00000000008aea68 in Continuation::handleEvent (this=0xffff68fa4a00, 
event=2500, data=0x0) at 
/home/zli11/src/h3-sni-check/iocore/eventsystem/I_Continuation.h:228
   #13 0x0000000000d67380 in QUICNetVConnection::state_handshake 
(this=0xffff68fa4a00, event=2500, data=0x0) at QUICNetVConnection_quiche.cc:152
   #14 0x00000000008aea68 in Continuation::handleEvent (this=0xffff68fa4a00, 
event=2500, data=0x0) at 
/home/zli11/src/h3-sni-check/iocore/eventsystem/I_Continuation.h:228
   #15 0x0000000000d68a80 in QUICNetVConnection::net_read_io 
(this=0xffff68fa4a00, nh=0xffff8b2cf410, lthread=0xffff8b2cb010) at 
QUICNetVConnection_quiche.cc:502
   #16 0x0000000000d8f804 in NetHandler::process_ready_list 
(this=0xffff8b2cf410) at NetHandler.cc:252
   #17 0x0000000000d8fbf4 in NetHandler::waitForActivity (this=0xffff8b2cf410, 
timeout=2187625) at NetHandler.cc:340
   #18 0x0000000000e71630 in EThread::execute_regular (this=0xffff8b2cb010) at 
UnixEThread.cc:285
   #19 0x0000000000e717d8 in EThread::execute (this=0xffff8b2cb010) at 
UnixEThread.cc:334
   #20 0x0000000000e6fda4 in spawn_thread_internal (a=0x3e18ced0) at 
Thread.cc:79
   #21 0x0000ffff8c86bc74 in start_thread (arg=0xffffc7d3d0e7) at 
pthread_create.c:444
   #22 0x0000ffff8c8d925c [PAC] in thread_start () at 
../sysdeps/unix/sysv/linux/aarch64/clone.S:79
   ```
   
   ## step to reproduce
   [this 
Autest](https://github.com/lzx404243/trafficserver/blob/df9961a34acee5061548d301741bd6f22ef2cbd9/tests/gold_tests/ip_allow/ip_allow_h3.test.py)
 reproduces the crash.
   
   Note: the same test passes in http/2.


-- 
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-unsubscr...@trafficserver.apache.org.apache.org

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

Reply via email to