[winswitch] Xpra on ubuntu 18.04 unity

Antoine Martin antoine at nagafix.co.uk
Fri Oct 12 11:14:21 BST 2018


For the record, the problem with Unity comes from Ubuntu's packaging of
gtk3-nocsd which is installed as a dependency of the unity package.

The LD_PRELOAD trick it uses to do its job ends up injecting GTK3
library symbols into GTK2 processes, causing all sorts of problems.

More gory details here:
https://xpra.org/trac/ticket/1981#comment:5

Cheers,
Antoine

On 07/10/18 20:00, Iwan Vosloo via shifter-users wrote:
> Thanks Antoine,
> 
> On 05/10/2018 18:54, Antoine Martin via shifter-users wrote:
>> On 05/10/2018 14:00, Iwan Vosloo via shifter-users wrote:
>>> When run from a normal, "Ubuntu" session (meaning the new Gnome shipped
>>> with Ubuntu 18.04), all is well.
>>>
>>> However, if we log into a unity session (which is what we'd like to do),
>>> xpra cannot attach,  giving:
>>>
>>> 2018-10-05 08:35:15,622 Xpra gtk2 client version 2.3.4-r20509 64-bit
>>> 2018-10-05 08:35:15,623  running on Linux Ubuntu 18.04 bionic
>>> 2018-10-05 08:35:17,212 GStreamer version 1.14.1 for Python 2.7.15
>>> 64-bit
>>> 2018-10-05 08:35:17,376 No OpenGL_accelerate module loaded: No module
>>> named OpenGL_accelerate
>>> /usr/lib/python2.7/dist-packages/xpra/client/gl/gtk_base/gtkgl_check.py:152:
>>>
>>> Warning: cannot register existing type 'GdkScreen'
>>>    glarea.realize()
>>> /usr/lib/python2.7/dist-packages/xpra/client/gl/gtk_base/gtkgl_check.py:152:
>>>
>>> Warning: g_once_init_leave: assertion 'result != 0' failed
>>>    glarea.realize()
>>> /usr/lib/python2.7/dist-packages/xpra/client/gl/gtk_base/gtkgl_check.py:152:
>>>
>>> GtkWarning: gdk_screen_is_composited: assertion 'GDK_IS_SCREEN (screen)'
>>> failed
>>>    glarea.realize()
>>> Segmentation fault (core dumped)
>> That's an OpenGL crash.
>> We have sanity checks to verify that the OpenGL drivers work properly
>> before we enable them, but it is those checks that are causing the crash
>> here. If the drivers can't create a simple test window, something is
>> fundamentally wrong.
>>
>> Looks like the opengl bindings don't run properly under Unity.
>> This would be a bug for Unity or gtkgl.
>>
>>
>> You may have more luck with the alternative opengl backend:
>> xpra attach --opengl=native
>>
>> The only thing we could do better here would be to proactively disable
>> OpenGL under Unity.
> 
> I realise something besides xpra must be causing the issue - something
> that changed between ubuntu 16.04 (where Unity works fine) and 18.04.
> Not sure how to get more info to poinpoint the issue though.
> 
>> Let us know how you get on so that I can blacklist Unity if necessary.
> 
> with --opengl=native things still dont work and I get output:
> 
> 2018-10-07 14:31:18,390 Xpra gtk2 client version 2.3.4-r20509 64-bit
> 2018-10-07 14:31:18,391  running on Linux Ubuntu 18.04 bionic
> 2018-10-07 14:31:20,113 GStreamer version 1.14.1 for Python 2.7.15 64-bit
> 2018-10-07 14:31:20,275 No OpenGL_accelerate module loaded: No module
> named OpenGL_accelerate
> /usr/lib/python2.7/dist-packages/xpra/client/gtk_base/gtk_client_base.py:1020:
> Warning: cannot register existing type 'GdkScreen'
>   window.realize()
> /usr/lib/python2.7/dist-packages/xpra/client/gtk_base/gtk_client_base.py:1020:
> Warning: g_once_init_leave: assertion 'result != 0' failed
>   window.realize()
> /usr/lib/python2.7/dist-packages/xpra/client/gtk_base/gtk_client_base.py:1020:
> GtkWarning: gdk_screen_is_composited: assertion 'GDK_IS_SCREEN (screen)'
> failed
>   window.realize()
> 2018-10-07 14:31:20,529 OpenGL enabled with Mesa DRI Intel(R) HD
> Graphics 520 (Skylake GT2)
> 
> However that process seems to hang and never reports being attached. I
> have to kill -9 to get rid of it.
> 
>> It wouldn't hurt to have the output of the command:
>> xpra opengl
> 
> No OpenGL_accelerate module loaded: No module named OpenGL_accelerate
> GLU.extensions=GLU_EXT_nurbs_tessellator GLU_EXT_object_space_tess
> GLU.version=1.3
> accum-blue-size=0
> accum-green-size=0
> accum-red-size=0
> alpha-size=0
> aux-buffers=0
> blue-size=8
> depth=24
> depth-size=0
> display_mode=DOUBLE
> double-buffered=True
> gdkgl={'version': (1, 4)}
> gdkglext={'version': (1, 2, 0)}
> green-size=8
> gtkglext={'version': (1, 2, 0)}
> has-depth-buffer=False
> has-stencil-buffer=False
> has_alpha=False
> max-viewport-dims=(32768, 32768)
> opengl=3.0
> pygdkglext={'version': (1, 1, 0)}
> pyopengl=3.1.1a1
> red-size=8
> renderer=Mesa DRI Intel(R) HD Graphics 520 (Skylake GT2)
> rgba=True
> safe=True
> sample-buffers=0
> samples=0
> shading-language-version=1.30
> stencil-size=0
> stereo=False
> texture-size-limit=16384
> transparency=True
> vendor=Intel Open Source Technology Center
> zerocopy=False
> 
> 
>>
>>> If we run it under unity with:
>>>    xpra attach --sharing=yes --opengl=no ssh:vagrant at 10.0.3.140:100
>>>
>>> ...then it attaches fine (also according to the server log file), but
>>> running a program on :100 does not open a window on the attached client.
>> This looks like a separate issue.
>> It's very difficult to tell you anything useful as there just isn't
>> enough information there. FWIW, I've just tried it and encountered no
>> problems.
>> Try filing a ticket and make sure to include "xpra info".
>>
> 
> Ok, thanks I did so and included output of xpra opengl and xpra info.
> 
> 
> Regards
> Iwan
> 




More information about the shifter-users mailing list