[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