<div dir="ltr">Hi Daniel,<br><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Jan 23, 2018 at 11:15 AM, Daniel Stone <span dir="ltr"><<a href="mailto:daniel@fooishbar.org" target="_blank">daniel@fooishbar.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><span class="gmail-">
</span>Ooh. serialNumber == 1 means it's the root pixmap, which will actually<br>
be uselessly empty. It would be interesting to see how we've ended up<br>
here: it would have to be a top-level window which a) was manually<br>
redirected by the WM when it was created, b) had damage posted on it,<br>
and c) was unredirected (in that order). I can't think of how that<br>
would happen; maybe you could place logs for the triggers (e.g.<br>
removing the last manual redirect on a window) somewhere?<br></blockquote><div><br></div><div>Unfortunately I don't know how to reproduce that one, all I have is a couple of core files...</div><div><br></div><div>But yes, that window is a toplevel window (hexchat):</div><div><br></div><div>Walking down the properties list until we get to the WM_CLASS, it gives “hexchat”.<br></div><div><br></div><div>(gdb) x /s xwl_window->window->optional->userProps->next->next->next->next->next->next->next->next->next->next->next->next->next->next->next->next->next->next->next->data<br>0x215bcf0:    "hexchat"<br></div><div><br></div><div>with</div><div><br></div><div>(gdb) p nodeTable[xwl_window->window->optional->userProps->next->next->next->next->next->next->next->next->next->next->next->next->next->next->next->next->next->next->next->propertyName]->string<br>$1 = 0x5b2c2c "WM_CLASS"<br></div><div><br></div><div> </div><div>But the theory of the toplevel being created → redirected → damaged → unredirected is plausible because I suspect this happens concurrently with a crash in the Wayland compositor (gnome-shell) at startup while the apps are restored via x-session management (from what I understood from the issue).</div><div><br></div><div>(which, if my understanding is correct, means that the user session is doomed anyway, so this crash in Xwayland might not be the culprit, but still, I'd rather have Xwayland end with a “failed to read Wayland events” rather than a segfault)<br></div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">

It would be good to see what the WindowRec under xwl_window looks<br>
like; maybe that could offer us a clue.<br></blockquote><div><br></div><div>The xwl_window->window gives:</div><div><br></div><div>(gdb) p *xwl_window->window $2 = {drawable = {type = 0 '\000',<br>                   class = 1 '\001',<br>                   depth = 24 '\030',<br>                   bitsPerPixel = 32 ' ',<br>                   id = 27262979,<br>                   x = 3407,<br>                   y = 574,<br>                   width = 665,<br>                   height = 400,<br>                   pScreen = 0x161d200,<br>                   serialNumber = 11075},<br>       devPrivates = 0x215b998,<br>       parent = 0x1e5bff0,<br>       nextSib = 0x230c490,<br>       prevSib = 0x0,<br>       firstChild = 0x215bd60,<br>       lastChild = 0x215bd60,<br>       clipList = {extents = {x1 = 0, y1 = 0, x2 = 0, y2 = 0},<br>                   data = 0x8137a0 <RegionEmptyData>},<br>       borderClip = {extents = {x1 = 0, y1 = 0, x2 = 0, y2 = 0},<br>                     data = 0x8137a0 <RegionEmptyData>},<br>       valdata = 0x0,<br>       winSize = {extents = {x1 = 3407, y1 = 574, x2 = 4072, y2 = 974},<br>                  data = 0x0},<br>       borderSize = {extents = {x1 = 3407, y1 = 574, x2 = 4072, y2 = 974},<br>                     data = 0x0},<br>       origin = {x = 3407, y = 574},<br>       borderWidth = 0,<br>       deliverableEvents = 32895,<br>       eventMask = 6520959,<br>       background = {pixmap = 0xe8e8e7, pixel = 15263975},<br>       border = {pixmap = 0x0, pixel = 0},<br>       optional = 0x215bb10,<br>       backgroundState = 2,<br>       borderIsPixel = 1,<br>       cursorIsNone = 1,<br>       backingStore = 0,<br>       backStorage = 0,<br>       saveUnder = 0,<br>       bitGravity = 1,<br>       winGravity = 1,<br>       overrideRedirect = 0,<br>       visibility = 2, (VisibilityFullyObscured)<br>       mapped = 1,<br>       realized = 1,<br>       viewable = 1,<br>       dontPropagate = 0,<br>       forcedBS = 0,<br>       redirectDraw = 0,<br>       forcedBG = 0,<br>       unhittable = 0,<br>       damagedDescendants = 0,<br>       inhibitBGPaint = 0}<br></div><div><br></div><div>I didn't spot anything suspicious about it.</div><div><br></div><div>Cheers,<br></div><div>Olivier<br></div></div></div></div>