Bug 1191170

Summary: No RDP possible from any KDE app
Product: [openSUSE] openSUSE Tumbleweed Reporter: Cosmin Tanczel <cosmin.tanczel>
Component: KDE Workspace (Plasma)Assignee: E-Mail List <opensuse-kde-bugs>
Status: RESOLVED FIXED QA Contact: E-mail List <qa-bugs>
Severity: Major    
Priority: P5 - None CC: cesar, fvogt, jon.brightwell, noah, oberkut, pujos.michael
Version: Current   
Target Milestone: ---   
Hardware: x86-64   
OS: openSUSE Tumbleweed   
Whiteboard:
Found By: --- Services Priority:
Business Priority: Blocker: ---
Marketing QA Status: --- IT Deployment: ---

Description Cosmin Tanczel 2021-09-30 08:40:30 UTC
After an update, I found that I am not able to connect to local network machines through RDP.

I have 3 machines, all of them are accesible from a Windows OS without any issues.

Using remmina or KRDC I instantly get Cannot connect to the "192.168.1.248" RDP Server.

I've tried disabling NLA on the RDP servers, even though it worked before the update without any issues.

Connecting to port 3389 using nc works:

nc -zv 192.168.1.248 3389
Connection to 192.168.1.248 3389 port [tcp/ms-wbt-server] succeeded!

Starting remmina from konsole, I get:

Load modules from /usr/lib64/remmina/plugins
Remmina plugin glibsecret (type=Secret) has been registered, but is not yet initialized/activated. The initialization order is 2000.
The glibsecret secret plugin  has been initialized and it will be your default secret plugin

(org.remmina.Remmina:4333): Gtk-WARNING **: 11:23:25.205: gtk_menu_attach_to_widget(): menu already attached to GtkMenuItem











(org.remmina.Remmina:4333): Gtk-CRITICAL **: 11:23:31.454: gtk_widget_set_sensitive: assertion 'GTK_IS_WIDGET (widget)' failed

(org.remmina.Remmina:4333): Gtk-CRITICAL **: 11:23:31.455: gtk_toggle_tool_button_set_active: assertion 'GTK_IS_TOGGLE_TOOL_BUTTON (button)' failed

(org.remmina.Remmina:4333): Gtk-CRITICAL **: 11:23:31.455: gtk_widget_set_sensitive: assertion 'GTK_IS_WIDGET (widget)' failed
[11:23:31:056] [4333:4347] [INFO][com.freerdp.core] - freerdp_connect:freerdp_set_last_error_ex resetting error state
[11:23:31:056] [4333:4347] [ERROR][com.freerdp.common.settings] - [freerdp_settings_set_bool] Invalid key index 2816
[11:23:31:056] [4333:4347] [INFO][com.freerdp.client.common.cmdline] - loading channelEx rdpdr
[11:23:31:056] [4333:4347] [INFO][com.freerdp.client.common.cmdline] - loading channelEx rdpsnd
[11:23:31:056] [4333:4347] [INFO][com.freerdp.client.common.cmdline] - loading channelEx cliprdr
[11:23:31:056] [4333:4347] [INFO][com.freerdp.client.common.cmdline] - loading channelEx drdynvc
[11:23:31:365] [4333:4347] [INFO][com.freerdp.primitives] - primitives autodetect, using optimized
[11:23:31:365] [4333:4347] [ERROR][com.freerdp.codec] - Failed to find libav H.264 codec
[11:23:31:365] [4333:4347] [ERROR][com.freerdp.core.codecs] - Failed to create h264 codec context
libfreerdp returned code is 00000000

So, it seems an update broke something related to libav H.264 codec library.
I added the Packman essential repository and switched to this repo so the avcodecs are installed. After this operation everything is working fine.

So it means some update broke something that was working before. I only added the Packman repo after I've noticed this issue.

Please let me know if there is the need to send you the zypper logs. The issue happened few days ago and I still have the logs.
Comment 1 Michael Pujos 2021-09-30 09:33:58 UTC
From freerdp package changelog, x264 was removed so probably a consequence of it:

* Wed Sep 15 2021 Hans-Peter Jansen <hpj@urpla.net>
..
- Remove X264 option, no related backend exists and enabling it fails
  in cmake creation stage
Comment 2 Noah Kalish 2021-10-25 11:08:56 UTC
I can confirm this bug also affects remmina since at least version 1.4.20.

When viewing the plugins in the application, it states that the remmina-plugin-rdp has H.264 enabled. Remmina works fine with packman installed, but without it, it fails to connect even if the graphics mode is changed. It gives the following output:

[11:03:27:568] [19:93] [INFO][com.freerdp.client.common.cmdline] - loading channelEx rdpdr
[11:03:27:568] [19:93] [INFO][com.freerdp.client.common.cmdline] - loading channelEx rdpsnd
[11:03:27:569] [19:93] [INFO][com.freerdp.client.common.cmdline] - loading channelEx cliprdr
[11:03:27:569] [19:93] [INFO][com.freerdp.client.common.cmdline] - loading channelEx drdynvc
[11:03:27:572] [19:93] [ERROR][com.freerdp.codec] - Failed to find libav H.264 codec
[11:03:27:572] [19:93] [ERROR][com.freerdp.core.codecs] - Failed to create h264 codec context
libfreerdp returned code is 00000000
Comment 3 Jon Brightwell 2021-11-03 15:51:58 UTC
I have packman installed but this seems to be a vdpau issue?
I have core dumps from krdc and remmina here.

krdc/freerdp
#0  __pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=11, no_tid=no_tid@entry=0) at pthread_kill.c:44
#1  0x00007fc84c09c8e3 in __pthread_kill_internal (signo=11, threadid=<optimized out>) at pthread_kill.c:78
#2  0x00007fc84c04f6f6 in __GI_raise (sig=sig@entry=11) at ../sysdeps/posix/raise.c:26
#3  0x00007fc84c423517 in fatal_handler (signum=11) at /usr/src/debug/freerdp-2.4.1-1.1.x86_64/libfreerdp/utils/signal.c:68
#4  <signal handler called>
#5  XDisplayString (dpy=0x0) at /usr/src/debug/libX11-1.7.2-1.2.x86_64/src/Macros.c:119
#6  0x00007fc844558d37 in vdpau_common_Initialize (driver_data=0x7fc8403184e0) at /usr/src/debug/libva-vdpau-driver-0.7.4-7.6.x86_64/src/vdpau_driver.c:188
#7  vdpau_Initialize_Current (ctx=0x7fc840316ba0) at /usr/src/debug/libva-vdpau-driver-0.7.4-7.6.x86_64/src/vdpau_driver_template.h:561
#8  __vaDriverInit_1_12 (ctx=0x7fc840316ba0) at /usr/src/debug/libva-vdpau-driver-0.7.4-7.6.x86_64/src/vdpau_driver.c:317
#9  0x00007fc846d4cfac in va_openDriver (dpy=dpy@entry=0x7fc840316a30, driver_name=<optimized out>) at /usr/src/debug/libva-2.13.0-3.1.x86_64/va/va.c:526
#10 0x00007fc846d528f6 in vaInitialize (dpy=0x7fc840316a30, major_version=0x7fc845d62554, minor_version=0x7fc845d62550) at /usr/src/debug/libva-2.13.0-3.1.x86_64/va/va.c:746
#11 0x00007fc84a55dc4b in ?? () from /lib64/libavutil.so.56.70
#12 0x00007fc84a55b31e in av_hwdevice_ctx_create () from /lib64/libavutil.so.56.70
#13 0x00007fc84c4e2085 in libavcodec_init (h264=0x7fc840308df0) at /usr/src/debug/freerdp-2.4.1-1.1.x86_64/libfreerdp/codec/h264_ffmpeg.c:541
#14 0x00007fc84c4e4296 in h264_context_init (h264=0x7fc840308df0) at /usr/src/debug/freerdp-2.4.1-1.1.x86_64/libfreerdp/codec/h264.c:549
#15 h264_context_new (Compressor=<optimized out>) at /usr/src/debug/freerdp-2.4.1-1.1.x86_64/libfreerdp/codec/h264.c:585
#16 0x00007fc84c47de06 in freerdp_client_codecs_prepare (codecs=0x7fc840012dd0, flags=flags@entry=4294967295, width=1024, height=768)
at /usr/src/debug/freerdp-2.4.1-1.1.x86_64/libfreerdp/core/codecs.c:107
#17 0x00007fc84c47f889 in rdp_client_reset_codecs (context=0x55adbfb7b160) at /usr/src/debug/freerdp-2.4.1-1.1.x86_64/libfreerdp/core/connection.c:203
#18 rdp_client_connect (rdp=0x55adbfb805e0) at /usr/src/debug/freerdp-2.4.1-1.1.x86_64/libfreerdp/core/connection.c:238
#19 0x00007fc84c47545a in freerdp_connect (instance=0x55adbfb7ae80) at /usr/src/debug/freerdp-2.4.1-1.1.x86_64/libfreerdp/core/freerdp.c:199
#20 freerdp_connect (instance=instance@entry=0x55adbfb7ae80) at /usr/src/debug/freerdp-2.4.1-1.1.x86_64/libfreerdp/core/freerdp.c:153
#21 0x000055adbdc5268c in xf_client_thread (param=0x55adbfb7ae80) at /usr/src/debug/freerdp-2.4.1-1.1.x86_64/client/X11/xf_client.c:1505
#22 0x00007fc84c286ea1 in thread_launcher (arg=0x55adbfbdfdc0) at /usr/src/debug/freerdp-2.4.1-1.1.x86_64/winpr/libwinpr/thread/thread.c:316
#23 0x00007fc84c09ab37 in start_thread (arg=<optimized out>) at pthread_create.c:435
#24 0x00007fc84c11f640 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81



Remmina:
Program terminated with signal SIGSEGV, Segmentation fault.
#0  XDisplayString (dpy=0x0) at /usr/src/debug/libX11-1.7.2-1.2.x86_64/src/Macros.c:119
119     char *XDisplayString(Display *dpy) { return (DisplayString(dpy)); }
[Current thread is 1 (Thread 0x7f334e912640 (LWP 23311))]
(gdb) bt
#0  XDisplayString (dpy=0x0) at /usr/src/debug/libX11-1.7.2-1.2.x86_64/src/Macros.c:119
#1  0x00007f334c51fd37 in vdpau_common_Initialize (driver_data=0x7f33441cc830) at /usr/src/debug/libva-vdpau-driver-0.7.4-7.6.x86_64/src/vdpau_driver.c:188
#2  vdpau_Initialize_Current (ctx=0x7f33441cb170) at /usr/src/debug/libva-vdpau-driver-0.7.4-7.6.x86_64/src/vdpau_driver_template.h:561
#3  __vaDriverInit_1_12 (ctx=0x7f33441cb170) at /usr/src/debug/libva-vdpau-driver-0.7.4-7.6.x86_64/src/vdpau_driver.c:317
#4  0x00007f3358109fac in va_openDriver (dpy=dpy@entry=0x7f33441cb000, driver_name=<optimized out>) at /usr/src/debug/libva-2.13.0-3.1.x86_64/va/va.c:526
#5  0x00007f335810f8f6 in vaInitialize (dpy=0x7f33441cb000, major_version=0x7f334e911104, minor_version=0x7f334e911100) at /usr/src/debug/libva-2.13.0-3.1.x86_64/va/va.c:746
#6  0x00007f33604e8c4b in ?? () from /lib64/libavutil.so.56.70
#7  0x00007f334e9111e0 in ?? ()
#8  0x8022807cfc2ee100 in ?? ()
#9  0x00007f334e9111e0 in ?? ()
#10 0x00007f3360cf29b8 in ?? () from /lib64/libfreerdp2.so.2
#11 0x0000000000000000 in ?? ()
Comment 4 Fabian Vogt 2021-11-04 10:28:15 UTC
(In reply to Jon Brightwell from comment #3)
> I have packman installed but this seems to be a vdpau issue?
> I have core dumps from krdc and remmina here.

Is that using wayland? If so, try "krdc -platform xcb" resp. "GDK_BACKEND=x11 remmina".
Comment 5 Jon Brightwell 2021-11-04 10:33:24 UTC
(In reply to Fabian Vogt from comment #4)
> (In reply to Jon Brightwell from comment #3)
> > I have packman installed but this seems to be a vdpau issue?
> > I have core dumps from krdc and remmina here.
> 
> Is that using wayland? If so, try "krdc -platform xcb" resp.
> "GDK_BACKEND=x11 remmina".

X11 with nvidia prop drivers.
Comment 6 Jon Brightwell 2021-11-08 17:32:47 UTC
> zypper rm libva-vdpau-driver

is a workaround
Comment 7 Noah Kalish 2021-11-08 19:52:11 UTC
(In reply to Jon Brightwell from comment #6)
> > zypper rm libva-vdpau-driver
> 
> is a workaround

I don't even have that package installed, and it's still failing without H.264 codecs.
Comment 8 Cosmin Tanczel 2022-03-30 13:21:26 UTC
Configure the RD machine to use Color depth GFX RFX (32 bpp)
Comment 9 Cosmin Tanczel 2022-11-01 14:49:28 UTC
I think this can be closed since the workaround is to just change the Color Depth to something compatible with the RD Server, in my case: GFX RFX Progressive (32 bpp) (or add Packman Essentials?)
Comment 10 Alexander Novichkov 2022-11-18 12:27:06 UTC
(In reply to Jon Brightwell from comment #6)
> > zypper rm libva-vdpau-driver
> 
> is a workaround

This is work. Thank you.