xpra icon
Bug tracker and wiki

Opened 5 weeks ago

Closed 5 weeks ago

Last modified 5 weeks ago

#2885 closed defect (fixed)

xdg-open: server returned error code 127

Reported by: stdedos Owned by: stdedos
Priority: minor Milestone: 4.1
Component: server Version: 3.0.x
Keywords: Cc:

Description (last modified by stdedos)

For:

"Xpra-Python3-x86_64_4.1-r27519\xpra_cmd" attach ssh://user@ip/3 --ssh="plink -ssh -agent" --modal-windows=no --title="@title@ on @@/@server-display@" --headerbar=off --opengl=no --bandwidth-limit=6Mbps

2020-09-22 11:22:34,845 Xpra GTK3 client version 4.1-r27519 64-bit
2020-09-22 11:22:34,852  running on Microsoft Windows 10
2020-09-22 11:22:38,001 GStreamer version 1.18.0 for Python 3.8.5 64-bit
2020-09-22 11:22:38,485 created named pipe '\\.\pipe\Xpra\19820'
2020-09-22 11:22:38,899 keyboard layout code 0x409
2020-09-22 11:22:38,900 identified as 'United States - English' : us
2020-09-22 11:22:39,613  keyboard settings: layout=us
2020-09-22 11:22:39,618  desktop size is 4160x1440 with 1 screen:
2020-09-22 11:22:39,618   Default (1100x381 mm - DPI: 96x96) workarea: 4160x1400
2020-09-22 11:22:39,618     Generic PnP Monitor 1600x900 at 0x534 (309x174 mm - DPI: 131x131) workarea: 1600x860 at 0x534
2020-09-22 11:22:39,619     C32JG5x 2560x1440 at 1600x0 (697x392 mm - DPI: 93x93) workarea: 2560x1400 at 1600x0
2020-09-22 11:22:44,223 enabled remote logging
2020-09-22 11:22:44,226 Xpra GTK3 X11 server version 3.0.10-r26630 64-bit
2020-09-22 11:22:44,227  running on Linux Ubuntu 16.04 xenial
2020-09-22 11:22:44,240 Attached to ip:22
2020-09-22 11:22:44,242  (press Control-C to detach)

I see

$ xdg-open /dev/shm/byobu-rlL1p8KA/printscreen 
server returned error code 127
  no clients found matching: *

I think I roughly know what the problem is: The environment variables are kind of stale (this terminal is part of a byobu, rather that directly invoked by gnome-terminal), although I don't know what exactly, since display is set correctly:

$ env | grep -i display
CKCON_X11_DISPLAY=:2
XDG_SESSION_PATH=/org/freedesktop/DisplayManager/Session0
XDG_SEAT_PATH=/org/freedesktop/DisplayManager/Seat0
DISPLAY=:3

Change History (6)

comment:1 Changed 5 weeks ago by Antoine Martin

Owner: changed from Antoine Martin to stdedos

It should work. * means all clients.
This is what I see with -d command:

2020-09-23 17:31:08,627 New unix-domain connection received
2020-09-23 17:31:08,627  on '/run/user/1000/xpra/localhost.localdomain-14'
2020-09-23 17:31:08,628 process_control_command control_commands[send-file]=ControlCommand(send-file)
2020-09-23 17:31:08,628 process_control_command calling <bound method ArgsControlCommand.run of ControlCommand(send-file)>('/path/to/cert.pem', 'open', '*')
2020-09-23 17:31:08,628 ControlCommand(send-file).run: calling <bound method ServerBaseControlCommands.control_command_send_file of <server.XpraServer object at 0x7f88e4a17910 (xpra+x11+server+XpraServer at 0x56211a41d700)>>('/path/to/cert.pem', 'open', '*')
2020-09-23 17:31:08,628 os.stat(/path/to/cert.pem)=os.stat_result(st_mode=33204, st_ino=17999, st_dev=2430, st_nlink=1, st_uid=1000, st_gid=1000, st_size=1294, st_atime=1600856739, st_mtime=1550856987, st_ctime=1593184930)

Can you try with -d command?

comment:2 Changed 5 weeks ago by stdedos

Description: modified (diff)

comment:3 Changed 5 weeks ago by stdedos

I must be doing something wrong:

u@h:~$ xpra control 3 debug enable command
logging enabled for Logger(xpra.server.control_command, util, command), Logger(xpra.server.server_core, command), Logger(xpra.server.mixins.server_base_controlcommands, command)
u@h:~$ xdg-open -d command funclib.sh
xdg-open: unrecognized argument form '-d'
xdg-open: unexpected option '-d'
Try 'xdg-open --help' for more information.
u@h:~$ xdg-open funclib.sh
server returned error code 127
  no clients found matching: *
u@h:~$ xpra control 3 debug disable command
logging disabled for Logger(xpra.server.control_command, util, command), Logger(xpra.server.server_core, command), Logger(xpra.server.mixins.server_base_controlcommands, command)
u@h:~$ bat /run/user/1000/xpra/display-\:3-\$TIMESTAMP.log | tail 
7829   │ 2020-09-24 10:40:48,985 New unix-domain connection received
7830   │ 2020-09-24 10:40:48,985  on '/run/user/1000/xpra/pc-3'
7831   │ 2020-09-24 10:40:48,994 enabled debugging for: Logger(xpra.server.control_command, util, command), Logger(xpra.server.server_core, command), Logger(xpra.server.mixins.server_base_controlcommands, command)
7832   │ 2020-09-24 10:40:49,982 New unix-domain connection received
7833   │ 2020-09-24 10:40:49,983  on '/run/xpra/pc-3'
7834   │ 2020-09-24 10:40:49,984 New unix-domain connection received
7835   │ 2020-09-24 10:40:49,984  on '/run/user/1000/xpra/pc-3'
7836   │ 2020-09-24 10:41:06,391 New unix-domain connection received
7837   │ 2020-09-24 10:41:06,391  on '/run/user/1000/xpra/pc-3'
7838   │ 2020-09-24 10:41:06,392 process_control_command control_commands[debug]=ControlCommand(debug)
7839   │ 2020-09-24 10:41:06,392 process_control_command calling <bound method DebugControl.run of ControlCommand(debug)>('disable', 'command')
7840   │ 2020-09-24 10:41:06,405 disabled debugging for: Logger(xpra.server.control_command, util, command), Logger(xpra.server.server_core, command), Logger(xpra.server.mixins.server_base_controlcommands, command)
7841   │ 2020-09-24 10:41:07,389 New unix-domain connection received
7842   │ 2020-09-24 10:41:07,389  on '/run/user/1000/xpra/pc-3'
7843   │ 2020-09-24 10:41:07,390 New unix-domain connection received
7844   │ 2020-09-24 10:41:07,390  on '/run/xpra/pc-3'

comment:4 Changed 5 weeks ago by Antoine Martin

Ah, so you're not talking to the xpra server at all - no connection attempt is made.

Probably because your shell doesn't have XPRA_SERVER_SOCKET defined.
This environment variable should be point to the server socket.

As of r27534, we'll use the $DISPLAY when that's available.

comment:5 in reply to:  4 Changed 5 weeks ago by stdedos

Resolution: fixed
Status: newclosed

Replying to Antoine Martin:

Ah, so you're not talking to the xpra server at all - no connection attempt is made.

Probably because your shell doesn't have XPRA_SERVER_SOCKET defined.
This environment variable should be point to the server socket.

Indeed stale env variables it is!

As of r27534, we'll use the $DISPLAY when that's available.

Good fix, but it's not going to help in my case. I do have XPRA_SERVER_SOCKET defined as the server that originally started that byobu-server (XPRA_SERVER_SOCKET=/run/user/1000/xpra/pc-2).

However, I don't expect you to fix that: There is a clear issue that byobu is a bit of a dum-dum when it comes to re-init-ing its environment (actually, I don't know how would that be possible to be honest).

Thank you for the enhancement.

comment:6 Changed 5 weeks ago by stdedos

I've filed https://github.com/tmux/tmux/issues/2397 to be able then to do set-option -ga update-environment " XPRA*"

Note: See TracTickets for help on using tickets.