handler-case falls to ldb on unknown typespecs
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
SBCL |
Fix Released
|
Medium
|
Jan Moringen |
Bug Description
handler-case causes a stack overflow when a non-local exit happens and typespec is not valid. It should signal an error instead.
I have reduced the problem to the following:
(running SBCL from: .)
This is SBCL 1.2.4.53-1047c95, an implementation of ANSI Common Lisp.
More information about SBCL is available at <http://
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.
* (handler-case (throw 'foo nil)
(bar ()))
INFO: Control stack guard page unprotected
Control stack guard page temporarily disabled: proceed with caution
fatal error encountered in SBCL pid 28360(tid 140737353934592):
Control stack exhausted
Welcome to LDB, a low-level debugger for the Lisp runtime environment.
ldb>
I tested this in 1.2.2 and the HEAD 1.2.4.53-1047c95. My environment:
Linux lispm 3.14-2-amd64 #1 SMP Debian 3.14.15-2 (2014-08-09) x86_64 GNU/Linux
and *features*:
(:ALIEN-CALLBACKS :ANSI-CL :ASH-RIGHT-VOPS :C-STACK-
:COMMON-LISP :COMPARE-
:FLOAT-EQL-VOPS :GENCGC :IEEE-FLOATING-
:LINKAGE-TABLE :LINUX :LITTLE-ENDIAN :MEMORY-
:OS-PROVIDES-
:OS-PROVIDES-
:OS-PROVIDES-
:SB-DOC :SB-EVAL :SB-FUTEX :SB-LDB :SB-PACKAGE-LOCKS :SB-SIMD-PACK
:SB-SOURCE-
:STACK-
:STACK-
:STACK-
:UNWIND-
Changed in sbcl: | |
status: | New → Triaged |
importance: | Undecided → Medium |
Changed in sbcl: | |
assignee: | nobody → Jan Moringen (scymtym) |
status: | Triaged → Fix Committed |
Changed in sbcl: | |
status: | Fix Committed → Fix Released |