Created attachment 143345 [details]
As reported on
compiz is getting crashes during a glXBindTexImageEXT call about a window getting unmapped. This happens in the swraster. I traced it into swrastGetDrawableInfo(), whose XGetGeometry call fails because the window is no more. The attached patch avoids the issue, I tend to think that at the very least an assert should be used to avoid leaking uninitialized values, but returning an empty geometry would avoid a crash in such case, the caller just has to be able to cope with it.
If this (calling glXBindTexImageEXT on a drawable whose Window is no more) is considered to be an issue in the application, please answer to https://gitlab.com/compiz/compiz-core/issues/141
Well, X being the asynchronous thing it is there's always a chance this can happen, so I don't think this is an application issue. I assume the crash is avoided with this patch because compiz has already set an X error handler.
The "more right" thing to do might be to install our own error handler around xlib calls so we can properly bubble the error up to BindTexImage's caller, but that's quite a lot more complicated for not a lot of benefit.