[Openmcl-devel] bogus objects

Gary Byers gb at clozure.com
Fri Nov 12 10:18:02 PST 2004


The printer will label something as a "BOGUS OBJECT" if it fails some
consistency tests/saniity checks.  For instance:

(defun foo (&rest args)
  (declare (dynamic-extent args))
  args)

For a brief moment, a set of CONS cells are allocated on a stack and
linked together and the variable ARGS is bound to the head of that
list; then, pretty much simultaneously, the list is popped off of
the stack and ARGS is returned. It's a pointer to a list that doesn't
exist anymore; the same stack locations are likely to be used for
completely purposes, and trying to access "the contents of that
list" will yield unexpected results.

The other way in which invalid/bogus objects can be created is as a
result of a GC bug: if the GC moves something but doesn't correctly
update all references to that thing, the old pointer isn't necessarily
pointing at anything.

The printer can -sometimes- catch this sort of thing; it'll occasionally
yield false positives (it's very hard in general to tell if something's
legitimately stack-allocated in a stack belonging to another thread),
and it can be fooled by other cases.

A couple of months ago, I made a change in the bleeding-edge kernel
that affected how the GC suspended and resumed threads on Darwin. I
wonder if I got something wrong in there somewhere (and threads either
aren't getting suspended or the GC's notion of register values is
incorrect.)  The fact that backtrace choked trying to print a function
near the bottom of the stack makes me suspicious of that.

Are you running the kernel from the bleeding-edge CVS tree ?

On Fri, 12 Nov 2004, Cyrus Harmon wrote:

>
> So I'm trying to run an araneida-based blog in openmcl and I get the
> following error message.
> Presumably this is thread related, but I'm unclear on how and why
> objects become bogus. Any clues?
>
> Thanks,
>
> Cyrus
>
> ? Caught error: No applicable method for args:
>   (#<BOGUS object @ #x67E91FE>)
> (F0268920) : 0 "ARANEIDA::HANDLER-DEBUGGER-HOOK" 192
> (F0268930) : 1 "CCL::BREAK-LOOP-HANDLE-ERROR" 256
> (F0268940) : 2 NIL NIL
> (F0268950) : 3 "CCL::%%STANDARD-COMBINED-METHOD-DCODE" 148
> (F0268960) : 4 NIL NIL
> (F0268970) : 5 "CCL::%ERROR" 104
> (F0268980) : 6 "#<CCL::STANDARD-KERNEL-METHOD NO-APPLICABLE-METHOD
> (T)>" 48
> (F0268990) : 7 NIL NIL
> (F02689A0) : 8 "#<CCL::STANDARD-KERNEL-METHOD STREAM-WRITE-CHAR
> (STRING-OUTPUT-STREAM T)>" 136
> (F02689B0) : 9 "WRITE-CHAR" 76
> (F02689C0) : 10 "CCL::GENERIC-STREAM-WRITE-STRING" 204
> (F02689D0) : 11 "#<CCL::STANDARD-KERNEL-METHOD PRINT-OBJECT (T T)>" 868
> (F02689E0) : 12 NIL NIL
> (F02689F0) : 13 "CCL::WRITE-A-FROB" 100
> (F0268A00) : 14 "CCL::WRITE-INTERNAL" 420
> (F0268A20) : 15 "CCL::WRITE-1" 304
> (F0268A30) : 16 NIL NIL
> (F0268A40) : 17 "PRINC" 120
> (F0268A50) : 18 "ARANEIDA::HTML-ATTR" 332
> (F0268A70) : 19 "ARANEIDA:HTML-STREAM" 456
> (F0268A80) : 20 "ARANEIDA:HTML-STREAM" 564
> (F0268A90) : 21 "ARANEIDA:HTML-STREAM" 564
> (F0268AA0) : 22 "ARANEIDA:HTML-STREAM" 564
> (F0268AB0) : 23 "ARANEIDA:HTML-STREAM" 564
> (F0268AC0) : 24 "ARANEIDA:HTML-STREAM" 564
> (F0268AD0) : 25 "ARANEIDA:HTML-STREAM" 564
> (F0268AE0) : 26 NIL NIL
> (F0268AF0) : 27 "#<STANDARD-METHOD ARANEIDA:HANDLE-REQUEST-RESPONSE
> (CL-BLOG::MAIN-HANDLER T T)>" 536
> (F0268B00) : 28 NIL NIL
> (F0268B10) : 29 "CCL::%CALL-NEXT-METHOD" 504
> (F0268B30) : 30 NIL NIL
> (F0268B40) : 31 "#<STANDARD-METHOD ARANEIDA:HANDLE-REQUEST-RESPONSE
> :AROUND (CL-BLOG::USE-HTMLAREA-MIXIN T T)>" 180
> (F0268B50) : 32 NIL NIL
> (F0268B60) : 33 "CCL::%%STANDARD-COMBINED-METHOD-DCODE" 368
> (F0268B70) : 34 NIL NIL
> (F0268B80) : 35 NIL NIL
> (F0268B90) : 36 NIL NIL
> (F0268BA0) : 37 "#<STANDARD-METHOD ARANEIDA:HANDLE-REQUEST
> (ARANEIDA:HANDLER T)>" 132
> (F0268BB0) : 38 NIL NIL
> (F0268BC0) : 39 "#<STANDARD-METHOD ARANEIDA:HANDLE-REQUEST
> (ARANEIDA:HANDLER T)>" 132
> (F0268BD0) : 40 NIL NIL
> (F0268BE0) : 41 "#<STANDARD-METHOD
> ARANEIDA::HANDLE-REQUEST-USING-LISTENER (ARANEIDA:HTTP-LISTENER T T)>"
> 96
> (F0268BF0) : 42 NIL NIL
> (F0268C00) : 43 "CCL::%%CNM-WITH-ARGS-COMBINED-METHOD-DCODE" 588
> (F0268C10) : 44 NIL NIL
> (F0268C20) : 45 "CCL::%CALL-NEXT-METHOD-WITH-ARGS" 208
> (F0268C30) : 46 NIL NIL
> (F0268C40) : 47 "CCL::%%CNM-WITH-ARGS-COMBINED-METHOD-DCODE" 624
> (F0268C50) : 48 NIL NIL
> (F0268C60) : 49 NIL NIL
> (F0268C70) : 50 NIL NIL
> (F0268C80) : 51 "ARANEIDA::DO-IT" 232
> (F0268CA0) : 52 NIL NIL
> (F0268CB0) : 53 "ARANEIDA::THREADED-HTTP-LISTENER-ACCEPT-ONE-REQUEST"
> 696
> (F0268CF0) : 54 "Anonymous Function #x6493BD6" 76
> (F0268D00) : 55 "CCL::RUN-PROCESS-INITIAL-FORM" 400
> (F0268D30) : 56 NIL NIL
> (F0268D40) : 57 "Anonymous Function #x6101D3E" 152
> (F0268D60) : 58 "Anonymous Function #x60F491E" 172Unhandled exception
> 11 at 0x020009a0, context->regs at #xf08674b8
> Read operation to unmapped address 0xfffffffd
>   While executing: #<Function %ARRAY-HEADER-DATA-AND-OFFSET #x060006ce>
> ? for help
> [15031] OpenMCL kernel debugger:
>
> _______________________________________________
> Openmcl-devel mailing list
> Openmcl-devel at clozure.com
> http://clozure.com/mailman/listinfo/openmcl-devel
>
>



More information about the Openmcl-devel mailing list