Carlos O'Donell 6e1ea21501 malloc: Fix tcache leak after thread destruction [BZ #22111]
The malloc tcache added in 2.26 will leak all of the elements remaining
in the cache and the cache structure itself when a thread exits. The
defect is that we do not set tcache_shutting_down early enough, and the
thread simply recreates the tcache and places the elements back onto a
new tcache which is subsequently lost as the thread exits (unfreed
memory). The fix is relatively simple, move the setting of
tcache_shutting_down earlier in tcache_thread_freeres. We add a test
case which uses mallinfo and some heuristics to look for unaccounted for
memory usage between the start and end of a thread start/join loop. It
is very reliable at detecting that there is a leak given the number of
iterations.  Without the fix the test will consume 122MiB of leaked
memory.

(cherry picked from commit 1e26d35193efbb29239c710a4c46a64708643320)
2017-10-06 10:35:30 -07:00
..
2017-07-06 13:37:30 -04:00
2017-05-30 18:27:57 -03:00
2014-01-02 09:40:10 +01:00
2017-05-30 18:27:57 -03:00
2017-01-05 17:39:38 +00:00
2017-05-30 18:27:57 -03:00
2007-12-16 22:57:57 +00:00