bryancall commented on PR #13897:
URL: https://github.com/apache/trafficserver/pull/13897#issuecomment-6374578744

   The [Rocky 
failure](https://ci.trafficserver.apache.org/job/Github_Builds/job/Github_PR_Checks/14093/)
 is from the new test, not the Rocky box. Rocky is the only CI build with ASAN 
on (`ci-rocky` is the one preset with `ENABLE_ASAN`), which is why the other 
builds pass.
   
   "Failed connect returns its reservation before queued HttpSMs retry" passes 
all 68 assertions, then ASAN reports a heap-use-after-free while `test_http` 
exits:
   
   ```
   WRITE of size 8 ...
     #1 ts::Metrics::Gauge::decrement  include/tsutil/Metrics.h:525
     #2 ConnectionTracker::Group::~Group()  
src/iocore/net/ConnectionTracker.cc:575
     ...
     #18 ConnectionTracker::TableSingleton::~TableSingleton()  
include/iocore/net/ConnectionTracker.h:453
   freed by thread T0 here:
     #4 ts::Metrics::Storage::~Storage()  include/tsutil/Metrics.h:340
     (both from __run_exit_handlers)
   ```
   
   The groups the test creates with `obtain_outbound()` stay in the static 
`_outbound_table` until exit. By the time that table is destroyed, the metrics 
storage is already gone, and `~Group()` decrements 
`connection_tracker_table_size` in freed memory. I think the test needs to get 
its groups out of the table before it returns, or keep the metrics storage 
alive past the table, so nothing is left for the exit handlers.
   


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