xpra icon
Bug tracker and wiki

Opened 3 months ago

Last modified 3 months ago

#2718 new defect

xpra seamless server crashed without warning

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

Description (last modified by stdedos)

Server's last words:

2020-04-08 11:53:11,676 Warning: PRIMARY selection request for 'UTF8_STRING' timed out
2020-04-08 11:53:11,677  request 1967 at time=0
2020-04-08 11:53:22,217 client   3 @46.776 Warning: failed to set clipboard data
2020-04-08 11:53:22,217 client   3 @46.780  OpenClipboard: too many failed attempts, giving up
2020-04-08 11:53:39,163 client   3 @03.737 Warning: failed to set clipboard data
2020-04-08 11:53:39,164 client   3 @03.739  OpenClipboard: too many failed attempts, giving up
2020-04-08 11:54:01,536 client   3 @26.103 Warning: failed to set clipboard data
2020-04-08 11:54:01,537 client   3 @26.106  OpenClipboard: too many failed attempts, giving up
2020-04-08 12:24:14,157 do_xpra_client_message_event(<X11:ClientMessage {'window': '0x200164', 'format': '32', 'message_type': '_NET_RESTACK_WINDOW', 'serial': '0x323eae', 'data': '(2, 2097208, 0, 0, 0)', 'delivered_to': '0x200164', 'send_event': '1'}>) not handled
2020-04-08 12:27:54,439 do_xpra_client_message_event(<X11:ClientMessage {'window': '0x20026a', 'format': '32', 'message_type': '_NET_RESTACK_WINDOW', 'serial': '0x32ac35', 'data': '(2, 2097208, 0, 0, 0)', 'delivered_to': '0x20026a', 'send_event': '1'}>) not handled
2020-04-08 12:28:02,528 do_xpra_client_message_event(<X11:ClientMessage {'window': '0x20026a', 'format': '32', 'message_type': '_NET_RESTACK_WINDOW', 'serial': '0x32b75a', 'data': '(2, 2097208, 0, 0, 0)', 'delivered_to': '0x20026a', 'send_event': '1'}>) not handled
2020-04-08 12:28:04,614 do_xpra_client_message_event(<X11:ClientMessage {'window': '0x20026a', 'format': '32', 'message_type': '_NET_RESTACK_WINDOW', 'serial': '0x32ba83', 'data': '(2, 2097208, 0, 0, 0)', 'delivered_to': '0x20026a', 'send_event': '1'}>) not handled
2020-04-08 12:28:21,808 Warning: CLIPBOARD selection request for 'UTF8_STRING' timed out
2020-04-08 12:28:21,808  request 339 at time=0
2020-04-08 12:28:25,829 do_xpra_client_message_event(<X11:ClientMessage {'window': '0x2001b0', 'format': '32', 'message_type': '_NET_RESTACK_WINDOW', 'serial': '0x32d0d2', 'data': '(2, 2097208, 0, 0, 0)', 'delivered_to': '0x2001b0', 'send_event': '1'}>) not handled
2020-04-08 12:29:01,962 Warning: CLIPBOARD selection request for 'UTF8_STRING' timed out
2020-04-08 12:29:01,984  request 341 at time=0
2020-04-08 12:29:18,862 Warning: CLIPBOARD selection request for 'UTF8_STRING' timed out
2020-04-08 12:29:18,863  request 343 at time=0
2020-04-08 12:29:35,803 Warning: CLIPBOARD selection request for 'UTF8_STRING' timed out
2020-04-08 12:29:35,803  request 345 at time=0
2020-04-08 12:29:47,330 do_xpra_client_message_event(<X11:ClientMessage {'window': '0x20021a', 'format': '32', 'message_type': '_NET_RESTACK_WINDOW', 'serial': '0x331ae6', 'data': '(2, 2097208, 0, 0, 0)', 'delivered_to': '0x20021a', 'send_event': '1'}>) not handled
2020-04-08 12:29:51,170 Warning: CLIPBOARD selection request for 'UTF8_STRING' timed out
2020-04-08 12:29:51,170  request 347 at time=0
2020-04-08 12:30:13,815 do_xpra_client_message_event(<X11:ClientMessage {'window': '0x2001ed', 'format': '32', 'message_type': '_NET_RESTACK_WINDOW', 'serial': '0x332d8a', 'data': '(2, 2097208, 0, 0, 0)', 'delivered_to': '0x2001ed', 'send_event': '1'}>) not handled
2020-04-08 12:30:52,305 client   3 @16.063 server is not responding, drawing spinners over the windows
2020-04-08 12:30:52,338 client   3 @16.316 server is OK again
2020-04-08 12:31:16,367 Warning: CLIPBOARD selection request for 'UTF8_STRING' timed out
2020-04-08 12:31:16,367  request 349 at time=0
2020-04-08 12:31:54,853 Warning: CLIPBOARD selection request for 'UTF8_STRING' timed out
2020-04-08 12:31:54,854  request 353 at time=0
2020-04-08 12:32:08,152 do_xpra_client_message_event(<X11:ClientMessage {'window': '0x20021d', 'format': '32', 'message_type': '_NET_RESTACK_WINDOW', 'serial': '0x33752a', 'data': '(2, 2097208, 0, 0, 0)', 'delivered_to': '0x20021d', 'send_event': '1'}>) not handled
2020-04-08 12:32:40,127 Warning: CLIPBOARD selection request for 'UTF8_STRING' timed out
2020-04-08 12:32:40,127  request 357 at time=0
2020-04-08 12:33:06,572 client   3 @31.131 server is not responding, drawing spinners over the windows
2020-04-08 12:33:07,242 client   3 @31.637 server is OK again
2020-04-08 12:33:12,283 client   3 @36.137 server is not responding, drawing spinners over the windows
2020-04-08 12:33:12,376 client   3 @36.643 server is OK again
2020-04-08 12:33:15,800 client   3 @38.711 UI thread is now blocked
2020-04-08 12:33:15,873 client   3 @39.970 UI thread is running again, resuming
2020-04-08 12:33:16,821 client   3 @40.905 sending updated screen size to server: 1600x900 with 1 screens
2020-04-08 12:33:16,821 client   3 @40.908   Default (423x238 mm - DPI: 96x96) workarea: 1600x860
2020-04-08 12:33:16,822 client   3 @40.910     Generic PnP Monitor (309x174 mm - DPI: 131x131)
2020-04-08 12:33:16,822 client   3 @40.913 screen size change: will reinit the windows
2020-04-08 12:33:16,840 server virtual display now set to 1600x900
2020-04-08 12:33:16,841 received updated display dimensions
2020-04-08 12:33:16,841 client display size is 1600x900 with 1 screen:
2020-04-08 12:33:16,841   Default (423x238 mm - DPI: 96x96) workarea: 1600x860
2020-04-08 12:33:16,841     (Standard monitor types) Generic PnP Monitor (309x174 mm - DPI: 131x131)
2020-04-08 12:33:16,882 DPI set to 96 x 96
2020-04-08 12:33:16,882 sent updated screen size to 1 client: 1600x900 (max 7680x4320)

Unfortunately, I dismissed client's console too quickly :/
I will also send you the core that happened here via e-mail (it cannot get smaller than 6.5MB)

Then, this happened:

$ xpra list
Found the following xpra sessions:
/run/user/1000/xpra:
	LIVE session at :2
	UNKNOWN session at :20
	LIVE session at :200
	LIVE session at :50
/run/xpra:
	LIVE session at :2
	UNKNOWN session at :20
	LIVE session at :200
	LIVE session at :50
Re-probing unknown sessions in: /run/user/1000/xpra, /run/xpra
^C
caught KeyboardInterrupt(), exiting

I canceled to try and rescue my session, luckily enough I managed to. I am attaching the new server's startup log and xpra info.
There is also a bunch of #2642 diagnostics in there, if you are interested.

Attachments (1)

xpra-2718-server-info.7z (148.1 KB) - added by stdedos 3 months ago.

Download all attachments as: .zip

Change History (8)

comment:1 Changed 3 months ago by Antoine Martin

Owner: changed from Antoine Martin to stdedos

Was it the server or client that crashed?

Without steps or at the very least the log from the server that crashed, I will have to close this as 'needinfo'.

Which application is sending all those _NET_RESTACK_WINDOW? (it probably should not do that - see #2720)

Last edited 3 months ago by Antoine Martin (previous) (diff)

comment:2 Changed 3 months ago by stdedos

Description: modified (diff)

comment:3 in reply to:  1 Changed 3 months ago by stdedos

Replying to Antoine Martin:

Was it the server or client that crashed?

Server. Or, I don't know. As I said:

  • I forgot to save client's log
  • I found a /var/crash core (in your e-mail by now)
  • UNKNOWN session at :20

All of the above lead me to believe 80% it was server's crash

Without steps ...

No actual steps - it "just" died on me while interacting with it (I didn't "keep in mind" what was the exact part where xpra crashed).(1)

... or at the very least the log from the server that crashed, I will have to close this as 'needinfo'.

Apologies, I didn't mark it explicitly. The attached log from above were the server's last entries.

Which application is sending all those _NET_RESTACK_WINDOW? (it probably should not do that - see #2720)

I would have to say I don't know - but I have recently introduced DiffMerge https://sourcegear.com/diffmerge to my big session


(1) ... well, now that I think of it, maybe something: I use DisplayPort connectivity for my big monitor. Around that time, I accidentally turned off the monitor (and rushed to re-activate it).
In DP, turning off the monitor, automatically sends "monitor disconnected" "message" to the OS (any OS, happens both on Win and e.g. Ubuntu)

Last edited 3 months ago by stdedos (previous) (diff)

Changed 3 months ago by stdedos

Attachment: xpra-2718-server-info.7z added

comment:4 Changed 3 months ago by stdedos

Owner: changed from stdedos to Antoine Martin

also the attachment I promised

comment:5 Changed 3 months ago by Antoine Martin

Milestone: 4.04.1
Priority: majorminor

Around that time, I accidentally turned off the monitor (and rushed to re-activate it).
In DP, turning off the monitor, automatically sends "monitor disconnected" "message" to the OS (any OS, happens both on Win and e.g. Ubuntu)

That would make sense. It triggered:

sent updated screen size to 1 client: 1600x900 (max 7680x4320)

Which is the last message in the log.

Changing scaling has the same effect on the server (it has to change the vfb resolution), and that doesn't crash it. It is an easier way to reproduce the crash.
The fact that you immediately plugged it back in might have triggered a race condition.
I am lowering he priority because this should be difficult to reproduce, and may be fixed by upgrading the OS.

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

Replying to Antoine Martin:

The fact that you immediately plugged it back in might have triggered a race condition.

Can/Should you do a blocking queue for this kind of changes? i.e. execute them one by one, and only take the next one when the mutex is freed.

Last edited 3 months ago by stdedos (previous) (diff)

comment:7 Changed 3 months ago by Antoine Martin

Can / Should you do a blocking queue for this kind of changes? i.e. execute them one by one, and only take the next one when the mutex is freed.

That's already the case. We wait a little bit too, in case more resize events come through.

But this is all asynchronous, so when you take action, there could be another event on its way..

Last edited 3 months ago by Antoine Martin (previous) (diff)
Note: See TracTickets for help on using tickets.