Menu

#315 amd64 debug build broken (gc aborts)

build problems
closed-fixed
clisp (524)
5
2014-11-07
2006-01-23
No

configure --with-debug

GNU gdb Red Hat Linux (6.3.0.0-0.30.1rh)
Copyright 2004 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public
License, and you are
welcome to change it and/or distribute copies of it
under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB. Type "show
warranty" for details.
This GDB was configured as
"x86_64-redhat-linux-gnu"...Using host libthread_db l
ibrary "/lib64/tls/libthread_db.so.1".

Breakpoint 1 at 0x43649b: file eval.d, line 4937.
Breakpoint 2 at 0x432e1b: file eval.d, line 4020.
Breakpoint 3 at 0x42df80: file eval.d, line 2887.
Breakpoint 4 at 0x43872c: file eval.d, line 5905.
Breakpoint 5 at 0x410054: file spvw_garcol.d, line 2430.
Hardware watchpoint 6: back_trace
Breakpoint 7 at 0x413a4b: file spvw.d, line 658.
Breakpoint 8 at 0x405e6c: file spvw.d, line 479.
Breakpoint 9 at 0x405f0c: file spvw.d, line 494.
Breakpoint 10 at 0x403558
Breakpoint 11 at 0x52d473: file error.d, line 349.
Breakpoint 12 at 0x52d3ca: file error.d, line 326.
Num Type Disp Enb Address What
1 breakpoint keep n 0x000000000043649b in
funcall at eval.d:4937
xout fun
2 breakpoint keep n 0x0000000000432e1b in apply
at eval.d:4020
xout fun
3 breakpoint keep n 0x000000000042df80 in eval
at eval.d:2887
xout form
4 breakpoint keep n 0x000000000043872c in
interpret_bytecode_
at
eval.d:5905
xout closure
5 breakpoint keep n 0x0000000000410054 in
gar_col at spvw_garcol.d:2430
6 hw watchpoint keep n back_trace
zbacktrace
continue
7 breakpoint keep y 0x0000000000413a4b in
fehler_notreached
at
spvw.d:658
8 breakpoint keep y 0x0000000000405e6c in
SP_ueber at spvw.d:479
9 breakpoint keep y 0x0000000000405f0c in
STACK_ueber at spvw.d:494
10 breakpoint keep y 0x0000000000403558
<_init@plt+336>
11 breakpoint keep y 0x000000000052d473 in
fehler at error.d:349
12 breakpoint keep y 0x000000000052d3ca in
prepare_error at error.d:326
Function "sigsegv_handler_failed" not defined.
.gdbinit:163: Error in sourced command file:
Undefined command: "endif". Try "help".
(gdb) run
Starting program:
/home/sds/src/clisp/current/build-x86_64-g/lisp.run
warning: linux_test_for_tracefork: unexpected result
from waitpid (22837, status
0x0)
warning: linux_test_for_tracefork: failed to kill child
Breakpoint 10 at 0x2a95a4d9e0
STACK depth: 8181
SP depth: 16777544
i i i i i i i ooooo o ooooooo ooooo
ooooo
I I I I I I I 8 8 8 8 8
o 8 8
I \ `+' / I 8 8 8 8
8 8
\ `-+-' / 8 8 8 ooooo
8oooo
`-__|__-' 8 8 8 8 8
| 8 o 8 8 o 8 8
------+------ ooooo 8oooooo ooo8ooo ooooo 8

Copyright (c) Bruno Haible, Michael Stoll 1992, 1993
Copyright (c) Bruno Haible, Marcus Daniels 1994-1997
Copyright (c) Bruno Haible, Pierpaolo Bernardi, Sam
Steingold 1998
Copyright (c) Bruno Haible, Sam Steingold 1999-2000
Copyright (c) Sam Steingold, Bruno Haible 2001-2005

WARNING: No initialization file specified.
Please try:
/home/sds/src/clisp/current/build-x86_64-g/lisp.run -M
lispinit.mem

WARNING: No installation directory specified.
Please try:
/home/sds/src/clisp/current/build-x86_64-g/lisp.run -B
/usr/local/li
b/clisp
> (load "init.lisp")

Breakpoint 10, 0x0000002a95a4d9e0 in abort () from
/lib64/tls/libc.so.6
(gdb) where
#0 0x0000002a95a4d9e0 in abort () from
/lib64/tls/libc.so.6
#1 0x000000000040d89c in gar_col_normal () at
spvw_garcol.d:1714
#2 0x000000000040fffb in do_gar_col_simple () at
spvw_garcol.d:2376
#3 0x00000000005423ba in with_gc_statistics
(fun=0x40ffe4 <do_gar_col_simple>)
at predtype.d:3137
#4 0x000000000041001f in gar_col_simple () at
spvw_garcol.d:2405
#5 0x0000000000410472 in make_space_gc_false (need=16,
heapptr=0x78a408)
at spvw_allocate.d:281
#6 0x0000000000410601 in allocate_cons () at
spvw_typealloc.d:49
#7 0x00000000004f1d44 in use_package_aux
(data=0x2a95d68128, sym=
{one_o = 1125899914600376}) at package.d:1615
#8 0x00000000004f1063 in map_symtab_c (fun=0x4f1a5c
<use_package_aux>,
data=0x2a95d68128, symtab={one_o =
6473938215429528}) at package.d:1383
#9 0x00000000004f1429 in use_package (packlist={one_o
= 18014453486678176},
pack={one_o = 3377713471610360}) at package.d:1459
#10 0x00000000004f4342 in C_use_package () at
package.d:2280
#11 0x0000000000430a39 in eval_subr (fun={one_o =
281474984365240})
at eval.d:3558
#12 0x000000000042e705 in eval1 (form={one_o =
18014453486678304})
at eval.d:3033
#13 0x000000000042e16b in eval (form={one_o =
18014453486678304})
at eval.d:2907
#14 0x0000000000425908 in eval_5env (form={one_o =
18014453486678304}, var_env=
{one_o = 1125899914525952}, fun_env={one_o =
1125899914525952},
block_env={one_o = 1125899914525952}, go_env={one_o
= 1125899914525952},
decl_env={one_o = 18014453486820544}) at eval.d:1024
#15 0x00000000004259a7 in eval_noenv (form={one_o =
18014453486678304})
at eval.d:1036
#16 0x00000000005283b0 in C_load () at debug.d:603
#17 0x0000000000430a39 in eval_subr (fun={one_o =
281474984348048})
at eval.d:3558
#18 0x000000000042e705 in eval1 (form={one_o =
18014453486819584})
at eval.d:3033
#19 0x000000000042e16b in eval (form={one_o =
18014453486819584})
at eval.d:2907
#20 0x0000000000526fd2 in C_read_eval_print () at
debug.d:408
#21 0x000000000043740a in funcall_subr (fun={one_o =
281474984347936},
args_on_stack=1) at eval.d:5339
#22 0x00000000004364b5 in funcall (fun={one_o =
281474984347936},
args_on_stack=1) at eval.d:4938
#23 0x0000000000527639 in driver () at debug.d:489
#24 0x000000000042346f in main_actions (p=0x78a560) at
spvw.d:3205
#25 0x000000000041ce47 in main (argc=1,
argv=0x7fbfffb008) at spvw.d:3337
(gdb) c
Continuing.

Program received signal SIGABRT, Aborted.
0x0000002a95a4c445 in raise () from /lib64/tls/libc.so.6
(gdb)
Continuing.

Object 0x333a0c000 marked!!

Breakpoint 10, 0x0000002a95a4d9e0 in abort () from
/lib64/tls/libc.so.6
(gdb) where
#0 0x0000002a95a4d9e0 in abort () from
/lib64/tls/libc.so.6
#1 0x000000000040cee4 in gc_unmarkcheck () at
spvw_garcol.d:1427
#2 0x000000000040d08b in gar_col_normal () at
spvw_garcol.d:1528
#3 0x000000000040fffb in do_gar_col_simple () at
spvw_garcol.d:2376
#4 0x00000000005423ba in with_gc_statistics
(fun=0x40ffe4 <do_gar_col_simple>)
at predtype.d:3137
#5 0x000000000041001f in gar_col_simple () at
spvw_garcol.d:2405
#6 0x00000000004102fe in make_space_gc_true (need=88,
heapptr=0x78a3e8)
at spvw_allocate.d:219
#7 0x0000000000410d28 in allocate_s32string (len=18)
at spvw_typealloc.d:198
#8 0x0000000000456918 in n_char_to_string (
srcptr=0x59db3b "Exiting on signal ", blen=18,
encoding=
{one_o = 3377713471619128}) at encoding.d:1966
#9 0x00000000004569e4 in asciz_to_string (
asciz=0x59db3b "Exiting on signal ",
encoding={one_o = 3377713471619128})
at encoding.d:1999
#10 0x0000000000414392 in CLSTEXT (asciz=0x59db3b
"Exiting on signal ")
at spvw_language.d:289
#11 0x00000000004067e8 in quit_on_signal (sig=6) at
spvw_sigterm.d:16
#12 <signal handler called>
#13 0x0000002a95a4c445 in raise () from
/lib64/tls/libc.so.6
#14 0x0000002a95a4dbb3 in abort () from
/lib64/tls/libc.so.6
#15 0x000000000040d89c in gar_col_normal () at
spvw_garcol.d:1714
#16 0x000000000040fffb in do_gar_col_simple () at
spvw_garcol.d:2376
#17 0x00000000005423ba in with_gc_statistics
(fun=0x40ffe4 <do_gar_col_simple>)
at predtype.d:3137
#18 0x000000000041001f in gar_col_simple () at
spvw_garcol.d:2405
#19 0x0000000000410472 in make_space_gc_false (need=16,
heapptr=0x78a408)
at spvw_allocate.d:281
#20 0x0000000000410601 in allocate_cons () at
spvw_typealloc.d:49
#21 0x00000000004f1d44 in use_package_aux
(data=0x2a95d68128, sym=
{one_o = 1125899914600376}) at package.d:1615
#22 0x00000000004f1063 in map_symtab_c (fun=0x4f1a5c
<use_package_aux>,
data=0x2a95d68128, symtab={one_o =
6473938215429528}) at package.d:1383
#23 0x00000000004f1429 in use_package (packlist={one_o
= 18014453486678176},
pack={one_o = 3377713471610360}) at package.d:1459
#24 0x00000000004f4342 in C_use_package () at
package.d:2280
#25 0x0000000000430a39 in eval_subr (fun={one_o =
281474984365240})
at eval.d:3558
#26 0x000000000042e705 in eval1 (form={one_o =
18014453486678304})
at eval.d:3033
#27 0x000000000042e16b in eval (form={one_o =
18014453486678304})
at eval.d:2907
#28 0x0000000000425908 in eval_5env (form={one_o =
18014453486678304}, var_env=
{one_o = 1125899914525952}, fun_env={one_o =
1125899914525952},
block_env={one_o = 1125899914525952}, go_env={one_o
= 1125899914525952},
decl_env={one_o = 18014453486820544}) at eval.d:1024
#29 0x00000000004259a7 in eval_noenv (form={one_o =
18014453486678304})
at eval.d:1036
#30 0x00000000005283b0 in C_load () at debug.d:603
#31 0x0000000000430a39 in eval_subr (fun={one_o =
281474984348048})
at eval.d:3558
#32 0x000000000042e705 in eval1 (form={one_o =
18014453486819584})
at eval.d:3033
#33 0x000000000042e16b in eval (form={one_o =
18014453486819584})
at eval.d:2907
#34 0x0000000000526fd2 in C_read_eval_print () at
debug.d:408
#35 0x000000000043740a in funcall_subr (fun={one_o =
281474984347936},
args_on_stack=1) at eval.d:5339
#36 0x00000000004364b5 in funcall (fun={one_o =
281474984347936},
args_on_stack=1) at eval.d:4938
#37 0x0000000000527639 in driver () at debug.d:489
#38 0x000000000042346f in main_actions (p=0x78a560) at
spvw.d:3205
#39 0x000000000041ce47 in main (argc=1,
argv=0x7fbfffb008) at spvw.d:3337
(gdb)

Discussion

  • Sam Steingold

    Sam Steingold - 2007-10-15

    Logged In: YES
    user_id=5735
    Originator: YES

    it appears that without DEBUG_SPVW the build proceeds successfully.
    I will disable DEBUG_SPVW on x86_64 in makemake,
    but this is not a fix just a poor workaround.

     
  • Sam Steingold

    Sam Steingold - 2008-02-26

    Logged In: YES
    user_id=5735
    Originator: YES

    Bruno:
    | IIRC the problem of DEBUG_SPVW is not with 64-bit per so, but with TYPECODES.

    AHA!

    the assertion fails (I commented it out and now it works):

    ~ #if defined(SPVW_MIXED_BLOCKS)
    ~ #ifdef TYPECODES
    ~ #define update(objptr) \ ~ { var tint type = mtypecode(*(gcv_object_t*)objptr); \ ~ if (!gcinvariant_type_p(type)) /* un-movable -> do nothing */ \ ~ switch (type) { \ ~ default: { /* object of variable length */ \ ~ var object obj = *(gcv_object_t*)objptr; /* object */ \ ~ if (!in_old_generation(obj,type,0)) \ ~ if (marked(ThePointer(obj))) { /* marked? */ \ ~ var object newptr = \

    type_untype_object(type,untype(*(gcv_object_t*)ThePointer(obj))); \

    /*DEBUG_SPVW_ASSERT(is_valid_varobject_address(as_oint(newptr))\ ~ || is_valid_stack_address(as_oint(newptr)));*/ \ ~ *(gcv_object_t*)objptr = newptr; \ ~ } \ ~ } \ ~ break; \ ~ case_pair: { /* Two-Pointer-Object */ \ ~ var object obj = *(gcv_object_t*)objptr; /* object */ \ ~ if (!in_old_generation(obj,type,1)) { \ ~ /* for later update, insert into its list: */ \ ~ *(gcv_object_t*)objptr = *(gcv_object_t*)ThePointer(obj); \ ~ *(gcv_object_t*)ThePointer(obj) =
    with_mark_bit(type_pointer_object(type,objptr)); \ ~ } \ ~ } \ ~ break; \ ~ } \ ~ }
    ~ #else

    [../src/spvw_garcol.d:1692] assertion failure:
    is_valid_varobject_address(as_oint(newptr)) ||
    is_valid_stack_address(as_oint(newptr))
    ((aint)(((newptr).one_o)) >= mem.heaps[0].pages.start &&
    (aint)(((newptr).one_o)) < mem.heaps[0].pages.end) ||
    ((aint)(((newptr).one_o)) >= (aint)__SP && (aint)(((newptr).one_o)) <=
    (aint)SP_anchor)

    #2 0x000000000040fa4a in gar_col_normal () at ../src/spvw_garcol.d:1692
    1692 update_STACKs();
    (gdb) p obj
    $1 = {one_o = 1125913658560528}
    (gdb) p newptr
    $2 = {one_o = 1125913658381048}
    (gdb) p mem
    $3 = {MEMBOT = 47536484393088, heaps = {{pages = {start = 13751390208,
    ~ end = 13751728984, gcpriv = {firstmarked = {one_o = 13751390208},
    ~ l = 13751390208, d = 13751390208, next = 0x333a59000}},
    ~ heap_limit = 13751730176}, {pages = {start = 54977268576,
    ~ end = 54977454080, gcpriv = {firstmarked = {one_o = 140448},
    ~ l = 140448, d = 140448, next = 0x224a0}},
    ~ heap_limit = 54977265664}}, total_room = 8}
    (gdb) p (aint)__SP
    $4 = 140736271482160
    (gdb) p (aint)SP_anchor
    $5 = 140736271512432
    (gdb)

     
  • Sam Steingold

    Sam Steingold - 2008-12-30

    I decided to close this bug: the workaround of disabling gc_unmarkcheck for TYPECODES is satisfactory.

     
  • Sam Steingold

    Sam Steingold - 2008-12-30
    • assigned_to: haible --> sds
    • status: open --> closed-fixed
     
  • Sam Steingold

    Sam Steingold - 2009-01-05
    • assigned_to: sds --> vtz
    • status: closed-fixed --> open
     
  • Vladimir Tzankov

    It's fixed in the CVS. Wrong addresses were being passed to is_valid_varobject_address() in some TYPECODES builds.

     
  • Vladimir Tzankov

    • status: open --> closed-fixed
     

Log in to post a comment.