Bug 64745

Summary: [llvmpipe] SIGSEGV src/gallium/state_trackers/glx/xlib/glx_api.c:1374
Product: Mesa Reporter: Vinson Lee <vlee>
Component: OtherAssignee: mesa-dev
Status: RESOLVED FIXED QA Contact:
Severity: critical    
Priority: medium Keywords: have-backtrace
Version: unspecified   
Hardware: x86-64 (AMD64)   
OS: Linux (All)   
Whiteboard:
i915 platform: i915 features:

Description Vinson Lee 2013-05-18 22:41:51 UTC
mesa: f6beb4c6b647b0d5077c7abd6c99cdaba6e0c112 (master)

Run glxinfo on llvmpipe on Fedora.

(gdb) bt
#0  0x00007f1735f2b66a in glXIsDirect (dpy=0x21d58a0, ctx=0x0)
    at src/gallium/state_trackers/glx/xlib/glx_api.c:1374
#1  0x000000000040329b in create_context_flags (contextFlags=0, profileMask=1, 
    direct=1, minor=<optimized out>, major=<optimized out>, 
    fbconfig=0x21e4ec0, dpy=0x21d58a0) at glxinfo.c:744
#2  create_context_with_config (dpy=0x21d58a0, config=0x21e4ec0, 
    coreProfile=<optimized out>, direct=1) at glxinfo.c:776
#3  0x00000000004034b7 in print_screen_info (dpy=dpy@entry=0x21d58a0, 
    scrnum=scrnum@entry=0, allowDirect=allowDirect@entry=1, 
    coreProfile=coreProfile@entry=1, limits=limits@entry=0, 
    singleLine=singleLine@entry=0, coreWorked=coreWorked@entry=0)
    at glxinfo.c:854
#4  0x00000000004016cb in main (argc=<optimized out>, argv=<optimized out>)
    at glxinfo.c:1731
(gdb) frame 0
#0  0x00007f1735f2b66a in glXIsDirect (dpy=0x21d58a0, ctx=0x0)
    at src/gallium/state_trackers/glx/xlib/glx_api.c:1374
1374	   return glxCtx->isDirect;
(gdb) print glxCtx
$1 = (GLXContext) 0x0
Comment 1 Brian Paul 2013-05-20 22:58:48 UTC
Looks like glxinfo failed to create a context and we're not checking for a null pointer.

I'll post patches both for Mesa and glxinfo to be more resilient.
Comment 2 Brian Paul 2013-05-21 14:15:59 UTC
OK, patches to glxinfo and Mesa have been pushed.  I think we can close this bug, but as to why context creation is failing - that may be another issue.

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.