Bug 950708

Summary: [x.org server] - compatibility issue with tigervnc and glxgears
Product: Red Hat Enterprise Linux 6 Reporter: Nick Greene <ngreene>
Component: tigervncAssignee: Tim Waugh <twaugh>
Status: CLOSED CURRENTRELEASE QA Contact: qe-baseos-daemons
Severity: high Docs Contact:
Priority: urgent    
Version: 6.4CC: a.dekker, azelinka, bgollahe, jwest, olchansk, ovasik, parsonsa, sisharma, vincent
Target Milestone: rcKeywords: Patch, ZStream
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
A previous update unintentionally dropped the GLX extension from Xvnc's X11 extension list. Therefore, it was not possible to run any OpenGL applications inside a VNC session. This update fixes this regression and Xvnc now supports the GLX extension.
Story Points: ---
Clone Of: Environment:
Last Closed: 2013-11-14 10:41:40 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 835616, 956752    

Description Nick Greene 2013-04-10 17:30:44 UTC
Description of problem:
In RHEL 6.4 tigervnc breaks OpenGL

Version-Release number of selected component (if applicable):
tigervnc-server-1.1.0-5.el6.x86_64

How reproducible:
everytime

Steps to Reproduce:
1. Start a 'vncserver' on a RHEL 6.3 machine and a RHEL 6.4 machine
2. Connect to the vnc session using 'vncviewer' (it does not matter whether the viewer is 6.3 or 6.4)
3. Open a terminal and then run glxgears. 

It works on the 6.3 machine but not on 6.4.
  
Actual results:
Error: couldn't get an RGB, Double-buffered visual

Expected results:
Display the rotating gears animation

Additional info:

Comment 9 Adam Tkac 2013-04-25 11:28:27 UTC
*** Bug 919338 has been marked as a duplicate of this bug. ***

Comment 10 Adam Tkac 2013-04-25 11:30:30 UTC
*** Bug 955347 has been marked as a duplicate of this bug. ***

Comment 14 Konstantin Olchanski 2013-04-25 15:05:39 UTC
Some details from my bug report - glxgears does not work because the GLX extension is not present: xdpyinfo | grep GLX.

The GLX extension seems to have been lost because of non VNC-related changes in Xorg, here is the fix in the tigervnc trunk:
http://tigervnc.svn.sourceforge.net/viewvc/tigervnc/trunk/unix/xserver/hw/vnc/xvnc.cc?r1=5047&r2=5067

K.O.

Comment 16 Vincent S. Cojot 2013-10-22 14:07:34 UTC
Hi, the re-enabling of GLX inside tigervnc-server-module kills the X server when VNC clients connected to display :0 exit their session. In all cases, the backtrace looks like this:

[319793.298] (EE) Backtrace:
[319793.298] (EE) 0: /usr/bin/X (xorg_backtrace+0x36) [0x46ced6]
[319793.298] (EE) 1: /usr/bin/X (0x400000+0x72c39) [0x472c39]
[319793.298] (EE) 2: /lib64/libpthread.so.0 (0x3c48000000+0xf500) [0x3c4800f500]
[319793.298] (EE) 3: /usr/lib64/libstdc++.so.6 (__cxa_allocate_exception+0x24) [0x3c4b4bb754]
[319793.298] (EE) 4: /usr/lib64/xorg/modules/extensions/libvnc.so (_ZN3rdr10FdInStream25readWithTimeoutOrCallbackEPvib+0x2de) [0x7f7793d97a1e]
[319793.298] (EE) 5: /usr/lib64/xorg/modules/extensions/libvnc.so (_ZN3rdr10FdInStream7overrunEiib+0xcb) [0x7f7793d97b4b]
[319793.298] (EE) 6: /usr/lib64/xorg/modules/extensions/libvnc.so (_ZN3rfb16VNCSConnectionST15processMessagesEv+0x5f) [0x7f7793d60e5f]
[319793.298] (EE) 7: /usr/lib64/xorg/modules/extensions/libvnc.so (_ZN14XserverDesktop13wakeupHandlerEP6fd_seti+0x11e) [0x7f7793d301ae]
[319793.298] (EE) 8: /usr/lib64/xorg/modules/extensions/libvnc.so (0x7f7793cea000+0x3da64) [0x7f7793d27a64]
[319793.298] (EE) 9: /usr/bin/X (WakeupHandler+0x5b) [0x43b8bb]
[319793.299] (EE) 10: /usr/bin/X (WaitForSomething+0x1ef) [0x46a64f]
[319793.299] (EE) 11: /usr/bin/X (0x400000+0x379d2) [0x4379d2]
[319793.299] (EE) 12: /usr/bin/X (0x400000+0x7cd2a) [0x47cd2a]
[319793.299] (EE) 13: /lib64/libc.so.6 (__libc_start_main+0xfd) [0x3c4741ecdd]
[319793.299] (EE) 14: /usr/bin/X (0x400000+0x260b9) [0x4260b9]
[319793.299] (EE)
[319793.299] (EE) Segmentation fault at address 0x18
[319793.299]
Fatal server error:
[319793.299] Caught signal 11 (Segmentation fault). Server aborting
[319793.299]
[319793.299] (EE)
Please consult the Red Hat, Inc. support
         at https://www.redhat.com/apps/support/
 for help.
[319793.299] (EE) Please also check the log file at "/var/log/Xorg.0.log" for additional information.
[319793.299] (EE)

I'm opening a support ticket now.
Regards,
Vincent

Comment 18 Vincent S. Cojot 2014-12-03 21:36:05 UTC
Regression time again:

In the latest rpms, the GLX extension does not function properly.
This is on a fully updated RHEL6.6 host.

Set of RPMS with the issue:
tigervnc-server-module-1.1.0-16.el6.x86_64
tigervnc-server-1.1.0-16.el6.x86_64
tigervnc-debuginfo-1.1.0-16.el6.x86_64
tigervnc-1.1.0-16.el6.x86_64
tigervnc-server-applet-1.1.0-16.el6.noarch

When starting Xvnc, the GLX extension is show as being initizalized:

 ./bin/Xvnc.1.1.0.el6.6 :5 -desktop thorbardin:5 -auth /export/home/raistlin/.Xauthority -geometry 1600x1200 -depth 24 -rfbwait 30000 -rfbauth /export/home/raistlin/.vnc/passwd -rfbport 5905 -noreset

Xvnc TigerVNC 1.1.0 - built Jul 22 2014 06:00:32
Copyright (C) 1999-2011 TigerVNC Team and many others (see README.txt)
See http://www.tigervnc.org for information on TigerVNC.
Underlying X server release 11500000, The X.Org Foundation

Initializing built-in extension Generic Event Extension
Initializing built-in extension SHAPE
Initializing built-in extension MIT-SHM
Initializing built-in extension XInputExtension
Initializing built-in extension XTEST
Initializing built-in extension BIG-REQUESTS
Initializing built-in extension SYNC
Initializing built-in extension XKEYBOARD
Initializing built-in extension XC-MISC
Initializing built-in extension XFIXES
Initializing built-in extension RENDER
Initializing built-in extension RANDR
Initializing built-in extension DAMAGE
Initializing built-in extension MIT-SCREEN-SAVER
Initializing built-in extension DOUBLE-BUFFER
Initializing built-in extension RECORD
Initializing built-in extension DPMS
Initializing built-in extension X-Resource
Initializing built-in extension XVideo
Initializing built-in extension XVideo-MotionCompensation
Initializing built-in extension VNC-EXTENSION
Initializing built-in extension GLX

Wed Dec  3 16:23:37 2014
 vncext:      VNC extension running!
 vncext:      Listening for VNC connections on all interface(s), port 5905
 vncext:      created VNC server for screen 0

However, when 'glxinfo'  is run on :5, I get this:

$ glxinfo
name of display: :5.0
Xlib:  extension "GLX" missing on display ":5.0".
Xlib:  extension "GLX" missing on display ":5.0".
Xlib:  extension "GLX" missing on display ":5.0".
Xlib:  extension "GLX" missing on display ":5.0".
Xlib:  extension "GLX" missing on display ":5.0".
Error: couldn't find RGB GLX visual or fbconfig

Xlib:  extension "GLX" missing on display ":5.0".
Xlib:  extension "GLX" missing on display ":5.0".
Xlib:  extension "GLX" missing on display ":5.0".
Xlib:  extension "GLX" missing on display ":5.0".
Xlib:  extension "GLX" missing on display ":5.0".


Workaround: install tigervnc 1.3.1 from tigervnc.org (but it has its own share of issues). :(

Please report this as a regression.
Thank you,

Vincent

Comment 19 Tim Waugh 2014-12-08 15:32:04 UTC
Works for me with tigervnc-{,server-}1.1.0-16.el6.x86_64 and xorg-x11-server-Xorg-1.15.0-22.el6.x86_64.

However, I have seen another report of GLX failing under Xvnc in RHEL-6.6. Investigation continues.

Comment 20 Vincent S. Cojot 2014-12-08 15:50:04 UTC
Hi Tim,
I've opened case #01310701 with RedHat support about this.
This is on a box with the proprietary NVidia drivers.
In their investigation, Tigervnc people found that the 1.4 binary (which shared the same kind of issue/symptoms on el6.6) didn't link a library: libglapi.

The 1.3.1 binary that now works for me under el6.6 is linked with libGL only, though:

# ldd /usr/bin/Xvnc|grep libGL
        libGL.so.1 => /usr/lib64/nvidia/libGL.so.1 (0x0000003c15200000)

Please let me know if you need further information either through the support case or through this BZ (should be cloned or re-opened, I think).
Thanks,

Vincent S. Cojot