Xpra-org / xpra-html5

HTML5 client for Xpra
Mozilla Public License 2.0
202 stars 55 forks source link

Error upon websocket connection closed (no reconnect) #313

Open gijs-blanken opened 2 months ago

gijs-blanken commented 2 months ago

Version information

xpra-5.0.6-1.fc40.x86_64 HTML5 Mac OSX Chrome client version 13

How to reproduce:

image

With the 'decode error packet' continuously flooding in.

On the server side there are the following errors:

2024-07-09 11:25:10,492  window 1 not found
2024-07-09 11:25:10,630 Warning: client decoding error:
2024-07-09 11:25:10,630  window 1 not found
2024-07-09 11:25:10,955 Warning: client decoding error:
2024-07-09 11:25:10,955  window 1 not found
2024-07-09 11:25:11,122 Warning: client decoding error:
2024-07-09 11:25:11,122  window 1 not found
2024-07-09 11:25:11,134 Warning: client decoding error:
2024-07-09 11:25:11,134  window 1 not found

Config files

Output of xpra showconfig ```text Error: lpinfo command failed to run [Errno 2] No such file or directory: 'lpinfo' command used: 'lpinfo --make-and-model Generic PDF Printer -m' Error: lpinfo command failed to run [Errno 2] No such file or directory: 'lpinfo' command used: 'lpinfo --make-and-model Generic PostScript Printer -m' add-printer-options = '-u allow:$USER', '-E', '-o printer-is-shared=false' attach = auto audio = True audio-source = '' auth = auto-refresh-delay = 0.15 av-sync = True bandwidth-detection = False bandwidth-limit = 'auto' bell = True bind = 'auto' bind-quic = bind-rfb = bind-ssh = bind-ssl = bind-tcp = bind-vsock = bind-ws = bind-wss = border = 'auto,5:off' challenge-handlers = 'all' chdir = '' client-socket-dirs = '$XDG_RUNTIME_DIR/xpra/clients' clipboard = 'yes' clipboard-direction = 'both' clipboard-filter-file = '' compression_level = 1 compressors = 'none', 'lz4', 'zlib', 'brotli' csc-modules = 'all' cursors = True daemon = True dbus-control = True dbus-launch = 'dbus-launch --sh-syntax --close-stderr' dbus-proxy = True debug = '' delay-tray = False desktop-fullscreen = False desktop-scaling = 'on' display = '' displayfd = 0 download-path = '~/Downloads' dpi = 0 encoding = 'auto' encodings = 'h264', 'vp9', 'vp8', 'mpeg4', 'mpeg4+mp4', 'h264+mp4', 'vp8+webm', 'vp9+webm', 'png', 'png/P', 'png/L', 'webp', 'avif', 'rgb', 'rgb24', 'rgb32', 'jpeg', 'jpega', 'h265', 'av1', 'scroll', 'grayscale', 'stream' encryption = '' encryption-keyfile = '' env (used) = '#silence some AT-SPI and atk-bridge warnings:', 'NO_AT_BRIDGE=1' env (default) = '#avoid Ubuntu's global menu, which is a mess and cannot be forwarded:', 'UBUNTU_MENUPROXY=', 'QT_X11_NO_NATIVE_MENUBAR=1', '#fix for MainSoft's MainWin buggy window management:', 'MWNOCAPTURE=true', 'MWNO_RIT=true', 'MWWM=allwm', '#force GTK3 applications to use X11 so we can intercept them:', 'GDK_BACKEND=x11', '#force Qt applications to use X11 so we can intercept them:', 'QT_QPA_PLATFORM=xcb', '#disable Qt scaling:QT_AUTO_SCREEN_SET_FACTOR=0', 'QT_SCALE_FACTOR=1', '#overlay scrollbars complicate things:GTK_OVERLAY_SCROLLING=0', '#some versions of GTK3 honour this option, sadly not all:', 'GTK_CSD=0' exec-wrapper = '' exit-ssh = True exit-with-children = False exit-with-client = False exit-with-windows = False fake-xinerama = 'auto' file-size-limit = '1G' file-transfer = 'auto' forward-xdg-open = auto gid = 1000 headerbar = 'auto' html = 'auto' http-scripts = 'all' idle-timeout = 0 input-devices = 'auto' input-method = 'auto' key-shortcut = 'Control+Menu:toggle_keyboard_grab', 'Shift+Menu:toggle_pointer_grab', 'Shift+F11:toggle_fullscreen', '#+F1:show_menu', '#+F2:show_start_new_command', '#+F3:show_bug_report', '#+F4:quit', '#+F5:show_window_info', '#+F6:show_shortcuts', '#+F7:show_docs', '#+F8:toggle_keyboard_grab', '#+F9:toggle_pointer_grab', '#+F10:magic_key', '#+F11:show_session_info', '#+F12:toggle_debug', '#+plus:scaleup', '#+minus:scaledown', '#+underscore:scaledown', '#+KP_Add:scaleup', '#+KP_Subtract:scaledown', '#+KP_Multiply:scalereset', '#+bar:scalereset', '#+question:scalingoff' keyboard-layout = '' keyboard-layouts = keyboard-options = '' keyboard-raw = False keyboard-sync = True keyboard-variant = '' keyboard-variants = local-clipboard = 'CLIPBOARD' lock = auto log-dir = 'auto' log-file = 'server.log' lpadmin = '/usr/sbin/lpadmin' lpinfo = '/usr/sbin/lpinfo' max-size = '' mdns = True microphone = 'off' microphone-codec = min-port = 1024 min-quality = 1 min-size = '' min-speed = 1 mmap = 'yes' mmap-group = 'auto' modal-windows = False mousewheel = 'on' notifications (used) = False notifications (default) = True open-command = '/usr/bin/xdg-open' open-files = 'auto' open-url = 'auto' opengl = 'probe' packet-encoders = 'rencodeplus', 'rencode', 'bencode', 'yaml' password = '' password-file = pdf-printer = '' pidfile = '${XPRA_SESSION_DIR}/server.pid' pings = 5 pixel-depth = 0 postscript-printer = 'drv:///sample.drv/generic.ppd' printing (used) = 'no' printing (default) = 'yes' proxy-start-sessions = True proxy-video-encoders = 'none' pulseaudio (used) = False pulseaudio (default) = auto pulseaudio-command = 'pulseaudio --start -n --daemonize=false --system=false --exit-idle-time=-1 --load=module-suspend-on-idle '--load=module-null-sink sink_name=Xpra-Speaker sink_properties=device.description="Xpra\ Speaker"' '--load=module-null-sink sink_name=Xpra-Microphone sink_properties=device.description="Xpra\ Microphone"' '--load=module-remap-source source_name=Xpra-Mic-Source source_properties=device.description="Xpra\ Mic\ Source" master=Xpra-Microphone.monitor channels=1' '--load=module-native-protocol-unix socket=$XPRA_PULSE_SERVER' '--load=module-dbus-protocol' '--load=module-x11-publish' --log-level=2 --log-target=stderr --enable-memfd=no' pulseaudio-configure-commands = 'pactl set-default-sink Xpra-Speaker', 'pactl set-default-source Xpra-Mic-Source' quality = 0 quic-auth = readonly = False reconnect = True refresh-rate = 'auto' remote-clipboard = 'CLIPBOARD' remote-logging = 'both' remote-xpra = 'xpra', '$XDG_RUNTIME_DIR/xpra/run-xpra', '/usr/local/bin/xpra', '~/.xpra/run-xpra', 'Xpra_cmd.exe' resize-display = 'yes' rfb-auth = rfb-upgrade = 5 server-idle-timeout = 0 session-name = '' sessions-dir = '$XDG_RUNTIME_DIR/xpra' sharing (used) = True sharing (default) = auto shortcut-modifiers = 'auto' socket-dir = '' socket-dirs = '$XDG_RUNTIME_DIR/xpra', '/run/xpra', '~/.xpra' socket-permissions = '600' source = '/etc/profile' source-start = speaker = 'on' speaker-codec = speed = 0 splash = auto ssh = 'auto' ssh-auth = ssh-upgrade = True ssl = 'auto' ssl-auth = ssl-ca-certs = 'default' ssl-ca-data = '' ssl-cert = '' ssl-check-hostname = True ssl-ciphers = 'DEFAULT' ssl-client-verify-mode = 'optional' ssl-key = '' ssl-key-password = '' ssl-options = 'ALL,NO_COMPRESSION' ssl-protocol = 'TLSv1_2' ssl-server-hostname = '' ssl-server-verify-mode = 'required' ssl-verify-flags = 'X509_STRICT' start = start-after-connect = start-child = start-child-after-connect = start-child-late = start-child-on-connect = start-child-on-last-client-exit = start-env (used) = '#avoid Ubuntu's global menu, which is a mess and cannot be forwarded:', 'UBUNTU_MENUPROXY=', 'QT_X11_NO_NATIVE_MENUBAR=1', '#fix for MainSoft's MainWin buggy window management:', 'MWNOCAPTURE=true', 'MWNO_RIT=true', 'MWWM=allwm', '#force GTK3 applications to use X11 so we can intercept them:', 'GDK_BACKEND=x11', '#force Qt applications to use X11 so we can intercept them:', 'QT_QPA_PLATFORM=xcb', '#disable Qt scaling:QT_AUTO_SCREEN_SET_FACTOR=0', 'QT_SCALE_FACTOR=1', '#overlay scrollbars complicate things:GTK_OVERLAY_SCROLLING=0', '#some versions of GTK3 honour this option, sadly not all:', 'GTK_CSD=0' start-env (default) = '#silence some AT-SPI and atk-bridge warnings:', 'NO_AT_BRIDGE=1' start-late = start-new-commands = True start-on-connect = start-on-last-client-exit = start-via-proxy = False sync-xvfb (used) = False sync-xvfb (default) = system-proxy-socket = '/run/xpra/system' system-tray (used) = False system-tray (default) = True systemd-run = 'auto' systemd-run-args = '' tcp-auth = tcp-encryption = '' tcp-encryption-keyfile = '' terminate-children = False title (used) = 'Schermdelen' title (default) = '@title@ on @hostinfo@' tray = True tray-icon = '' uid = 1000 use-display = 'auto' username = '' video-decoders = 'all' video-encoders (used) = 'all,-gstreamer,-ffmpeg' video-encoders (default) = 'all', '-gstreamer', '-ffmpeg' video-scaling = 'auto' vsock-auth = webcam (used) = 'no' webcam (default) = 'auto' window-close = 'auto' window-icon = '' windows = True wm-name = 'Xpra' ws-auth = wss-auth = xsettings = 'auto' xvfb (used) = '/usr/libexec/Xorg -noreset -novtswitch -nolisten tcp +extension GLX +extension RANDR +extension RENDER -auth $XAUTHORITY -logfile ${XPRA_SESSION_DIR}/Xorg.log -configdir "${XPRA_SESSION_DIR}/xorg.conf.d/$PID" -config "${XORG_CONFIG_PREFIX}/etc/xpra/xorg.conf"' xvfb (default) = '/usr/libexec/Xorg -noreset -novtswitch -nolisten tcp +extension GLX +extension RANDR +extension RENDER -auth $XAUTHORITY -logfile ${XPRA_SESSION_DIR}/Xorg.log -configdir "${XPRA_SESSION_DIR}/xorg.conf.d/$PID" -config "${XORG_CONFIG_PREFIX}/etc/xpra/xorg.conf"' ```
Client configuration image

Refreshing the tab fixes the issue, I intent to use xpra in a production environment so this is not feasible unfortunately.

Thanks in advance!

totaam commented 2 months ago

Please try again with an up to date version of both components.

I don't know what events chrome triggers when you suspend a tab, and I don't have a mac I can use to test it.