Memory fault in code recovering from control stack exhaustion
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
SBCL |
Fix Released
|
Undecided
|
Unassigned |
Bug Description
Load this file:
(in-package :cl-user)
;;; Test code for the control stack
(declaim (notinline foo))
(defun foo (a s)
(let ((x (make-sequence 'list s :initial-element nil)))
(foo x s))
a)
(defun cs-test (s)
(handler-case
(foo nil s)
(sb-
(defun cs (s)
(loop for i from 1
do (format t "~a~%" i)
do (cs-test s)))
Then:
(cs 6) ==> eventually fails with
[...]
The integrity of this image is possibly compromised.
Continuing with fingers crossed.
CORRUPTION WARNING in SBCL pid 31635(tid 0x7f2e28ef0b80):
Memory fault at (nil) (pc=0x43e611, fp=0x7f2e270303c0, sp=0x7f2e27030000) tid 0x7f2e28ef0b80
The integrity of this image is possibly compromised.
Continuing with fingers crossed.
INFO: Control stack guard page reprotected
debugger invoked on a SB-SYS:
#<THREAD "main thread" RUNNING {10005305B3}>:
Unhandled memory fault at #x0.
Type HELP for debugger help, or (SB-EXT:EXIT) to exit from SBCL.
restarts (invokable by number or by possibly-
0: [ABORT] Exit debugger, returning to top level.
("bogus stack frame")
0] 0
For other values of 6, the image may just hang and have to be killed.
Changed in sbcl: | |
status: | Fix Committed → Fix Released |
6a89ad84d5de6c5 8ad88204a0b4334 39fb054d9e