Bug 94461

Summary: Compiz freezes when undocking Lenovo T450s, hang in xcb_wait_for_reply/wait_for_reply/_xcb_conn_wait
Product: XCB Reporter: cs_gon
Component: LibraryAssignee: xcb mailing list dummy <xcb>
Status: RESOLVED DUPLICATE QA Contact: xcb mailing list dummy <xcb>
Severity: major    
Priority: medium    
Version: 1.11   
Hardware: x86-64 (AMD64)   
OS: Linux (All)   
Whiteboard:
i915 platform: i915 features:
Attachments: compiz stack trace
compiz screen shot

Description cs_gon 2016-03-09 14:27:09 UTC
Created attachment 122174 [details]
compiz stack trace

When undocking my Lenovo T450s from the docking station (with external monitor connected), compiz frequently freezes, especially when an application is running, that does a lot of screen updates (i.e. terminal with top running at a low refresh frequency, or something like glxgears).

This happens since updating a 14.04 system to the Wily HWE stack (libxcb 1.10), but it is also reproducible when using Xenial (with libxcb 1.11).

When compiz freezes, the screen gets kinda corrupted (will attach an screen shot). The screen does not get updated, only the mouse cursor works. When docking the notebook again, compiz recovers most of the time. Sometimes though, nothing happens and compiz keeps frozen. In this state only a restart of compiz or the X-Server (from the text console) help to get the system usable again.

When doing a stack trace on compiz, it hangs in xcb_wait_for_reply / wait_for_reply / _xcb_conn_wait. I will attach the full stack trace. The stack trace was captured with libxcb 1.10, but as mentioned above, the problem does also happen with libxcb 1.11).
Comment 1 cs_gon 2016-03-09 14:31:02 UTC
Created attachment 122175 [details]
compiz screen shot

Here the screen shot of the hanging compiz.
Comment 2 cs_gon 2016-03-09 16:42:01 UTC
Some additional information:

I'm not sure if this is a libxcb bug, but I found some older bugs with pretty much the same symptoms and call traces. This is the reason I reported it here. If this is not a libxcb bug, hopefully you can point me in the right direction.

The problem started to appear after updating to the Wily HWE stack (with kernel 4.2). I cannot reproduce the problem with older kernels (e.g. 3.16 or 3.18), but with any newer kernel, up to the latest 4.5 versions (including drm-next and drm-intel-nightly branches).

As far I can see, compiz only uses one thread to do X calls. Especially for the stack trace I attached, no other compiz threads were in any X calls. 

Compiz does not call XInitThreads(), but I added the call before any other X calls, just in case. But then compiz does not fully start (shows the Unity panels, but does not draw a background), and then hangs in a XLockDisplay() call. And just like before, the other threads are not in any X calls. So IMHO that does seem point in the direction of libxcb!?

If you need any more information, please let me know. Thanks!
Comment 3 Daniel Stone 2019-02-16 12:44:03 UTC

*** This bug has been marked as a duplicate of bug 108960 ***

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.