[elephant-devel] Elephant/BDB problems on recent 64-bit Linux systems

Ian Eslick eslick at media.mit.edu
Tue Jan 4 05:44:47 UTC 2011


Hi Petter,

Any progress since you wrote this?  Tracking down these kinds of errors is nasty - I had to do a bunch of it a few years ago when I was changing the serialization code and messing around with the serializer's bits and bytes.  I'm afraid I don't have a good idea here.  Was your problem in clojure also involving Berkeley DB?

Cheers,
Ian

On Dec 15, 2010, at 10:30 PM, Petter Gustad wrote:

> 
> Hi,
> 
> I'm experiencing problems when I try to run Elephant with the Berkeley
> DB backend on certain recent 64-bit Gentoo systems. I've enclosed a
> sample script which will download and build SBCL, Elephant, and then
> run a small test.
> 
> 
> System A: Core-2 Duo somewhat older Gentoo.
>          /usr/bin/db4.7_deadlock -V
>          Berkeley DB 4.7.25: (2010-08-25)
>          gcc 4.1.2
> 
> System B: Core-2 Duo recent Gentoo installation
>          /usr/bin/db4.7_deadlock -V
>          Berkeley DB 4.7.25: (2010-11-18)
>          gcc 4.4.4
> 
> System C: Atom recent Gentoo installation
>          /usr/bin/db4.7_deadlock -V
>          Berkeley DB 4.7.25: (2010-11-18)
>          gcc 4.4.4
> 
> System D: Core-2 Quad Gentoo (somewhere between A and B)
>          /usr/bin/db4.7_deadlock -V
>          Berkeley DB 4.7.25: (2010-12-14)
>          gcc 4.3.2
> 
> 
> A:  OK (*** GOT KEY ("Zappa rules!") IN SECOND INVOCATION)
> B:  Unhandled memory fault at #x7D0.
> C:  Unhandled memory fault at #x7D0.
> D:  *** GOT KEY ("Zappa rules!") IN SECOND INVOCATION
> 
> Then B gcc was downgraded to 4.1.2. The Berkeley db was then
> recompiled, all .fasl files were deleted, and the result was still:
> 
>  Unhandled memory fault at #x7D0.
> 
> This occurs at:
> (open-store cl-user::+ele-storage+)
> 
> I'm also getting a similar failure with Clojoure so I don't think it's
> releated to SBCL.
> 
> Have anybody else experienced these kinds of problems, or have any
> clues as what the problem might be?
> 
> //Petter
> P.S. The script will install QuickLisp if it's not installed
> 
> #!/bin/sh
> 
> # http://prdownloads.sourceforge.net/sbcl/sbcl-1.0.44-x86-64-linux-binary.tar.bz2
> # http://prdownloads.sourceforge.net/sbcl/sbcl-1.0.44-x86-linux-binary.tar.bz2
> # http://downloads.sourceforge.net/project/sbcl/sbcl/1.0.44/sbcl-1.0.44-source.tar.bz2
> 
> unset SBCL_HOME
> unset SBCL_SOURCE_ROOT
> unset CDPATH
> LC_CTYPE=en_US.UTF-8
> export LC_CTYPE
> 
> TARGET_DIR=/tmp/ele-test-dir
> 
> mkdir -p ${TARGET_DIR}
> 
> cd ${TARGET_DIR}
> 
> wget http://prdownloads.sourceforge.net/sbcl/sbcl-1.0.44-x86-64-linux-binary.tar.bz2
> tar xvfj sbcl-1.0.44-x86-64-linux-binary.tar.bz2 
> wget http://downloads.sourceforge.net/project/sbcl/sbcl/1.0.44/sbcl-1.0.44-source.tar.bz2
> tar xvfj sbcl-1.0.44-source.tar.bz2
> 
> mkdir root
> cd sbcl-1.0.44
> 
> 
> OLD_PATH="$PATH"
> PATH=${TARGET_DIR}/sbcl-1.0.44-x86-64-linux/src/runtime:$PATH
> export PATH
> SBCL_HOME=${TARGET_DIR}/sbcl-1.0.44-x86-64-linux/output
> export SBCL_HOME
> 
> 
> sh make.sh --prefix=${TARGET_DIR}/root
> 
> unset SBCL_HOME
> INSTALL_ROOT=${TARGET_DIR}/root sh install.sh
> 
> PATH=${TARGET_DIR}/root/bin:${OLD_PATH}
> export PATH
> 
> cd ${TARGET_DIR}
> 
> darcs get http://www.common-lisp.net/project/elephant/darcs/elephant-1.0
> 
> cat > elephant-1.0/my-config.sexp <<EOF
> #+(and (or sbcl allegro openmcl lispworks) (not (or mswindows windows)) (not (or macosx darwin)))
> ((:compiler . :gcc)
> (:berkeley-db-version . "4.7")
> (:berkeley-db-include-dir . "/usr/include/")
> (:berkeley-db-lib-dir . "/usr/lib/")
> (:berkeley-db-lib . "/usr/lib/libdb-4.7.so")
> (:berkeley-db-deadlock . "/usr/bin/db4.7_deadlock")
> (:berkeley-db-cachesize . 20971520)
> (:berkeley-db-map-degree2 . t)
> (:clsql-lib-paths . nil)
> (:prebuilt-libraries . nil))
> EOF
> 
> echo "(defconstant +ele-storage+ '(:BDB \"${TARGET_DIR}/ele-storage\"))" > store-name.lisp
> 
> mkdir ele-storage
> 
> if test ! -e $HOME/quicklisp/setup.lisp
> then
>    wget http://quickstart.quicklisp.org/quicklisp.lisp
>    sbcl --no-userinit --no-sysinit --load quicklisp.lisp  \
> 	--eval '(quicklisp-quickstart:install")' \
> 	--eval '(sb-ext:quit)'
> fi
> 
> sbcl --no-userinit --no-sysinit --load $HOME/quicklisp/setup.lisp --load store-name.lisp <<EOF
> (in-package #:cl-user)
> (asdf:initialize-source-registry '(:source-registry :ignore-inherited-configuration))
> (ql:quickload "bordeaux-threads")
> (ql:quickload "cl-base64")
> (ql:quickload "uffi")
> (push (make-pathname :directory '(:relative "elephant-1.0")) asdf:*central-registry*)
> (asdf:oos 'asdf:load-op :elephant)
> (in-package :elephant)
> (open-store cl-user::+ele-storage+)
> (add-to-root "somekey" "Zappa rules!")
> (when (equal (get-from-root "somekey") "Zappa rules!")
>  (format t "*** GOT KEY (~s) AFTER IT WAS WRITTEN~%" (get-from-root "somekey")))
> (sb-ext:quit)
> EOF
> 
> sbcl --no-userinit --no-sysinit --load $HOME/quicklisp/setup.lisp --load store-name.lisp <<EOF
> (in-package #:cl-user)
> (asdf:initialize-source-registry '(:source-registry :ignore-inherited-configuration))
> (ql:quickload "bordeaux-threads")
> (ql:quickload "cl-base64")
> (ql:quickload "uffi")
> (push (make-pathname :directory '(:relative "elephant-1.0")) asdf:*central-registry*)
> (asdf:oos 'asdf:load-op :elephant)
> (in-package :elephant)
> (open-store cl-user::+ele-storage+)
> (when (equal (get-from-root "somekey") "Zappa rules!")
>  (format t "*** GOT KEY (~s) IN SECOND INVOCATION~%" (get-from-root "somekey")))
> (sb-ext:quit)
> EOF
> 
> _______________________________________________
> elephant-devel site list
> elephant-devel at common-lisp.net
> http://common-lisp.net/mailman/listinfo/elephant-devel





More information about the elephant-devel mailing list