"Problem forcing cache flushes"
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
SBCL |
Fix Released
|
Undecided
|
Unassigned |
Bug Description
Problem forcing cache flushes. Please report to sbcl-devel.
Owrapper: (#<SB-PCL::WRAPPER #<STANDARD-CLASS X> {10053B81C3}> . T)
Wrapper-of: (#<SB-PCL::WRAPPER #<STANDARD-CLASS X> {10053B81C3}> . T)
This is probably a bug in SBCL itself. (Alternatively, SBCL might have been
corrupted by bad user code, e.g. by an undefined Lisp operation like
(FMAKUNBOUND 'COMPILE), or by stray pointers from alien code or from unsafe
Lisp code; or there might be a bug in the OS or hardware that SBCL is running
on.) If it seems to be a bug in SBCL itself, the maintainers would like to
know about it. Bug reports are welcome on the SBCL mailing lists, which you
can find at <http://
Backtrace for: #<SB-THREAD:THREAD RUNNING {10053B6933}>
0: ((FLET SB-THREAD:
1: ((FLET #:WITHOUT-
2: (SB-THREAD:
3: (SB-PCL:
4: (SB-KERNEL:
5: (TEST)
reduced test case from stassats:
(defclass x () ())
(defvar *instance* (make-instance 'x))
(defun redefine-class ()
(defclass x ()
(a))
(defclass x ()
()))
(sb-thread:
(lambda ()
(loop repeat 20000 do (redefine-class))))
(defun test ()
(typep *instance* 'x))
(loop repeat 10
do (sb-thread:
(lambda () (loop repeat 100000000000
also sometimes gets
failed AVER: (< I 2)
This is probably a bug in SBCL itself. (Alternatively, SBCL might have been
corrupted by bad user code, e.g. by an undefined Lisp operation like
(FMAKUNBOUND 'COMPILE), or by stray pointers from alien code or from unsafe
Lisp code; or there might be a bug in the OS or hardware that SBCL is
running on.) If it seems to be a bug in SBCL itself, the maintainers would
like to know about it. Bug reports are welcome on the SBCL mailing lists,
which you can find at <http://
0: (SB-INT:BUG "~@<failed AVER: ~2I~_~A~:>" (< SB-KERNEL::I 2))
1: (SB-IMPL:
2: (SB-KERNEL:
3: (TEST)
Changed in sbcl: | |
status: | Fix Committed → Fix Released |
similar test cases have also errored with
Index 5550 out of bounds for (SIMPLE-ARRAY (UNSIGNED-BYTE 64)
(4096) ), should be nonnegative and <4096. INVALID- ARRAY-INDEX- ERROR]
[Condition of type SB-INT:
Restarts:
0: [ABORT] Abort thread (#<THREAD RUNNING {10041B62E3}>)
Backtrace: %PUTHASH) ) PCL::WRAPPER #<STANDARD-CLASS F> {10185EC163}>) (:FLUSH #1#) ..
SB-DEBUG: :ARG-0 = #<SB-PCL::WRAPPER #<STANDARD-CLASS F> {10185EC163}>
SB-DEBUG: :ARG-1 = #<HASH-TABLE :TEST EQL :COUNT 10559 {1000311F83}>
SB-DEBUG: :ARG-2 = ((:FLUSH #<SB-PCL::WRAPPER #<STANDARD-CLASS F> {10185EC163}>) (:FLUSH #<SB-PCL::WRAPPER #<STANDARD-CLASS F> {10185EC163}>) (:FLUSH #<SB-PCL::WRAPPER #<STANDARD-CLASS F> {10185EC163}>) ..) :%ENSURE- CLASSOID- VALID #<SB-KERNEL: STANDARD- CLASSOID F> #<SB-PCL::WRAPPER #<STANDARD-CLASS F> {10185864C3}> "typep")
SB-DEBUG: :ARG-0 = #<SB-KERNEL: STANDARD- CLASSOID F>
SB-DEBUG: :ARG-1 = #<SB-PCL::WRAPPER #<STANDARD-CLASS F> {10185864C3}>
SB-DEBUG: :ARG-2 = "typep" CLASSOID- TYPEP #<unavailable argument> #<unavailable argument> #<unavailable argument>)
0: ((FLET #:BODY-FUN-834 :IN SB-KERNEL:
1: (SB-KERNEL:%PUTHASH #<SB-PCL::WRAPPER #<STANDARD-CLASS F> {10185EC163}> #<HASH-TABLE :TEST EQL :COUNT 10559 {1000311F83}> ((:FLUSH #1=#<SB-
Locals:
2: (SB-KERNEL:
Locals:
3: (SB-KERNEL:
[No Locals]
where most of the backtrace seems to have been optimized away by TCO, but probably looks something like classoid- valid -> %force- cache-flushes -> %invalidate-wrapper -> (setf (gethash nwrapper *previous- nwrappers* )) nwrappers* being the hash table in the error
typep -> %typep -> %%typep -> classoid-typep -> %ensure-
with *previous-