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]
