From: Boris S. <agr...@ya...> - 2007-10-25 23:24:59
|
Hi. Sorry to tell you, I have got the following effect in SBCL running on FreeBSD/x86 (6.2-STABLE). Trying to load the BerkeleyDB dynamic library libdb-4.5.so (and libdb-4.6.so) results in a crash and fallback to LDB (in newer versions, at least since 1.0.9; in 1.0.3 the same input caused SBCL to freeze until SIGKILL). This is only the case when SBCL has been built with thread support (thus, (MEMBER :SB-THREAD *FEATURES*) ), and the effect does not reproduce on either Linux/x86 (2.6.22) or Darwin/ppc (8.10.0). At this moment I have no access to other platforms; under FreeBSD/x86, I could reproduce it on two distinct installations. Also, earlier versions of libdb load quite normally. Follows a session transcript. Thank you in advance for your attention, -- B.Sm. P.S. The dynamic library in question is used by at least one project from common-lisp.net, cl-berkeley-db. ================================================== 23:51:12 bsm@dpworks:~ $ sbcl This is SBCL 1.0.10, an implementation of ANSI Common Lisp. More information about SBCL is available at <http://www.sbcl.org/>. SBCL is free software, provided as is, with absolutely no warranty. It is mostly in the public domain; some portions are provided under BSD-style licenses. See the CREDITS and COPYING files in the distribution for more information. * (format t "~&~{~A~%~}" (list (software-type) (software-version) (machine-type))) FreeBSD 6.2-STABLE X86 NIL * *features* (:SB-THREAD :ANSI-CL :COMMON-LISP :SBCL :SB-DOC :SB-TEST :SB-LDB :SB-PACKAGE-LOCKS :SB-UNICODE :SB-EVAL :SB-SOURCE-LOCATIONS :IEEE-FLOATING-POINT :X86 :UNIX :BSD :ELF :FREEBSD :GCC-TLS :RESTORE-TLS-SEGMENT-REGISTER-FROM-CONTEXT :GENCGC :STACK-GROWS-DOWNWARD-NOT-UPWARD :C-STACK-IS-CONTROL-STACK :COMPARE-AND-SWAP-VOPS :UNWIND-TO-FRAME-AND-CALL-VOP :STACK-ALLOCATABLE-CLOSURES :ALIEN-CALLBACKS :LINKAGE-TABLE :OS-PROVIDES-DLOPEN :OS-PROVIDES-DLADDR :OS-PROVIDES-PUTWC :OS-PROVIDES-BLKSIZE-T) * (load-shared-object "/usr/local/lib/db45/libdb-4.5.so") fatal error encountered in SBCL pid 49432(tid 134648064): GC invariant lost, file "gencgc.c", line 827 LDB monitor ldb> backtrace Backtrace: 0: Foreign function ldb_monitor, fp = 0x283ad8f8, ra = 0x8055887 1: Foreign function lose, fp = 0x283ad918, ra = 0x8053a9f 2: Foreign function gc_alloc_update_page_tables, fp = 0x283ad958, ra = 0x805a839 3: Foreign function gc_alloc_with_region, fp = 0x283ad988, ra = 0x805b428 4: Foreign function alloc, fp = 0x283ad9a8, ra = 0x805dd7b 5: Foreign function alloc_overflow_edx, fp = 0x283ad9e8, ra = 0x805e38c 6: SB-SYS::MEMORY-FAULT-ERROR 7: (SB-C::TL-XEP SB-SYS::MEMORY-FAULT-ERROR) 8: Foreign function call_into_lisp, fp = 0x283adaa4, ra = 0x805e18c 9: Foreign function post_signal_tramp, fp = 0x283adadc, ra = 0x805e3e8 10: Foreign function _pthread_mutex_trylock, fp = 0x283adb2c, ra = 0x280a030d 11: Foreign function pthread_mutex_lock, fp = 0x283adb5c, ra = 0x280a068a 12: Foreign function gc_alloc_update_page_tables, fp = 0x283adb9c, ra = 0x805a671 13: Foreign function gc_alloc_with_region, fp = 0x283adbcc, ra = 0x805b428 14: Foreign function alloc, fp = 0x283adbec, ra = 0x805dd7b 15: Foreign function alloc_overflow_eax, fp = 0x283adc24, ra = 0x805e35c 16: SB-IMPL::REPL-FUN 17: (SB-C::TL-XEP SB-IMPL::REPL-FUN) 18: (COMMON-LISP::LAMBDA ()) 19: (SB-C::XEP (COMMON-LISP::LAMBDA ())) 20: SB-IMPL::%WITH-REBOUND-IO-SYNTAX 21: SB-IMPL::TOPLEVEL-REPL 22: SB-IMPL::TOPLEVEL-INIT 23: (COMMON-LISP::LABELS SB-IMPL::RESTART-LISP) 24: Foreign fp = 0x283adf88, ra = 0x80680c0 ldb> regs CSP = 0x00000000 CFP = 0x00000000 ALLOC = 0x616d4000 ldb> |
From: Daniel H. <dhe...@te...> - 2007-10-27 00:09:22
|
What are the results of the following shell commands? > file /usr/local/lib/db45/libdb-4.5.so > ldd /usr/local/lib/db45/libdb-4.5.so > file `which sbcl` > ldd `which sbcl` I wonder whether this in an SBCL issue, or a more general linker failure... - Daniel On Fri, 26 Oct 2007, Boris Smilga wrote: > Sorry to tell you, I have got the following effect in SBCL > running on FreeBSD/x86 (6.2-STABLE). Trying to load the > BerkeleyDB dynamic library libdb-4.5.so (and libdb-4.6.so) > results in a crash and fallback to LDB (in newer versions, at > least since 1.0.9; in 1.0.3 the same input caused SBCL to freeze > until SIGKILL). This is only the case when SBCL has been built > with thread support (thus, (MEMBER :SB-THREAD *FEATURES*) ), and > the effect does not reproduce on either Linux/x86 (2.6.22) or > Darwin/ppc (8.10.0). At this moment I have no access to other > platforms; under FreeBSD/x86, I could reproduce it on two > distinct installations. Also, earlier versions of libdb load quite > normally. > > Follows a session transcript. > Thank you in advance for your attention, > -- B.Sm. ... > 23:51:12 bsm@dpworks:~ $ sbcl > This is SBCL 1.0.10, an implementation of ANSI Common Lisp. ... > * (load-shared-object "/usr/local/lib/db45/libdb-4.5.so") > > fatal error encountered in SBCL pid 49432(tid 134648064): > GC invariant lost, file "gencgc.c", line 827 |
From: NIIMI S. <sa...@sa...> - 2007-10-27 02:12:54
|
Hi, Boris Smilga wrote: > Sorry to tell you, I have got the following effect in SBCL > running on FreeBSD/x86 (6.2-STABLE). Trying to load the > BerkeleyDB dynamic library libdb-4.5.so (and libdb-4.6.so) > results in a crash and fallback to LDB (in newer versions, at > least since 1.0.9; in 1.0.3 the same input caused SBCL to freeze > until SIGKILL). This is only the case when SBCL has been built > with thread support (thus, (MEMBER :SB-THREAD *FEATURES*) ), and > the effect does not reproduce on either Linux/x86 (2.6.22) or > Darwin/ppc (8.10.0). At this moment I have no access to other > platforms; under FreeBSD/x86, I could reproduce it on two > distinct installations. Also, earlier versions of libdb load quite > normally. This is because libdb-4.5.so is linked against libpthread.so, whereas sbcl is linked against libthr.so. Please try to add following lines to /etc/libmap.conf: libpthread.so.2 libthr.so.2 libpthread.so libthr.so Thanks, -- NIIMI Satoshi |