Bug 500276 - No image with Remmina
Summary: No image with Remmina
Status: REPORTED
Alias: None
Product: KRdp
Classification: Plasma
Component: general (other bugs)
Version First Reported In: 6.3.0
Platform: NixOS Linux
: NOR crash
Target Milestone: ---
Assignee: Unassigned bugs
URL: https://invent.kde.org/plasma/krdp
Keywords:
: 504112 (view as bug list)
Depends on:
Blocks:
 
Reported: 2025-02-17 19:42 UTC by Ilya Fedin
Modified: 2025-08-19 13:41 UTC (History)
7 users (show)

See Also:
Latest Commit:
Version Fixed In:
Sentry Crash Report:


Attachments
Log (19.39 KB, text/plain)
2025-02-18 13:36 UTC, Ilya Fedin
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Ilya Fedin 2025-02-17 19:42:09 UTC
SUMMARY
I'm attempting to try KRdp since it first release but never worked

STEPS TO REPRODUCE
1. Connect with Remmina

OBSERVED RESULT
фев 17 23:36:15 ms-7c94 krdpserver[2063]: org.kde.krdp: Initializing Freedesktop Portal Session
фев 17 23:36:15 ms-7c94 krdpserver[2063]: org.kde.krdp: Session setup completed, start processing...
фев 17 23:36:15 ms-7c94 kded6[1655]: Registering ":1.1376/StatusNotifierItem" to system tray
фев 17 23:36:15 ms-7c94 krdpserver[2063]: org.kde.krdp: Started Freedesktop Portal session
фев 17 23:36:18 ms-7c94 krdpserver[2063]: [23:36:18:549] [2063:334821] [WARN][com.winpr.negotiate] - AcceptSecurityContext status SEC_I_CONTINUE_NEEDED [0x00090312]
фев 17 23:36:18 ms-7c94 krdpserver[2063]: [23:36:18:552] [2063:334821] [WARN][com.winpr.negotiate] - AcceptSecurityContext status SEC_I_COMPLETE_NEEDED [0x00090313]
фев 17 23:36:18 ms-7c94 krdpserver[2063]: [23:36:18:552] [2063:334821] [ERROR][com.winpr.sspi.NTLM] - Message Integrity Check (MIC) verification failed!
фев 17 23:36:18 ms-7c94 krdpserver[2063]: [23:36:18:552] [2063:334821] [WARN][com.winpr.sspi] - CompleteAuthToken status SEC_E_MESSAGE_ALTERED [0x8009030F]
фев 17 23:36:18 ms-7c94 krdpserver[2063]: [23:36:18:552] [2063:334821] [WARN][com.freerdp.core.nla] - CompleteAuthToken status SEC_E_MESSAGE_ALTERED [0x8009030F]
фев 17 23:36:18 ms-7c94 krdpserver[2063]: [23:36:18:552] [2063:334821] [ERROR][com.freerdp.core.transport] - client authentication failure
фев 17 23:36:18 ms-7c94 krdpserver[2063]: [23:36:18:552] [2063:334821] [ERROR][com.freerdp.core.peer] - peer_recv_callback: CONNECTION_STATE_INITIAL - rdp_server_accept_nego() fail
фев 17 23:36:18 ms-7c94 krdpserver[2063]: [23:36:18:552] [2063:334821] [ERROR][com.freerdp.core.transport] - transport_check_fds: transport->ReceiveCallback() - -1
фев 17 23:36:18 ms-7c94 krdpserver[2063]: org.kde.krdp: Unable to check file descriptor
фев 17 23:36:18 ms-7c94 krdpserver[2063]: org.kde.krdp: Closing session
фев 17 23:36:18 ms-7c94 krdpserver[2063]: org.kde.krdp: Closing Freedesktop Portal Session
фев 17 23:36:18 ms-7c94 kded6[1655]: Service  ":1.1376" unregistered

EXPECTED RESULT
Conection successful

SOFTWARE/OS VERSIONS
Operating System: NixOS 25.05
KDE Plasma Version: 6.3.0
KDE Frameworks Version: 6.10.0
Qt Version: 6.8.2
Kernel Version: 6.13.2-cachyos (64-bit)
Graphics Platform: Wayland

ADDITIONAL INFORMATION
Maybe it's due to my user having no password set, idk...
Comment 1 Akseli Lahtinen 2025-02-18 13:06:02 UTC
> Maybe it's due to my user having no password set, idk...

What do you mean by this? The user you log in to computer with, or the user in the KRDP user list? It should not be possible to add username without a password in the KRDP user list.
Comment 2 Ilya Fedin 2025-02-18 13:36:45 UTC
Created attachment 178520 [details]
Log

Oh, I try it once in multiple months and forgot krdp has its own user list. Here's the real log (it crashes in a loop, the log has only one launch). On client, it looks like a white square then disconnects, tries to reconnect lots of time but unable to.
Comment 3 Nate Graham 2025-02-18 15:06:32 UTC Comment hidden (spam)
Comment 4 Nate Graham 2025-02-18 15:07:15 UTC
Can you get a backtrace of the crash for us?
Comment 5 Ilya Fedin 2025-02-18 15:10:54 UTC
My distro doesn't provide debug symbols so it's not that helpful I guess

#0  0x0000000000000000 in ?? ()
#1  0x00007952bd3fac5d in PipeWireSourceStream::createFormatsParams(spa_pod_builder) ()
   from /nix/store/pjh300h0v6i8pcrzqmh2l5jr0xkj7gjp-kpipewire-6.1.1/lib/libKPipeWire.so.6
#2  0x00007952bd3fc812 in PipeWireSourceStream::createStream(unsigned int, int) ()
   from /nix/store/pjh300h0v6i8pcrzqmh2l5jr0xkj7gjp-kpipewire-6.1.1/lib/libKPipeWire.so.6
#3  0x00007952bd420a17 in PipeWireProduce::initialize() () from /nix/store/pjh300h0v6i8pcrzqmh2l5jr0xkj7gjp-kpipewire-6.1.1/lib/libKPipeWireRecord.so.6
#4  0x00007952bb9d67fb in QObject::event(QEvent*) () from /nix/store/4qrmlniaj7x49sl6i1w4c2sjjdx00ghh-qtbase-6.7.2/lib/libQt6Core.so.6
#5  0x00007952bcb94d21 in QApplicationPrivate::notify_helper(QObject*, QEvent*) ()
   from /nix/store/4qrmlniaj7x49sl6i1w4c2sjjdx00ghh-qtbase-6.7.2/lib/libQt6Widgets.so.6
#6  0x00007952bb981c10 in QCoreApplication::notifyInternal2(QObject*, QEvent*) ()
   from /nix/store/4qrmlniaj7x49sl6i1w4c2sjjdx00ghh-qtbase-6.7.2/lib/libQt6Core.so.6
#7  0x00007952bb985851 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) ()
   from /nix/store/4qrmlniaj7x49sl6i1w4c2sjjdx00ghh-qtbase-6.7.2/lib/libQt6Core.so.6
#8  0x00007952bbc4ef83 in postEventSourceDispatch(_GSource*, int (*)(void*), void*) ()
   from /nix/store/4qrmlniaj7x49sl6i1w4c2sjjdx00ghh-qtbase-6.7.2/lib/libQt6Core.so.6
#9  0x00007952bb710f74 in g_main_dispatch () from /nix/store/nm9608b5y801fq2p73nl7k80z8kcbmh2-glib-2.80.2/lib/libglib-2.0.so.0
#10 0x00007952bb713ff7 in g_main_context_iterate_unlocked.isra () from /nix/store/nm9608b5y801fq2p73nl7k80z8kcbmh2-glib-2.80.2/lib/libglib-2.0.so.0
#11 0x00007952bb7145ec in g_main_context_iteration () from /nix/store/nm9608b5y801fq2p73nl7k80z8kcbmh2-glib-2.80.2/lib/libglib-2.0.so.0
#12 0x00007952bbc4e83c in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) ()
   from /nix/store/4qrmlniaj7x49sl6i1w4c2sjjdx00ghh-qtbase-6.7.2/lib/libQt6Core.so.6
#13 0x00007952bb98e9d3 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) ()
   from /nix/store/4qrmlniaj7x49sl6i1w4c2sjjdx00ghh-qtbase-6.7.2/lib/libQt6Core.so.6
#14 0x00007952bba94745 in QThread::exec() () from /nix/store/4qrmlniaj7x49sl6i1w4c2sjjdx00ghh-qtbase-6.7.2/lib/libQt6Core.so.6
#15 0x00007952bbb2d431 in QThreadPrivate::start(void*) () from /nix/store/4qrmlniaj7x49sl6i1w4c2sjjdx00ghh-qtbase-6.7.2/lib/libQt6Core.so.6
#16 0x00007952bb2a0272 in start_thread () from /nix/store/dbwp0scbb0rk78m636sb7cvycz8xzgyh-glibc-2.39-52/lib/libc.so.6
#17 0x00007952bb31bdec in clone3 () from /nix/store/dbwp0scbb0rk78m636sb7cvycz8xzgyh-glibc-2.39-52/lib/libc.so.6
Comment 6 Akseli Lahtinen 2025-02-19 09:41:38 UTC
KRDP uses a wallet service (kwallet) to save its own user/password list, so I suppose it's crashing because the user has not logged in to kwallet.
Comment 7 Ilya Fedin 2025-02-19 09:45:15 UTC
But the trace points to KPipeWire initialization?
Comment 8 Ilya Fedin 2025-02-20 15:41:00 UTC
Managed to go through the crash, now it connects but no image

фев 20 19:34:29 ms-7c94 systemd[1421]: Starting KRDP Server...
фев 20 19:34:29 ms-7c94 systemd[1421]: Started KRDP Server.
фев 20 19:34:30 ms-7c94 krdpserver[3463]: org.kde.krdp: Listening for connections on QHostAddress(QHostAddress::Any) 3389
фев 20 19:34:30 ms-7c94 systemd[1421]: Created slice Slice /app/dbus-:1.2-org.kde.kwalletd6.
фев 20 19:34:30 ms-7c94 systemd[1421]: Started dbus-:1.2-org.kde.kwalletd6@0.service.
фев 20 19:34:30 ms-7c94 kded6[1708]: Registering ":1.69/StatusNotifierItem" to system tray
фев 20 19:34:30 ms-7c94 plasmashell[1783]: QFont::setPointSizeF: Point size <= 0 (0.000000), must be greater than 0
фев 20 19:34:46 ms-7c94 krdpserver[3463]: org.kde.krdp: Initializing Freedesktop Portal Session
фев 20 19:34:46 ms-7c94 krdpserver[3463]: org.kde.krdp: Session setup completed, start processing...
фев 20 19:34:46 ms-7c94 kded6[1708]: Registering ":1.71/StatusNotifierItem" to system tray
фев 20 19:34:46 ms-7c94 xdg-desktop-portal-kde[1847]: xdp-kde-remotedesktop: MegaAuth: Failed to lookup permissions: "No entry for remote-desktop"
фев 20 19:34:46 ms-7c94 plasmashell[1783]: QFont::setPointSizeF: Point size <= 0 (0.000000), must be greater than 0
фев 20 19:34:46 ms-7c94 plasmashell[1783]: file:///nix/store/ncfkpmsqpjjsmdyjwvcygz7564k6b05q-plasma-desktop-6.3.0/share/plasma/plasmoids/org.kde.plasma.taskmanager/contents/ui/Task.qml:79: TypeError: Cannot read property 'status' of null
фев 20 19:34:52 ms-7c94 krdpserver[3463]: [19:34:52:506] [3463:3602] [WARN][com.winpr.negotiate] - AcceptSecurityContext status SEC_I_CONTINUE_NEEDED [0x00090312]
фев 20 19:34:52 ms-7c94 krdpserver[3463]: [19:34:52:509] [3463:3602] [WARN][com.winpr.negotiate] - AcceptSecurityContext status SEC_I_COMPLETE_NEEDED [0x00090313]
фев 20 19:34:52 ms-7c94 krdpserver[3463]: org.kde.krdp: New client connected:  UNIX platform Unspecified version
фев 20 19:34:52 ms-7c94 krdpserver[3463]: org.kde.krdp: Video stream initialized
фев 20 19:34:52 ms-7c94 krdpserver[3463]: org.kde.krdp: Received caps:
фев 20 19:34:52 ms-7c94 krdpserver[3463]: org.kde.krdp:   RDPGFX_CAPVERSION_8 AVC: false YUV420: false
фев 20 19:34:52 ms-7c94 krdpserver[3463]: org.kde.krdp:   RDPGFX_CAPVERSION_81 AVC: true YUV420: true
фев 20 19:34:52 ms-7c94 krdpserver[3463]: org.kde.krdp:   RDPGFX_CAPVERSION_10 AVC: true YUV420: false
фев 20 19:34:52 ms-7c94 krdpserver[3463]: org.kde.krdp:   RDPGFX_CAPVERSION_101 AVC: true YUV420: false
фев 20 19:34:52 ms-7c94 krdpserver[3463]: org.kde.krdp:   RDPGFX_CAPVERSION_102 AVC: true YUV420: false
фев 20 19:34:52 ms-7c94 krdpserver[3463]: org.kde.krdp:   RDPGFX_CAPVERSION_103 AVC: true YUV420: false
фев 20 19:34:52 ms-7c94 krdpserver[3463]: org.kde.krdp:   RDPGFX_CAPVERSION_104 AVC: true YUV420: true
фев 20 19:34:52 ms-7c94 krdpserver[3463]: org.kde.krdp:   RDPGFX_CAPVERSION_105 AVC: true YUV420: true
фев 20 19:34:52 ms-7c94 krdpserver[3463]: org.kde.krdp:   RDPGFX_CAPVERSION_106 AVC: true YUV420: true
фев 20 19:34:52 ms-7c94 krdpserver[3463]: org.kde.krdp:   UNKNOWN_VERSION AVC: false YUV420: false
фев 20 19:34:52 ms-7c94 krdpserver[3463]: org.kde.krdp:   RDPGFX_CAPVERSION_107 AVC: true YUV420: true
фев 20 19:34:52 ms-7c94 krdpserver[3463]: org.kde.krdp: Selected caps: RDPGFX_CAPVERSION_107
фев 20 19:34:52 ms-7c94 krdpserver[3463]: QObject: Cannot create children for a parent that is in a different thread.
                                             (Parent is QApplication(0x7ffd718480f0), parent's thread is QThread(0x382f9c20), current thread is QThread(0x733258023e80)
фев 20 19:34:52 ms-7c94 krdpserver[3463]: libva info: VA-API version 1.22.0
фев 20 19:34:52 ms-7c94 krdpserver[3463]: libva info: Trying to open /run/opengl-driver/lib/dri/radeonsi_drv_video.so
фев 20 19:34:52 ms-7c94 krdpserver[3463]: libva info: Found init function __vaDriverInit_1_22
фев 20 19:34:53 ms-7c94 krdpserver[3463]: libva info: va_openDriver() returns 0
фев 20 19:34:53 ms-7c94 krdpserver[3463]: kpipewire_vaapi_logging: VAAPI: Mesa Gallium driver 24.3.4 for AMD Radeon RX 6400 (radeonsi, navi24, LLVM 19.1.7, DRM 3.59, 6.13.2-cachyos) in use for device "/dev/dri/renderD128"
фев 20 19:34:53 ms-7c94 krdpserver[3463]: kpipewire_vaapi_logging: DRM device not found
фев 20 19:35:12 ms-7c94 krdpserver[3463]: org.kde.krdp: Started Freedesktop Portal session
фев 20 19:35:12 ms-7c94 krdpserver[3463]: kpipewire_record_logging: Hardware encoding is not supported on this device.
фев 20 19:35:12 ms-7c94 plasmashell[1783]: QFont::setPointSizeF: Point size <= 0 (0.000000), must be greater than 0
фев 20 19:35:12 ms-7c94 krdpserver[3463]: [libx264 @ 0x733248c7af40] -qscale is ignored, -crf is recommended.
фев 20 19:35:12 ms-7c94 krdpserver[3463]: [libx264 @ 0x733248c7af40] MB rate (19350000) > level limit (16711680)
фев 20 19:35:12 ms-7c94 krdpserver[3463]: [libx264 @ 0x733248c7af40] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 BMI2 AVX2
фев 20 19:35:12 ms-7c94 krdpserver[3463]: [libx264 @ 0x733248c7af40] profile Constrained Baseline, level 6.2, 4:2:0, 8-bit
фев 20 19:35:12 ms-7c94 krdpserver[3463]: kpipewire_dmabuf_logging: eglChooseConfig returned this many configs: 1
фев 20 19:35:15 ms-7c94 krdpserver[3463]: QObject::killTimer: Timers cannot be stopped from another thread
фев 20 19:35:15 ms-7c94 krdpserver[3463]: QObject::startTimer: Timers cannot be started from another thread
фев 20 19:35:22 ms-7c94 krdpserver[3463]: QObject::killTimer: Timers cannot be stopped from another thread
фев 20 19:35:22 ms-7c94 krdpserver[3463]: QObject::startTimer: Timers cannot be started from another thread
фев 20 19:35:35 ms-7c94 krdpserver[3463]: QObject::killTimer: Timers cannot be stopped from another thread
фев 20 19:35:35 ms-7c94 krdpserver[3463]: QObject::startTimer: Timers cannot be started from another thread
фев 20 19:35:51 ms-7c94 krdpserver[3463]: QObject::killTimer: Timers cannot be stopped from another thread
фев 20 19:35:51 ms-7c94 krdpserver[3463]: QObject::startTimer: Timers cannot be started from another thread
Comment 9 Ilya Fedin 2025-02-20 16:02:10 UTC
Client-side, I see such messages:

[19:59:18:854] [80198:00013981] [INFO][com.freerdp.gdi] - [gdi_init_ex]: Local framebuffer format  PIXEL_FORMAT_BGRA32
[19:59:18:854] [80198:00013981] [INFO][com.freerdp.gdi] - [gdi_init_ex]: Remote framebuffer format PIXEL_FORMAT_BGRA32
[19:59:18:856] [80198:00013981] [INFO][com.freerdp.channels.rdpsnd.client] - [rdpsnd_load_device_plugin]: [static] Loaded fake backend for rdpsnd
[19:59:18:857] [80198:00013981] [INFO][com.freerdp.channels.drdynvc.client] - [dvcman_load_addin]: Loading Dynamic Virtual Channel disp
[19:59:18:857] [80198:00013981] [INFO][com.freerdp.channels.drdynvc.client] - [dvcman_load_addin]: Loading Dynamic Virtual Channel rdpgfx
[19:59:18:857] [80198:00013981] [INFO][com.freerdp.channels.drdynvc.client] - [dvcman_load_addin]: Loading Dynamic Virtual Channel ainput
[19:59:18:857] [80198:00013981] [INFO][com.freerdp.channels.drdynvc.client] - [dvcman_load_addin]: Loading Dynamic Virtual Channel rdpsnd
[19:59:19:107] [80198:000139a1] [WARN][com.freerdp.codec] - [openh264_decompress]: DecodeFrame2 state: 0x0004 iBufferStatus: 0
[19:59:19:107] [80198:000139a1] [WARN][com.freerdp.gdi] - [gdi_SurfaceCommand_AVC420]: avc420_decompress failure: -2002, ignoring update.
[19:59:19:107] [80198:000139a1] [WARN][com.freerdp.codec] - [openh264_decompress]: DecodeFrame2 iBufferStatus: 0
[19:59:19:115] [80198:000139a1] [WARN][com.freerdp.codec] - [openh264_decompress]: DecodeFrame2 iBufferStatus: 0
[19:59:19:122] [80198:000139a1] [WARN][com.freerdp.codec] - [openh264_decompress]: DecodeFrame2 iBufferStatus: 0
[19:59:19:131] [80198:000139a1] [WARN][com.freerdp.codec] - [openh264_decompress]: DecodeFrame2 iBufferStatus: 0
[19:59:19:140] [80198:000139a1] [WARN][com.freerdp.codec] - [openh264_decompress]: DecodeFrame2 iBufferStatus: 0
[19:59:19:149] [80198:000139a1] [WARN][com.freerdp.codec] - [openh264_decompress]: DecodeFrame2 iBufferStatus: 0
[19:59:19:158] [80198:000139a1] [WARN][com.freerdp.codec] - [openh264_decompress]: DecodeFrame2 iBufferStatus: 0
[19:59:19:168] [80198:000139a1] [WARN][com.freerdp.codec] - [openh264_decompress]: DecodeFrame2 iBufferStatus: 0
[19:59:19:200] [80198:000139a1] [WARN][com.freerdp.codec] - [openh264_decompress]: DecodeFrame2 iBufferStatus: 0
[19:59:19:232] [80198:000139a1] [WARN][com.freerdp.codec] - [openh264_decompress]: DecodeFrame2 iBufferStatus: 0
[19:59:19:280] [80198:000139a1] [WARN][com.freerdp.codec] - [openh264_decompress]: DecodeFrame2 iBufferStatus: 0
Comment 10 Ilya Fedin 2025-02-20 18:23:51 UTC
I managed to get it working. So it seems to be incompatibility between krdp and freerdp's openh264 backend. My distro builds freerdp with both ffmpeg and openh264 which results in openh264 being preferred: https://github.com/FreeRDP/FreeRDP/blob/feba8c09027b74cccf99b2ee591b5d4c680aee74/libfreerdp/codec/h264.c#L662-L673. I rebuilt it without openh264 and now connecting to krdp works just fine. idk whose fault it is, leaving it for your investigation guys.
Comment 11 Piotr Dobrogost 2025-04-02 07:36:05 UTC
Also having black screen with the difference I'm using KRDC (https://invent.kde.org/plasma/krdp/-/issues/8#note_1185807)
Client: Fedora 41, krdc.x86_64 24.12.3-1.fc41
Server: Fedora 41, krdp.x86_64 6.3.3-1.fc41

In the client log I see the same error you had:
kwi 01 22:48:04 hostx krdc[5905]: [22:48:04:056] [5905:6917] [WARN][com.freerdp.gdi] - avc420_decompress failure: -2002, ignoring update.
which makes me believe that maybe I have the the same problem as you.

> I rebuilt it without openh264 and now connecting to krdp works just fine. idk whose fault it is, leaving it for your investigation guys.
Is this on the client side or server side?
Comment 12 Ilya Fedin 2025-04-02 13:49:05 UTC
Client side. Clients using freerdp built with openh264 (even if with both openh264 and ffmpeg) unable to decide frames encoded by krdp.
Comment 13 Ilya Fedin 2025-04-02 13:49:33 UTC
*decode frames
Comment 14 Piotr Dobrogost 2025-04-03 10:32:34 UTC
(In reply to Ilya Fedin from comment #12)
> Client side. Clients using freerdp built with openh264 (even if with both
> openh264 and ffmpeg) unable to decide frames encoded by krdp.

Shouldn't just uninstalling openh264 solve this without the need to disable openh264 support by recompilation?
Comment 15 Ilya Fedin 2025-04-03 11:41:00 UTC
Nit sure how would you "just uninstall" it? The package manager won't let you do so.
Comment 16 Piotr Dobrogost 2025-04-03 22:32:20 UTC
> Nit sure how would you "just uninstall" it? The package manager won't let you do so.

Right, in Fedora there is noopenh264 package (https://packages.fedoraproject.org/pkgs/noopenh264/noopenh264/index.html) –
"Fake implementation of the OpenH264 library we can link from regardless of the actual library being available."

I'm wondering if swapping openh264 for noopenh264 would make freerdp2 use ffmpeg even if it's compiled with support both for openh264 and ffmpeg?
Comment 17 Ilya Fedin 2025-04-03 22:53:23 UTC
If noopenh264 really provides a library that just returns error codes, that's highly likely
Comment 18 Nate Graham 2025-08-19 13:41:56 UTC
*** Bug 504112 has been marked as a duplicate of this bug. ***