Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Seamless: Rendering a right-click menu "beyond the boundaries" fails to render #3989

Closed
stdedos opened this issue Sep 4, 2023 · 17 comments
Closed
Labels
bug Something isn't working upstream

Comments

@stdedos
Copy link
Collaborator

stdedos commented Sep 4, 2023

Describe the bug

image

Window is maximized on the main monitor, and the right-click menu is "just enough" so that it would render past the window, past the borders of the monitor.

"Xpra-x86_64_6.0-r34134\xpra_cmd" start ssh://user@ip/2 --ssh="plink -ssh -agent" --modal-windows=no --desktop-scaling=no --headerbar=off --source-start=gnome-keyring-daemon --start --title="@title@ on @@/@server-display@" --start="nohup systemd-inhibit --what=handle-lid-switch sleep 1d >/dev/null 2>&1 & inhibit_pid=$ ; xpra xwait ; kill -9 $inhibit_pid ; nohup systemd-inhibit --what=handle-lid-switch sleep 5m >/dev/null 2>&1 &" --border=#FF5733,5 --microphone=off --speaker=off --webcam=no --pulseaudio=no --start=gnome-terminal

XPRA_EXECUTABLE=Xpra-x86_64_6.0-r34134

Note: GDK_WIN32_DISABLE_HIDPI is ignored due to preset
      DPI awareness settings in user settings or application
      manifest, DPI awareness is still enabled.2023-09-05 00:45:29,520 Xpra GTK3 client version 6.0-r34134 (g1e3ef8977) beta
2023-09-05 00:45:29,538  running on Microsoft Windows
2023-09-05 00:45:29,539  cpython 3.11
2023-09-05 00:45:31,608 GStreamer version 1.22.5
2023-09-05 00:45:31,750 created named pipe 'Xpra\\30252'
2023-09-05 00:45:31,923 Error setting up the pipeline:
2023-09-05 00:45:31,924  gst_parse_error: could not link decoder to sink (3)
2023-09-05 00:45:31,924  GStreamer pipeline for:
2023-09-05 00:45:31,924   appsrc name=src emit-signals=1 block=0 is-live=1 do-timestamp=1 stream-type=0 format=2 caps=video/x-h264,width=128,height=128,profile=(string)main,stream-format=(string)byte-stream,alignment=(string)au ! \
2023-09-05 00:45:31,924   d3d11h264dec name=decoder ! \
2023-09-05 00:45:31,924   appsink name=sink emit-signals=1 max-buffers=10 drop=false sync=false async=true qos=false caps=video/x-raw,width=128,height=128,format=(string)I420
2023-09-05 00:45:31,924 Error creating context h264 128x128 YUV420P
2023-09-05 00:45:31,924 gstreamer: h264 decoding failed: failed to setup gstreamer pipeline
2023-09-05 00:45:31,929 keyboard layout 'United States - English' : 'us' (0x409)
2023-09-05 00:45:32,442 Unable to import OpenGL.arrays.numpymodule.NumpyHandler: No numpy module present:

IMPORTANT: PLEASE READ THIS FOR ADVICE ON HOW TO SOLVE THIS ISSUE!

Importing the numpy C-extensions failed. This error can happen for
many reasons, often due to issues with your setup or how NumPy was
installed.

We have compiled some common reasons and troubleshooting tips at:

    https://numpy.org/devdocs/user/troubleshooting-importerror.html

Please note and check the following:

  * The Python version is: Python3.11 from "\Xpra-x86_64_6.0-r34134\Xpra_cmd.exe"
  * The NumPy version is: "1.25.2"

and make sure that they are the versions you expect.
Please carefully study the documentation linked above for further help.

Original error was: DLL load failed while importing _multiarray_umath: Δεν ήταν δυνατό να εντοπιστεί η καθορισμένη λειτ. μονάδα.

2023-09-05 00:45:32,450 OpenGL enabled on 'NVIDIA GeForce RTX 2080 SUPER/PCIe/SSE2'
2023-09-05 00:45:32,532  keyboard settings: layout=us
2023-09-05 00:45:32,535  desktop size is 4480x1516:
2023-09-05 00:45:32,535   Default (1185x401 mm - DPI: 96x96) workarea: 4480x1476
2023-09-05 00:45:32,536     Samsung C32JG5x  2560x1440 at    0x0    (697x392 mm - DPI: 93x93) workarea: 2560x1400
2023-09-05 00:45:32,536     LG IPS234        1920x1080 at 2560x436  (510x290 mm - DPI: 96x95) workarea: 1920x1040 at 2560x436
2023-09-05 00:45:40,507 enabled remote logging
2023-09-05 00:45:40,508 Xpra X11 seamless server version 5.0
2023-09-05 00:45:40,521 running
Traceback (most recent call last):
  File "E:/xpra/xpra/client/gtk3/gtk_client_window_base.py", line 909, in on_realize
  File "E:/xpra/xpra/platform/win32/gui.py", line 566, in add_window_hooks
  File "E:/xpra/xpra/platform/win32/window_hooks.py", line 85, in setup
ctypes.ArgumentError: argument 1: OverflowError: int too long to convert
Traceback (most recent call last):
  File "E:/xpra/xpra/client/gtk3/gtk_client_window_base.py", line 909, in on_realize
  File "E:/xpra/xpra/platform/win32/gui.py", line 566, in add_window_hooks
  File "E:/xpra/xpra/platform/win32/window_hooks.py", line 85, in setup
ctypes.ArgumentError: argument 1: OverflowError: int too long to convert
Traceback (most recent call last):
  File "E:/xpra/xpra/client/gl/gl_window_backing_base.py", line 1007, in set_cursor_data
  File "E:/xpra/xpra/client/gl/gl_window_backing_base.py", line 989, in validate_cursor
TypeError: object of type 'int' has no len()
Traceback (most recent call last):
  File "E:/xpra/xpra/client/base/client_base.py", line 1236, in call_handler
  File "E:/xpra/xpra/client/mixins/window_manager.py", line 587, in _process_cursor
  File "E:/xpra/xpra/client/gtk3/gtk_client_base.py", line 950, in set_windows_cursor
  File "E:/xpra/xpra/client/gtk3/gtk_client_window_base.py", line 801, in set_cursor_data
  File "E:/xpra/xpra/client/gtk3/gtk_client_window_base.py", line 903, in when_realized
  File "E:/xpra/xpra/client/gl/gl_window_backing_base.py", line 1007, in set_cursor_data
  File "E:/xpra/xpra/client/gl/gl_window_backing_base.py", line 989, in validate_cursor
TypeError: object of type 'int' has no len()
Traceback (most recent call last):
  File "E:/xpra/xpra/client/base/client_base.py", line 1236, in call_handler
  File "E:/xpra/xpra/client/mixins/window_manager.py", line 587, in _process_cursor
  File "E:/xpra/xpra/client/gtk3/gtk_client_base.py", line 950, in set_windows_cursor
  File "E:/xpra/xpra/client/gtk3/gtk_client_window_base.py", line 801, in set_cursor_data
  File "E:/xpra/xpra/client/gtk3/gtk_client_window_base.py", line 903, in when_realized
  File "E:/xpra/xpra/client/gl/gl_window_backing_base.py", line 1007, in set_cursor_data
  File "E:/xpra/xpra/client/gl/gl_window_backing_base.py", line 989, in validate_cursor
TypeError: object of type 'int' has no len()
Traceback (most recent call last):
  File "E:/xpra/xpra/client/base/client_base.py", line 1236, in call_handler
  File "E:/xpra/xpra/client/mixins/window_manager.py", line 587, in _process_cursor
  File "E:/xpra/xpra/client/gtk3/gtk_client_base.py", line 950, in set_windows_cursor
  File "E:/xpra/xpra/client/gtk3/gtk_client_window_base.py", line 801, in set_cursor_data
  File "E:/xpra/xpra/client/gtk3/gtk_client_window_base.py", line 903, in when_realized
  File "E:/xpra/xpra/client/gl/gl_window_backing_base.py", line 1007, in set_cursor_data
  File "E:/xpra/xpra/client/gl/gl_window_backing_base.py", line 989, in validate_cursor
TypeError: object of type 'int' has no len()
Traceback (most recent call last):
  File "E:/xpra/xpra/client/base/client_base.py", line 1236, in call_handler
  File "E:/xpra/xpra/client/mixins/window_manager.py", line 587, in _process_cursor
  File "E:/xpra/xpra/client/gtk3/gtk_client_base.py", line 950, in set_windows_cursor
  File "E:/xpra/xpra/client/gtk3/gtk_client_window_base.py", line 801, in set_cursor_data
  File "E:/xpra/xpra/client/gtk3/gtk_client_window_base.py", line 903, in when_realized
  File "E:/xpra/xpra/client/gl/gl_window_backing_base.py", line 1007, in set_cursor_data
  File "E:/xpra/xpra/client/gl/gl_window_backing_base.py", line 989, in validate_cursor
TypeError: object of type 'int' has no len()
Traceback (most recent call last):
  File "E:/xpra/xpra/client/base/client_base.py", line 1236, in call_handler
  File "E:/xpra/xpra/client/mixins/window_manager.py", line 587, in _process_cursor
  File "E:/xpra/xpra/client/gtk3/gtk_client_base.py", line 950, in set_windows_cursor
  File "E:/xpra/xpra/client/gtk3/gtk_client_window_base.py", line 801, in set_cursor_data
  File "E:/xpra/xpra/client/gtk3/gtk_client_window_base.py", line 903, in when_realized
  File "E:/xpra/xpra/client/gl/gl_window_backing_base.py", line 1007, in set_cursor_data
  File "E:/xpra/xpra/client/gl/gl_window_backing_base.py", line 989, in validate_cursor
TypeError: object of type 'int' has no len()
Traceback (most recent call last):
  File "E:/xpra/xpra/client/base/client_base.py", line 1236, in call_handler
  File "E:/xpra/xpra/client/mixins/window_manager.py", line 587, in _process_cursor
  File "E:/xpra/xpra/client/gtk3/gtk_client_base.py", line 950, in set_windows_cursor
  File "E:/xpra/xpra/client/gtk3/gtk_client_window_base.py", line 801, in set_cursor_data
  File "E:/xpra/xpra/client/gtk3/gtk_client_window_base.py", line 903, in when_realized
  File "E:/xpra/xpra/client/gl/gl_window_backing_base.py", line 1007, in set_cursor_data
  File "E:/xpra/xpra/client/gl/gl_window_backing_base.py", line 989, in validate_cursor
TypeError: object of type 'int' has no len()
Traceback (most recent call last):
  File "E:/xpra/xpra/client/base/client_base.py", line 1236, in call_handler
  File "E:/xpra/xpra/client/mixins/window_manager.py", line 587, in _process_cursor
  File "E:/xpra/xpra/client/gtk3/gtk_client_base.py", line 950, in set_windows_cursor
  File "E:/xpra/xpra/client/gtk3/gtk_client_window_base.py", line 801, in set_cursor_data
  File "E:/xpra/xpra/client/gtk3/gtk_client_window_base.py", line 903, in when_realized
  File "E:/xpra/xpra/client/gl/gl_window_backing_base.py", line 1007, in set_cursor_data
  File "E:/xpra/xpra/client/gl/gl_window_backing_base.py", line 989, in validate_cursor
TypeError: object of type 'int' has no len()
Traceback (most recent call last):
  File "E:/xpra/xpra/client/base/client_base.py", line 1236, in call_handler
  File "E:/xpra/xpra/client/mixins/window_manager.py", line 587, in _process_cursor
  File "E:/xpra/xpra/client/gtk3/gtk_client_base.py", line 950, in set_windows_cursor
  File "E:/xpra/xpra/client/gtk3/gtk_client_window_base.py", line 801, in set_cursor_data
  File "E:/xpra/xpra/client/gtk3/gtk_client_window_base.py", line 903, in when_realized
  File "E:/xpra/xpra/client/gl/gl_window_backing_base.py", line 1007, in set_cursor_data
  File "E:/xpra/xpra/client/gl/gl_window_backing_base.py", line 989, in validate_cursor
TypeError: object of type 'int' has no len()
Traceback (most recent call last):
  File "E:/xpra/xpra/client/base/client_base.py", line 1236, in call_handler
  File "E:/xpra/xpra/client/mixins/window_manager.py", line 587, in _process_cursor
  File "E:/xpra/xpra/client/gtk3/gtk_client_base.py", line 950, in set_windows_cursor
  File "E:/xpra/xpra/client/gtk3/gtk_client_window_base.py", line 801, in set_cursor_data
  File "E:/xpra/xpra/client/gtk3/gtk_client_window_base.py", line 903, in when_realized
  File "E:/xpra/xpra/client/gl/gl_window_backing_base.py", line 1007, in set_cursor_data
  File "E:/xpra/xpra/client/gl/gl_window_backing_base.py", line 989, in validate_cursor
TypeError: object of type 'int' has no len()
2023-09-05 00:56:16,686 window 65 has been moved to monitor 1: LG IPS234 1920x1080 at 2560,436

To Reproduce
Steps to reproduce the behavior:

  1. server command
  2. client command
  3. specific action to trigger the bug

System Information (please complete the following information):

  • Server OS: Ubuntu 20.04.5 LTS
  • Client OS: Microsoft Windows [Version 10.0.18363.836]
  • Xpra Server Version (see above)
  • Xpra Client Version (see above)

Additional context
Add any other context about the problem here.
Please see "reporting bugs" in the wiki section.

@stdedos stdedos added the bug Something isn't working label Sep 4, 2023
@totaam
Copy link
Collaborator

totaam commented Sep 5, 2023

It doesn't look beyond the boundaries.
Can you reproduce with -d geometry?

@nentibusarchitectura
Copy link

nentibusarchitectura commented Sep 5, 2023

I have been noticing the same problem since I discovered XPRA, in my case it happens 100% reproducible with Mozilla-based applications, Firefox, Thunderbird and anything that uses their engine such as Komodo IDE, my system (Client) is peculiar in the sense that I have two monitors with different geometries, a monitor is 16:9 and the other is 4:3 (1920x1080 and 1280x1024)

Screenshot_2023-09-05_22-55-21

@totaam
Copy link
Collaborator

totaam commented Sep 6, 2023

It just occurred to me that this is running on Ubuntu, and therefore without proper Xdummy support.
So I'm probably going to close as wontfix unless this can be reproduced with a tier-1 platform.

@stdedos
Copy link
Collaborator Author

stdedos commented Sep 6, 2023

For the sake of posterity, what OS currently has proper Xdummy?

@totaam
Copy link
Collaborator

totaam commented Sep 6, 2023

For the sake of posterity, what OS currently has proper Xdummy?

Pretty much every other distro. Debian does some really strange stuff with Xorg that messes it up completely. (not just Xdummy)

@Simba98
Copy link

Simba98 commented Sep 14, 2023

I can produce this issue on a Qt-based program.
Also, my xpra server is on Ubuntu.

@totaam
Copy link
Collaborator

totaam commented Sep 14, 2023

I'm closing this issue until it can be reproduced using Xdummy.
Debian based distros are not tier-1 for this very reason.
Use a better distro.

@totaam totaam closed this as not planned Won't fix, can't repro, duplicate, stale Sep 14, 2023
@Simba98
Copy link

Simba98 commented Sep 15, 2023

I can produce this issue on a Qt-based program. Also, my xpra server is on Ubuntu.

After I switched to a Fedora in Docker and a Fedora in VM, this phenomenon disappeared.
So, for the sake of posterity, even if you are using Debian/Ubuntu as the host OS, you may consider running Xpra in a Fedora docker.

I can share my Dockerfile if some guys need it.

@stdedos
Copy link
Collaborator Author

stdedos commented Sep 15, 2023

Nice idea! However, my usecase is a little nuanced:

I want to sit at my Windows desktop, and work on my (Ubuntu) laptop. Then, if I decide to leave, I take the laptop with me - and everything is "just as I left it".

I cannot see how I could seamlessly work on both cases, and access "the same things" - unless I re-flash my laptop ofc

@totaam
Copy link
Collaborator

totaam commented Sep 15, 2023

@stdedos then your only option is to figure out how to make Xdummy work on Ubuntu.
But from looking at the scripts in the Debian repos, it looks like a nightmare.

@stdedos
Copy link
Collaborator Author

stdedos commented Sep 15, 2023

Yea, I am aware. If you haven't figured it out - good luck to the rest of us 😅

@Simba98
Copy link

Simba98 commented Sep 15, 2023

Nice idea! However, my usecase is a little nuanced:

I want to sit at my Windows desktop, and work on my (Ubuntu) laptop. Then, if I decide to leave, I take the laptop with me - and everything is "just as I left it".

I cannot see how I could seamlessly work on both cases, and access "the same things" - unless I re-flash my laptop ofc

It seems like you want to run some programs on the Ubuntu one, but also want to mirror the programs to Windows.
If my understanding is correct, you may run a Fedora docker on the Ubuntu with following settings, because Xpra client on Ubuntu is fine, no Xdummy issue.

  1. Make sure your program is using X11 instead of Wayland

  2. Map /tmp/.X11-unix/ to your Fedora docker, e.g. (param with docker run) -v /tmp/.X11-unix:/tmp/.X11-unix
    2.a. Also map your ~/.Xauthority to docker.

  3. Start an xpra inside the Fedora docker, e.g. xpra start :50
    3.a. Make sure you can access the xpra inside docker, e.g. I have an SSH daemon inside docker.
    3.b Alternatively, you can using TCP, (param with xpra start) --bind-tcp=0.0.0.0:10080 with docker network port mapping, (param with docker run) -p 10080:10080. And make sure protect to TCP port by firewall due to security issue.

  4. Run X11 Program on Ubuntu
    (@totaam Not Recommend this one, simple but OK for just X11 forwarding)
    (Bash on Ubuntu) DISPLAY=:50 xterm

(Maybe SSH from inside Fedora docker back to Host Ubuntu?)

  1. Connection
    5.a. Run xpra client on Ubuntu, e.g. xpra attach tcp://127.0.0.1:10080
    5.b Run SSH forward (if needed) on your windows and connect to xpra server, e.g. ssh -L 10080:localhost:10080 xpra attach tcp://127.0.0.1:10080

Actually, this is my config, :), my host OS must be Ubuntu but I have a Fedora docker on it.

If you have any question, feel free to reply to me.

@totaam
Copy link
Collaborator

totaam commented Sep 15, 2023

@Simba98 that's not very efficient at all.
If you want to run apps on the same system, have a look at what x11docker does to speed things up.
At the very least, enable mmap.

DISPLAY=:50 xterm

Also, don't do that.

@Simba98
Copy link

Simba98 commented Sep 15, 2023

@Simba98 that's not very efficient at all. If you want to run apps on the same system, have a look at what x11docker does to speed things up. At the very least, enable mmap.

DISPLAY=:50 xterm

Also, don't do that.

If you map/tmp/.X11-unix, then there is no efficiency lost as xpra does not have many IO and just a program.
And xpra client on the same machine you do have some loss (perhaps?) but even if you run xpra without docker but also using xpra client and server on the same machine then you still have those efficiencies lost, right?

And could you clarify why do not do DISPLAY=:50 xterm?

@totaam
Copy link
Collaborator

totaam commented Sep 15, 2023

And could you clarify why do not do DISPLAY=:50 xterm?

Because the environment will not be correct and therefore many things will not work correctly.
(ie: dbus, input devices, audio, etc)

@Simba98
Copy link

Simba98 commented Sep 15, 2023

And could you clarify why do not do DISPLAY=:50 xterm?

Because the environment will not be correct and therefore many things will not work correctly. (ie: dbus, input devices, audio, etc)

I see, thank you for your patience. Maybe my case is too simple, I just need X11 forwarding.
Perhaps you may ssh from Fedora docker back to Ubuntu Host? (Low efficiency)
Of course the highest efficient is stopping using Debian Host OS, :P

And I have updated the previous comment based on that.

@totaam
Copy link
Collaborator

totaam commented Sep 17, 2023

Yea, I am aware. If you haven't figured it out - good luck to the rest of us 😅

I had figured it out, then they broke it again. And then again in a different way.
Even if I figured out a reliable way to make this work, there are other crasher bugs that Debian is causing and I just don't want to have to deal with this nonsense any more.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working upstream
Projects
None yet
Development

No branches or pull requests

4 participants