<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>