Resolved

RDP Manager hangs

avatar

When connected to RDP sessions with RDP local resources "clipboard" and "hard drive" enabled after some time the entire program will become unresponsive until I kill a running "FreeRDPSandboxed" process at which point it immediately is working again.

All Comments (14)

avatar

Hi,

Do you experience to same behavior if clipboard and/or hard drive isn't checked?

Jonathan Lafontaine

avatar

I don't have the issue when they are both disabled, but I also have the issue when only clipboard is enabled.


Distributor ID: Linuxmint
Description: Linux Mint 20
Release: 20
Codename: ulyana

Static hostname: xxxxxxx
Icon name: computer-laptop
Chassis: laptop
Machine ID: b76cc7b1bbdc489e93909d2043031de8
Boot ID: 046269a00f6a42ef962c001ffa68b954
Operating System: Linux Mint 20
Kernel: Linux 5.4.0-56-generic
Architecture: x86-64

avatar

Well, this narrows it down quite a bit.

If you run RDM from a terminal using the remotedesktopmanager command, can you see any error in the RDP output?

Jonathan Lafontaine

avatar

Yes.

$ /bin/remotedesktopmanager.free

(RemoteDesktopManager.Free:139677): Gtk-CRITICAL **: 14:03:05.504: gtk_entry_set_text: assertion 'text != NULL' failed

(RemoteDesktopManager.Free:139677): Gtk-CRITICAL **: 14:03:05.902: gtk_entry_set_text: assertion 'text != NULL' failed

(RemoteDesktopManager.Free:139677): Gtk-CRITICAL **: 14:03:05.928: gtk_entry_set_text: assertion 'text != NULL' failed

(RemoteDesktopManager.Free:139677): Gtk-CRITICAL **: 14:03:05.974: gtk_entry_set_text: assertion 'text != NULL' failed

(RemoteDesktopManager.Free:139677): Gtk-CRITICAL **: 14:03:05.974: gtk_entry_set_text: assertion 'text != NULL' failed

(RemoteDesktopManager.Free:139677): Gtk-CRITICAL **: 14:03:05.974: gtk_entry_set_text: assertion 'text != NULL' failed

(RemoteDesktopManager.Free:139677): Gtk-CRITICAL **: 14:03:05.974: gtk_entry_set_text: assertion 'text != NULL' failed

(RemoteDesktopManager.Free:139677): Gtk-CRITICAL **: 14:03:05.974: gtk_entry_set_text: assertion 'text != NULL' failed

(RemoteDesktopManager.Free:139677): Gtk-CRITICAL **: 14:03:05.974: gtk_entry_set_text: assertion 'text != NULL' failed

(RemoteDesktopManager.Free:139677): Gtk-CRITICAL **: 14:03:05.974: gtk_entry_set_text: assertion 'text != NULL' failed

(RemoteDesktopManager.Free:139677): Gtk-CRITICAL **: 14:03:05.974: gtk_entry_set_text: assertion 'text != NULL' failed

(RemoteDesktopManager.Free:139677): Gtk-CRITICAL **: 14:03:05.974: gtk_entry_set_text: assertion 'text != NULL' failed

(RemoteDesktopManager.Free:139677): Gtk-CRITICAL **: 14:03:05.974: gtk_text_buffer_set_text: assertion 'text != NULL' failed

(RemoteDesktopManager.Free:139677): Gtk-CRITICAL **: 14:03:05.974: gtk_entry_set_text: assertion 'text != NULL' failed

(RemoteDesktopManager.Free:139677): Gtk-CRITICAL **: 14:03:05.974: gtk_entry_set_text: assertion 'text != NULL' failed

(RemoteDesktopManager.Free:139677): Gtk-CRITICAL **: 14:03:05.974: gtk_entry_set_text: assertion 'text != NULL' failed

(RemoteDesktopManager.Free:139677): Gtk-CRITICAL **: 14:03:05.974: gtk_entry_set_text: assertion 'text != NULL' failed

(RemoteDesktopManager.Free:139677): Gtk-CRITICAL **: 14:03:05.974: gtk_entry_set_text: assertion 'text != NULL' failed

(RemoteDesktopManager.Free:139677): Gtk-CRITICAL **: 14:03:05.974: gtk_entry_set_text: assertion 'text != NULL' failed

(RemoteDesktopManager.Free:139677): Gtk-CRITICAL **: 14:03:05.974: gtk_entry_set_text: assertion 'text != NULL' failed

(RemoteDesktopManager.Free:139677): Gtk-CRITICAL **: 14:03:15.134: gtk_entry_set_text: assertion 'text != NULL' failed

(RemoteDesktopManager.Free:139677): Gtk-CRITICAL **: 14:03:15.282: gtk_entry_set_text: assertion 'text != NULL' failed

(RemoteDesktopManager.Free:139677): Gtk-CRITICAL **: 14:03:15.305: gtk_entry_set_text: assertion 'text != NULL' failed

(RemoteDesktopManager.Free:139677): Gtk-CRITICAL **: 14:03:15.335: gtk_entry_set_text: assertion 'text != NULL' failed

(RemoteDesktopManager.Free:139677): Gtk-CRITICAL **: 14:03:15.335: gtk_entry_set_text: assertion 'text != NULL' failed

(RemoteDesktopManager.Free:139677): Gtk-CRITICAL **: 14:03:15.335: gtk_entry_set_text: assertion 'text != NULL' failed

(RemoteDesktopManager.Free:139677): Gtk-CRITICAL **: 14:03:15.335: gtk_entry_set_text: assertion 'text != NULL' failed

(RemoteDesktopManager.Free:139677): Gtk-CRITICAL **: 14:03:15.335: gtk_entry_set_text: assertion 'text != NULL' failed

(RemoteDesktopManager.Free:139677): Gtk-CRITICAL **: 14:03:15.335: gtk_entry_set_text: assertion 'text != NULL' failed

(RemoteDesktopManager.Free:139677): Gtk-CRITICAL **: 14:03:15.335: gtk_entry_set_text: assertion 'text != NULL' failed

(RemoteDesktopManager.Free:139677): Gtk-CRITICAL **: 14:03:15.335: gtk_entry_set_text: assertion 'text != NULL' failed

(RemoteDesktopManager.Free:139677): Gtk-CRITICAL **: 14:03:15.335: gtk_entry_set_text: assertion 'text != NULL' failed

(RemoteDesktopManager.Free:139677): Gtk-CRITICAL **: 14:03:15.335: gtk_text_buffer_set_text: assertion 'text != NULL' failed

(RemoteDesktopManager.Free:139677): Gtk-CRITICAL **: 14:03:15.335: gtk_entry_set_text: assertion 'text != NULL' failed

(RemoteDesktopManager.Free:139677): Gtk-CRITICAL **: 14:03:15.335: gtk_entry_set_text: assertion 'text != NULL' failed

(RemoteDesktopManager.Free:139677): Gtk-CRITICAL **: 14:03:15.335: gtk_entry_set_text: assertion 'text != NULL' failed

(RemoteDesktopManager.Free:139677): Gtk-CRITICAL **: 14:03:15.335: gtk_entry_set_text: assertion 'text != NULL' failed

(RemoteDesktopManager.Free:139677): Gtk-CRITICAL **: 14:03:15.335: gtk_entry_set_text: assertion 'text != NULL' failed

(RemoteDesktopManager.Free:139677): Gtk-CRITICAL **: 14:03:15.335: gtk_entry_set_text: assertion 'text != NULL' failed

(RemoteDesktopManager.Free:139677): Gtk-CRITICAL **: 14:03:15.335: gtk_entry_set_text: assertion 'text != NULL' failed
44671 NQc5u1BJTU6N9yvEHtvmog
[14:03:22:327] [139766:139770] [INFO][com.freerdp.client.common.cmdline] - loading channelEx rdpdr
[14:03:22:327] [139766:139770] [INFO][com.freerdp.client.common.cmdline] - loading channelEx rdpsnd
[14:03:22:327] [139766:139770] [INFO][com.freerdp.client.common.cmdline] - loading channelEx cliprdr
[14:03:22:868] [139766:139770] [INFO][com.freerdp.primitives] - primitives autodetect, using optimized
calling freerdp_InitializeSSL
freerdp_InitializeSSL #1
freerdp_InitializeSSL #2
___freerdp_openssl_initialize #1
___freerdp_openssl_initialize #2
OPENSSL_VERSION_NUMBER: 0x1010104F
___freerdp_openssl_initialize #4
___freerdp_openssl_initialize #5
[14:03:22:870] [139766:139770] [INFO][com.freerdp.core] - freerdp_set_last_error resetting error state
[14:03:22:870] [139766:139770] [INFO][com.freerdp.core] - freerdp_set_last_error resetting error state
[14:03:22:942] [139766:139770] [INFO][com.freerdp.gdi] - Local framebuffer format PIXEL_FORMAT_BGRX32
[14:03:22:942] [139766:139770] [INFO][com.freerdp.gdi] - Remote framebuffer format PIXEL_FORMAT_RGB16
[14:03:22:942] [139766:139770] [INFO][com.freerdp.channels.rdpsnd.client] - Loaded fake backend for rdpsnd
[14:03:22:942] [139766:139770] [INFO][com.winpr.clipboard] - initialized POSIX local file subsystem
[14:03:23:238] [139766:139790] [WARN][com.freerdp.channels.cliprdr.common] - [cliprdr_packet_format_list_new] called with invalid type 00000000

avatar

Well, I'll have to dig deeper but that invalid type 00000000 might be enough to get the connection in a weird state.
Killing FreeRDPSandboxed then triggers a reconnect.

Jonathan Lafontaine

avatar

Here is the additional logs from terminal after it froze (during a clipboard copy) and after I killed FreeRDPSandboxed

/bin/remotedesktopmanager.free
[removed]

(!= NULL' failed

(RemoteDesktopManager.Free:139677): Gtk-CRITICAL **: 14:03:15.335: gtk_entry_set_text: assertion 'text != NULL' failed

(RemoteDesktopManager.Free:139677): Gtk-CRITICAL **: 14:03:15.335: gtk_entry_set_text: assertion 'text != NULL' failed
44671 NQc5u1BJTU6N9yvEHtvmog
[14:03:22:327] [139766:139770] [INFO][com.freerdp.client.common.cmdline] - loading channelEx rdpdr
[14:03:22:327] [139766:139770] [INFO][com.freerdp.client.common.cmdline] - loading channelEx rdpsnd
[14:03:22:327] [139766:139770] [INFO][com.freerdp.client.common.cmdline] - loading channelEx cliprdr
[14:03:22:868] [139766:139770] [INFO][com.freerdp.primitives] - primitives autodetect, using optimized
calling freerdp_InitializeSSL
freerdp_InitializeSSL #1
freerdp_InitializeSSL #2
___freerdp_openssl_initialize #1
___freerdp_openssl_initialize #2
OPENSSL_VERSION_NUMBER: 0x1010104F
___freerdp_openssl_initialize #4
___freerdp_openssl_initialize #5
[14:03:22:870] [139766:139770] [INFO][com.freerdp.core] - freerdp_set_last_error resetting error state
[14:03:22:870] [139766:139770] [INFO][com.freerdp.core] - freerdp_set_last_error resetting error state
[14:03:22:942] [139766:139770] [INFO][com.freerdp.gdi] - Local framebuffer format PIXEL_FORMAT_BGRX32
[14:03:22:942] [139766:139770] [INFO][com.freerdp.gdi] - Remote framebuffer format PIXEL_FORMAT_RGB16
[14:03:22:942] [139766:139770] [INFO][com.freerdp.channels.rdpsnd.client] - Loaded fake backend for rdpsnd
[14:03:22:942] [139766:139770] [INFO][com.winpr.clipboard] - initialized POSIX local file subsystem
[14:03:23:238] [139766:139790] [WARN][com.freerdp.channels.cliprdr.common] - [cliprdr_packet_format_list_new] called with invalid type 00000000
[14:03:45:080] [139766:139774] [WARN][com.freerdp.channels.cliprdr.common] - [cliprdr_packet_format_list_new] called with invalid type 00000000
[14:06:22:800] [139766:140470] [WARN][com.freerdp.channels.cliprdr.common] - [cliprdr_packet_format_list_new] called with invalid type 00000000
[14:06:50:879] [139766:140472] [WARN][com.freerdp.channels.cliprdr.common] - [cliprdr_packet_format_list_new] called with invalid type 00000000
[14:06:58:004] [139766:140472] [WARN][com.freerdp.channels.cliprdr.common] - [cliprdr_packet_format_list_new] called with invalid type 00000000
[14:06:58:009] [139766:141058] [WARN][com.freerdp.channels.cliprdr.common] - [cliprdr_packet_format_list_new] called with invalid type 00000000
[14:08:14:091] [139766:141068] [WARN][com.freerdp.channels.cliprdr.common] - [cliprdr_packet_format_list_new] called with invalid type 00000000
[14:08:16:692] [139766:141093] [WARN][com.freerdp.channels.cliprdr.common] - [cliprdr_packet_format_list_new] called with invalid type 00000000
malloc(): invalid size (unsorted)

=================================================================
Native Crash Reporting
=================================================================
Got a SIGABRT while executing native code. This usually indicates
a fatal error in the mono runtime or one of the native libraries
used by your application.
=================================================================

=================================================================
Native stacktrace:
=================================================================
0x562fe27a7229 - /usr/lib/devolutions/RemoteDesktopManager.Free/FreeRDPSandboxed :
0x562fe27a75a9 - /usr/lib/devolutions/RemoteDesktopManager.Free/FreeRDPSandboxed :
0x562fe27537c4 - /usr/lib/devolutions/RemoteDesktopManager.Free/FreeRDPSandboxed :
0x562fe27a67c2 - /usr/lib/devolutions/RemoteDesktopManager.Free/FreeRDPSandboxed :
0x7f42ad7333c0 - /lib/x86_64-linux-gnu/libpthread.so.0 :
0x7f42ad22518b - /lib/x86_64-linux-gnu/libc.so.6 : gsignal
0x7f42ad204859 - /lib/x86_64-linux-gnu/libc.so.6 : abort
0x7f42ad26f3ee - /lib/x86_64-linux-gnu/libc.so.6 :
0x7f42ad27747c - /lib/x86_64-linux-gnu/libc.so.6 :
0x7f42ad27a234 - /lib/x86_64-linux-gnu/libc.so.6 :
0x7f42ad27c419 - /lib/x86_64-linux-gnu/libc.so.6 : __libc_malloc
0x7f42a2a8d2ee - ./lib/libDevolutionsRDP.so :
0x7f42a292d76a - ./lib/libDevolutionsRDP.so : csharp_freerdp_send_clipboard_data
0x403a6029 - Unknown

=================================================================
Telemetry Dumper:
=================================================================
[14:14:45:786] [139677:142698] [ERROR][freevnc.client] - getaddrinfo failure: D001UT001.panetcorp.com (0)
36419 Cak4rIp-SEOYkk8nQugi-Q
[14:14:46:038] [142718:142723] [INFO][com.freerdp.client.common.cmdline] - loading channelEx rdpdr
[14:14:46:038] [142718:142723] [INFO][com.freerdp.client.common.cmdline] - loading channelEx rdpsnd
[14:14:46:038] [142718:142723] [INFO][com.freerdp.client.common.cmdline] - loading channelEx cliprdr
[14:14:47:574] [142718:142723] [INFO][com.freerdp.primitives] - primitives autodetect, using optimized
calling freerdp_InitializeSSL
freerdp_InitializeSSL #1
freerdp_InitializeSSL #2
___freerdp_openssl_initialize #1
___freerdp_openssl_initialize #2
OPENSSL_VERSION_NUMBER: 0x1010104F
___freerdp_openssl_initialize #4
___freerdp_openssl_initialize #5
[14:14:47:575] [142718:142723] [INFO][com.freerdp.core] - freerdp_set_last_error resetting error state
[14:14:47:575] [142718:142723] [INFO][com.freerdp.core] - freerdp_set_last_error resetting error state
[14:14:47:625] [142718:142723] [INFO][com.freerdp.gdi] - Local framebuffer format PIXEL_FORMAT_BGRX32
[14:14:47:625] [142718:142723] [INFO][com.freerdp.gdi] - Remote framebuffer format PIXEL_FORMAT_RGB16
[14:14:47:625] [142718:142723] [INFO][com.freerdp.channels.rdpsnd.client] - Loaded fake backend for rdpsnd
[14:14:47:625] [142718:142723] [INFO][com.winpr.clipboard] - initialized POSIX local file subsystem
[14:14:47:871] [142718:142743] [WARN][com.freerdp.channels.cliprdr.common] - [cliprdr_packet_format_list_new] called with invalid type 00000000
Cairo.Surface is leaking, programmer is missing a call to Dispose
Set MONO_CAIRO_DEBUG_DISPOSE to track allocation traces
[14:15:29:650] [142718:142728] [WARN][com.freerdp.channels.cliprdr.common] - [cliprdr_packet_format_list_new] called with invalid type 00000000
[14:15:29:655] [142718:142722] [WARN][com.freerdp.channels.cliprdr.common] - [cliprdr_packet_format_list_new] called with invalid type 00000000
[14:17:22:493] [142718:142844] [WARN][com.freerdp.channels.cliprdr.common] - [cliprdr_packet_format_list_new] called with invalid type 00000000
[14:17:22:497] [142718:142772] [WARN][com.freerdp.channels.cliprdr.common] - [cliprdr_packet_format_list_new] called with invalid type 00000000

avatar

Is there something specific you are copying to trigger it or it happens randomly over time?

Jonathan Lafontaine

avatar

I believe it happens when I copy formatted text as opposed to plain text. Let me do some more testing and confirm.

avatar

I did a quick test and can confirm formatted text seems to be the problem.
Not all formatted text is problematic it seems. Bold text copies without any issue but a strike through doesn't.

I'll look into it.

Jonathan Lafontaine

avatar

Okay I just tried the same test and I have two RDP sessions open, and it froze one of my sessions but not the other. The program is still responsive as well. The one it froze is connected over VPN and WIN10, the one that is still active is local and SRVR2019.

avatar

I did some more testing with formatted text and encountered these 3 scenarios.

  1. Text is received and can be copied to the local clipboard.
  2. Text is received but the length doesn't match the received buffer and we end up reading out of bound. This will crash the rdp process but if you are running your session sandboxed, RDM will notice and do a reconnect automatically.
  3. The RDP library cannot process the clipboard information and enters a weird state. At this point the library will stop communicating with the server but no error is raised. Our RDP process, who doesn't any better, continues to poll the connection for changes that will never come. Manually closing and restarting the connection is necessary.


I can prevent #2 from crashing and simply ignore the clipboard update. The end result is the same but we avoid a crash and a reconnecting.
I'll see if I can do anything to improve #3. Hopefully I can reach a point where we are a least able to recognize the state we are in and reconnect.

Jonathan Lafontaine

avatar

Hello, I am also experiencing this issue with PopOS 20.04. Any idea when a fix would be released?

avatar

Hi,

I unfortunately don't have a fix beyond what is already live in the 2021.1.0.10 version.
Do you have a specific example of text crashing RDP you could be able to share?

Regards

Jonathan Lafontaine

avatar

I am on 2021.1.0.10 Beta so maybe that is the issue. This occurs daily for me so I will update to the latest and let you know if I still experience the issue. I can get further details when/if it occurs. Thanks for the quick reply. Great Product!