[cffi-devel] Memory fault using CFFI

Andrew Kirkpatrick spacebat at ubermonkey.net
Sat Feb 13 10:03:38 UTC 2010


Hi,

It seems that in many cases when I call code in a library that results 
in a loaded foreign library function being called, I get a memory fault. 
Typically this error appears in my slime REPL:

Help! 11 nested errors. SB-KERNEL:*MAXIMUM-ERROR-DEPTH* exceeded.
0: ; Evaluation aborted.

The 11 errors appear in my *inferior-lisp* buffer, each one similar to:

CORRUPTION WARNING in SBCL pid 3239(tid 3039865744):
Memory fault at 100020 (pc=0x9c77963, sp=0xb52f6110)
The integrity of this image is possibly compromised.
Continuing with fingers crossed.

Crossed fingers or not, from that point on the lisp image is unstable. 
It happens when I try to use Elephant to open a BDB store, or when I use 
CL-SQLITE directly to open a database. However I just discovered that I 
can successfully run the hello-world.lisp example in CLG.

I'm using clbuild on 32bit x86 Ubuntu 9.10, that I used to install SBCL 
1.0.35.1 and the latest (according to clbuild) CFFI.

Looking closer at CFFI, it fails one test unexpectedly. I'm quite 
baffled and googling and asking on #lisp draws a blank.

The failed test is below. Any ideas?

Test DEFCFUN.BFF.2 failed
Form: (SUM-127
        (MAKE-POINTER 2746181372) (MAKE-POINTER 177623060) -32334.0
        3158055028 (MAKE-POINTER 242315091) 4288001754991016425
        -21047.0d0 287.0d0 18722 243379286 -8677366518541007140
        581399424 -13872 4240394881 1353358999 226 969197676 -26207.0d0
        6484 11150 1241680089902988480 106068320 61865 2253
        (MAKE-POINTER 866809333) -31613 35616 11715 1393601698
        8940888681199591845 (MAKE-POINTER 1524606024) 805638893
        3315410736 3432596795 (MAKE-POINTER 1490355706)
        696175657106383698 -25438.0 1294381547 26724
        (MAKE-POINTER 3196569545) 2506913373410783697
        -4405955718732597856 4075932032 3224670123 2183829215657835866
        1318320964 -22 -3786.0d0 -2017024146 1579225515 -626617701 -1456
        (MAKE-POINTER 3561444187) 395687791 1968033632506257320
        -1847773261 48853 142937735275669133 -17974.0
        (MAKE-POINTER 2791749948) -14140.0 2707 3691328585 3306.0
        1132012981 303633191773289330 (MAKE-POINTER 981183954) 9114.0d0
        8664374572369470 -19013.0d0 -10288.0d0 -3679345119891954339
        (MAKE-POINTER 3538786709) 23761 -154264605
        (MAKE-POINTER 2694396308) 7023 997.0d0 1009561368 241
        (MAKE-POINTER 2612292671) 48 1431872408 -32675.0d0
        (MAKE-POINTER 1587599336) 958916472 -9857.0d0 111 -14370.0d0
        -7308 -967514912 488790941 2146978095 -24111.0d0 13711 86681861
        717987770 111 1013402998690933877 17234.0d0 -8772.0 3959216275
        -8711 (MAKE-POINTER 3142780851) 9480.0 -3820453146461186120
        1616574376 -3336232268263990050 -1906114671562979758 -27925.0d0
        9695970875869913114 27033.0d0 1096518219 -12 104 3392025403
        -27911 60 89 509297051 -533066551 29158.0 110 54 -9802.0d0
        593950442165910888 -79)
Expected value: 7758614658402721936
Actual value: 7758614624042983568.


Thanks!
--
Andrew Kirkpatrick

"The first rule of Perl Club... has subscript 0.
  Unless you changed $[.
  But don't!"

-- blazar on perlmonks.org




More information about the cffi-devel mailing list