Bug 1073519 - Xorg SIGSEGV with indirect GLX, GL dispatch table incorrect
Summary: Xorg SIGSEGV with indirect GLX, GL dispatch table incorrect
Keywords:
Status: CLOSED EOL
Alias: None
Product: Fedora
Classification: Fedora
Component: xorg-x11-server
Version: 20
Hardware: x86_64
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
Assignee: X/OpenGL Maintenance List
QA Contact: Fedora Extras Quality Assurance
URL: https://retrace.fedoraproject.org/faf...
Whiteboard: abrt_hash:b57fe5b9502caba4e270ab62dcb...
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2014-03-06 15:29 UTC by Thomas Meyer
Modified: 2015-06-29 19:19 UTC (History)
2 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2015-06-29 19:19:00 UTC
Type: ---
Embargoed:


Attachments (Terms of Use)
File: backtrace (8.93 KB, text/plain)
2014-03-06 15:29 UTC, Thomas Meyer
no flags Details
File: cgroup (102 bytes, text/plain)
2014-03-06 15:29 UTC, Thomas Meyer
no flags Details
File: core_backtrace (2.39 KB, text/plain)
2014-03-06 15:29 UTC, Thomas Meyer
no flags Details
File: dso_list (5.58 KB, text/plain)
2014-03-06 15:29 UTC, Thomas Meyer
no flags Details
File: environ (84 bytes, text/plain)
2014-03-06 15:29 UTC, Thomas Meyer
no flags Details
File: limits (1.29 KB, text/plain)
2014-03-06 15:29 UTC, Thomas Meyer
no flags Details
File: maps (71.24 KB, text/plain)
2014-03-06 15:29 UTC, Thomas Meyer
no flags Details
File: open_fds (1.77 KB, text/plain)
2014-03-06 15:29 UTC, Thomas Meyer
no flags Details
File: proc_pid_status (762 bytes, text/plain)
2014-03-06 15:29 UTC, Thomas Meyer
no flags Details
File: var_log_messages (5.92 KB, text/plain)
2014-03-06 15:29 UTC, Thomas Meyer
no flags Details


Links
System ID Private Priority Status Summary Last Updated
FreeDesktop.org 61022 0 None None None Never

Description Thomas Meyer 2014-03-06 15:29:06 UTC
Description of problem:
I opened Google Earth via a kml file

Version-Release number of selected component:
xorg-x11-server-Xorg-1.14.4-6.fc20

Additional info:
reporter:       libreport-2.1.12
backtrace_rating: 4
cmdline:        /usr/bin/Xorg :0 -background none -verbose -auth /run/gdm/auth-for-gdm-0Cm9a2/database -seat seat0 -nolisten tcp vt1
crash_function: window_pos4f
executable:     /usr/bin/Xorg
kernel:         3.13.5
runlevel:       N 5
type:           CCpp
uid:            0

Truncated backtrace:
Thread no. 1 (6 frames)
 #0 window_pos4f at ../../../src/mesa/main/rastpos.c:285
 #1 _mesa_WindowPos2fv at ../../../src/mesa/main/rastpos.c:371
 #2 __glXDisp_CompressedTexImage2DARB at indirect_dispatch.c:3995
 #3 __glXDisp_RenderLarge at glxcmds.c:2239
 #4 __glXDispatch at glxext.c:581
 #5 Dispatch at dispatch.c:432

Comment 1 Thomas Meyer 2014-03-06 15:29:18 UTC
Created attachment 871504 [details]
File: backtrace

Comment 2 Thomas Meyer 2014-03-06 15:29:31 UTC
Created attachment 871505 [details]
File: cgroup

Comment 3 Thomas Meyer 2014-03-06 15:29:33 UTC
Created attachment 871507 [details]
File: core_backtrace

Comment 4 Thomas Meyer 2014-03-06 15:29:36 UTC
Created attachment 871509 [details]
File: dso_list

Comment 5 Thomas Meyer 2014-03-06 15:29:44 UTC
Created attachment 871511 [details]
File: environ

Comment 6 Thomas Meyer 2014-03-06 15:29:46 UTC
Created attachment 871513 [details]
File: limits

Comment 7 Thomas Meyer 2014-03-06 15:29:48 UTC
Created attachment 871514 [details]
File: maps

Comment 8 Thomas Meyer 2014-03-06 15:29:53 UTC
Created attachment 871515 [details]
File: open_fds

Comment 9 Thomas Meyer 2014-03-06 15:29:55 UTC
Created attachment 871516 [details]
File: proc_pid_status

Comment 10 Thomas Meyer 2014-03-06 15:29:57 UTC
Created attachment 871518 [details]
File: var_log_messages

Comment 11 Thomas Meyer 2014-03-06 22:44:23 UTC
Okay, this crash is a result of an installed libtxc_dxtn...
I'm not sure why these library leads to a crash when installed into /lib64/libtxc_dxtn.so as it shouldn't, or should it?!

When I understand the gdb crash correctly, it looks like it somehow messes with the function call table of the GL api in the xserver?!

I removed the library for now and google earth works again correctly.

Comment 12 Michal Schmidt 2014-06-29 23:01:55 UTC
I have a reproducible Xorg crash with a backtrace that indicates it is a similar or identical issue. My Xorg crashes always when I try to run the game Braid (from one of the earlier Humble Bundles).

xorg-x11-server-Xorg-1.14.4-11.fc20.x86_64
xorg-x11-drv-ati-7.2.0-3.20131101git3b38701.fc20.x86_64

Here's the interesting part of my backtrace:
...
#10 _mesa_WindowPos2fv (v=0xde1) at main/rastpos.c:372
#11 0x00007fed6eed09a9 in __glXDisp_CompressedTexImage2DARB (pc=<optimized out>) at indirect_dispatch.c:3995
        imageSize = <optimized out>
#12 0x00007fed6eefb405 in __glXDisp_RenderLarge (cl=0x14985e0, pc=<optimized out>) at glxcmds.c:2239
        proc = <optimized out>
        req = <optimized out>
        client = 0x14984e0
        dataBytes = 65536
        hdr = <optimized out>
        glxc = 0x149ab90
        error = 32767
        opcode = 215
        sw = <optimized out>
...

Notice that v=0xde1 in frame #10 is the value of the constant GL_TEXTURE_2D, which makes sense as the 1st argument of CompressedTexImage2DARB, but certainly not as an argument of _mesa_WindowPos2fv. So it seems the GL dispatch table contains some nonsense, causing GLX to call an inappropriate function.

By semi-randomly checking the pointers in _glapi_tls_Dispatch I found that the beginning of the table is alright, all up to index 407 (looking at indexes in glx/dispatch.h):

(gdb) p _glapi_tls_Dispatch->MultiTexCoord4svARB              /* 407 */
$20 = (void (*)(GLenum, const GLshort *)) 0x7f9a76053cb0 <_mesa_MultiTexCoord4sv>

The first incorrect pointer is at index 408:

(gdb) p _glapi_tls_Dispatch->AttachShader                     /* 408 */
$21 = (void (*)(GLuint, GLuint)) 0x7f9a761006e0 <_mesa_CompressedTexImage1D>

It seems significant that in glx/dispatch.h, number 408 is the first one defined under "#if !FEATURE_remap_table".

After some more googling I found this upstream report that suggested disabling glamor as a workaround: https://bugs.freedesktop.org/show_bug.cgi?id=61022
And indeed, after I rebuilt xorg-x11-drv-ati locally with s/--enable-glamor/--disable-glamor/ in the spec file, the crash is gone and I can play Braid again (I have an r600, so I do not really need glamor anyway).

I suspect that this bug may be already fixed upstream by
  commit be6680967a479eedbcab2fe1718c5f981e1029c7
  Author: Adam Jackson <ajax>
  Date:   Wed Jul 10 10:00:46 2013 -0400

      glx: convert to direct GL dispatch (v2)
though I have not tested it.

Comment 13 Fedora End Of Life 2015-05-29 11:10:34 UTC
This message is a reminder that Fedora 20 is nearing its end of life.
Approximately 4 (four) weeks from now Fedora will stop maintaining
and issuing updates for Fedora 20. It is Fedora's policy to close all
bug reports from releases that are no longer maintained. At that time
this bug will be closed as EOL if it remains open with a Fedora  'version'
of '20'.

Package Maintainer: If you wish for this bug to remain open because you
plan to fix it in a currently maintained version, simply change the 'version' 
to a later Fedora version.

Thank you for reporting this issue and we are sorry that we were not 
able to fix it before Fedora 20 is end of life. If you would still like 
to see this bug fixed and are able to reproduce it against a later version 
of Fedora, you are encouraged  change the 'version' to a later Fedora 
version prior this bug is closed as described in the policy above.

Although we aim to fix as many bugs as possible during every release's 
lifetime, sometimes those efforts are overtaken by events. Often a 
more recent Fedora release includes newer upstream software that fixes 
bugs or makes them obsolete.

Comment 14 Fedora End Of Life 2015-06-29 19:19:00 UTC
Fedora 20 changed to end-of-life (EOL) status on 2015-06-23. Fedora 20 is
no longer maintained, which means that it will not receive any further
security or bug fix updates. As a result we are closing this bug.

If you can reproduce this bug against a currently maintained version of
Fedora please feel free to reopen this bug against that version. If you
are unable to reopen this bug, please file a new report against the
current release. If you experience problems, please add a comment to this
bug.

Thank you for reporting this bug and we are sorry it could not be fixed.


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