Comment 3 for bug 1008808

Revision history for this message
Bernie Innocenti (codewiz) wrote :

I experienced the same bug on my Thinkpad, which has an Intel video card. So at least we know it's not a driver issue.

This time I could get a stacktrace from gdb:

#0 0x00007ffff733bb03 in poll () from /lib/x86_64-linux-gnu/libc.so.6
#1 0x00007ffff5247862 in ?? () from /usr/lib/x86_64-linux-gnu/libxcb.so.1
#2 0x00007ffff5248d5f in ?? () from /usr/lib/x86_64-linux-gnu/libxcb.so.1
#3 0x00007ffff5248f7b in xcb_wait_for_reply () from /usr/lib/x86_64-linux-gnu/libxcb.so.1
#4 0x00007ffff6d4209d in _XReply () from /usr/lib/x86_64-linux-gnu/libX11.so.6
#5 0x00007fffeb578841 in DRI2GetBuffersWithFormat (dpy=0x6176b0, drawable=98, width=0x6a5288, height=0x6a528c, attachments=0x400e8b0, count=4, outCount=0x7fffffffd24c)
    at dri2.c:470
#6 0x00007fffeb57648c in dri2GetBuffersWithFormat (driDrawable=<optimized out>, width=0x6a5288, height=0x6a528c, attachments=<optimized out>, count=<optimized out>,
    out_count=0x7fffffffd24c, loaderPrivate=0x6a5180) at dri2_glx.c:771
#7 0x00007fffeaa34c3c in intel_query_dri2_buffers_with_separate_stencil (count=0x7fffffffd24c, attachments=<synthetic pointer>, buffers=<synthetic pointer>,
    drawable=0x6a5260, intel=0x7ffff7fd0040) at intel_context.c:1183
#8 intel_update_renderbuffers (context=<optimized out>, drawable=0x6a5260) at intel_context.c:304
#9 0x00007fffeaa358e2 in intel_prepare_render (intel=<optimized out>) at intel_context.c:396
#10 0x00007fffeaa4f2a6 in brw_try_draw_prims (max_index=3, min_index=0, ib=0x0, nr_prims=1, prim=0x70c5ac, arrays=0x70e018, ctx=0x7ffff7fd0040) at brw_draw.c:449
#11 brw_draw_prims (ctx=0x7ffff7fd0040, arrays=0x70e018, prim=0x70c5ac, nr_prims=1, ib=0x0, index_bounds_valid=<optimized out>, min_index=0, max_index=3,
    tfb_vertcount=0x0) at brw_draw.c:566
#12 0x00007fffea6bf078 in vbo_exec_vtx_flush (exec=0x70bd70, keepUnmapped=1 '\001') at vbo/vbo_exec_draw.c:407
#13 0x00007fffea6b434c in vbo_exec_FlushVertices_internal (exec=0x70bd70, unmap=<optimized out>) at vbo/vbo_exec_api.c:444
#14 0x00007fffea6bcdec in vbo_exec_FlushVertices (ctx=0x7ffff7fd0040, flags=<optimized out>) at vbo/vbo_exec_api.c:1195
#15 0x00007fffea68219e in _mesa_BindTexture (target=3553, texName=0) at main/texobj.c:1123
#16 0x00007fffeb7c2242 in GLTexture::disable() () from /usr/lib/compiz/libopengl.so
#17 0x00007fffe29f27ae in unity::UnityScreen::paintPanelShadow(GLMatrix const&) () from /usr/lib/compiz/libunityshell.so
#18 0x00007fffe29fd7aa in unity::UnityWindow::glDraw(GLMatrix const&, GLFragment::Attrib&, CompRegion const&, unsigned int) () from /usr/lib/compiz/libunityshell.so
#19 0x00007fffeb7ab28a in GLWindow::glDraw(GLMatrix const&, GLFragment::Attrib&, CompRegion const&, unsigned int) () from /usr/lib/compiz/libopengl.so
#20 0x00007fffeb7ab6a4 in GLWindow::glPaint(GLWindowPaintAttrib const&, GLMatrix const&, CompRegion const&, unsigned int) () from /usr/lib/compiz/libopengl.so
#21 0x00007fffe2dd91d8 in WallWindow::glPaint(GLWindowPaintAttrib const&, GLMatrix const&, CompRegion const&, unsigned int) () from /usr/lib/compiz/libwall.so
#22 0x00007fffeb7ab64c in GLWindow::glPaint(GLWindowPaintAttrib const&, GLMatrix const&, CompRegion const&, unsigned int) () from /usr/lib/compiz/libopengl.so
#23 0x00007fffe29f3911 in unity::UnityWindow::glPaint(GLWindowPaintAttrib const&, GLMatrix const&, CompRegion const&, unsigned int) ()
   from /usr/lib/compiz/libunityshell.so
#24 0x00007fffeb7ab64c in GLWindow::glPaint(GLWindowPaintAttrib const&, GLMatrix const&, CompRegion const&, unsigned int) () from /usr/lib/compiz/libopengl.so
#25 0x00007fffeb7abb79 in PrivateGLScreen::paintOutputRegion(GLMatrix const&, CompRegion const&, CompOutput*, unsigned int) () from /usr/lib/compiz/libopengl.so
#26 0x00007fffeb7ac047 in GLScreen::glPaintOutput(GLScreenPaintAttrib const&, GLMatrix const&, CompRegion const&, CompOutput*, unsigned int) ()
   from /usr/lib/compiz/libopengl.so
#27 0x00007fffeb7abf79 in GLScreen::glPaintOutput(GLScreenPaintAttrib const&, GLMatrix const&, CompRegion const&, CompOutput*, unsigned int) ()
   from /usr/lib/compiz/libopengl.so
#28 0x00007fffe2dd2a0f in WallScreen::glPaintOutput(GLScreenPaintAttrib const&, GLMatrix const&, CompRegion const&, CompOutput*, unsigned int) ()
   from /usr/lib/compiz/libwall.so
#29 0x00007fffeb7abf79 in GLScreen::glPaintOutput(GLScreenPaintAttrib const&, GLMatrix const&, CompRegion const&, CompOutput*, unsigned int) ()
   from /usr/lib/compiz/libopengl.so
#30 0x00007fffe29fd97e in unity::UnityScreen::glPaintOutput(GLScreenPaintAttrib const&, GLMatrix const&, CompRegion const&, CompOutput*, unsigned int) ()
   from /usr/lib/compiz/libunityshell.so
#31 0x00007fffeb7abf79 in GLScreen::glPaintOutput(GLScreenPaintAttrib const&, GLMatrix const&, CompRegion const&, CompOutput*, unsigned int) ()
   from /usr/lib/compiz/libopengl.so
#32 0x00007fffeb7bbfaf in PrivateGLScreen::paintOutputs(std::list<CompOutput*, std::allocator<CompOutput*> >&, unsigned int, CompRegion const&) ()
   from /usr/lib/compiz/libopengl.so
#33 0x00007fffebde92b3 in CompositeScreen::paint(std::list<CompOutput*, std::allocator<CompOutput*> >&, unsigned int) () from /usr/lib/compiz/libcomposite.so
#34 0x00007fffebdeabc7 in CompositeScreen::handlePaintTimeout() () from /usr/lib/compiz/libcomposite.so
#35 0x00007ffff7ba1e5b in CompTimer::triggerCallback() () from /usr/lib/libcompiz_core.so.ABI-20120305
#36 0x00007ffff7ba1f5f in CompTimeoutSource::callback() () from /usr/lib/libcompiz_core.so.ABI-20120305
#37 0x00007ffff7ba140d in CompTimeoutSource::dispatch(sigc::slot_base*) () from /usr/lib/libcompiz_core.so.ABI-20120305
#38 0x00007ffff60a2f2f in Glib::Source::dispatch_vfunc(_GSource*, int (*)(void*), void*) () from /usr/lib/x86_64-linux-gnu/libglibmm-2.4.so.1
#39 0x00007ffff5baad53 in g_main_context_dispatch () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#40 0x00007ffff5bab0a0 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#41 0x00007ffff5bab49a in g_main_loop_run () from /lib/x86_64-linux-gnu/libglib-2.0.so.0

Attaching strace reveals that compiz is calling poll() and recvfrom() on the X11 socket in a tight loop.