# Description and Test-case Note: I've only been able to cause this crash on windows.
It seems as though if a cffi-callback is active during garbage collection, sbcl will crash (or at drop into ldb).
See example here: https://gitlab.com/_ark_/garbagecrash
Commenting out the `sb-ext:gc` funcall prevents the crash.
Unfortunately I wasn't able to reproduce this without SDL2-mixer (presumable it's doing something more complicated than my toy callback code was).
# SBCL Version ./bin/sbcl.exe --version SBCL 1.4.14
# Features
*features* (:SWANK :QUICKLISP :ASDF3.3 :ASDF3.2 :ASDF3.1 :ASDF3 :ASDF2 :ASDF :OS-WINDOWS :NON-BASE-CHARS-EXIST-P :ASDF-UNICODE :ROS.INIT :X86-64 :64-BIT :64-BIT-REGISTERS :ALIEN-CALLBACKS :ANSI-CL :C-STACK-IS-CONTROL-STACK :CALL-SYMBOL :COMMON-LISP :COMPARE-AND-SWAP-VOPS :CYCLE-COUNTER :FLOAT-EQL-VOPS :FP-AND-PC-STANDARD-SAVE :GENCGC :IEEE-FLOATING-POINT :INTEGER-EQL-VOP :LINKAGE-TABLE :LITTLE-ENDIAN :OS-PROVIDES-DLOPEN :OS-PROVIDES-PUTWC :PACKAGE-LOCAL-NICKNAMES :SB-DOC :SB-DYNAMIC-CORE :SB-EVAL :SB-FUTEX :SB-LDB :SB-PACKAGE-LOCKS :SB-QSHOW :SB-SAFEPOINT :SB-SAFEPOINT-STRICTLY :SB-SIMD-PACK :SB-SOURCE-LOCATIONS :SB-THREAD :SB-THRUPTION :SB-UNICODE :SB-WTIMER :SBCL :STACK-ALLOCATABLE-CLOSURES :STACK-ALLOCATABLE-FIXED-OBJECTS :STACK-ALLOCATABLE-LISTS :STACK-ALLOCATABLE-VECTORS :STACK-GROWS-DOWNWARD-NOT-UPWARD :UNDEFINED-FUN-RESTARTS :UNWIND-TO-FRAME-AND-CALL-VOP :WIN32)
# Description and Test-case
Note: I've only been able to cause this crash on windows.
It seems as though if a cffi-callback is active during garbage collection, sbcl will crash (or at drop into ldb).
See example here: https:/ /gitlab. com/_ark_ /garbagecrash
Commenting out the `sb-ext:gc` funcall prevents the crash.
Unfortunately I wasn't able to reproduce this without SDL2-mixer (presumable it's doing something more complicated than my toy callback code was).
# SBCL Version
./bin/sbcl.exe --version
SBCL 1.4.14
# Features
*features* CHARS-EXIST- P :ASDF-UNICODE :ROS.INIT :X86-64 :64-BIT IS-CONTROL- STACK AND-SWAP- VOPS :CYCLE-COUNTER PC-STANDARD- SAVE :GENCGC :IEEE-FLOATING- POINT LOCAL-NICKNAMES :SB-DOC :SB-DYNAMIC-CORE :SB-EVAL STRICTLY :SB-SIMD-PACK :SB-SOURCE- LOCATIONS :SB-THREAD ALLOCATABLE- CLOSURES ALLOCATABLE- FIXED-OBJECTS :STACK- ALLOCATABLE- LISTS ALLOCATABLE- VECTORS :STACK- GROWS-DOWNWARD- NOT-UPWARD FUN-RESTARTS :UNWIND- TO-FRAME- AND-CALL- VOP :WIN32)
(:SWANK :QUICKLISP :ASDF3.3 :ASDF3.2 :ASDF3.1 :ASDF3 :ASDF2 :ASDF :OS-WINDOWS
:NON-BASE-
:64-BIT-REGISTERS :ALIEN-CALLBACKS :ANSI-CL :C-STACK-
:CALL-SYMBOL :COMMON-LISP :COMPARE-
:FLOAT-EQL-VOPS :FP-AND-
:INTEGER-EQL-VOP :LINKAGE-TABLE :LITTLE-ENDIAN :OS-PROVIDES-DLOPEN
:OS-PROVIDES-PUTWC :PACKAGE-
:SB-FUTEX :SB-LDB :SB-PACKAGE-LOCKS :SB-QSHOW :SB-SAFEPOINT
:SB-SAFEPOINT-
:SB-THRUPTION :SB-UNICODE :SB-WTIMER :SBCL :STACK-
:STACK-
:STACK-
:UNDEFINED-