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

   See:
   
https://ci.trafficserver.apache.org/view/Github/job/Github_Builds/job/ubuntu/3018/consoleFull
   
   test_CacheDir crashes with a fair level of frequency in CI.
   
   I ssh'd into our CI and ran the test in gdb about a dozen or two times until 
it crashed. Here's the bt:
   
   ```gdb
   Thread 1 "CacheDir" received signal SIGSEGV, Segmentation fault.
   0x0000555e7535065c in Continuation::handleEvent (this=0x555e774356e0, 
event=2, data=0x555e77414ac0) at 
/home/jenkins/trafficserver/include/iocore/eventsystem/Continuation.h:228
   228         return (this->*handler)(event, data);
   (gdb) bt
   #0  0x0000555e7535065c in Continuation::handleEvent (this=0x555e774356e0, 
event=2, data=0x555e77414ac0) at 
/home/jenkins/trafficserver/include/iocore/eventsystem/Continuation.h:228
   #1  0x0000555e757676f0 in EThread::process_event (this=0x7f629232e010, 
e=0x555e77414ac0, calling_code=2) at 
/home/jenkins/trafficserver/src/iocore/eventsystem/UnixEThread.cc:150
   #2  0x0000555e75767d76 in EThread::execute_regular (this=0x7f629232e010) at 
/home/jenkins/trafficserver/src/iocore/eventsystem/UnixEThread.cc:255
   #3  0x0000555e75768045 in EThread::execute (this=0x7f629232e010) at 
/home/jenkins/trafficserver/src/iocore/eventsystem/UnixEThread.cc:334
   #4  0x0000555e7534fb86 in C_A_T_C_H_T_E_S_T_0 () at 
/home/jenkins/trafficserver/src/iocore/cache/unit_tests/test_CacheDir.cc:263
   #5  0x0000555e75294bb3 in Catch::TestInvokerAsFunction::invoke 
(this=0x555e7739bc90) at /home/jenkins/trafficserver/lib/catch2/catch.hpp:14328
   #6  0x0000555e7528f184 in Catch::TestCase::invoke (this=0x555e774275f0) at 
/home/jenkins/trafficserver/lib/catch2/catch.hpp:14167
   #7  0x0000555e7528f0d1 in Catch::RunContext::invokeActiveTestCase 
(this=0x7fff76f997e0) at /home/jenkins/trafficserver/lib/catch2/catch.hpp:13027
   #8  0x0000555e7528dd6b in Catch::RunContext::runCurrentTest 
(this=0x7fff76f997e0, redirectedCout="", redirectedCerr="") at 
/home/jenkins/trafficserver/lib/catch2/catch.hpp:13000
   #9  0x0000555e7528d1e4 in Catch::RunContext::runTest (this=0x7fff76f997e0, 
testCase=...) at /home/jenkins/trafficserver/lib/catch2/catch.hpp:12761
   #10 0x0000555e752918c5 in Catch::(anonymous namespace)::TestGroup::execute 
(this=0x7fff76f997d0) at /home/jenkins/trafficserver/lib/catch2/catch.hpp:13354
   #11 0x0000555e75290efb in Catch::Session::runInternal (this=0x7fff76f99af0) 
at /home/jenkins/trafficserver/lib/catch2/catch.hpp:13560
   #12 0x0000555e75290ce7 in Catch::Session::run (this=0x7fff76f99af0) at 
/home/jenkins/trafficserver/lib/catch2/catch.hpp:13516
   #13 0x0000555e752c540a in Catch::Session::run<char> (this=0x7fff76f99af0, 
argc=1, argv=0x7fff76f99da8) at 
/home/jenkins/trafficserver/lib/catch2/catch.hpp:13238
   #14 0x0000555e752a6d1f in main (argc=1, argv=0x7fff76f99da8) at 
/home/jenkins/trafficserver/lib/catch2/catch.hpp:17533
   ```
   
   Poking around a bit:
   
   ```gdb
   (gdb) set print pretty
   (gdb) f 0
   #0  0x0000555e7535065c in Continuation::handleEvent (this=0x555e774356e0, 
event=2, data=0x555e77414ac0) at 
/home/jenkins/trafficserver/include/iocore/eventsystem/Continuation.h:228
   228         return (this->*handler)(event, data);
   (gdb) p *this
   $2 = {
     <force_VFPT_to_top> = {
       _vptr$force_VFPT_to_top = 0x555b22a42265
     }, 
     members of Continuation:
     handler = (int (Continuation::*)(Continuation * const, int, void *)) 
0x96ba49dcfabc67ae,
     handler_name = 0x555e75787b74 "&CacheInit::start_event",
     mutex = {
       m_ptr = 0x555e7740dcd0
     },
     link = {
       <SLink<Continuation>> = {
         next = 0x0
       }, 
       members of Link<Continuation>:
       prev = 0x0
     },
     control_flags = {
       raw_flags = 0
     },
     thread_affinity = 0x0
   }
   
   
   (gdb) p event
   $3 = 2
   
   (gdb) x/a data
   0x555e77414ac0: 0x555e7597a3e0 <_ZTV5Event+16>
   (gdb) p *(Event*)data
   $5 = {
     <Action> = {
       _vptr$Action = 0x555e7597a3e0 <vtable for Event+16>,
       continuation = 0x555e774356e0,
       mutex = {
         m_ptr = 0x555e7740dcd0
       },
       cancelled = false
     }, 
     members of Event:
     ethread = 0x7f629232e010,
     in_the_prot_queue = 0,
     in_the_priority_queue = 0,
     immediate = 0,
     globally_allocated = 0,
     in_heap = 0,
     callback_event = 2,
     timeout_at = 1697940456444999986,
     period = 0,
     cookie = 0x0,
     link = {
       <SLink<Event>> = {
         next = 0x0
       }, 
       members of Link<Event>:
       prev = 0x0
     }
   }
   ```
   
   The issue seems to be that somehow the handler is pointing to a garbage 
address:
   
   ```gdb
   (gdb) p this->handler
   $9 = (int (Continuation::*)(Continuation * const, int, void *)) 
0x96ba49dcfabc67ae
   (gdb) x/a 0x96ba49dcfabc67ae
   0x96ba49dcfabc67ae:     Cannot access memory at address 0x96ba49dcfabc67ae
   ```


-- 
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