xpra icon
Bug tracker and wiki

Opened 5 weeks ago

Last modified 5 weeks ago

#2909 assigned defect

HTML5 Client shows shifted and partial xfce4 desktop

Reported by: goekce Owned by: Antoine Martin
Priority: major Milestone: 4.2
Component: html5 Version: trunk
Keywords: Cc:

Description

Version: xpra v4.1-r27688

After I connect through Xpra proxy, I get the the screenshot attached. It is not possible to scroll to the bottom of the screen and the desktop seems to be shifted on the top.

Do you have an idea where the problem could be?

Attachments (1)

2909-screenshot.png (112.2 KB) - added by goekce 5 weeks ago.

Download all attachments as: .zip

Change History (7)

Changed 5 weeks ago by goekce

Attachment: 2909-screenshot.png added

comment:1 Changed 5 weeks ago by Antoine Martin

Status: assignednew

After I connect through Xpra proxy...

Are you sure that connecting through the proxy makes any difference at all?

Please include the server log, which will show the client's resolution.
-d geometry,screen may provide more details.

comment:2 Changed 5 weeks ago by goekce

When I connect without proxy, the rendering is ok.:

xpra start-desktop --start-child=xfce4-session --bind-tcp=0.0.0.0:14500 --exit-with-client --exit-with-children --systemd-run=no

When I use proxy with xfce4-session I get the following notification which I forgot in the description. Sorry for that:

DPI is set to 15x15 (wanted 96x96) you may experience scaling problems, ...

Here is the log which contains the screen resolution:

Current version of pixman: 0.40.0
	Before reporting problems, check http://wiki.x.org
	to make sure that you have the latest version.
Markers: (--) probed, (**) from config file, (==) default setting,
	(++) from command line, (!!) notice, (II) informational,
	(WW) warning, (EE) error, (NI) not implemented, (??) unknown.
(++) Log file: "/run/user/36549/xpra/Xorg.S18668.log", Time: Sun Oct 18 16:25:32 2020
(++) Using config file: "/etc/xpra/xorg.conf"
(==) Using system config directory "/usr/share/X11/xorg.conf.d"
16:25:38,456 created unix domain socket '/run/user/36549/xpra/server_hostname-0'
16:25:38,457 created unix domain socket '/run/xpra/server_hostname-0'
16:25:38,563 pointer device emulation using XTest
16:25:38,638 serving html content from '/usr/share/xpra/www'
16:25:38,990 failed to connect to avahi's dbus interface: org.freedesktop.systemd1.NoSuchUnit: Unit dbus-org.freedesktop.Avahi.service not found.
16:25:38,990  to avoid this warning, disable mdns support 
16:25:38,990  using the 'mdns=no' option
16:25:38,997 D-Bus notification forwarding is available
16:25:39,018 pulseaudio not started: 'pulseaudio' command not found

(Xpra:18677): Gtk-CRITICAL **: 16:25:39.102: gtk_widget_realize: assertion 'widget->priv->anchored || GTK_IS_INVISIBLE (widget)' failed
16:25:39,111 Warning: webcam forwarding is disabled
16:25:39,111  the virtual video directory '/sys/devices/virtual/video4linux' was not found
16:25:39,111  make sure that the 'v4l2loopback' kernel module is installed and loaded
16:25:39,111  or use the 'webcam=no' option
16:25:39,112 found 0 virtual video devices for webcam forwarding
16:25:39,120 Warning: cannot watch for application menu changes without pyinotify:
16:25:39,120  No module named 'pyinotify'
gpg-agent[18780]: WARNING: "--write-env-file" is an obsolete option - it has no effect
gpg-agent: a gpg-agent is already running - not starting a new one

(xfce4-session:18765): xfce4-session-WARNING **: 16:25:39.197: gpg-agent returned no PID in the variables

(xfce4-session:18765): xfce4-session-WARNING **: 16:25:39.202: xfsm_manager_load_session: Something wrong with /home/user/.cache/sessions/xfce4-session-server_hostname:0, Does it exist? Permissions issue?
16:25:39,214 Error parsing xdg menu data:
16:25:39,215  ParsingError in file '/etc/xdg/menus/kde-applications.menu', File not found
16:25:39,215  this is either a bug in python-xdg,
16:25:39,219  or an invalid system menu configuration
xfwm4-Message: 16:25:39.289: Another Window Manager (Xpra) is already running on screen :0.0
xfwm4-Message: 16:25:39.289: To replace the current window manager, try "--replace"

(xfwm4:18782): xfwm4-WARNING **: 16:25:39.289: Could not find a screen to manage, exiting
16:25:39,302 251.9GB of system memory
16:25:39,511 xpra is ready.
16:25:39,511 xpra GTK3 X11 version 4.1-r27685 64-bit
xfsettingsd-Message: 16:25:39.529: Skipping screen 0, it already has an xsettings manager...
16:25:39,559  uid=36549 (user), gid=10001 (students)
16:25:39,559  running with pid 18677 on Linux unknown unknown unknown
16:25:39,559  connected to X11 display :0 with 24 bit colors
Warning: failed to query pulseaudio using 'pactl info'
 Connection failure: Connection refused
 pa_context_connect() failed: Connection refused
Warning: failed to query pulseaudio using 'pactl info'
 Connection failure: Connection refused
 pa_context_connect() failed: Connection refused
16:25:39,630 GStreamer version 1.18.0 for Python 3.8.6 64-bit
16:25:39,667 Warning: failed to query pulseaudio using 'pactl info'
16:25:39,667  Connection failure: Connection refused
16:25:39,667  pa_context_connect() failed: Connection refused
16:25:39,769 Odd-lengthed property _NET_WM_STRUT or _NET_WM_STRUT_PARTIAL: wanted 48 bytes, got 96: b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
16:25:39,772 Error parsing xdg menu data:
16:25:39,772  ParsingError in file '/etc/xdg/menus/kde-applications.menu', File not found
16:25:39,772  this is either a bug in python-xdg,
16:25:39,772  or an invalid system menu configuration

** (wrapper-2.0:18831): WARNING **: 16:25:39.877: No outputs have backlight property

(wrapper-2.0:18831): Gtk-WARNING **: 16:25:39.938: Negative content width -3 (allocation 1, extents 2x2) while allocating gadget (node button, owner PowerManagerButton)

(wrapper-2.0:18833): Gtk-WARNING **: 16:25:39.942: Negative content width -1 (allocation 1, extents 1x1) while allocating gadget (node button, owner XfceArrowButton)
16:25:39,951 New unix-domain connection received
16:25:39,951  on '/run/xpra/server_hostname-0'

(wrapper-2.0:18834): Gtk-WARNING **: 16:25:40.050: Negative content width -1 (allocation 1, extents 1x1) while allocating gadget (node button, owner GtkButton)
16:25:40,147 New unix-domain connection received
16:25:40,147  on '/run/user/36549/xpra/server_hostname-0'
16:25:40,149 Handshake complete; enabling connection
16:25:40,171 HTML5 Posix Firefox client version 4.1-r27685
16:25:40,171   as 'user'
16:25:40,171  via Linux 5.9.1-arch1-1 proxy version 4.1 on 'server_hostname'
16:25:40,176 setting keyboard layout to 'us'
16:25:40,298  client root window size is 1916x967 with 1 display:
16:25:40,298   HTML (507x256 mm - DPI: 95x95)
16:25:40,299     Canvas
16:25:40,304 Error writing fake xinerama file '/root/.None-fakexinerama':
16:25:40,304  [Errno 13] Permission denied: '/root/.None-fakexinerama'
16:25:40,304 Error writing fake xinerama file '/root/.fakexinerama':
16:25:40,304  [Errno 13] Permission denied: '/root/.fakexinerama'
16:25:40,377 server virtual display now set to 1856x960 (best match for 1916x967)
16:25:40,440 Error parsing xdg menu data:
16:25:40,440  ParsingError in file '/etc/xdg/menus/kde-applications.menu', File not found
16:25:40,440  this is either a bug in python-xdg,
16:25:40,440  or an invalid system menu configuration
16:25:40,472 client   1 received xdg start menu data
16:25:40,500 client   1 startup complete
16:25:40,500 client   1 connection-established
16:25:40,512 Odd-lengthed property _NET_WM_STRUT or _NET_WM_STRUT_PARTIAL: wanted 48 bytes, got 96: b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00?\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
16:25:40,513 Error parsing property '_NET_WM_STRUT_PARTIAL' (strut-partial)
16:25:40,513  this may be a misbehaving application, or bug in Xpra
16:25:40,513  data length=96
16:25:40,513  data: "b'\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x .. x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00'"
Traceback (most recent call last):
  File "/usr/lib/python3.8/site-packages/xpra/x11/gtk_x11/prop.py", line 169, in prop_get
    return prop_decode(target, etype, data)
  File "/usr/lib/python3.8/site-packages/xpra/x11/prop_conv.py", line 309, in prop_decode
    return _prop_decode_scalar(disp, etype, data)
  File "/usr/lib/python3.8/site-packages/xpra/x11/prop_conv.py", line 313, in _prop_decode_scalar
    value = deserialize(disp, data)
  File "/usr/lib/python3.8/site-packages/xpra/x11/prop_conv.py", line 68, in __init__
    ) = struct.unpack(b"@" + b"L" * 12, data)
struct.error: unpack requires a buffer of 96 bytes
Traceback (most recent call last):
  File "/usr/lib/python3.8/site-packages/xpra/x11/models/window.py", line 372, in do_xpra_property_notify_event
    super().do_xpra_property_notify_event(event)
  File "/usr/lib/python3.8/site-packages/xpra/x11/models/core.py", line 509, in do_xpra_property_notify_event
    self._handle_property_change(str(event.atom))
  File "/usr/lib/python3.8/site-packages/xpra/x11/models/core.py", line 543, in _handle_property_change
    handler(self)
  File "/usr/lib/python3.8/site-packages/xpra/x11/models/base.py", line 346, in _handle_wm_strut_change
    strut = self.prop_get("_NET_WM_STRUT_PARTIAL", "strut-partial")
  File "/usr/lib/python3.8/site-packages/xpra/x11/models/core.py", line 503, in prop_get
    return prop_get(self.client_window, key, ptype, ignore_errors=bool(ignore_errors), raise_xerrors=raise_xerrors)
  File "/usr/lib/python3.8/site-packages/xpra/x11/gtk_x11/prop.py", line 169, in prop_get
    return prop_decode(target, etype, data)
  File "/usr/lib/python3.8/site-packages/xpra/x11/prop_conv.py", line 309, in prop_decode
    return _prop_decode_scalar(disp, etype, data)
  File "/usr/lib/python3.8/site-packages/xpra/x11/prop_conv.py", line 313, in _prop_decode_scalar
    value = deserialize(disp, data)
  File "/usr/lib/python3.8/site-packages/xpra/x11/prop_conv.py", line 68, in __init__
    ) = struct.unpack(b"@" + b"L" * 12, data)
struct.error: unpack requires a buffer of 96 bytes
16:25:40,534 DPI set to 15 x 15 (wanted 96 x 96)
16:25:40,535  you may experience scaling problems, such as huge or small fonts, etc
16:25:40,535  to fix this issue, try the dpi switch, or use a patched Xorg dummy driver
16:25:40,591 OpenGL is supported on display ':0'
16:25:40,591  using 'llvmpipe (LLVM 10.0.1, 256 bits)' renderer
16:25:40,591  automatic picture encoding enabled, also available:
16:25:40,591   jpeg, png, rgb32, rgb24, h264, mpeg1
16:25:40,601 client   1 update encodings: [object Object]
16:25:40,617 New unix-domain connection received
16:25:40,617  on '/run/user/36549/xpra/server_hostname-0'
16:25:40,618 New unix-domain connection received
16:25:40,618  on '/run/xpra/server_hostname-0'
16:25:41,051 New unix-domain connection received
16:25:41,051  on '/run/xpra/server_hostname-0'
16:25:41,053 New unix-domain connection received
16:25:41,053  on '/run/user/36549/xpra/server_hostname-0'
16:25:47,376 client   1 visibilitychange hidden= true connected= true

comment:3 Changed 5 weeks ago by goekce

I use an nginx reverse proxy. I thought the reverse proxy would corrupt data, but it does not. When I start directly an xpra session on the command line using

xpra start-desktop --start-child=xfce4-session --bind-tcp=0.0.0.0:14500 --exit-with-client=yes --exit-with-children=yes --systemd-run=no

then Xfce4 session is displayed correctly.

I diffed the logs of the xpra-server started by the user with the logs of the server started by the proxy. The relevant lines in the log of the xpra-server started by the xpra proxy as follows:

(Xpra:6637): Gtk-CRITICAL **: 16:52:59.100: gtk_widget_realize: assertion 'widget->priv->anchored || GTK_IS_INVISIBLE (widget)' failed
xfwm4-Message: 16:52:59.558: Another Window Manager (Xpra) is already running on screen :0.0
xfwm4-Message: 16:52:59.558: To replace the current window manager, try "--replace"

(xfwm4:6757): xfwm4-WARNING **: 16:52:59.558: Could not find a screen to manage, exiting
xfsettingsd-Message: 16:52:59.643: Skipping screen 0, it already has an xsettings manager...
2020-10-21 16:52:59,800 Odd-lengthed property _NET_WM_STRUT or _NET_WM_STRUT_PARTIAL: wanted 48 bytes, got 96: b'\x00\x00 ...
...
...
...
2020-10-21 16:53:01,190 Error parsing property '_NET_WM_STRUT_PARTIAL' (strut-partial)
2020-10-21 16:53:01,190  this may be a misbehaving application, or bug in Xpra
2020-10-21 16:53:01,190  data length=96
2020-10-21 16:53:01,191  data: "b'\\x00\\x00\\x00\ ...
...
Traceback (most recent call last):
  File "/usr/lib/python3.8/site-packages/xpra/x11/models/window.py", line 372, in do_xpra_property_notify_event
    super().do_xpra_property_notify_event(event)
  File "/usr/lib/python3.8/site-packages/xpra/x11/models/core.py", line 509, in do_xpra_property_notify_event
    self._handle_property_change(str(event.atom))
  File "/usr/lib/python3.8/site-packages/xpra/x11/models/core.py", line 543, in _handle_property_change
    handler(self)
  File "/usr/lib/python3.8/site-packages/xpra/x11/models/base.py", line 346, in _handle_wm_strut_change
    strut = self.prop_get("_NET_WM_STRUT_PARTIAL", "strut-partial")
  File "/usr/lib/python3.8/site-packages/xpra/x11/models/core.py", line 503, in prop_get
    return prop_get(self.client_window, key, ptype, ignore_errors=bool(ignore_errors), raise_xerrors=raise_xerrors)
  File "/usr/lib/python3.8/site-packages/xpra/x11/gtk_x11/prop.py", line 169, in prop_get
    return prop_decode(target, etype, data)
  File "/usr/lib/python3.8/site-packages/xpra/x11/prop_conv.py", line 309, in prop_decode
    return _prop_decode_scalar(disp, etype, data)
  File "/usr/lib/python3.8/site-packages/xpra/x11/prop_conv.py", line 313, in _prop_decode_scalar
    value = deserialize(disp, data)
  File "/usr/lib/python3.8/site-packages/xpra/x11/prop_conv.py", line 68, in __init__
    ) = struct.unpack(b"@" + b"L" * 12, data)
struct.error: unpack requires a buffer of 96 bytes
2020-10-21 16:53:01,207 client   1 startup complete
2020-10-21 16:53:01,209 client   1 connection-established
2020-10-21 16:53:01,220 DPI set to 96 x 96

My guess is that proxy starts the server with different resolution and DPI setting. Is there a difference?

Last edited 5 weeks ago by goekce (previous) (diff)

comment:4 Changed 5 weeks ago by goekce

I was using Xfvb due to keyboard layout issues and changed to Xorg for testing.

Xpra logs show

DPI set to 4 x 15 (wanted 96 x 96)

and the screen is again shifted as before.

I noticed that if I try to start xpra as a user I cannot start it at all:

X11 connection rejected because of wrong authentication.
Unable to init server: Could not connect: Connection refused

But this seems to be another problem.

I will try to enforce the DPI to see if it solves the desktop shifting problem.

Last edited 5 weeks ago by goekce (previous) (diff)

comment:5 Changed 5 weeks ago by goekce

The DPI problem was solved by installing the patched dummy driver (on Archlinux xf86-video-dummy-xpra-patch).

But the actual problem remains. My workaround is currently to avoid the start-desktop command and start a terminal directly.

I also noticed that when I start xfce4-panel using terminal, then my clicks on the panel are not registered. Probably the problem is associated with the proxy and to a desktop-specific program like xfce4-panel.

comment:6 Changed 5 weeks ago by Antoine Martin

Milestone: 4.2
Owner: changed from goekce to Antoine Martin
Status: newassigned
Note: See TracTickets for help on using tickets.