Package: krdp
Version: 6.3.5
Severity: normal

Dear Maintainer,

I'm using krdp for kde, and failed to connect.

Krdp server started, and can be connected.
Authorization passes.

However, after logging in, there is only black surface. On the end of 
connection, the server crashes.

The crash can be reproduced every time.

"Application: KRDP Server (krdpserver), signal: Segmentation fault"


-- Information about the crash:
RdpServer: krdp 6.3.5-1
RdpClient: aFreeRdp 3.26.0 (android) & Microsoft remote desktop
GPU: 2 * Nvidia 5060Ti

Full debug trace is available athttps://bugs.kde.org/show_bug.cgi?id=523893 .

-- Crash Trace Analysis (assisted by AI)
Crash stack (identical in both instances):

```
#4  hw_base_encode_send_frame        (libavcodec.so.61)     ← SIGSEGV
#5  encode_receive_packet_internal   (libavcodec.so.61)
#6  avcodec_send_frame               (libavcodec.so.61)
#7  Encoder::finish()                (libKPipeWireRecord.so.6)   flush encoder
#8  PipeWireProduce::stateChanged()  (libKPipeWireRecord.so.6)   triggered by 
stream state change
```

Consistent pattern before the crash:

```
org.kde.krdp: Selected caps: RDPGFX_CAPVERSION_106        ← Negotiated H.264 
hardware encoding
[WARN][com.freerdp.api] disconnect provider ultimatum sent to peer   ← Server 
actively disconnected
org.kde.krdp: Unable to check file descriptor
org.kde.krdp: Closing session
KCrash: Application 'krdpserver' crashing...
```

Associated errors (counts over the last 3 days):

```
14×  VAAPI: Fail to get RC attribute from the 14 6 of the device 
"/dev/dri/renderD128"
 6×  VAAPI: Failed to initialize display
 3×  VAAPI: Failed to open device "/dev/dri/renderD128"
 2×  QObject: Cannot create children for a parent that is in a different thread
 1×  VAAPI: Intel iHD driver for Intel(R) Gen Graphics - 25.2.3 in use
```

Key corroborating evidence: **Connections with NLA authentication failures do 
not crash** (since no stream was ever established) → The crash only occurs 
after the encoder has actually run.

---

## Root Cause: Scanout output and encoder split across GPUs

| Item | Attribution | Basis |
|---|---|---|
| `renderD128` | **i915** (Intel Arrow Lake iGPU, PCI `00:02.0`) | sysfs |
| `renderD129` | nvidia (RTX 5060 Ti, PCI `02:00.0`) | sysfs |
| `renderD130` | nvidia (Second RTX 5060 Ti, PCI `81:00.0`) | sysfs |
| VAAPI encoder actually used | **`renderD128` = Intel** (all 18 instances show 
`Fail to get RC attribute`) | kde.log |
| KWin's two outputs | `card1-HDMI-A-3`, `card2-HDMI-A-4` → **Both on NVIDIA** 
| `kwinoutputconfig.json` |
| krdpserver's GL/Qt | **NVIDIA** (opened `renderD129`×2, `renderD130`×3, 
`/dev/nvidia0`×5, `/dev/nvidia1`×12) | `/proc/PID/fd` |

```
Frame source / Scanout output / GL  →  NVIDIA
H.264 Encoder (VAAPI)               →  Intel   ← Only this one drifted
```

The dmabuf must be exported across cards. The iHD driver's Rate Control (RC) 
fails to initialize in this cross-GPU context, causing a null pointer 
dereference when `Encoder::finish()` flushes a semi-broken VAAPI context.

**Why the encoder selected Intel**: Only Intel VA drivers (`iHD_drv_video.so`, 
`i965_drv_video.so`) are installed on the system; there are none on the NVIDIA 
side, leaving libva with no other choice.


-- System Information:
Debian Release: 13.7
  APT prefers stable-debug
  APT policy: (500, 'stable-debug'), (500, 'stable')
Architecture: amd64 (x86_64)

Kernel: Linux 6.12.86+deb13-amd64 (SMP w/20 CPU threads; PREEMPT)
Kernel taint flags: TAINT_WARN, TAINT_OOT_MODULE
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8), 
LANGUAGE=en_US:en
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled

Versions of packages krdp depends on:
ii  init-system-helpers        1.69~deb13u1
ii  libc6                      2.41-12+deb13u3
ii  libfreerdp-server3-3       3.15.0+dfsg-2.1+deb13u3
ii  libfreerdp3-3              3.15.0+dfsg-2.1+deb13u3
ii  libkf6configcore6          6.13.0-2
ii  libkf6configgui6           6.13.0-2
ii  libkf6coreaddons6          6.13.0-1
ii  libkf6crash6               6.13.0-1
ii  libkf6i18n6                6.13.0-1
ii  libkf6kcmutilscore6        6.13.0-2
ii  libkf6kcmutilsquick6       6.13.0-2
ii  libkf6statusnotifieritem6  6.13.0-1
ii  libkpipewirerecord6        6.3.6-1
ii  libqt6core6t64             6.8.2+dfsg-9+deb13u2
ii  libqt6dbus6                6.8.2+dfsg-9+deb13u2
ii  libqt6gui6                 6.8.2+dfsg-9+deb13u2
ii  libqt6keychain1            0.15.0-1
ii  libqt6network6             6.8.2+dfsg-9+deb13u2
ii  libqt6waylandclient6       6.8.2-4
ii  libqt6widgets6             6.8.2+dfsg-9+deb13u2
ii  libstdc++6                 14.2.0-19
ii  libwayland-client0         1.23.1-3
ii  libwinpr3-3                3.15.0+dfsg-2.1+deb13u3
ii  libxkbcommon0              1.7.0-2

Versions of packages krdp recommends:
ii  systemsettings  4:6.3.4-2

krdp suggests no packages.

Reply via email to