Xpra: Ticket #2718: xpra seamless server crashed without warning

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.



Wed, 08 Apr 2020 12:36:19 GMT - Antoine Martin: owner changed

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)


Wed, 08 Apr 2020 12:45:08 GMT - stdedos: description changed


Wed, 08 Apr 2020 12:50:33 GMT - stdedos:

Replying to Antoine Martin:

Was it the server or client that crashed?

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

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)


Wed, 08 Apr 2020 13:28:00 GMT - stdedos: attachment set


Wed, 08 Apr 2020 13:28:28 GMT - stdedos: owner changed

also the attachment I promised


Wed, 08 Apr 2020 14:07:03 GMT - Antoine Martin: priority, milestone changed

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.


Wed, 08 Apr 2020 14:41:20 GMT - 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.


Wed, 08 Apr 2020 14:46:16 GMT - 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..


Thu, 08 Oct 2020 04:48:01 GMT - Antoine Martin:

4.1 handles _NET_RESTACK_WINDOW : #2896


Mon, 28 Dec 2020 14:47:30 GMT - Antoine Martin: status changed; resolution set

I may have seen the same thing: #2987, but I never managed to reproduce it afterwards.


Sat, 23 Jan 2021 05:58:54 GMT - migration script:

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