[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Mouse handler table inconsistency.



    Date: Thu, 5 Apr 90 09:38 PDT
    From: RDP@ALAN.kahuna.decnet.lasc-research.lockheed.com (Robert D.
	  Pfeiffer)

    [SLUG added in case anyone else out there has been experiencing the
    following symptom and has any insight.  We're currently running 8.0 Beta
    but I have no reason to believe that this problem is specific to that
    version of Genera.]

	Date: Wed, 4 Apr 90 17:53 PDT
	From: Mark Freeman <MFreeman@VERMITHRAX.SCH.Symbolics.COM>

	    Date: Mon, 2 Apr 90 14:58 PDT
	    From: Robert D. Pfeiffer <RDP@ALAN.kahuna.decnet.lasc-research.lockheed.com>

	    "Once in a while", our application generates the following notification.
	    I have no idea why.  As it says, the problem is automatically corrected
	    so it's no big deal.  Nevertheless, it bothers me that there's something
	    wrong which I don't understand.  Can anyone provide some insight as to
	    what this might mean and how to fix it properly? 

	    3/21 10:48:46 An inconsistency was found in the mouse handler tables
			  OPTIM::SELECT-THIS-OBJECT is missing from the table
			  at context = CP:COMMAND
			  and displayed = OPTIM::PSEUDO-TASK
			  Entry = (OPTIM::SELECT-THIS-OBJECT
	    -PREDICATE-INTERNAL 0 TYPE...
			  Entry-list = NIL.
			  It will be automatically corrected.

	I think the problem is that Entry-list is NIL.  The Entry-list
	is obtained from the table
	dw::*presentation-type-mouse-handler-table*, so for some reason,
	dw::verify-handler-entry-in-table can't find the handler table
	element for handler OPTIM::SELECT-THIS-OBJECT.  As the message
	says, it will go ahead and create the entry-list for you.  I'm
	not sure why that could be missing, maybe the table didn't get
	copied correctly while it was being grown, or mutated?  

    I'm sure I don't know.

I bet there is a problem with the table.  I have a similar type of
lossage happening in the character-style mapping table.  I have an
initialization that causes the file-server>init.lisp file to be read at
boot time.  This file has sys:enable-services in it.  Every once in a
while when booting the machine it will go into the debugger before
getting to the initial lisp-listener.  The error is something like "No
mapping for swiss.roman.normal ...".  The name of the style sometimes
differs but it's always a style that *should* be defined.  It usually
happens when trying to set up the domain-name server log.  It was hard
to trace but as far as I could tell the table that is used for mapping
character-styles to fonts was mutating and didn't get locked correctly
so I wouldn't be surprised if there's a subtle bug in the mutating code.
We all know how hard it is to mutate.  (I fixed this by forcing the
lookup to be repeated if it returns NIL the first time.  And, yes I
reported this.)  I've seen this in 7.2 and 7.2.2 and I think 7.1.
--Mark Alexander

							       Does it
	always happen on one of your own defined handlers?

    Yes, so far as I know.

	P.S. Setting *background-notifies-for-missing-handlers* to NIL
	should make the notifications go away.  (but
	dw::verify-handler-entry-in-table will still fix things for you)

    Thanks, I'll use this as a last resort if I can't fix my application
    properly before it goes into Beta Test.