Xpra-org / xpra

Persistent remote applications for X11; screen sharing for X11, MacOS and MSWindows.

Home Page:https://xpra.org/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

blank window in lxqt desktop when attach locally

cadem opened this issue · comments

I use a lxqt desktop in a docker.
I attach a session locally, but I got a blank window showed. I guess I missed something in my linux, but I don't know what is it.

The command is:
dbus-run-session xpra attach :100 --opengl=no

the log is as follow:

Warning: XDG_RUNTIME_DIR is not defined
 and '/run/user/1000' does not exist
 using '/tmp'
dbus-daemon[8727]: [session uid=1000 pid=8727] Activating service name='org.gtk.vfs.Daemon' requested by ':1.0' (uid=1000 pid=8728 comm="/usr/bin/xpra attach :100 --opengl=no             " label="unconfined")
dbus-daemon[8727]: [session uid=1000 pid=8727] Successfully activated service 'org.gtk.vfs.Daemon'
fusermount3: failed to access mountpoint /home/ubuntu/.cache/gvfs: Permission denied

2024-05-17 18:03:39,599 Xpra GTK3 X11 client version 6.0-r0
2024-05-17 18:03:39,714  running on Linux Ubuntu 22.04 jammy
2024-05-17 18:03:39,714  cpython 3.10
2024-05-17 18:03:39,715  window manager is 'Openbox'
Warning: failed to query pulseaudio using 'pactl info'
 XDG_RUNTIME_DIR (/tmp) is not owned by us (uid 1000), but by uid 0! (This could e.g. happen if you try to connect to a non-root PulseAudio as a root user, over the native protocol. Don't do that.)
 Connection failure: Connection refused
 pa_context_connect() failed: Connection refused
Warning: failed to query pulseaudio using 'pactl info'
 XDG_RUNTIME_DIR (/tmp) is not owned by us (uid 1000), but by uid 0! (This could e.g. happen if you try to connect to a non-root PulseAudio as a root user, over the native protocol. Don't do that.)
 Connection failure: Connection refused
 pa_context_connect() failed: Connection refused
2024-05-17 18:03:40,011 GStreamer version 1.20.3
2024-05-17 18:03:40,026 Warning: failed to query pulseaudio using 'pactl info'
2024-05-17 18:03:40,026  XDG_RUNTIME_DIR (/tmp) is not owned by us (uid 1000), but by uid 0! (This could e.g. happen if you try to connect to a non-root PulseAudio as a root user, over the native protocol. Don't do that.)                                                                                                                                                             
2024-05-17 18:03:40,026  Connection failure: Connection refused
2024-05-17 18:03:40,026  pa_context_connect() failed: Connection refused
2024-05-17 18:03:40,041 Warning: failed to instantiate the dbus notification handler
2024-05-17 18:03:40,041  you may need to start a notification service for 'org.freedesktop.Notifications'
2024-05-17 18:03:40,042  disable notifications to avoid this warning
2024-05-17 18:03:40,044 Warning: failed to create socket directory '/run/user/1000/xpra/clients'
2024-05-17 18:03:40,044  [Errno 13] Permission denied: '/run/user/1000'
2024-05-17 18:03:40,044 Warning: cannot create socket '/run/user/1000/xpra/clients/54d01-8728':
2024-05-17 18:03:40,045  [Errno 2] No such file or directory
2024-05-17 18:03:40,045  ($XDG_RUNTIME_DIR has not been created?)
2024-05-17 18:03:40,251  keyboard settings: rules=base, model=pc104, layout=us
2024-05-17 18:03:40,255  desktop size is 1920x973:
2024-05-17 18:03:40,256   :15.0 (508x257 mm - DPI: 96x96) workarea: 1920x941 
2024-05-17 18:03:40,256     rdp0
2024-05-17 18:03:40,371 enabled fast mmap transfers using 512MB shared memory area
2024-05-17 18:03:40,371 enabled remote logging
2024-05-17 18:03:40,372 Xpra X11 seamless server version 6.0
2024-05-17 18:03:40,476 Attached to xpra server at socket://@xpra/100
2024-05-17 18:03:40,476  (press Control-C to detach)

2024-05-17 18:03:40,491 Warning: cannot handle window transparency
2024-05-17 18:03:40,491  screen is not composited
2024-05-17 18:03:40,499 Warning: window 0x1 changed its transparency attribute
2024-05-17 18:03:40,500  from False to True, behaviour is undefined
2024-05-17 18:03:40,510 Error on realize callback <function GTKClientWindowBase.set_opaque_region.<locals>.do_set_region at 0x7f39dd0ccca0> for window 1
Traceback (most recent call last):                                                                                                                                                           
  File "/usr/lib/python3/dist-packages/xpra/client/gtk3/window_base.py", line 1006, in on_realize                                                                                            
    x(*args)                                                                                                                                                                                 
  File "/usr/lib/python3/dist-packages/xpra/client/gtk3/window_base.py", line 1395, in do_set_region                                                                                         
    self.get_window().set_opaque_region(r)                                                                                                                                                   
KeyError: 'could not find foreign type Region'                                                                                                                                               
2024-05-17 18:03:40,513 running, 1 windows

(Xpra:8728): Gdk-CRITICAL **: 18:03:40.931: gdk_window_thaw_toplevel_updates: assertion 'window->update_and_descendants_freeze_count > 0' failed
TypeError: Couldn't find foreign struct converter for 'cairo.Context'
TypeError: Couldn't find foreign struct converter for 'cairo.Context'
TypeError: Couldn't find foreign struct converter for 'cairo.Context'
TypeError: Couldn't find foreign struct converter for 'cairo.Context'
2024-05-17 18:03:42,879 Error: cannot access the list of printers
2024-05-17 18:03:42,879  failed to connect to server
TypeError: Couldn't find foreign struct converter for 'cairo.Context'
TypeError: Couldn't find foreign struct converter for 'cairo.Context'
TypeError: Couldn't find foreign struct converter for 'cairo.Context'
^C

2024-05-17 18:03:51,634 Python/GTK3 Client got signal SIGINT

There are nowhere near enough details, please see https://github.com/Xpra-org/xpra/wiki/Reporting-Bugs

Try with a different window manager, Openbox doesn't do compositing.

It is very amazing, cairo.Context error is not related to window manager. I searched at the internet, found the solution:
sudo apt install python3-gi-cairo
After installing this package, I attach the session successfully.

Thanks!

Ah, that makes sense.
This problem only occurred here because of two unrelated issues:

  • docker builds don't install all the recommended dependencies, it is likely that a normal installation would have brought in python-cairo
  • running with --opengl=no uses the fallback paint path, which requires python-cairo

9c07f77 makes this a requires dependency for the client, a recommends one for the server (not needed unless the sync-xvfb option is used)