Bug 455030 - libglx crashes Xorg server
libglx crashes Xorg server
Status: CLOSED ERRATA
Product: Fedora
Classification: Fedora
Component: xorg-x11-server (Show other bugs)
10
All Linux
low Severity low
: ---
: ---
Assigned To: Adam Jackson
Fedora Extras Quality Assurance
:
Depends On:
Blocks:
  Show dependency treegraph
 
Reported: 2008-07-11 11:34 EDT by Zdenek Kabelac
Modified: 2009-10-19 04:47 EDT (History)
2 users (show)

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2009-10-19 04:46:00 EDT
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


Attachments (Terms of Use)
xorg.conf configuration file (2.88 KB, text/plain)
2008-07-30 10:21 EDT, Zdenek Kabelac
no flags Details
Xorg log file (35.96 KB, text/plain)
2008-07-30 10:26 EDT, Zdenek Kabelac
no flags Details


External Trackers
Tracker ID Priority Status Summary Last Updated
FreeDesktop.org 16703 None None None Never

  None (edit)
Description Zdenek Kabelac 2008-07-11 11:34:56 EDT
Description of problem:

While closing some 3D application - Xorg server goes down with the application
as well.

Here is backtrace from the gdb.

Program received signal SIGSEGV, Segmentation fault.
__glXDeassociateContext (glxc=0x9fed80) at glxutil.c:80
80		      ; prev = curr, curr = curr->nextDrawPriv ) {
(gdb) bt
#0  __glXDeassociateContext (glxc=0x9fed80) at glxutil.c:80
#1  0x00007f8767c3863f in __glXContextDestroy (context=0x11628c0)
    at glxcmds.c:151
#2  0x00007f8767c44712 in __glXDRIcontextDestroy (baseContext=0x9fed80)
    at glxdri.c:304
#3  0x00007f8767c3a7e2 in __glXFreeContext (cx=0x9fed80) at glxext.c:140
#4  0x00007f8767c3a823 in ContextGone (cx=0x11628c0, id=1161030104)
    at glxext.c:98
#5  0x000000000042ea45 in FreeResourceByType (id=8388609, type=52, skipFree=0)
    at resource.c:597
#6  0x00007f8767c3712e in __glXDisp_DestroyContext (cl=<value optimized out>, 
    pc=<value optimized out>) at glxcmds.c:338
#7  0x00007f8767c3aaf2 in __glXDispatch (client=0xc93530) at glxext.c:492
#8  0x00000000004467d4 in Dispatch () at dispatch.c:454
#9  0x000000000042cc4d in main (argc=3, argv=0x7fff702c7588, 
    envp=<value optimized out>) at main.c:441



(gdb) print curr
$1 = (__GLXcontext *) 0xa0000000a

Obviously invalid address.

(gdb) print *glxc
$4 = {destroy = 0x7f8767c446d0 <__glXDRIcontextDestroy>, 
  makeCurrent = 0x7f8767c42b60 <__glXDRIcontextMakeCurrent>, 
  loseCurrent = 0x7f8767c42b90 <__glXDRIcontextLoseCurrent>, 
  copy = 0x7f8767c42bb0 <__glXDRIcontextCopy>, 
  forceCurrent = 0x7f8767c42bd0 <__glXDRIcontextForceCurrent>, 
  textureFromPixmap = 0x7f8767e68ce0, last = 0x0, next = 0x0, 
  nextDrawPriv = 0x0, nextReadPriv = 0x0, config = 0xa6a050, 
  pGlxScreen = 0xa66620, id = 8388609, share_id = 0, screen = 0, 
  idExists = 0 '\0', isCurrent = 0 '\0', isDirect = 0 '\0', 
  hasUnflushedCommands = 0 '\0', renderMode = 7168, feedbackBuf = 0x0, 
  feedbackBufSize = 0, selectBuf = 0x0, selectBufSize = 0, 
  drawPriv = 0x11628c0, readPriv = 0x11628c0}

(gdb) print *glxc->drawPriv->drawGlxc 
$7 = {destroy = 0xb000600060000, makeCurrent = 0x4e5f594c00000002, 
  loseCurrent = 0xda4f44, copy = 0xb000600060000, 
  forceCurrent = 0x654d004500000002, textureFromPixmap = 0xda4f78, 
  last = 0xb000600060000, next = 0x414e5f4800000002, nextDrawPriv = 0xda4fac, 
  nextReadPriv = 0xb000600060000, config = 0x5954535f00000002, 
  pGlxScreen = 0xda4fe0, id = 393216, share_id = 720902, screen = 2, 
  idExists = 80 'P', isCurrent = 79 'O', isDirect = 73 'I', 
  hasUnflushedCommands = 78 'N', renderMode = 14307348, 
  feedbackBuf = 0xb000600060000, feedbackBufSize = 2, selectBuf = 0xda5048, 
  selectBufSize = 393216, drawPriv = 0x4152455600000002, readPriv = 0xda507c}

(gdb) print glxc->drawPriv->drawGlxc->nextDrawPriv->nextDrawPriv 
$9 = (__GLXcontext *) 0xa0000000a
(gdb) print *glxc->drawPriv->drawGlxc->nextDrawPriv
$10 = {destroy = 0, makeCurrent = 0xa0000000a, loseCurrent = 0xa, copy = 0, 
  forceCurrent = 0, textureFromPixmap = 0x0, last = 0x0, next = 0x0, 
  nextDrawPriv = 0xa0000000a, nextReadPriv = 0xa0000001f, 
  config = 0xa0000001f, pGlxScreen = 0xa, id = 0, share_id = 0, screen = 0, 
  idExists = 0 '\0', isCurrent = 0 '\0', isDirect = 0 '\0', 
  hasUnflushedCommands = 0 '\0', renderMode = 4, feedbackBuf = 0x500000005, 
  feedbackBufSize = 14, selectBuf = 0xf00000014, selectBufSize = 4, 
  drawPriv = 0x0, readPriv = 0x1200000000}

So this seems to be showing some weird place in the memory


Version-Release number of selected component (if applicable):
xorg-x11-server-Xorg-1.4.99.905-2.20080701.fc10.x86_64


How reproducible:


Steps to Reproduce:
1. closing 3D application - I assume easily repeatable on my box.
2.
3.
  
Actual results:


Expected results:


Additional info:
Comment 1 Matěj Cepl 2008-07-14 19:37:24 EDT
Thanks for the bug report.  We have reviewed the information you have provided
above, and there is some additional information we require that will be helpful
in our diagnosis of this issue.

Please attach your X server config file (/etc/X11/xorg.conf) and X server log
file (/var/log/Xorg.*.log) to the bug report as individual uncompressed file
attachments using the bugzilla file attachment link below.

Could you please also try to run without any /etc/X11/xorg.conf whatsoever and
let X11 autodetect your display and video card? Attach to this bug
/var/log/Xorg.0.log from this attempt as well, please.

We will review this issue again once you've had a chance to attach this information.

Thanks in advance.
Comment 2 Zdenek Kabelac 2008-07-30 10:21:05 EDT
Created attachment 313001 [details]
xorg.conf configuration file

I think my configuration files are really somewhat unrelated to this bug and it
more are less looks like some deallocation bug inside the libglx library.

But here comes my xorg.conf & log file
Comment 3 Zdenek Kabelac 2008-07-30 10:26:23 EDT
Created attachment 313002 [details]
Xorg log file 

not from the crash with the same configuration - I had to turn of signal
traping by the Xserver - but it should be roughly the same configuration
Comment 4 Zdenek Kabelac 2008-08-20 04:24:05 EDT
Bugfix is now a part of Xorg git tree.
Comment 5 Bug Zapper 2008-11-25 21:32:45 EST
This bug appears to have been reported against 'rawhide' during the Fedora 10 development cycle.
Changing version to '10'.

More information and reason for this action is here:
http://fedoraproject.org/wiki/BugZappers/HouseKeeping
Comment 6 seventhguardian 2009-10-16 18:33:16 EDT
(In reply to comment #4)
> Bugfix is now a part of Xorg git tree.  
Has the fix been released? Can this bug be closed?
Comment 7 Zdenek Kabelac 2009-10-19 04:30:09 EDT
Well I cannot judge for Fedora 10 packages anymore as I'm using Fedora12/rawhide - but as long as Fedora 10 contains Xorg past the 2008-08 the bugreport could be closed
Comment 8 seventhguardian 2009-10-19 04:46:00 EDT
This should be fixed in Fedora 11. Closing as such.

Note You need to log in before you can comment on or make changes to this bug.