Bug 30557

Summary: Mesa/GL crash after creating 1x1 dummy Drawable (with Clutter)
Product: Mesa Reporter: Jasper Lievisse Adriaanse <jasper>
Component: Drivers/DRI/i915Assignee: Ian Romanick <idr>
Status: RESOLVED FIXED QA Contact:
Severity: critical    
Priority: medium CC: idr
Version: 7.6Keywords: NEEDINFO
Hardware: All   
OS: OpenBSD   
Whiteboard:
i915 platform: i915 features:

Description Jasper Lievisse Adriaanse 2010-10-02 02:26:23 UTC
As explained in this bugreport at Clutter (http://bugzilla.clutter-project.org/show_bug.cgi?id=2345), every application linking against clutter-glx-1.0 seg. faults upon execution.

Here is the full backtrace of one of the Clutter example programs, which indicates an issue with Mesa/GLX/DRI:
cerebrum:interactive {110}
/usr/obj/ports/clutter-1.4.0/clutter-1.4.0/tests/interactive/test-interactive
c[Ktest[K-c[K[Kt-clip

Segmentation fault (core dumped)
cerebrum:interactive {113} gdb
/usr/obj/ports/clutter-1.4.0/clutter-1.4.0/tests/ -c
test-interactive.core[81G[4hi[4l[4hn[4l[4ht[4l[4he[4l[4hr[4l[7@active/[4h.[4l[4hl[4l[4hi[4l[3@bs/[17@test-interactive 

GNU gdb 6.3
Copyright 2004 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "i386-unknown-openbsd4.8"...
Core was generated by `test-interactive'.
Program terminated with signal 11, Segmentation fault.
Reading symbols from /usr/lib/libpthread.so.12.1...done.
Loaded symbols for /usr/lib/libpthread.so.12.1
Reading symbols from /usr/local/lib/libclutter-glx-1.0.so.1.0...done.
Loaded symbols for /usr/local/lib/libclutter-glx-1.0.so.1.0
Reading symbols from /usr/local/lib/libatk-1.0.so.2800.0...done.
Loaded symbols for /usr/local/lib/libatk-1.0.so.2800.0
Reading symbols from /usr/local/lib/libpangocairo-1.0.so.1802.0...done.
Loaded symbols for /usr/local/lib/libpangocairo-1.0.so.1802.0
Reading symbols from /usr/local/lib/libgdk_pixbuf-2.0.so.1403.0...done.
Loaded symbols for /usr/local/lib/libgdk_pixbuf-2.0.so.1403.0
Reading symbols from /usr/X11R6/lib/libGL.so.10.0...done.
Loaded symbols for /usr/X11R6/lib/libGL.so.10.0
Reading symbols from /usr/X11R6/lib/libXxf86vm.so.5.0...done.
Loaded symbols for /usr/X11R6/lib/libXxf86vm.so.5.0
Reading symbols from /usr/X11R6/lib/libdrm.so.2.6...done.
Loaded symbols for /usr/X11R6/lib/libdrm.so.2.6
Reading symbols from /usr/X11R6/lib/libXdamage.so.3.1...done.
Loaded symbols for /usr/X11R6/lib/libXdamage.so.3.1
Reading symbols from /usr/X11R6/lib/libXcomposite.so.3.0...done.
Loaded symbols for /usr/X11R6/lib/libXcomposite.so.3.0
Reading symbols from /usr/local/lib/libjson-glib-1.0.so.3.0...done.
Loaded symbols for /usr/local/lib/libjson-glib-1.0.so.3.0
Reading symbols from /usr/X11R6/lib/libXfixes.so.5.0...done.
Loaded symbols for /usr/X11R6/lib/libXfixes.so.5.0
Reading symbols from /usr/local/lib/libcairo.so.9.3...done.
Loaded symbols for /usr/local/lib/libcairo.so.9.3
Reading symbols from /usr/local/lib/libpangoft2-1.0.so.1802.0...done.
Loaded symbols for /usr/local/lib/libpangoft2-1.0.so.1802.0
Reading symbols from /usr/X11R6/lib/libpixman-1.so.16.6...done.
Loaded symbols for /usr/X11R6/lib/libpixman-1.so.16.6
Reading symbols from /usr/local/lib/libglitz.so.2.0...done.
Loaded symbols for /usr/local/lib/libglitz.so.2.0
Reading symbols from /usr/local/lib/libpng.so.10.0...done.
Loaded symbols for /usr/local/lib/libpng.so.10.0
Reading symbols from /usr/X11R6/lib/libxcb-render-util.so.0.0...done.
Loaded symbols for /usr/X11R6/lib/libxcb-render-util.so.0.0
Reading symbols from /usr/X11R6/lib/libxcb-render.so.0.0...done.
Loaded symbols for /usr/X11R6/lib/libxcb-render.so.0.0
Reading symbols from /usr/X11R6/lib/libXrender.so.5.0...done.
Loaded symbols for /usr/X11R6/lib/libXrender.so.5.0
Reading symbols from /usr/local/lib/libpango-1.0.so.1802.0...done.
Loaded symbols for /usr/local/lib/libpango-1.0.so.1802.0
Reading symbols from /usr/X11R6/lib/libfontconfig.so.7.0...done.
Loaded symbols for /usr/X11R6/lib/libfontconfig.so.7.0
Reading symbols from /usr/X11R6/lib/libfreetype.so.17.2...done.
Loaded symbols for /usr/X11R6/lib/libfreetype.so.17.2
Reading symbols from
/usr/obj/ports/clutter-1.4.0/clutter-1.4.0/clutter/.libs/libexpat.so.9.0...done.
Loaded symbols for
/usr/obj/ports/clutter-1.4.0/clutter-1.4.0/clutter/.libs/libexpat.so.9.0
Reading symbols from
/usr/obj/ports/clutter-1.4.0/clutter-1.4.0/clutter/.libs/libm.so.5.2...done.
Loaded symbols for
/usr/obj/ports/clutter-1.4.0/clutter-1.4.0/clutter/.libs/libm.so.5.2
Reading symbols from /usr/X11R6/lib/libXext.so.11.0...done.
Loaded symbols for /usr/X11R6/lib/libXext.so.11.0
Reading symbols from /usr/X11R6/lib/libX11.so.14.0...done.
Loaded symbols for /usr/X11R6/lib/libX11.so.14.0
Reading symbols from /usr/X11R6/lib/libxcb.so.2.2...done.
Loaded symbols for /usr/X11R6/lib/libxcb.so.2.2
Reading symbols from /usr/X11R6/lib/libpthread-stubs.so.0.0...done.
Loaded symbols for /usr/X11R6/lib/libpthread-stubs.so.0.0
Reading symbols from /usr/X11R6/lib/libXau.so.9.0...done.
Loaded symbols for /usr/X11R6/lib/libXau.so.9.0
Reading symbols from /usr/X11R6/lib/libXdmcp.so.10.0...done.
Loaded symbols for /usr/X11R6/lib/libXdmcp.so.10.0
Reading symbols from /usr/local/lib/libgio-2.0.so.1803.0...done.
Loaded symbols for /usr/local/lib/libgio-2.0.so.1803.0
Reading symbols from /usr/local/lib/libgobject-2.0.so.1803.0...done.
Loaded symbols for /usr/local/lib/libgobject-2.0.so.1803.0
Reading symbols from /usr/local/lib/libgmodule-2.0.so.1803.0...done.
Loaded symbols for /usr/local/lib/libgmodule-2.0.so.1803.0
Reading symbols from
/usr/obj/ports/clutter-1.4.0/clutter-1.4.0/clutter/.libs/libz.so.4.1...done.
Loaded symbols for
/usr/obj/ports/clutter-1.4.0/clutter-1.4.0/clutter/.libs/libz.so.4.1
Reading symbols from /usr/local/lib/libgthread-2.0.so.1803.0...done.
Loaded symbols for /usr/local/lib/libgthread-2.0.so.1803.0
Reading symbols from /usr/local/lib/libglib-2.0.so.1803.0...done.
Loaded symbols for /usr/local/lib/libglib-2.0.so.1803.0
Reading symbols from /usr/local/lib/libpcre.so.2.3...done.
Loaded symbols for /usr/local/lib/libpcre.so.2.3
Reading symbols from /usr/local/lib/libintl.so.5.0...done.
Loaded symbols for /usr/local/lib/libintl.so.5.0
Reading symbols from /usr/local/lib/libiconv.so.6.0...done.
Loaded symbols for /usr/local/lib/libiconv.so.6.0
Symbols already loaded for /usr/lib/libpthread.so.12.1
Reading symbols from /usr/lib/libc.so.56.0...done.
Loaded symbols for /usr/lib/libc.so.56.0
Reading symbols from /usr/libexec/ld.so...done.
Loaded symbols for /usr/libexec/ld.so
Reading symbols from /usr/X11R6/lib/modules/dri/i915_dri.so...done.
Loaded symbols for /usr/X11R6/lib/modules/dri/i915_dri.so
Reading symbols from /usr/X11R6/lib/libdrm_intel.so.1.3...done.
Loaded symbols for /usr/X11R6/lib/libdrm_intel.so.1.3
#0  intelCalcViewport (ctx=0x7e48b000) at
/usr/xenocara/lib/libGL/dri/i915/../../../../dist/Mesa/src/mesa/drivers/dri/i915/i915_state.c:380
380        m[MAT_SX] = v[MAT_SX];
(gdb) bt
#0  intelCalcViewport (ctx=0x7e48b000) at
/usr/xenocara/lib/libGL/dri/i915/../../../../dist/Mesa/src/mesa/drivers/dri/i915/i915_state.c:380
#1  0x0d5b5922 in i915Viewport (ctx=0x7e48b000, x=0, y=0, width=1, height=1)
    at
/usr/xenocara/lib/libGL/dri/i915/../../../../dist/Mesa/src/mesa/drivers/dri/i915/i915_state.c:396
#2  0x0d6b095f in _mesa_set_viewport () from
/usr/X11R6/lib/modules/dri/i915_dri.so
#3  0x0d69c92b in _mesa_check_init_viewport () from
/usr/X11R6/lib/modules/dri/i915_dri.so
#4  0x0d69cb27 in _mesa_make_current () from
/usr/X11R6/lib/modules/dri/i915_dri.so
#5  0x0d5ab131 in intelMakeCurrent (driContextPriv=0x811e4a00,
driDrawPriv=0x816f1580, driReadPriv=0x816f1580)
    at
/usr/xenocara/lib/libGL/dri/i915/../../../../dist/Mesa/src/mesa/drivers/dri/intel/intel_context.c:892
#6  0x0d5ecaed in driBindContext (pcp=0x811e4a00, pdp=0x816f1580,
prp=0x816f1580)
    at
/usr/xenocara/lib/libGL/dri/i915/../../../../dist/Mesa/src/mesa/drivers/dri/common/dri_util.c:220
#7  0x060927ac in dri2BindContext () from /usr/X11R6/lib/libGL.so.10.0
#8  0x06093d7b in glXMakeCurrentReadSGI () from /usr/X11R6/lib/libGL.so.10.0
#9  0x08868644 in clutter_backend_glx_create_context (backend=0x85d24010,
error=0xcfbece94) at clutter-backend-glx.c:640
#10 0x087ada04 in _clutter_backend_create_context (backend=0x85d24010,
error=0xcfbece94) at ./clutter-backend.c:365
#11 0x087cd25d in _clutter_feature_init (error=0xcfbece94) at
./clutter-feature.c:106
#12 0x087daa08 in clutter_init_real (error=0xcfbece94) at ./clutter-main.c:1616
#13 0x087daed2 in post_parse_hook (context=0x85d27bc0, group=0x85d27d00,
data=0x0, error=0xcfbece94) at ./clutter-main.c:1837
#14 0x049e4381 in g_option_context_parse () from
/usr/local/lib/libglib-2.0.so.1803.0
#15 0x087db1e6 in clutter_parse_args (argc=0xcfbecf40, argv=0xcfbecf44) at
./clutter-main.c:2067
#16 0x087db2a3 in clutter_init (argc=0xcfbecf40, argv=0xcfbecf44) at
./clutter-main.c:2120
#17 0x1c01cd6a in test_clip_main (argc=1, argv=0xcfbecfd0) at test-clip.c:295
#18 0x1c00b9e4 in main (argc=2, argv=0xcfbecfcc) at test-main.c:31
(gdb) bt full
#0  intelCalcViewport (ctx=0x7e48b000) at
/usr/xenocara/lib/libGL/dri/i915/../../../../dist/Mesa/src/mesa/drivers/dri/i915/i915_state.c:380
        v = (const GLfloat *) 0x3f000000
        depthScale = 0
        m = (GLfloat *) 0x816f1290
        yScale = 0
        yBias = 0
#1  0x0d5b5922 in i915Viewport (ctx=0x7e48b000, x=0, y=0, width=1, height=1)
    at
/usr/xenocara/lib/libGL/dri/i915/../../../../dist/Mesa/src/mesa/drivers/dri/i915/i915_state.c:396
No locals.
#2  0x0d6b095f in _mesa_set_viewport () from
/usr/X11R6/lib/modules/dri/i915_dri.so
No symbol table info available.
#3  0x0d69c92b in _mesa_check_init_viewport () from
/usr/X11R6/lib/modules/dri/i915_dri.so
No symbol table info available.
#4  0x0d69cb27 in _mesa_make_current () from
/usr/X11R6/lib/modules/dri/i915_dri.so
No symbol table info available.
#5  0x0d5ab131 in intelMakeCurrent (driContextPriv=0x811e4a00,
driDrawPriv=0x816f1580, driReadPriv=0x816f1580)
    at
/usr/xenocara/lib/libGL/dri/i915/../../../../dist/Mesa/src/mesa/drivers/dri/intel/intel_context.c:892
        fb = (struct gl_framebuffer *) 0x8838c800
        readFb = (struct gl_framebuffer *) 0x8838c800
        intel = (struct intel_context *) 0x7e48b000
#6  0x0d5ecaed in driBindContext (pcp=0x811e4a00, pdp=0x816f1580,
prp=0x816f1580)
    at
/usr/xenocara/lib/libGL/dri/i915/../../../../dist/Mesa/src/mesa/drivers/dri/common/dri_util.c:220
        psp = (__DRIscreen *) 0x8844f500
        __func__ = "driBindContext"
#7  0x060927ac in dri2BindContext () from /usr/X11R6/lib/libGL.so.10.0
No symbol table info available.
#8  0x06093d7b in glXMakeCurrentReadSGI () from /usr/X11R6/lib/libGL.so.10.0
No symbol table info available.
#9  0x08868644 in clutter_backend_glx_create_context (backend=0x85d24010,
error=0xcfbece94) at clutter-backend-glx.c:640
        backend_glx = (ClutterBackendGLX *) 0x85d24010
        backend_x11 = (ClutterBackendX11 *) 0x85d24010
        config = 0x8ae27200
        is_direct = 1
        root_xwin = 186
        attrs = {background_pixmap = 4294967295, background_pixel = 760709324,
border_pixmap = 3485387912, border_pixel = 0, bit_gravity = 678971504, 
  win_gravity = 1, backing_store = -809579352, backing_planes = 1,
backing_pixel = 0, save_under = 678991272, event_mask = -809579320, 
  do_not_propagate_mask = 142266010, override_redirect = 1, colormap =
14680066, cursor = 141922304}
        xvisinfo = (XVisualInfo *) 0x87059800
        xdisplay = (Display *) 0x8b9cf6b0
        major = 1
        minor = 4
        dummy_drawable = 14680068
#10 0x087ada04 in _clutter_backend_create_context (backend=0x85d24010,
error=0xcfbece94) at ./clutter-backend.c:365
        klass = (ClutterBackendClass *) 0x8a5c4600
        __PRETTY_FUNCTION__ = "_clutter_backend_create_context"
#11 0x087cd25d in _clutter_feature_init (error=0xcfbece94) at
./clutter-feature.c:106
        context = (ClutterMainContext *) 0x8b080580
#12 0x087daa08 in clutter_init_real (error=0xcfbece94) at ./clutter-main.c:1616
        ctx = (ClutterMainContext *) 0x8b080580
---Type <return> to continue, or q <return> to quit---
        backend = (ClutterBackend *) 0x85d24010
#13 0x087daed2 in post_parse_hook (context=0x85d27bc0, group=0x85d27d00,
data=0x0, error=0xcfbece94) at ./clutter-main.c:1837
        clutter_context = (ClutterMainContext *) 0x8b080580
        backend = (ClutterBackend *) 0x85d24010
        __PRETTY_FUNCTION__ = "post_parse_hook"
#14 0x049e4381 in g_option_context_parse () from
/usr/local/lib/libglib-2.0.so.1803.0
No symbol table info available.
#15 0x087db1e6 in clutter_parse_args (argc=0xcfbecf40, argv=0xcfbecf44) at
./clutter-main.c:2067
        option_context = (GOptionContext *) 0x85d27bc0
        clutter_group = (GOptionGroup *) 0x85d27d00
        cogl_group = (GOptionGroup *) 0x85d27e40
        error = (GError *) 0x0
        ret = 1
#16 0x087db2a3 in clutter_init (argc=0xcfbecf40, argv=0xcfbecf44) at
./clutter-main.c:2120
        ctx = (ClutterMainContext *) 0x8b080580
        error = (GError *) 0x0
#17 0x1c01cd6a in test_clip_main (argc=1, argv=0xcfbecfd0) at test-clip.c:295
        data = {stage = 0x97f449f, hand = 0x297f4214, current_clip = {type =
2182971424, x1 = 77454288, y1 = -809578632, x2 = 1006674188, y2 = 696205844}, 
  clips = 0x297f422c}
        stub_actor = (ClutterActor *) 0x3c00bb60
        label = (ClutterActor *) 0x3c00bc5f
        file = (gchar *) 0x3c00a10c " \217"
#18 0x1c00b9e4 in main (argc=2, argv=0xcfbecfcc) at test-main.c:31
        module = (GModule *) 0x8adcb1a0
        unit_test = 0x821d80c0 "test-clip"
        main_symbol_name = 0x821d8020 "test_clip_main"
        func = 0x1c01cd52
        unit_test_main = (int (*)(int, char **)) 0x1c01cd52 <test_clip_main>
        ret = 37624313
(gdb) cerebrum:interactive {114} ^Dexit

Any help is much appreciated.
Comment 1 Ian Romanick 2011-02-07 13:41:03 UTC
Is 7.6 the actual Mesa version?  What is the output of "glxinfo | grep '^OpenGL [vr]e'"?  There should be 3 lines of output, like:

OpenGL vendor string: Tungsten Graphics, Inc
OpenGL renderer string: Mesa DRI Intel(R) Ironlake Mobile GEM 20100330 DEVELOPMENT 
OpenGL version string: 2.1 Mesa 7.9

I'm changing the component since the crash occurs in i915 driver code.
Comment 2 Jasper Lievisse Adriaanse 2011-02-09 07:25:55 UTC
Hi,

the output from glxinfo:
OpenGL vendor string: Tungsten Graphics, Inc
OpenGL renderer string: Mesa DRI Intel(R) 945GM GEM 20100328 2010Q1 x86/MMX/SSE2
OpenGL version string: 1.4 Mesa 7.8.2

I've since updated my machine to Mesa 7.8, though the crash is still there.
Comment 3 Ian Romanick 2011-02-09 11:30:23 UTC
(In reply to comment #2)

> I've since updated my machine to Mesa 7.8, though the crash is still there.

7.8 is pretty old, and it is no longer actively supported by the Mesa team.  Could you try either 7.9.1 or 7.10?
Comment 4 Jasper Lievisse Adriaanse 2011-04-26 04:45:29 UTC
FWIW, this happens still with the latest clutter (1.6.4), exact same issue.

Haven't been able to try this on newer Mesa versions yet.
Comment 5 Jasper Lievisse Adriaanse 2014-09-01 06:47:55 UTC
A lot has changed in the past 4 years, and this now works correctly. So I'll go ahead and mark this ticket as resolved.

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.