Subject: bug#9829: closed (Re: bug#9829: [bug #34616] Segfault when building against debug version of bdw-gc (patch offered))

From: [email-masked] (GNU bug Tracking System)
Date: Sun, 10 Mar 2013 20:14:03 +0000

Your bug report

#9829: [bug #34616] Segfault when building against debug version of bdw-gc (patch offered)

which was filed against the guile package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
9829: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=9829
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#9829: [bug #34616] Segfault when building against debug version of bdw-gc (patch offered)
From: Andy Wingo <[email-masked]>
To: [email-masked]
Date: Sun, 10 Mar 2013 21:12:51 +0100
List-Id: <debbugs-submit.debbugs.gnu.org>

This was fixed and closed in the savannah bug tracker:

commit 80fc43f2cf12c7a21a0533cc84e91059ef9d8170
Author: Ludovic Courtès <[email-masked]>
Date:   Sat Oct 22 13:25:11 2011 +0200

    Initialize `get_internal_run_time' before it is used.
    
    * libguile/init.c (scm_i_init_guile): Call `scm_init_stime' before
      `scm_init_gc'.  Fixes <https://savannah.gnu.org/bugs/?34616> reported
      by Bake Timmons.

-- 
http://wingolog.org/

Subject: [bug #34616] Segfault when building against debug version of bdw-gc (patch offered)
From: Bake Timmons <[email-masked]>
To: Bake Timmons <[email-masked]>, [email-masked]
Date: Sat, 22 Oct 2011 03:48:59 +0000
List-Id: <debbugs-submit.debbugs.gnu.org>

URL:
  <http://savannah.gnu.org/bugs/?34616>

                 Summary: Segfault when building against debug version of
bdw-gc (patch offered)
                 Project: Guile
            Submitted by: bt3
            Submitted on: Sat 22 Oct 2011 03:48:58 AM GMT
                Category: None
                Severity: 3 - Normal
              Item Group: None
                  Status: None
                 Privacy: Public
             Assigned to: None
             Open/Closed: Open
         Discussion Lock: Any

    _______________________________________________________

Details:

After installing a debugging version of bdwgc, I tried installing
Guile from trunk.  After running autogen.sh and configure, I added

#define GC_DEBUG 1

to config.h

Running make resulted in

/bin/bash: line 1:  8365 Broken pipe             cat alist.doc arbiters.doc
array-handle.doc array-map.doc arrays.doc async.doc backtrace.doc boolean.doc
bitvectors.doc bytevectors.doc chars.doc control.doc continuations.doc
debug.doc deprecated.doc deprecation.doc dynl.doc dynwind.doc eq.doc error.doc
eval.doc evalext.doc expand.doc extensions.doc feature.doc filesys.doc
fluids.doc foreign.doc fports.doc gc-malloc.doc gc.doc gettext.doc
generalized-arrays.doc generalized-vectors.doc goops.doc gsubr.doc
guardians.doc hash.doc hashtab.doc hooks.doc i18n.doc init.doc ioext.doc
keywords.doc list.doc load.doc macros.doc mallocs.doc memoize.doc modules.doc
numbers.doc objprop.doc options.doc pairs.doc ports.doc print.doc procprop.doc
procs.doc promises.doc r6rs-ports.doc random.doc rdelim.doc read.doc root.doc
rw.doc scmsigs.doc script.doc simpos.doc smob.doc sort.doc srcprop.doc
srfi-1.doc srfi-4.doc srfi-13.doc srfi-14.doc srfi-60.doc stackchk.doc
stacks.doc stime.doc strings.doc strorder.doc strports.doc struct.doc
symbols.doc threads.doc throw.doc trees.doc uniform.doc values.doc
variable.doc vectors.doc version.doc vports.doc weaks.doc dynl.doc posix.doc
net_db.doc socket.doc regex-posix.doc
      8366 Segmentation fault      | GUILE_AUTO_COMPILE=0
../meta/uninstalled-env guild snarf-check-and-output-texi >
guile-procedures.texi
make[3]: *** [guile-procedures.texi] Error 1

The backtrace of running meta/gdb-uninstalled-guile :

(gdb) bt
#0  0x00000000 in ?? ()
#1  0xb7f471d8 in scm_c_get_internal_run_time () at stime.c:269
#2  0xb7ee5111 in start_gc_timer (hook_data=<optimized out>,
fn_data=<optimized out>,
    data=<optimized out>) at gc.c:717
#3  start_gc_timer (hook_data=0x0, fn_data=0x0, data=0x0) at gc.c:712
#4  0xb7ef2c73 in scm_c_hook_run (hook=0xb7fdc5fc, data=0x0) at hooks.c:103
#5  0xb7ee4dc8 in run_before_gc_c_hook () at gc.c:204
#6  0xb7c8d63e in GC_notify_full_gc () at alloc.c:334
#7  0xb7c8d848 in GC_try_to_collect_inner (stop_func=0xb7c8d1ae
<GC_never_stop_func>)
    at alloc.c:429
#8  0xb7c8eb6e in GC_collect_or_expand (needed_blocks=1, ignore_off_page=0,
retry=0)
    at alloc.c:1215
#9  0xb7c8ee57 in GC_allocobj (gran=9, kind=1) at alloc.c:1302
#10 0xb7c94cca in GC_generic_malloc_inner (lb=72, k=1) at malloc.c:121
#11 0xb7c9031f in GC_debug_generic_malloc_inner (lb=12, k=1) at dbg_mlc.c:526
#12 0xb7c91d96 in GC_general_register_disappearing_link (link=0x813db50,
obj=0x8146a00)
    at finalize.c:175
#13 0xb7f6c6e8 in scm_weak_car_pair (car=0x8146a38, cdr=0x904) at weaks.c:66
#14 0xb7ef0a5d in scm_hash_fn_create_handle_x (table=0x80c2fd8,
obj=0x8146a38,
    init=0x904, hash_fn=0xb7f4fc40 <symbol_lookup_hash_fn>,
    assoc_fn=0xb7f50390 <symbol_lookup_assoc_fn>, closure=0x0) at
hashtab.c:720
#15 0xb7f4fd8f in intern_symbol (symbol=0x8146a38) at symbols.c:195
#16 scm_i_str2symbol (str=0xb7fbf1c0) at symbols.c:218
#17 0xb7f702fc in scm_init_posix () at ../libguile/posix.x:47
#18 0xb7ef64ff in scm_i_init_guile (base=0xbffff418) at init.c:454
#19 0xb7f51e88 in scm_i_init_thread_for_guile (base=0xbffff418,
parent=<optimized out>)
    at threads.c:795
#20 scm_i_init_thread_for_guile (base=0xbffff418, parent=0x0) at
threads.c:774
#21 0xb7f51ed8 in with_guile_and_parent (base=0xbffff418, data=0xbffff444)
    at threads.c:861
#22 0xb7c9b1f6 in GC_call_with_stack_base (fn=0xb7f51eb0
<with_guile_and_parent>,
    arg=0xbffff444) at misc.c:1535
#23 0xb7f51863 in scm_i_with_guile_and_parent (func=<optimized out>,
    data=<optimized out>, parent=0x0) at threads.c:911
#24 0xb7ef635f in scm_boot_guile (argc=1, argv=0xbffff554,
    main_func=0x8048790 <inner_main>, closure=0x0) at init.c:319
#25 0x0804870b in main (argc=1, argv=0xbffff554) at guile.c:70

scm_c_get_internal_run_time tries to run get_internal_run_time before
get_internal_run_time has been initialized w/ a value (a pointer to a
function).  There is no crash after moving the scm_init_stime call in
init.c to run before the scm_init_posix call.  Further (standard,
non-debugging) builds of Guile trunk have also succeeded after moving
up the scm_init_stime call in init.c .

    _______________________________________________________

File Attachments:

-------------------------------------------------------
Date: Sat 22 Oct 2011 03:48:58 AM GMT  Name: guile-gc-debug-patch  Size: 652B 
 By: bt3
Patch and commit message attached
<http://savannah.gnu.org/bugs/download.php?file_id=24182>
-------------------------------------------------------
Date: Sat 22 Oct 2011 03:48:58 AM GMT  Name: guile-gc-debug-patch.log  Size:
295B   By: bt3
Patch and commit message attached
<http://savannah.gnu.org/bugs/download.php?file_id=24183>

    _______________________________________________________

Reply to this item at:

  <http://savannah.gnu.org/bugs/?34616>

_______________________________________________
  Message sent via/by Savannah
  http://savannah.gnu.org/