[Issue 20085] New: memory leaks in std.parallelism

d-bugmail at puremagic.com d-bugmail at puremagic.com
Thu Jul 25 19:12:39 UTC 2019


https://issues.dlang.org/show_bug.cgi?id=20085

          Issue ID: 20085
           Summary: memory leaks in std.parallelism
           Product: D
           Version: D2
          Hardware: x86
                OS: Mac OS X
            Status: NEW
          Severity: major
          Priority: P1
         Component: phobos
          Assignee: nobody at puremagic.com
          Reporter: ali.akhtarzada at gmail.com

Almost every single example in the doc page
(https://dlang.org/phobos/std_parallelism.html) leaks memory, usually something
like:

=================================================================
==73260==ERROR: LeakSanitizer: detected memory leaks

Direct leak of 288 byte(s) in 3 object(s) allocated from:
    #0 0x10df204b7 in wrap_calloc (libldc_rt.asan.dylib:x86_64+0x5f4b7)
    #1 0x10ce4bdbc in
_D2rt8monitor_13ensureMonitorFNbC6ObjectZPOSQBqQBq7Monitor
(temp:x86_64+0x1001a5dbc)

Direct leak of 48 byte(s) in 3 object(s) allocated from:
    #0 0x10df1ff73 in wrap_malloc (libldc_rt.asan.dylib:x86_64+0x5ef73)
    #1 0x10ce4cfca in _D2rt5tlsgc4initFNbNiZPv (temp:x86_64+0x1001a6fca)
    #2 0x7fff61c4f248 in _pthread_start (libsystem_pthread.dylib:x86_64+0x6248)
    #3 0x7fff61c4b40c in thread_start (libsystem_pthread.dylib:x86_64+0x240c)

SUMMARY: AddressSanitizer: 336 byte(s) leaked in 6 allocation(s).

Here's a simple program:

import std;

void main() {
  auto t = new TaskPool(3);
  t.finish(true);
}

Run it with:

ldc2 -fsanitize=address -g -disable-fp-elim -frame-pointer=all temp.d &&
ASAN_OPTIONS=detect_stack_use_after_return=1:detect_leaks=1 ./temp

Output:

=================================================================
==73394==ERROR: LeakSanitizer: detected memory leaks

Direct leak of 48 byte(s) in 3 object(s) allocated from:
    #0 0x105aecf73 in wrap_malloc (libldc_rt.asan.dylib:x86_64+0x5ef73)
    #1 0x10566d47a in _D2rt5tlsgc4initFNbNiZPv (temp:x86_64+0x10019c47a)
    #2 0x7fff61c4f248 in _pthread_start (libsystem_pthread.dylib:x86_64+0x6248)
    #3 0x7fff61c4b40c in thread_start (libsystem_pthread.dylib:x86_64+0x240c)

SUMMARY: AddressSanitizer: 48 byte(s) leaked in 3 allocation(s).

--


More information about the Digitalmars-d-bugs mailing list