On Mon, Jun 12, 2006 at 12:16:29AM +0200, Steinar H. Gunderson wrote:
> Note that so far, hppa/mipsel/powerpc/alpha/sparc/arm has failed, but
> amd64/ia64/mips/s390 has done just fine; IOW this isn't alpha-specific. (I've
> tested on my own amd64 and i386 machines, and both do just fine.)

Scrap the last part; it's actually _random_. I'm not really sure how much I
like the concept of randomized testing for this kind of thing; it's
completely impossible to find out when the bug really surfaced. Sometimes it
works (but it gives different values every time), sometimes it gives a test
failure ("list reversal produced incorrect list - collector is broken") and
sometimes it just segfaults. It's all rather unpredictable...

Anyhow, I pushed this through valgrind ("LD_LIBRARY_PATH=.libs valgrind
.libs/gctest") on amd64, and it seems to have a few conditional jumps
depending on uninitialized values -- the code seems to indicate that might be
normal, though, but it's hard to say.

What's worse is the segfault:

==27705== Invalid read of size 4
==27705==    at 0x445A807: GC_mark_from (mark.c:759)
==27705==    by 0x445C0F1: GC_mark_some (mark.c:361)
==27705==    by 0x4452F9A: GC_stopped_mark (alloc.c:531)
==27705==    by 0x4453959: GC_try_to_collect_inner (alloc.c:378)
==27705==    by 0x445DE9D: GC_init_inner (misc.c:787)
==27705==    by 0x4458C09: GC_generic_malloc_inner (malloc.c:125)
==27705==    by 0x4462E41: GC_pthread_create (pthread_support.c:1231)
==27705==    by 0x804B8D3: main (test.c:1826)
==27705==  Address 0xFEFFC080 is not stack'd, malloc'd or (recently) free'd

The code completely escapes me; somebody used to this madness will have to
debug it to find the error.

/* Steinar */
-- 
Homepage: http://www.sesse.net/


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to