[Issue 16352] dead-lock in std.allocator.free_list unittest

via Digitalmars-d-bugs digitalmars-d-bugs at puremagic.com
Mon Dec 12 14:25:31 PST 2016


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

John Colvin <john.loughran.colvin at gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |john.loughran.colvin at gmail.
                   |                            |com

--- Comment #3 from John Colvin <john.loughran.colvin at gmail.com> ---
After a bunch of testing I've managed to reproduce this reliably, stop it,
attach gdb and get a backtrace.

The hang happens here:
https://github.com/dlang/phobos/blob/19445fc71e8aabdbd42f0ad8a571a57601a5ff39/std/experimental/allocator/building_blocks/free_list.d#L1025

In the backtrace you'll se
std.experimental.allocator.building_blocks.free_list.__unittestL1020_10, that's
just a consequence of some accidental reformatting before i tested, the real
line number is 1025 as in the link above

#0  0x0000667f4afa810f in pthread_cond_wait@@GLIBC_2.3.2 () from
/usr/lib/libpthread.so.0
#1  0x000000000042e8cd in core.sync.condition.Condition.wait() ()
#2  0x0000000000414b80 in std.concurrency.MessageBox.get!(void(bool) pure
nothrow @nogc @safe delegate, void(std.concurrency.LinkTerminated) pure @nogc
@safe function, void(std.concurrency.OwnerTerminated) pure @nogc @safe
function, void(std.variant.VariantN!(32uL).VariantN) function).get(void(bool)
pure nothrow @nogc @safe delegate, void(std.concurrency.LinkTerminated) pure
@nogc @safe function, void(std.concurrency.OwnerTerminated) pure @nogc @safe
function, void(std.variant.VariantN!(32uL).VariantN) function) ()
#3  0x0000000000414146 in std.concurrency.receiveOnly!(bool).receiveOnly() ()
#4  0x0000000000402faa in
std.experimental.allocator.building_blocks.free_list.__unittestL1020_10() ()
#5  0x0000000000419eba in
std.experimental.allocator.building_blocks.free_list.__modtest() ()
#6  0x000000000042c5a1 in
core.runtime.runModuleUnitTests().__foreachbody2(object.ModuleInfo*) ()
#7  0x000000000041bb6c in object.ModuleInfo.opApply(scope
int(object.ModuleInfo*) delegate).__lambda2(immutable(object.ModuleInfo*)) ()
#8  0x0000000000421fb3 in rt.minfo.moduleinfos_apply(scope
int(immutable(object.ModuleInfo*)) delegate).__foreachbody2(ref
rt.sections_elf_shared.DSO) ()
#9  0x00000000004221b5 in rt.sections_elf_shared.DSO.opApply(scope int(ref
rt.sections_elf_shared.DSO) delegate) ()
#10 0x0000000000421f44 in rt.minfo.moduleinfos_apply(scope
int(immutable(object.ModuleInfo*)) delegate) ()
#11 0x000000000041bb48 in object.ModuleInfo.opApply(scope
int(object.ModuleInfo*) delegate) ()
#12 0x000000000042c493 in runModuleUnitTests ()
#13 0x000000000041eab3 in rt.dmain2._d_run_main(int, char**, extern(C)
int(char[][]) function).runAll() ()
#14 0x000000000041ea51 in rt.dmain2._d_run_main(int, char**, extern(C)
int(char[][]) function).tryExec(scope void() delegate) ()
#15 0x000000000041e9cb in _d_run_main ()
#16 0x0000000000419ff6 in main ()
#17 0x0000667f4a4fa291 in __libc_start_main () from /usr/lib/libc.so.6
#18 0x000000000040280a in _start ()

--


More information about the Digitalmars-d-bugs mailing list