[Gc] Test failures, hangs, crashes with 2011-04-25 CVS checkout
Peter O'Gorman
gc at mlists.thewrittenword.com
Tue Apr 26 19:25:09 PDT 2011
On Wed, Apr 27, 2011 at 01:18:09AM +0400, Ivan Maidanski wrote:
> Hi Peter,
>
Hi,
Thanks!
> >
> > Also, strangely, when building with --disable-threads, Solaris 10/x86
> > gctest crashes with a segv, every other one of our platforms passes all
> > tests. segv is in test.c at
> > if (SEXPR_TO_INT(car(car(list))) != low) {
>
> More details please: stack trace, value of low, value of car(car(list)), call print_int_list.
Doing it back to front and checking this one first.
built with ./configure CC=cc CFLAGS='-xO0 -g' --disable-threads
$ cc -V
cc: Sun C 5.11 SunOS_i386 145355-01 2010/10/11
Reading dirty bits from /proc
signal SEGV (no mapping at the fault address) in check_ints at line 378
in file "test.c"
378 if (SEXPR_TO_INT(car(car(list))) != low) {
(dbx) print low
low = 1
(dbx) print list
list = 0x809d860
(dbx) print *list
*list = {
sexpr_car = 0xa84
sexpr_cdr = (nil)
}
=>[1] check_ints(list = 0x809d860, low = 1, up = 49), line 378 in "test.c"
[2] reverse_test_inner(data = 0x1), line 594 in "test.c"
[3] GC_call_with_gc_active(fn = 0x8052434 = &reverse_test_inner(void *data), client_data = 0x1), line 1588 in "misc.c"
[4] reverse_test_inner(data = (nil)), line 533 in "test.c"
[5] GC_do_blocking_inner(data = 0x8047634 "4$^E^H", context = 0x8047404), line 1618 in "misc.c"
[6] GC_with_callee_saves_pushed(fn = 0xfef6bdc0 = &GC_do_blocking_inner(ptr_t data, void *context), arg = 0x8047634 "4$^E^H"), line 273 in "mach_dep.c"
[7] GC_do_blocking(fn = 0x8052434 = &reverse_test_inner(void *data), client_data = (nil)), line 1644 in "misc.c"
[8] reverse_test(), line 644 in "test.c"
[9] run_one_test(), line 1190 in "test.c"
[10] main(), line 1424 in "test.c"
Building with gcc-4.4.5 with -O0 -g does not segfault, but does fail the
test:
Switched to incremental mode
Reading dirty bits from /proc
List reversal produced incorrect list - collector is broken
Test failed
(dbx) up
Current function is check_ints
(dbx) print list
list = 0x809c890
(dbx) print *list
*list = {
sexpr_car = 0x809c8a0
sexpr_cdr = 0x809c8b0
}
(dbx) print *list->sexpr_car
*list->sexpr_car = {
sexpr_car = 0xbd1
sexpr_cdr = (nil)
}
[1] __lwp_kill(0x1, 0x6), at 0xfeeaaec7
[2] _thr_kill(0x1, 0x6), at 0xfeea6644
[3] raise(0x6), at 0xfee529ab
[4] abort(0x80473c8, 0x80daf3c, 0x80473c8, 0x8051fa1, 0x8053ad7, 0x2), at 0xfee32111
[5] GC_abort(msg = 0x8053ad7 "Test failed"), line 1443 in "misc.c"
=>[6] check_ints(list = 0x809c890, low = 1, up = 49), line 381 in "test.c"
[7] reverse_test_inner(data = 0x1), line 594 in "test.c"
[8] GC_call_with_gc_active(fn = 0x80521d3 = &reverse_test_inner(void *data), client_data = 0x1), line 1588 in "misc.c"
[9] reverse_test_inner(data = (nil)), line 533 in "test.c"
[10] GC_do_blocking_inner(data = 0x80476f8 "\xd3!^E^H", context = 0x80474c8), line 1618 in "misc.c"
[11] GC_with_callee_saves_pushed(fn = 0xfef64fb8 = &GC_do_blocking_inner(ptr_t data, void *context), arg = 0x80476f8 "\xd3!^E^H"), line 273 in "mach_dep.c"
[12] GC_do_blocking(fn = 0x80521d3 = &reverse_test_inner(void *data), client_data = (nil)), line 1644 in "misc.c"
[13] reverse_test(), line 644 in "test.c"
[14] run_one_test(), line 1190 in "test.c"
[15] main(), line 1424 in "test.c"
Looking at the other issues now.
Peter
--
Peter O'Gorman
pogma at thewrittenword.com
More information about the Gc
mailing list