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

   Thanks, that was it. The probe and the live connection in that test gave 
their reservations back with `TxnState::clear()`, which never takes a group out 
of the table, so an empty group for the test's address was still in 
`_outbound_table` at exit.
   
   06b6abc1e1 holds the test's reservations in a small guard that gives them 
back through `Group::release()`, which removes the group when its count reaches 
zero, also when a `REQUIRE` ends the case early. Each case that creates a group 
now checks that the outbound table holds as many groups at its end as at its 
start. With the old cleanup that check fails (`1 == 0`), so a leftover shows up 
without ASAN.
   
   With ASAN on macOS, d8847a0d91 reproduces the same use-after-free at exit 
(`~TableSingleton()` → `~Group()` → `Gauge::decrement`, on memory freed by 
`Metrics::Storage::~Storage()`). With 06b6abc1e1, `test_http` runs with no ASAN 
errors.
   


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