xpra icon
Bug tracker and wiki

This bug tracker and wiki are being discontinued
please use https://github.com/Xpra-org/xpra instead.


Opened 5 months ago

Closed 4 months ago

Last modified 3 months ago

#2949 closed defect (fixed)

xdg-open download file fails v3

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

Description

With the 3.0.12 released server:

$ xpra info :3 | grep -Pe 'version'
...
server.build.version=3.0.12
...

(PS: would you consider adding the changeset information here?)

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

XPRA_CUSTOM_TITLE_BAR=0
XPRA_EXECUTABLE=Xpra-Python3-x86_64_4.1-r28001
XPRA_REPAINT_ALL=1
XPRA_SCROLL_ENCODING=0

2020-11-20 15:15:54,972 Xpra GTK3 client version 4.1-r28001 64-bit
2020-11-20 15:15:54,975  running on Microsoft Windows 10
2020-11-20 15:15:55,133 overlay_image=<PIL.PngImagePlugin.PngImageFile image mode=RGBA size=48x48 at 0x5D00A00>
2020-11-20 15:15:56,624 GStreamer version 1.18.1 for Python 3.8.6 64-bit
2020-11-20 15:15:56,667 make_notifier() notifier classes: [<class 'xpra.platform.win32.win32_notifier.Win32_Notifier'>, <class 'xpra.gtk_common.gtk_notifier.GTK_Notifier'>, <class 'xpra.client.gtk3.gtk3_notifier.GTK3_Notifier'>]
2020-11-20 15:15:56,668 using notifier=<xpra.platform.win32.win32_notifier.Win32_Notifier object at 0x0000000005f2c580>
2020-11-20 15:15:57,144 created named pipe 'Xpra\8912'
2020-11-20 15:15:57,540 make_tray_menu_helper() tray menu helper classes: (None, <class 'xpra.client.gtk3.tray_menu.GTK3TrayMenu'>)
2020-11-20 15:15:57,556 keyboard layout code 0x409
2020-11-20 15:15:57,556 identified as 'United States - English' : us
2020-11-20 15:15:57,764 setup_xpra_tray()
2020-11-20 15:15:57,891 get_tray_title()=Xpra (items=('Xpra',))
2020-11-20 15:15:57,900 loading ctypes NotifyIcon functions
2020-11-20 15:15:57,909 tray GUESS_GEOMETRY=True
2020-11-20 15:15:57,911 make_tray(0, <Gtk.Menu object at 0x00000000083ade40 (GtkMenu at 0x000000000555c9e0)>, 'Xpra', 'xpra', <function TrayClient.create_xpra_tray.<locals>.xpra_tray_geometry at 0x0000000008340700>, <function TrayClient.create_xpra_tray.<locals>.xpra_tray_click at 0x0000000003e61af0>, <function TrayClient.create_xpra_tray.<locals>.xpra_tray_mouseover at 0x0000000003e61b80>, <function TrayClient.create_xpra_tray.<locals>.xpra_tray_exit at 0x00000000083405e0>) tray classes=[<class 'xpra.platform.win32.win32_tray.Win32Tray'>, <class 'xpra.client.gtk_base.statusicon_tray.GTKStatusIconTray'>]
2020-11-20 15:15:57,913 calculate_offset() x=0, y=534
2020-11-20 15:15:57,917 win32NotifyIcon: app_id=0, title='Xpra'
2020-11-20 15:15:57,918 create_tray_window()
2020-11-20 15:15:57,921 GetModuleHandleExA(..)=0x400000
2020-11-20 15:15:57,922 RegisterClassExA(win32NotifyIcon)=49955
2020-11-20 15:15:57,923 CreateWindowExA(0, 49955, 'Xpra StatusIcon Window', 524288, -2147483648, -2147483648, 0, 0, 0, 0, 4194304, 0)
2020-11-20 15:15:57,925 NotifyIconWndProc(5642016, 36, 0, 6404656) instance=None, message(36)=None
2020-11-20 15:15:57,928 NotifyIconWndProc(5642016, 129, 0, 6404608) instance=None, message(129)=None
2020-11-20 15:15:57,930 NotifyIconWndProc(5642016, 131, 0, 6404688) instance=None, message(131)=None
2020-11-20 15:15:57,931 NotifyIconWndProc(5642016, 1, 0, 6404592) instance=None, message(1)=None
2020-11-20 15:15:57,932 create_window() hwnd=0x561720
2020-11-20 15:15:57,933 make_nid(..)=<xpra.platform.win32.win32_NotifyIcon.getNOTIFYICONDATAClass.<locals>.NOTIFYICONDATA object at 0x0000000008350640> tooltip='Xpra', app_id=0, actual flags=MESSAGE, ICON, TIP, GUID
2020-11-20 15:15:57,978 Shell_NotifyIcon ADD=1
2020-11-20 15:15:57,982 setup_xpra_tray(xpra)=Tray(0:Xpra) (<class 'xpra.platform.win32.win32_tray.Win32Tray'>)
2020-11-20 15:15:57,983 NotifyIconWndProc(5642016, 799, 1, 0) instance=win32NotifyIcon(0x0), message(799)=None
2020-11-20 15:15:58,042  keyboard settings: layout=us
2020-11-20 15:15:58,049  desktop size is 4160x1440 with 1 screen:
2020-11-20 15:15:58,050   Default (1100x381 mm - DPI: 96x96) workarea: 4160x1400
2020-11-20 15:15:58,052     Generic PnP Monitor 1600x900 at 0x534 (309x174 mm - DPI: 132x131) workarea: 1600x860 at 0x534
2020-11-20 15:15:58,055     C32JG5x 2560x1440 at 1600x0 (697x392 mm - DPI: 93x93) workarea: 2560x1400 at 1600x0

I cannot download the attached file

Attachments (6)

file.log-redact.bak (8.0 KB) - added by stdedos 5 months ago.
obfuscated.png (405.7 KB) - added by Antoine Martin 5 months ago.
what the log file looks like for me
xpra-cannot-xdg-open-v3.7z (21.7 KB) - added by stdedos 4 months ago.
redact-redact-toolbox-small.log.bz2 (10.9 KB) - added by Antoine Martin 4 months ago.
file 1
redact-redact-toolbox-small.log (64.0 KB) - added by Antoine Martin 4 months ago.
file 2
redact-redact-toolbox.log (84.5 KB) - added by Antoine Martin 4 months ago.
file 3

Download all attachments as: .zip

Change History (17)

Changed 5 months ago by stdedos

Attachment: file.log-redact.bak added

comment:1 Changed 5 months ago by Antoine Martin

Owner: changed from Antoine Martin to stdedos

That log file doesn't look redacted but seriously obfuscated!

comment:2 Changed 5 months ago by stdedos

I'll remember to s/redact/obsf/g :-p

However, if you notice enough (or compare the original and the obfuscated side-by-side), you'll see that it's not "seriously" obfuscated :-D.

Changed 5 months ago by Antoine Martin

Attachment: obfuscated.png added

what the log file looks like for me

comment:3 Changed 5 months ago by Antoine Martin

you'll see that it's not "seriously" obfuscated

We're not looking at the same thing then:
what the log file looks like for me

comment:4 Changed 4 months ago by stdedos

Owner: changed from stdedos to Antoine Martin

Working vs failing files that are not seriously obsfucated (attached).
The big one downloads, the small ones don't.

"Xpra-Python3-x86_64_4.1-r28100\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

XPRA_CUSTOM_TITLE_BAR=0
XPRA_EXECUTABLE=Xpra-Python3-x86_64_4.1-r28100
XPRA_REPAINT_ALL=1
XPRA_SCROLL_ENCODING=0

2020-12-14 10:34:13,937 Xpra GTK3 client version 4.1-r28100 64-bit
2020-12-14 10:34:13,941  running on Microsoft Windows 10
2020-12-14 10:34:15,088 GStreamer version 1.18.1 for Python 3.8.6 64-bit
2020-12-14 10:34:15,451 created named pipe 'Xpra\8316'
2020-12-14 10:34:15,766 keyboard layout code 0x409
2020-12-14 10:34:15,767 identified as 'United States - English' : us
2020-12-14 10:34:16,117  keyboard settings: layout=us
2020-12-14 10:34:16,125  desktop size is 4160x1440 with 1 screen:
2020-12-14 10:34:16,128   Default (1100x381 mm - DPI: 96x96) workarea: 4160x1400
2020-12-14 10:34:16,129     Generic PnP Monitor 1600x900 at 0x534 (309x174 mm - DPI: 132x131) workarea: 1600x860 at 0x534
2020-12-14 10:34:16,130     C32JG5x 2560x1440 at 1600x0 (697x392 mm - DPI: 93x93) workarea: 2560x1400 at 1600x0
2020-12-14 10:34:23,946 enabled remote logging
2020-12-14 10:34:23,950 Xpra GTK3 X11 server version 3.0.12-r27620 64-bit
2020-12-14 10:34:23,951  running on Linux Ubuntu 16.04 xenial
2020-12-14 10:34:23,975 Attached to ip:22
2020-12-14 10:34:23,984  (press Control-C to detach)


(xpra_cmd:8316): Pango-WARNING **: 10:34:24.473: couldn't load font "Bitstream Vera Sans Not-Rotated 14.662109375", falling back to "Sans Not-Rotated 14.662109375", expect ugly output.
2020-12-14 10:34:25,505 UI thread is now blocked
2020-12-14 10:34:26,492 UI thread is running again, resuming
2020-12-14 10:40:15,172 server is not responding, drawing spinners over the windows
2020-12-14 10:40:34,267 server is OK again
2020-12-14 10:51:25,899 server is not responding, drawing spinners over the windows
2020-12-14 10:51:43,265 server is OK again
2020-12-14 10:51:46,326 server is not responding, drawing spinners over the windows
2020-12-14 10:51:47,335 server is OK again
2020-12-14 10:51:56,345 server is not responding, drawing spinners over the windows
2020-12-14 10:52:06,394 server is OK again
2020-12-14 10:52:11,535 server is not responding, drawing spinners over the windows
2020-12-14 10:52:39,670 server is OK again
2020-12-14 12:18:07,288 Warning: failed to set clipboard data
2020-12-14 12:18:07,291  OpenClipboard: too many failed attempts, giving up
2020-12-14 12:21:52,456 server is not responding, drawing spinners over the windows
2020-12-14 12:21:55,222 server is OK again
2020-12-14 13:14:23,686 server is not responding, drawing spinners over the windows
2020-12-14 13:14:27,961 server is OK again
2020-12-14 13:14:33,729 server is not responding, drawing spinners over the windows
2020-12-14 13:14:42,026 server is OK again
2020-12-14 13:30:40,055 downloaded 86503 bytes to temporary file:
2020-12-14 13:30:40,058  'C:\Users\ur\Downloads\redact-redact-toolbox.log'
2020-12-14 13:30:41,835 unknown string message: 0xc269 / 0x0 / 0x0
2020-12-14 13:33:54,557 Error: chunked file transfer '1e4973ebaafe439b8bd72a4a4333a1cd' timed out
2020-12-14 13:34:10,136 Error: cannot cancel download a5d2464626714704b19c3900605dd9f1, entry not found!
2020-12-14 13:34:51,309 Error: chunked file transfer '1e4973ebaafe439b8bd72a4a4333a1cd' timed out
2020-12-14 13:34:52,164 Error: cannot cancel download 54aa261799c84d129783760b1676221e, entry not found!
2020-12-14 13:35:24,462 unknown string message: 0xc269 / 0x0 / 0x0
Last edited 4 months ago by stdedos (previous) (diff)

Changed 4 months ago by stdedos

Attachment: xpra-cannot-xdg-open-v3.7z added

Changed 4 months ago by Antoine Martin

file 1

Changed 4 months ago by Antoine Martin

file 2

Changed 4 months ago by Antoine Martin

Attachment: redact-redact-toolbox.log added

file 3

comment:5 Changed 4 months ago by Antoine Martin

Owner: changed from Antoine Martin to Antoine Martin
Status: newassigned

Had to attach individual files as Xenial can't handle 7z.
I can reproduce the problem with a Xenial server running 3.0.13-RC and a win10 client running 4.1-RC.
Odd considering I had already tested with various file sizes.

comment:6 in reply to:  5 Changed 4 months ago by stdedos

Replying to Antoine Martin:

Had to attach individual files as Xenial can't handle 7z.

Oh, apologies :/
I did it automatically via my Windows host, so I didn't think too much about which compression to pick ...

comment:7 Changed 4 months ago by Antoine Martin

Owner: changed from Antoine Martin to stdedos
Status: assignednew

I even managed to reproduce it on my local desktop, using the same versions as in comment:5.
But first thing the next day: completely impossible to reproduce, no matter how many times I tried, what versions I used or what system I use for testing. [angryface].

Then, just as I was about to give up. It happened again!
Eventually managed to reproduce it semi-reliably, enough to get some debug output:

2020-12-15 22:19:49,847 New unix-domain connection received
2020-12-15 22:19:49,848  on '/run/user/1000/xpra/ubuntu-xenial-amd64-1'
2020-12-15 22:19:49,849 send_file('/home/ubuntu/Downloads/redact-redact-toolbox-small.log', '', <class 'bytes'>, '65522 bytes', False, True, {'sha1': '881b6f653df6bed51eef75e09fd923942ecf345d', 'file-chunk-id': 'a5e361ebb6f94f988cbb102681cb0304'}) action=open, ask=True
2020-12-15 22:19:49,850 file transfer remote caps: file-transfer=True   (ask=True)
2020-12-15 22:19:49,850 file transfer remote caps: printing=False        (ask=False)
2020-12-15 22:19:49,850 file transfer remote caps: open-files=True      (ask=True)
2020-12-15 22:19:49,850 file transfer remote caps: open-url=True        (ask=True)
2020-12-15 22:19:49,850 sending data request for b'file' '/home/ubuntu/Downloads/redact-redact-toolbox-small.log' with send-id=894b7ac7390245e9b089d891b615e5df
2020-12-15 22:19:49,851 client   3 @23.201 do_process_send_data_request: send_id=894b7ac7390245e9b089d891b615e5df, url=/home/ubuntu/Downloads/redact-redact-toolbox-small.log, printit=False, openit=True, options={}
2020-12-15 22:19:49,854 client   3 @23.204 show()

2020-12-15 22:19:52,339 client   3 @25.688 accept('redact-redact-toolbox-small.log', False, True)=1
2020-12-15 22:19:52,339 process send-data-response: send_id=894b7ac7390245e9b089d891b615e5df, accept=1
2020-12-15 22:19:52,339 do_send_file('/home/ubuntu/Downloads/redact-redact-toolbox-small.log', '', <class 'bytes'>, '65522 bytes', False, True, {'sha1': '881b6f653df6bed51eef75e09fd923942ecf345d', 'file-chunk-id': 'a5e361ebb6f94f988cbb102681cb0304'})
2020-12-15 22:19:52,339 sha1 digest('/home/ubuntu/Downloads/redact-redact-toolbox-small.log')=881b6f653df6bed51eef75e09fd923942ecf345d
2020-12-15 22:19:52,341 client   3 @25.691 <bound method GTKXpraClient.accept_data of gtk3.client>(b'894b7ac7390245e9b089d891b615e5df', 'file', 'redact-redact-toolbox-small.log', False, True)=(False, False)
2020-12-15 22:19:52,342 client   3 @25.691 receiving file: ['redact-redact-toolbox-small.log', '', False, False, 65522, '65522 bytes', {b'sha1': b'881b6f653df6bed51eef75e09fd923942ecf345d', b'file-chunk-id': b'a5e361ebb6f94f988cbb102681cb0304'}]
2020-12-15 22:19:52,342 client   3 @25.692 cannot save file as '/home/antoine/Downloads/redact-redact-toolbox-small.log': file already exists
2020-12-15 22:19:52,342 client   3 @25.692 cannot save file as '/home/antoine/Downloads/redact-redact-toolbox-small-1.log': file already exists
(..)
2020-12-15 22:19:52,347 client   3 @25.695 cannot save file as '/home/antoine/Downloads/redact-redact-toolbox-small-30.log': file already exists
2020-12-15 22:19:52,347 client   3 @25.696 cannot save file as '/home/antoine/Downloads/redact-redact-toolbox-small-31.log': file already exists
2020-12-15 22:19:52,347 client   3 @25.696 safe_open_download_file(redact-redact-toolbox-small.log, ) will use '/home/antoine/Downloads/redact-redact-toolbox-small-32.log'
2020-12-15 22:19:52,347 client   3 @25.696 using filename '/home/antoine/Downloads/redact-redact-toolbox-small-32.log', file descriptor=9
2020-12-15 22:19:52,347 ack-file-chunk: [b'a5e361ebb6f94f988cbb102681cb0304', True, b'', 0]
2020-12-15 22:19:52,347 Error: cannot find the file transfer id 'a5e361ebb6f94f988cbb102681cb0304'

2020-12-15 22:20:02,347 client   3 @35.697 _check_chunk_receiving(a5e361ebb6f94f988cbb102681cb0304, 0) chunk_state=[265858.694795026, 9, '/home/antoine/Downloads/redact-redact-toolbox-small-32.log', '', False, False, 65522, {b'sha1': b'881b6f653df6bed51eef75e09fd923942ecf345d', b'file-chunk-id': b'a5e361ebb6f94f988cbb102681cb0304'}, <sha1 HASH object @ 0x7f6a7fad6780>, 0, False, b'894b7ac7390245e9b089d891b615e5df', 2798, 0]
2020-12-15 22:20:02,349 client   3 @35.697 Error: chunked file transfer 'a5e361ebb6f94f988cbb102681cb0304' timed out

And then I noticed that from the moment it failed, it would continue to fail.
The file-transfer packet also included a chunk-id even though the packet already contained all of the data and did not require more chunks to be sent!

That's because the empty dictionary a dangerous default value in Python.
This had already been fixed by r27705 in trunk (4.1), r28166 backports this to older branches.

I am quite confident that this is the problem that you saw.
I have uploaded 3.0.13-RC builds for xenial with this fix.

comment:8 Changed 4 months ago by Antoine Martin

gmail outage!

<REDACTED@gmail.com>: host gmail-smtp-in.l.google.com[173.194.76.26] said:
    550-5.1.1 The email account that you tried to reach does not exist. Please
    try 550-5.1.1 double-checking the recipient's email address for typos or
    550-5.1.1 unnecessary spaces. Learn more at 550 5.1.1
    https://support.google.com/mail/?p=NoSuchUser s84si2068451wme.1 - gsmtp (in
    reply to RCPT TO command)

comment:9 Changed 4 months ago by Antoine Martin

Resolution: fixed
Status: newclosed

I am confident this is fixed, feel free to re-open if not.

comment:10 Changed 4 months ago by stdedos

I had it tried multiple times, it didn't fail.

Ofc I did xpra upgrade, which probably "sanitized" the setup. If it happens, I'll open v4 :-p

comment:11 Changed 3 months ago by migration script

this ticket has been moved to: https://github.com/Xpra-org/xpra/issues/2949

Note: See TracTickets for help on using tickets.