GNU bug report logs - #16641
Assert triggered (hashtab.c:137) - Guile-2.0.9

Previous Next

Package: guile;

Reported by: Cole Minaar <cole.minaar <at> concurrent.co.za>

Date: Tue, 4 Feb 2014 16:53:02 UTC

Severity: normal

Done: Andy Wingo <wingo <at> pobox.com>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 16641 in the body.
You can then email your comments to 16641 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-guile <at> gnu.org:
bug#16641; Package guile. (Tue, 04 Feb 2014 16:53:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Cole Minaar <cole.minaar <at> concurrent.co.za>:
New bug report received and forwarded. Copy sent to bug-guile <at> gnu.org. (Tue, 04 Feb 2014 16:53:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Cole Minaar <cole.minaar <at> concurrent.co.za>
To: bug-guile <at> gnu.org
Subject: Assert triggered (hashtab.c:137) - Guile-2.0.9
Date: Tue, 4 Feb 2014 10:43:48 +0200 (SAST)
Hi,

We have a system running and was fine for about a month, all the code paths should have been exercised, and the system then threw an assert when it was not processing any requests.

The system runs in a loop and reads values from a database, and also forces a garbage collect every so often.

The assert error thrown:
Assertion failed: removed <= len, file hashtab.c, line 137

The following libraries are used:
gcc             4.7.2   
bdw-gc          7.2     
libtool         2.2.10  
gmp             5.0.2   
libiconv        1.14
libunistring    0.9.3   
libffi          3.0.10  
readline        6.1
guile           2.0.9   
guile-lib       0.2.2   
guile-dbi       2.1.5   
mysql           5.1.53  
guile-dbd-mysql 2.1.4
guile-xmlrpc    0.2.1   

The configure flags for guile-2.0.9:
( cd guile-2.0.9 ; CONFIG_SHELL=/bin/bash BDW_GC_CFLAGS="-I/opt/cs/components/3rd/bdw-gc/7.2.7e16628s16377h0398//include/" BDW_GC_LIBS="-L/opt/cs/components/3rd/bdw-gc/7.2.7e16628s16377h0398//lib -lgc" LIBFFI_CFLAGS="-I/opt/cs/components/3rd/libffi/3.0.10f3e16407s16377h0398//include/" LIBFFI_LIBS="-L/opt/cs/components/3rd/libffi/3.0.10f3e16407s16377h0398//lib -lffi" LD_LIBRARY_PATH=/opt/cs/components/3rd/gcc/4.7.2f3e16377s0h0000/lib/amd64/:/opt/cs/components/3rd/gcc/4.7.2f3e16377s0h0000/lib/:/opt/cs/components/3rd/bdw-gc/7.2.7e16628s16377h0398/lib/amd64/:/opt/cs/components/3rd/bdw-gc/7.2.7e16628s16377h0398/lib/:/opt/cs/components/3rd/libtool/2.2.10f3e16399s16377h0398/lib/amd64/:/opt/cs/components/3rd/libtool/2.2.10f3e16399s16377h0398/lib/:/opt/cs/components/3rd/gmp/5.0.2f3e16407s16377h0398/lib/amd64/:/opt/cs/components/3rd/gmp/5.0.2f3e16407s16377h0398/lib/:/opt/cs/components/3rd/libiconv/1.14.0f3e16407s16377h0398/lib/amd64/:/opt/cs/components/3rd/libiconv/1.14.0f3e16407s16377h0398/lib/:/opt/cs/components/3rd/libunistring/0.9.3f3e16407s32784h27b7/lib/amd64/:/opt/cs/components/3rd/libunistring/0.9.3f3e16407s32784h27b7/lib/:/opt/cs/components/3rd/libffi/3.0.10f3e16407s16377h0398/lib/amd64/:/opt/cs/components/3rd/libffi/3.0.10f3e16407s16377h0398/lib/:/opt/cs/components/3rd/readline/6.1.0f3e16318s16377h0398/lib/amd64/:/opt/cs/components/3rd/readline/6.1.0f3e16318s16377h0398/lib/:/opt/cs/components/3rd/make/3.81.0f3e16404s0h0000//lib/amd64:/opt/cs/components/3rd/make/3.81.0f3e16404s0h0000//lib:   AR="gar"   RANLIB="granlib"   CC="gcc-4.7.2f3e16377s0h0000"   CXX="g++-4.7.2f3e16377s0h0000"   LD="/usr/ccs/bin/ld"   INSTALL="/opt/csw/bin/ginstall  -g cs"   INSTALL_DATA="/opt/csw/bin/ginstall  -g cs -m 0660"   INSTALL_PROGRAM="/opt/csw/bin/ginstall  -g cs -m 0770"   INSTALL_DIRECTORY="cs-dirs-install  -g cs -m 2770"   INSTALL_DIR="cs-dirs-install  -g cs -m 2770"   CXXFLAGS="-m64"   CFLAGS="-m64 -O2"   LDFLAGS="-m64" /opt/cs/components/3rd/make/3.81.0f3e16404s0h0000/bin/make MAKE_SHELL=bash SHELL=bash V=1) 


The configure flags and arguments for bdw-gc-7.2:
          AR="gar"   RANLIB="granlib"   CC="gcc-4.7.2f3e16377s0h0000"   CXX="g++-4.7.2f3e16377s0h0000"   LD="/usr/ccs/bin/ld"   INSTALL="/opt/csw/bin/ginstall  -g cs"   INSTALL_DATA="/opt/csw/bin/ginstall  -g cs -m 0660"   INSTALL_PROGRAM="/opt/csw/bin/ginstall  -g cs -m 0770"   INSTALL_DIRECTORY="cs-dirs-install  -g cs -m 2770"   INSTALL_DIR="cs-dirs-install  -g cs -m 2770"   CXXFLAGS="-m64"   CFLAGS="-m64"   LDFLAGS="-m64" \
        CONFIG_SHELL=/bin/bash /bin/bash configure --prefix=/opt/cs/components/3rd/bdw-gc/7.2.7e16628s16377h0398 --enable-threads=posix --enable-thread-local-alloc --enable-parallel-mark --disable-dependency-tracking --enable-large-config --enable-handle-fork --enable-gc-assertions


If you have any suggestions I would be glad to hear.

Regards
/Cole




Information forwarded to bug-guile <at> gnu.org:
bug#16641; Package guile. (Tue, 04 Feb 2014 17:08:02 GMT) Full text and rfc822 format available.

Message #8 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Cole Minaar <cole.minaar <at> concurrent.co.za>
To: bug-guile <at> gnu.org
Subject: Re: Assert triggered (hashtab.c:137) - Guile-2.0.9
Date: Tue, 4 Feb 2014 11:41:39 +0200 (SAST)
Hi,

Sorry, one correction, its bdw-gc-7.2d.

Regards
/Cole

----- Original Message -----
From: "Cole Minaar" <cole.minaar <at> concurrent.co.za>
To: bug-guile <at> gnu.org
Sent: Tuesday, February 4, 2014 10:43:48 AM
Subject: Assert triggered (hashtab.c:137) - Guile-2.0.9

Hi,

We have a system running and was fine for about a month, all the code paths should have been exercised, and the system then threw an assert when it was not processing any requests.

The system runs in a loop and reads values from a database, and also forces a garbage collect every so often.

The assert error thrown:
Assertion failed: removed <= len, file hashtab.c, line 137

The following libraries are used:
gcc             4.7.2   
bdw-gc          7.2     
libtool         2.2.10  
gmp             5.0.2   
libiconv        1.14
libunistring    0.9.3   
libffi          3.0.10  
readline        6.1
guile           2.0.9   
guile-lib       0.2.2   
guile-dbi       2.1.5   
mysql           5.1.53  
guile-dbd-mysql 2.1.4
guile-xmlrpc    0.2.1   

The configure flags for guile-2.0.9:
( cd guile-2.0.9 ; CONFIG_SHELL=/bin/bash BDW_GC_CFLAGS="-I/opt/cs/components/3rd/bdw-gc/7.2.7e16628s16377h0398//include/" BDW_GC_LIBS="-L/opt/cs/components/3rd/bdw-gc/7.2.7e16628s16377h0398//lib -lgc" LIBFFI_CFLAGS="-I/opt/cs/components/3rd/libffi/3.0.10f3e16407s16377h0398//include/" LIBFFI_LIBS="-L/opt/cs/components/3rd/libffi/3.0.10f3e16407s16377h0398//lib -lffi" LD_LIBRARY_PATH=/opt/cs/components/3rd/gcc/4.7.2f3e16377s0h0000/lib/amd64/:/opt/cs/components/3rd/gcc/4.7.2f3e16377s0h0000/lib/:/opt/cs/components/3rd/bdw-gc/7.2.7e16628s16377h0398/lib/amd64/:/opt/cs/components/3rd/bdw-gc/7.2.7e16628s16377h0398/lib/:/opt/cs/components/3rd/libtool/2.2.10f3e16399s16377h0398/lib/amd64/:/opt/cs/components/3rd/libtool/2.2.10f3e16399s16377h0398/lib/:/opt/cs/components/3rd/gmp/5.0.2f3e16407s16377h0398/lib/amd64/:/opt/cs/components/3rd/gmp/5.0.2f3e16407s16377h0398/lib/:/opt/cs/components/3rd/libiconv/1.14.0f3e16407s16377h0398/lib/amd64/:/opt/cs/components/3rd/libiconv/1.14.0f3e16407s16377h0398/lib/:/opt/cs/components/3rd/libunistring/0.9.3f3e16407s32784h27b7/lib/amd64/:/opt/cs/components/3rd/libunistring/0.9.3f3e16407s32784h27b7/lib/:/opt/cs/components/3rd/libffi/3.0.10f3e16407s16377h0398/lib/amd64/:/opt/cs/components/3rd/libffi/3.0.10f3e16407s16377h0398/lib/:/opt/cs/components/3rd/readline/6.1.0f3e16318s16377h0398/lib/amd64/:/opt/cs/components/3rd/readline/6.1.0f3e16318s16377h0398/lib/:/opt/cs/components/3rd/make/3.81.0f3e16404s0h0000//lib/amd64:/opt/cs/components/3rd/make/3.81.0f3e16404s0h0000//lib:   AR="gar"   RANLIB="granlib"   CC="gcc-4.7.2f3e16377s0h0000"   CXX="g++-4.7.2f3e16377s0h0000"   LD="/usr/ccs/bin/ld"   INSTALL="/opt/csw/bin/ginstall  -g cs"   INSTALL_DATA="/opt/csw/bin/ginstall  -g cs -m 0660"   INSTALL_PROGRAM="/opt/csw/bin/ginstall  -g cs -m 0770"   INSTALL_DIRECTORY="cs-dirs-install  -g cs -m 2770"   INSTALL_DIR="cs-dirs-install  -g cs -m 2770"   CXXFLAGS="-m64"   CFLAGS="-m64 -O2"   LDFLAGS="-m64" /opt/cs/components/3rd/make/3.81.0f3e16404s0h0000/bin/make MAKE_SHELL=bash SHELL=bash V=1) 


The configure flags and arguments for bdw-gc-7.2:
          AR="gar"   RANLIB="granlib"   CC="gcc-4.7.2f3e16377s0h0000"   CXX="g++-4.7.2f3e16377s0h0000"   LD="/usr/ccs/bin/ld"   INSTALL="/opt/csw/bin/ginstall  -g cs"   INSTALL_DATA="/opt/csw/bin/ginstall  -g cs -m 0660"   INSTALL_PROGRAM="/opt/csw/bin/ginstall  -g cs -m 0770"   INSTALL_DIRECTORY="cs-dirs-install  -g cs -m 2770"   INSTALL_DIR="cs-dirs-install  -g cs -m 2770"   CXXFLAGS="-m64"   CFLAGS="-m64"   LDFLAGS="-m64" \
        CONFIG_SHELL=/bin/bash /bin/bash configure --prefix=/opt/cs/components/3rd/bdw-gc/7.2.7e16628s16377h0398 --enable-threads=posix --enable-thread-local-alloc --enable-parallel-mark --disable-dependency-tracking --enable-large-config --enable-handle-fork --enable-gc-assertions


If you have any suggestions I would be glad to hear.

Regards
/Cole




Information forwarded to bug-guile <at> gnu.org:
bug#16641; Package guile. (Wed, 05 Feb 2014 15:58:02 GMT) Full text and rfc822 format available.

Message #11 received at 16641 <at> debbugs.gnu.org (full text, mbox):

From: Mark H Weaver <mhw <at> netris.org>
To: Cole Minaar <cole.minaar <at> concurrent.co.za>
Cc: 16641 <at> debbugs.gnu.org
Subject: Re: bug#16641: Assert triggered (hashtab.c:137) - Guile-2.0.9
Date: Wed, 05 Feb 2014 10:56:50 -0500
Also: this is on Solaris 10u10.  Cole mentioned that on IRC.

     Mark




Reply sent to Andy Wingo <wingo <at> pobox.com>:
You have taken responsibility. (Tue, 21 Jun 2016 12:59:02 GMT) Full text and rfc822 format available.

Notification sent to Cole Minaar <cole.minaar <at> concurrent.co.za>:
bug acknowledged by developer. (Tue, 21 Jun 2016 12:59:02 GMT) Full text and rfc822 format available.

Message #16 received at 16641-done <at> debbugs.gnu.org (full text, mbox):

From: Andy Wingo <wingo <at> pobox.com>
To: Mark H Weaver <mhw <at> netris.org>
Cc: Cole Minaar <cole.minaar <at> concurrent.co.za>, 16641-done <at> debbugs.gnu.org
Subject: Re: bug#16641: Assert triggered (hashtab.c:137) - Guile-2.0.9
Date: Tue, 21 Jun 2016 14:58:17 +0200
On Wed 05 Feb 2014 16:56, Mark H Weaver <mhw <at> netris.org> writes:

> Also: this is on Solaris 10u10.  Cole mentioned that on IRC.

On the one hand I don't understand how this can happen.  On the other, I
unfortunately don't have faith in the buckets-and-chains weak table
implementation in 2.0; it usually works but it's gnarly and is a
threading nightmare, and accesses disappearing links outside the alloc
lock.  See for example:

  http://article.gmane.org/gmane.comp.programming.garbage-collection.boehmgc/4789

In 2.2 the weak table is rewritten to not require the "vacuum" phase and
to be threadsafe.  That was my best effort at fixing this bug but I
couldn't do it with some of the constraints in 2.0.  For that reason I
am closing this one but feel free to re-open it if you find available
hackpower to work towards a solution for 2.0.

Andy




bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Wed, 20 Jul 2016 11:24:04 GMT) Full text and rfc822 format available.

This bug report was last modified 7 years and 293 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.