Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Re: X11 crash on exit

3 views
Skip to first unread message

Tim Kientzle

unread,
Mar 14, 2010, 5:44:21 PM3/14/10
to Peter Jeremy, freeb...@freebsd.org, freebsd...@freebsd.org
Peter Jeremy wrote:
> On 2010-Mar-14 00:04:21 -0800, Tim Kientzle <kien...@freebsd.org> wrote:
>> Okay, I've updated a bunch of ports and am still seeing the
>> crash. I rebuilt the server with debug symbols and finally
>> got something informative; here's the relevant portion of
>> the backtrace (frame #10 is the signal 11 delivery).
>>
>> #11 0x0819e363 in DeliverPropertyEvent (pWin=0x5a5a5a5a,
>> value=0xbfbfec0c) at rrproperty.c:34
>> #12 0x0807015d in TraverseTree (pWin=0x28775f80, func=0x819e340
>> <DeliverPropertyEvent>, data=0xbfbfec0c) at window.c:234
....
>> #18 0x0806f4e3 in FreeAllResources () at resource.c:824
>> #19 0x0806bbf0 in main (argc=4, argv=0xbfbfed68, envp=0xbfbfed7c) at
>> main.c:411
>
> This looks identical to the problem I reported as ports/131930.
> Whilst my patch wasn't applied, ISTR a similar patch got applied
> upstream to fix the issue.

I've run through portsnap/portupgrade a few times, so my
server should be up-to-date and I still see the crash.
I suspect the upstream patch you're referring to would
be the memset(WindowTable, 0, sizeof()) that appears a
few lines after the call that triggers the crash.

> Other than that, I can confirm that you _can_ run X on an AA1,
> at least on 8.x (that's what I'm currently using).

What window manager are you using? Right now, I'm
using TWM but suspect there's something a bit better
suited to this small screen. (Ideally, something that
adapts well to either the built-in screen or the
external 20" monitor I often use.)

> Are you using hal/dbus?

Yes.

I implemented the fix I suggested earlier (scanning
the WindowTable to remove Window objects as they're
deleted) and it does consistently resolve the crash,
but now the X server restarts itself when xinit asks
it to exit, so there's clearly still something amiss.

Patch attached for anyone interested.

Tim


Tim Kientzle

unread,
Mar 14, 2010, 7:26:47 PM3/14/10
to Garrett Cooper, freeb...@freebsd.org, freebsd...@freebsd.org, Peter Jeremy
Garrett Cooper wrote:
>> I implemented the fix I suggested earlier (scanning
>> the WindowTable to remove Window objects as they're
>> deleted) and it does consistently resolve the crash,
>> but now the X server restarts itself when xinit asks
>> it to exit, so there's clearly still something amiss.
>>
>> Patch attached for anyone interested.
>
> Patch, what patch?
> -Garrett

Apologies. Patch pasted below (for mailing list) and attached (for
direct addressees):

--- dix/window.c.orig 2009-10-11 19:52:40.000000000 -0700
+++ dix/window.c 2010-03-14 00:02:18.000000000 -0800
@@ -936,6 +936,7 @@
WindowPtr pParent;
WindowPtr pWin = (WindowPtr)value;
xEvent event;
+ int i;

UnmapWindow(pWin, FALSE);

@@ -964,6 +965,13 @@
xfree(dixLookupPrivate(&pWin->devPrivates, FocusPrivatesKey));
dixFreePrivates(pWin->devPrivates);
xfree(pWin);
+
+ for (i = 0; i < MAXSCREENS; ++i)
+ {
+ if (WindowTable[i] == pWin)
+ WindowTable[i] = NullWindow;
+ }
+
return Success;
}

0 new messages