invalid wrapper leads to error in shared initialize
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
SBCL |
Incomplete
|
Undecided
|
Unassigned |
Bug Description
- start sbcl from a saved image;
- initialize the application;
- create the first instance of a given class, spocq.i::query;
- the initialization protocol fails when, in the process of applying a slot accessor, it is determines, that the instance wrapper is invalid, the instance is eventually updated for a redefined class and its shared initialize method fails as it is invoked without a required argument.
This is SBCL 1.1.8, an implementation of ANSI Common Lisp.
...
;;; initialize
...
* (SB-PCL:
#<SB-PCL::WRAPPER #<APPLICABLE-
* (make-instance 'spocq.i::query :sse-expression () :id "" :repository-id "jhacker/foaf")
debugger invoked on a SIMPLE-ERROR in thread
#<THREAD "main thread" RUNNING {1008443313}>:
repository is required.
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.
((LAMBDA NIL :IN "/home/
0] :back
Backtrace for: #<SB-THREAD:THREAD "main thread" RUNNING {1008443313}>
0: ((LAMBDA NIL :IN "/home/
1: ((:METHOD SHARED-INITIALIZE (SB-PCL:
2: (SB-PCL:
3: ((FLET #:WITHOUT-
4: (SB-THREAD:
5: (SB-PCL:
6: (SB-PCL:
7: (SB-PCL:
8: ((:METHOD INITIALIZE-INSTANCE (DATA-TASK)) #<QUERY [NIL/NIL, SELECT@INITIALIZE, NIL] {100B7FFE9B}> :OPERATION NIL :SSE-EXPRESSION NIL :ID "" :REPOSITORY-ID "jahcker/foaf") [fast-method]
9: ((FLET CALL-NEXT-METHOD :IN "/home/
10: ((SB-PCL::EMF INITIALIZE-
11: ((:METHOD MAKE-INSTANCE (CLASS)) #<APPLICABLE-
12: (SB-INT:
13: (EVAL (MAKE-INSTANCE (QUOTE QUERY) :SSE-EXPRESSION NIL :ID "" :REPOSITORY-ID "jahcker/foaf"))
14: (SB-EXT:
15: (SB-IMPL::REPL-FUN NIL)
16: ((LAMBDA NIL :IN SB-IMPL:
17: (SB-IMPL:
18: (SB-IMPL:
19: (SB-IMPL:
20: ((FLET #:WITHOUT-
21: ((LABELS SB-IMPL:
0]
the problem did not appear with the previously used versions, which were 1.0.49 and 1.0.56.
a work-around is to attempt to create a throw-away instance and suppress the error, after which the redefinition has taken place and the error does not recur.
* (map nil 'print *features*)
:WILBUR2
:WILBUR
:STMX
:HUNCHENTOOT
:CL-FAD
CFFI-FEATURES:
CFFI-FEATURES:
CFFI-FEATURES:UNIX
:CFFI
CFFI-SYS:
:FLEXI-STREAMS
:SBCL-DEBUG-
:SB-BSD-
:BORDEAUX-THREADS
:CHUNGA
:CL-PPCRE
:CLOSER-MOP
:DE.SETF.
:WILBUR-
:RDFCACHE-
:THREAD-SUPPORT
:ASDF.HIERARCHI
:DE.SETF.UTILITY
:ASDF2
:ASDF
:ALIEN-CALLBACKS
:ANSI-CL
:ASH-RIGHT-VOPS
:C-STACK-
:COMMON-LISP
:COMPARE-
:COMPLEX-FLOAT-VOPS
:CYCLE-COUNTER
:ELF
:FLOAT-EQL-VOPS
:GENCGC
:IEEE-FLOATING-
:INLINE-CONSTANTS
:LARGEFILE
:LINKAGE-TABLE
:LINUX
:LITTLE-ENDIAN
:MEMORY-
:MULTIPLY-HIGH-VOPS
:OS-PROVIDES-
:OS-PROVIDES-DLADDR
:OS-PROVIDES-DLOPEN
:OS-PROVIDES-
:OS-PROVIDES-POLL
:OS-PROVIDES-PUTWC
:OS-PROVIDES-
:PACKAGE-
:RAW-INSTANCE-
:SB-DOC
:SB-EVAL
:SB-FUTEX
:SB-LDB
:SB-PACKAGE-LOCKS
:SB-SIMD-PACK
:SB-SOURCE-
:SB-TEST
:SB-THREAD
:SB-UNICODE
:SBCL
:STACK-
:STACK-
:STACK-
:STACK-
:STACK-
:UNIX
:UNWIND-
:X86-64
NIL
*
*
# uname -a
Linux xxxx.dydra.com 3.5.0-45-generic #68 SMP Wed Jan 8 11:01:23 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
#
Changed in sbcl: | |
status: | New → Incomplete |
Changed in sbcl: | |
status: | Incomplete → New |
Changed in sbcl: | |
status: | New → Incomplete |
james anderson <email address hidden> writes:
> the problem did not appear with the previously used versions, which
> were 1.0.49 and 1.0.56.
I just read the diff from 1.0.56 to 1.1.8, and I'm afraid that nothing
immediatedly leapt out.
I think that to make progress on this, I'd need either a recipe to
reproduce the error or a finer identification of the changeset that
caused the change in behaviour.
Christophe