Re[2]: [Gc] valgrind-enabled gctest aborts on Fedora 15

Ivan Maidanski ivmai at mail.ru
Wed May 11 13:48:00 PDT 2011


Hi Jim,

That is the problem of valgrind not of GC! Should we workaround valgrind bugs (and imprecise emulation)? Eg., GC parses "/proc/self/stat" file to get main stack bottom but this value is incorrect and valgrind does not intercept this operation. Probably, we should... Anyway, patches are welcomed.

Regards.

Tue, 10 May 2011 11:25:33 +0200 Jim Meyering <jim at meyering.net>:

> Ivan Maidanski wrote:
> 
> > Hi.
> > Yes. This is expected - it is ok for GC to use uninitiated data in
> gc_push_root.
> ...
> >>Hello, I have just built the latest from cvs.
> ...
> >>Running ./configure && make && make check succeeds,
> >>but when running gctest via valgrind, I see many diagnostics
> >>that I usually associate with bugs, and finally an abort.
> >>
> >>Are the many used-uninitialized diagnostics expected?
> ...
> 
> This invalid, too?
> But surely not the following abort?
> 
> Thanks!
> 
> >>==20527== Thread 3:
> >>==20527== Invalid read of size 8
> >>==20527==  at 0x4E44DE9: GC_push_all_eager (mark.c:1522)
> >>==20527==  by 0x4E463EF: GC_push_all_stack_sections (mark_rts.c:517)
> >>==20527==  by 0x4E4DF39: GC_push_all_stacks (pthread_stop_world.c:337)
> >>==20527==  by 0x4E458CE: GC_mark_some (mark.c:345)
> >>==20527==  by 0x4E3C259: GC_stopped_mark (alloc.c:644)
> >>==20527==  by 0x4E3CB23: GC_maybe_gc (alloc.c:391)
> >>==20527==  by 0x4E3CCAC: GC_collect_a_little_inner (alloc.c:541)
> >>==20527==  by 0x4E3D6FB: GC_allocobj (alloc.c:1302)
> >>==20527==  by 0x4E42489: GC_generic_malloc_inner (malloc.c:123)
> >>==20527==  by 0x4E42577: GC_generic_malloc (malloc.c:163)
> >>==20527==  by 0x4E42973: GC_core_malloc (malloc.c:263)
> >>==20527==  by 0x401E40: cons (test.c:188)
> >>==20527==  by 0x40203A: reverse1 (test.c:317)
> >>==20527==  by 0x402254: tiny_reverse_test (test.c:468)
> >>==20527==  by 0x4E4C8D0: GC_inner_start_routine (pthread_start.c:61)
> >>==20527==  by 0x4E477A4: GC_call_with_stack_base (misc.c:1539)
> >>==20527==  by 0x50A1CD0: start_thread (pthread_create.c:305)
> >>==20527==  by 0x5599DFC: clone (clone.S:115)
> >>==20527== Address 0x6457660 is on thread 2's stack
> ...
> >>==20527== Process terminating with default action of signal 6 (SIGABRT)
> >>==20527==  at 0x54F0415: raise (raise.c:64)
> >>==20527==  by 0x54F1D2A: abort (abort.c:92)
> >>==20527==  by 0x4E46E8E: GC_abort (misc.c:1443)
> >>==20527==  by 0x4E48B68: GC_write_fault_handler (os_dep.c:3184)
> >>==20527==  by 0x50A943F: ??? (in /lib64/libpthread-2.13.90.so)
> >>==20527==  by 0x4E3B3B4: GC_get_first_part (allchblk.c:511)
> >>==20527==  by 0x4E3B719: GC_allochblk_nth (allchblk.c:785)
> >>==20527==  by 0x4E3BB79: GC_allochblk (allchblk.c:629)
> >>==20527==  by 0x4E43369: GC_generic_malloc_many (mallocx.c:391)
> >>==20527==  by 0x4E4C4D0: GC_malloc (thread_local_alloc.c:161)
> >>==20527==  by 0x401F24: small_cons (test.c:264)
> >>==20527==  by 0x402088: ints (test.c:334)
> >>==20527==  by 0x40207B: ints (test.c:334)
> >>==20527==  by 0x40207B: ints (test.c:334)
> >>==20527==  by 0x40207B: ints (test.c:334)
> >>==20527==  by 0x40207B: ints (test.c:334)
> >>==20527==  by 0x40207B: ints (test.c:334)
> >>==20527==  by 0x40207B: ints (test.c:334)
> >>==20527==  by 0x40207B: ints (test.c:334)
> >>==20527==  by 0x40207B: ints (test.c:334)
> _______________________________________________
> Gc mailing list
> Gc at linux.hpl.hp.com
> http://www.hpl.hp.com/hosted/linux/mail-archives/gc/



More information about the Gc mailing list