Skip to content

GitLab

  • Projects
  • Groups
  • Snippets
  • Help
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
mesa
mesa
  • Project overview
    • Project overview
    • Details
    • Activity
    • Releases
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 2,373
    • Issues 2,373
    • List
    • Boards
    • Labels
    • Service Desk
    • Milestones
  • Merge Requests 658
    • Merge Requests 658
  • CI / CD
    • CI / CD
    • Pipelines
    • Jobs
    • Schedules
  • Operations
    • Operations
    • Incidents
    • Environments
  • Packages & Registries
    • Packages & Registries
    • Container Registry
  • Analytics
    • Analytics
    • CI / CD
    • Repository
    • Value Stream
  • Members
    • Members
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • Mesa
  • mesamesa
  • Issues
  • #81

Closed
Open
Opened Sep 18, 2019 by Bugzilla Migration User@bugzilla-migration

glXMakeCurrent() can SIGSEGV due to XGetVisualInfo failure in xvfb

Submitted by Jeremy Huddleston Sequoia

Assigned to Jeremy Huddleston Sequoia

Link to original bug (#41636)

Description

While trying to figure out another bug, I ran into this segfault in GLX

$ xvfb-run --server-args="-screen 10 1024x768x24 -pixdepths 32" gdb --args /usr/bin/glxinfo GNU gdb (Ubuntu/Linaro 7.3-0ubuntu2) 7.3-2011.08 Copyright (C) 2011 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later http://gnu.org/licenses/gpl.html This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "i686-linux-gnu". For bug reporting instructions, please see: http://bugs.launchpad.net/gdb-linaro/... Reading symbols from /usr/bin/glxinfo...(no debugging symbols found)...done.

(gdb) run
Starting program: /usr/bin/glxinfo 
[Thread debugging using libthread_db enabled]
name of display: :99
Error: couldn't find RGB GLX visual or fbconfig

180 GLXFBConfigs: visual x bf lv rg d st colorbuffer sr ax dp st accumbuffer ms cav id dep cl sp sz l ci b ro r g b a F gb bf th cl r g b a ns b eat

... a ton of output snipped

(gdb) bt
#0  0x0016d775 in XCreateDrawable (visualid=<optimized out>, drawable=2097165, dpy=0x804f008, pdp=0x8257680) at drisw_glx.c:96
#1  driswCreateDrawable (base=0x80e7bc8, xDrawable=2097165, drawable=2097165, modes=0x8103bd8) at drisw_glx.c:443
#2  0x0016df17 in driFetchDrawable (gc=0x806c778, glxDrawable=2097165) at dri_common.c:377
#3  0x0016d035 in drisw_bind_context (context=0x806c778, old=0x1971c0, draw=2097165, read=2097165) at drisw_glx.c:275
#4  0x0014afd0 in MakeContextCurrent (dpy=0x804f008, draw=2097165, read=2097165, gc_user=0x806c778) at glxcurrent.c:269
#5  0x0014b153 in glXMakeCurrent (dpy=0x804f008, draw=2097165, gc=0x806c778) at glxcurrent.c:303
#6  0x0804a2c5 in ?? ()
#7  0x002ea113 in __libc_start_main () from /lib/i386-linux-gnu/libc.so.6
#8  0x08048d31 in ?? ()
Backtrace stopped: Not enough registers or memory available to unwind further
(gdb) list 100
95	   /* create XImage */
96	   pdp->ximage = XCreateImage(dpy,
97	                              pdp->visinfo->visual,
98	                              pdp->visinfo->depth,
99	                              ZPixmap, 0,             /* format, offset */
100	                              NULL,                   /* data */
101	                              0, 0,                   /* width, height */
102	                              32,                     /* bitmap_pad */
103	                              0);                     /* bytes_per_line */
104	
(gdb) print pdp
$1 = (struct drisw_drawable *) 0x8257680
(gdb) print pdp->visinfo
$2 = (XVisualInfo *) 0x0
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information
Assignee
Assign to
None
Milestone
None
Assign milestone
Time tracking
None
Due date
None
Reference: mesa/mesa#81