Ubuntu – SSH from the Mac into Ubuntu: X forwarding not working correctly

nvidiasshxorg

Running a Mac Pro, OS X El Capitan 10.11.4
With ATI Radeon Graphics card, and XQuartz v 2.7.9

I am able to run qdec and freeview perfectly fine on my machine. The problem comes when I attempt to SSH into an Ubuntu 12.04 (Nvidia GeForce GTX 650) machine and use these programs (it used to work fine, but I am wondering if something in our configuration has changed now)

I get the following errors after ssh into the Ubuntu machine.

[myuser@ubuntu-machine:~] freeview
Xlib: extension "NV-GLX" missing on display "localhost:10.0". 
X Error: BadValue (integer parameter out of range for operation) 2
Extension:    150 (Uknown extension)
Minor opcode: 3 (Unknown request)
Resource id:  0x0
Abort         (core dumped)

[myuser@ubuntu-machine:~] qdec
Xlib: extension "NV-GLX" missing on display "localhost:10.0".
X Error of failed request:  BadValue (integer parameter out of range for operation)
Major opcode of failed request:  150 (GLX)
Minor opcode of failed request:  3 (X_GLXCreateContext)
Value in failed request:  0x0
Serial number of failed request:  1504
Current serial number in output stream:  1505

Based on my limited knowledge, It seems likely to be a problem with X / SSH, and the graphics card, but I am unsure on how to proceed from here. If anyone has any ideas on how to overcome this, I would be incredibly grateful!

The Ubuntu machine itself also has a monitor, and can run qdec and freeview fine locally, with no problems. the issue seems to happen over SSH. Some programs on the Ubuntu machine will work correctly this way (but they complain loudly in the background terminal about X)

The Mac recently updated XQuartz but I am not entirely sure if this problem was happening before the update or not.

We attempted ssh -y but this returns the same error.

We also export LIBGL_ALWAYS_INDIRECT=1 after SSH into the Ubuntu machine, but still get the same error.

The official question: What do these errors mean, and how can I attempt a fix?

Best Answer

This appears to be a problem with XQuartz. Apparently they are severely understaffed, and don't have barely enough time to keep the project on life-support. If you are also facing this issue, try reverting back to XQuartz 2.7.8, as that worked for someone in the bug report.

Your other options could be to use VNC, as Amias Channer suggested.

https://bugs.freedesktop.org/show_bug.cgi?id=93953#c6

As per the lead developer for XQuartz:

Given that the issue is with indirect rendering, it is either a change in xorg-server in XQuartz or a change in libGL or the X11 stack on the remote system. My hunch is that the remote libGL changed and possibly something in XQuartz's IGLX support changed. If you can try running older versions of XQuartz to see if it works with an older version of XQuartz, that might point to a change that could be made to get this working again. Although as I mentioned, IGLX is on life support in general, not just in XQuartz.

And:

Yeah, as I mentioned in the bug report, there's not much chance of things like this getting fixed soon because there aren't many people working on the project. I have maybe 2-3 hours every month or so, which is about just enough time to pull in security fixes, do some testing, and send out an update. Adding support for OpenGL Core in our direct rendering path is more work than I can sign up for. What you are asking for is adding it to the indirect rendering path, and that's even less likely to ever happen. Xorg is actively deprecating AIGLX and even removing it from the default configuration, so I suspect the solution there will be to just remove support for AIGLX completely.