[comp.windows.x] Server Data Structures Inconsistent with SIGTERM?

becker@CS.ROCHESTER.EDU (09/09/89)

Is it possible for server data structures to be in an inconsistent
state when the server starts shutdown processing (SIGTERM --> GiveUp()
--> KillServerResources() -->....)?

I'm getting Xsun core dumps sometimes when I shutdown.  (I'm running
SunOS4.0.3, X11V3 + 10 patches + Purdue speedups.  The core dumps
happen with the native C compiler and gcc.  I'm using xinit for server
startup/shutdown.).  I've seen it die in 2 different places so far
with a segmentation fault.


One is in os/4.2bsd/connection.c, CloseDownConnection() on line 
	ConnectionTranslation[oc->fd] = (ClientPtr)NULL;
oc->fd is 52822783 -- an obviously bogus value.


The other place is in ddx/sun/sunCursor.c, sunPaintWindowBackground()
on line
	(* pPriv->PaintWindowBackground) (pWin, pRegion, what);
The line above this one is
	pPriv = (WinPrivPtr) LookupID (pWin->wid, RT_WINDOW, wPrivClass);
This returns with pPriv = 0.


So, I began to suspect a problem with inconsistent data structures.
Could it be?  (I'd be glad to submit a report to xbugs, but want to be
sure this is a real problem first).

Tim Becker.
becker@cs.rochester.edu

rws@EXPO.LCS.MIT.EDU (Bob Scheifler) (09/11/89)

    Is it possible for server data structures to be in an inconsistent
    state when the server starts shutdown processing (SIGTERM --> GiveUp()
    --> KillServerResources() -->....)?

Yes.  Fixed in R4.