[dmd-internals] [D-Programming-Language/dmd] 29eb97: more 64 bit ABI for structs
Brad Roberts
braddr at puremagic.com
Wed May 9 22:35:56 PDT 2012
The 2 of the 3 linux auto-testers seem to hang occasionally in the druntime conditional and semaphore tests as of one of
the changes today.
box 1: hangs occasionally
8 cores
libc 2.12
gcc 4.4.5
kernel 2.6.35.44-997.44.amzn1
box 2: hangs occasionally
2 cores
libc 2.12.2
gcc 4.4.4
kernel 2.6.35-28-generic
box 3: passes, or at least I haven't seen it hang yet
4 cores
libc 2.13
gcc 4.6.1
kernel 3.0.0-14-generic
The stack trace from box 1 above's hang in condition tests:
(gdb) bt
#0 0x00007f61e9bd303d in pthread_join () from /lib64/libpthread.so.0
#1 0x00000000004187af in core.thread.Thread.join() ()
#2 0x0000000000000001 in ?? ()
#3 0x00007fff4a309e00 in ?? ()
#4 0x00000000004173a7 in core.sync.condition.testWaitTimeout() ()
#5 0x0000000000000001 in ?? ()
#6 0x000000000000001a in ?? ()
#7 0x0000000000417544 in ?? ()
#8 0x0000000000634d48 in _TMP34 ()
#9 0x00007f61ea104d00 in ?? ()
#10 0x00007f61ea104a40 in ?? ()
#11 0x0000000000000000 in ?? ()
and semaphore:
(gdb) bt
#0 0x00007fc1f02df03d in pthread_join () from /lib64/libpthread.so.0
#1 0x00000000004180a3 in core.thread.Thread.join() ()
#2 0x0000000000000001 in ?? ()
#3 0x00007fff332f4280 in ?? ()
#4 0x0000000000416c5f in core.sync.semaphore.testWaitTimeout() ()
#5 0x0000000000000001 in ?? ()
#6 0x000000000000001a in ?? ()
#7 0x0000000000416e38 in ?? ()
#8 0x0000000000634158 in _TMP25 ()
#9 0x0000000000000000 in ?? ()
On 5/9/2012 8:20 PM, Walter Bright wrote:
> Thank you. This gives me a good place to start.
>
> I also plan on inserting all these failures into the test suite, so it can be debugged without having to isolate it down
> again.
>
> On 5/9/2012 8:06 PM, Jonathan M Davis wrote:
>> druntime is also seeing a failure in core.time, which I can reproduce with this: struct S { this(long length) {
>> this.length = length; } long length; } const(S) copy(const S s) { return s; } void main() { S t = S(42); const S u =
>> t; assert(t == u); assert(copy(t) == u); assert(t == copy(u)); } If I make copy's parameter mutable, it passes. If I
>> change the return type to mutable, it still fails. So, it seems to be something related to copy's parameter being
>> const. However, the problem also goes away if S's constructor is removed, which doesn't appear to have anything to do
>> with const. I have no idea if this relates to the problem in std.datetime or not, but it _is_ a problem only on
>> 64-bit, so it might be related. - Jonathan M Davis _______________________________________________ dmd-internals
>> mailing list dmd-internals at puremagic.com http://lists.puremagic.com/mailman/listinfo/dmd-internals
> _______________________________________________
> dmd-internals mailing list
> dmd-internals at puremagic.com
> http://lists.puremagic.com/mailman/listinfo/dmd-internals
More information about the dmd-internals
mailing list