[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