Bug 1212461

Summary: vlc hangs when tuning another channel
Product: [openSUSE] openSUSE Tumbleweed Reporter: Michael Zapf <Michael.Zapf>
Component: X11 ApplicationsAssignee: Dominique Leuenberger <dimstar>
Status: RESOLVED FIXED QA Contact: E-mail List <qa-bugs>
Severity: Normal    
Priority: P5 - None CC: dimstar, stakanov, swannema
Version: Current   
Target Milestone: ---   
Hardware: x86-64   
OS: openSUSE Tumbleweed   
Whiteboard:
Found By: --- Services Priority:
Business Priority: Blocker: ---
Marketing QA Status: --- IT Deployment: ---
Attachments: Zombie process after kaffeine crash.

Description Michael Zapf 2023-06-16 19:27:03 UTC
During DVB-S playback, vlc hangs when tuning another channel. The vlc process does not terminate on SIGKILL.

On reboot, systemd keeps waiting for the termination of the vlc process.

No problem with 6.3.2.; problem occured (on two different machines) with upgrade to 6.3.7.
Comment 1 Michael Zapf 2023-06-20 17:50:22 UTC
The vlc version is 3.0.18 in both cases.

Switching between channels seems to lock up with a medium probability. After 3 to 4 attempts, sometimes already by the first one, the vlc user interface shows a waiting state (left-right wandering orange bar) forever. 

SIGTERM is ignored; SIGKILL turns vlc into a zombie. Parent is plasmashell. Killing plasmashell makes the user systemd adopt the zombie, killing the user systemd moves it on to the root systemd.

Shutdown does not complete; seems to wait for vlc forever. I have to do a SysRq-REISUB to get out.
Comment 2 Stakanov Schufter 2023-06-21 08:21:03 UTC
I can confirm this issue on my machine. My PCI-e card is a Hauppauge WinTV-HVR-5525. https://hauppaug.de/site/products/data_hvr5525.html

My system info: 
Operating System: openSUSE Tumbleweed 20230619
KDE Plasma Version: 5.27.5
KDE Frameworks Version: 5.107.0
Qt Version: 5.15.10
Kernel Version: 6.3.7-1-default (64-bit)
Graphics Platform: X11
Processors: 12 × AMD Ryzen 5 5600G with Radeon Graphics
Memory: 62.6 GiB of RAM
Graphics Processor: AMD Radeon Pro W5500
Product Name: X570 Phantom Gaming 4

Graphics:
Informazioni per il supporto di KWin:
Le seguenti informazioni dovrebbero essere usate quando si richiede supporto su ad es. https://forum.kde.org.
Forniscono i dettagli sull'istanza attualmente in esecuzione, le opzioni usate,
il driver OpenGL e gli effetti in uso.
Pubblicare le informazioni indicate sotto questo testo introduttivo su un servizio paste bin
come https://paste.kde.org invece di incollarlo nella conversazione di supporto.

==========================

Version
=======
KWin version: 5.27.5
Qt Version: 5.15.10
Qt compile version: 5.15.10
XCB compile version: 1.15

Operation Mode: X11 only

Build Options
=============
KWIN_BUILD_DECORATIONS: yes
KWIN_BUILD_TABBOX: yes
KWIN_BUILD_ACTIVITIES: yes
HAVE_X11_XCB: yes
HAVE_EPOXY_GLX: yes

X11
===
Vendor: The X.Org Foundation
Vendor Release: 12101008
Protocol Version/Revision: 11/0
SHAPE: yes; Version: 0x11
RANDR: yes; Version: 0x14
DAMAGE: yes; Version: 0x11
Composite: yes; Version: 0x4
RENDER: yes; Version: 0xb
XFIXES: yes; Version: 0x50
SYNC: yes; Version: 0x31
GLX: yes; Version: 0x0

Decoration
==========
Plugin: org.kde.kwin.aurorae
Theme: __aurorae__svg__Sweet-Dark
Plugin recommends border size: No
onAllDesktopsAvailable: true
alphaChannelSupported: true
closeOnDoubleClickOnMenu: false
decorationButtonsLeft: 0, 2
decorationButtonsRight: 6, 3, 4, 5
borderSize: 3
gridUnit: 10
font: Noto Sans,10,-1,0,50,0,0,0,0,0
smallSpacing: 2
largeSpacing: 10

Output backend
==============
Name: KWin::X11StandaloneBackend

Cursor
======
themeName: Sweet-cursors
themeSize: 48

Options
=======
focusPolicy: 0
xwaylandCrashPolicy: 
xwaylandMaxCrashCount: 3
nextFocusPrefersMouse: false
clickRaise: true
autoRaise: false
autoRaiseInterval: 0
delayFocusInterval: 0
shadeHover: false
shadeHoverInterval: 250
separateScreenFocus: false
activeMouseScreen: true
placement: 
activationDesktopPolicy: 0
focusPolicyIsReasonable: true
borderSnapZone: 10
windowSnapZone: 10
centerSnapZone: 0
snapOnlyWhenOverlapping: false
rollOverDesktops: false
focusStealingPreventionLevel: 1
operationTitlebarDblClick: 5000
operationMaxButtonLeftClick: 5000
operationMaxButtonMiddleClick: 5015
operationMaxButtonRightClick: 5014
commandActiveTitlebar1: 0
commandActiveTitlebar2: 28
commandActiveTitlebar3: 2
commandInactiveTitlebar1: 4
commandInactiveTitlebar2: 28
commandInactiveTitlebar3: 2
commandWindow1: 7
commandWindow2: 8
commandWindow3: 8
commandWindowWheel: 28
commandAll1: 10
commandAll2: 3
commandAll3: 14
keyCmdAllModKey: 16777250
condensedTitle: false
electricBorderMaximize: true
electricBorderTiling: true
electricBorderCornerRatio: 0.25
borderlessMaximizedWindows: false
killPingTimeout: 5000
hideUtilityWindowsForInactive: true
compositingMode: 1
useCompositing: true
hiddenPreviews: 1
glSmoothScale: 2
glStrictBinding: true
glStrictBindingFollowsDriver: true
glPreferBufferSwap: 101
glPlatformInterface: 1
windowsBlockCompositing: true
latencyPolicy: 
renderTimeEstimator: 
allowTearing: true

Screen Edges
============
desktopSwitching: false
desktopSwitchingMovingClients: false
cursorPushBackDistance: 1x1
timeThreshold: 150
reActivateThreshold: 350
actionTopLeft: 0
actionTop: 0
actionTopRight: 0
actionRight: 4
actionBottomRight: 0
actionBottom: 0
actionBottomLeft: 0
actionLeft: 0

Screens
=======
Active screen follows mouse:  yes
Number of Screens: 3

Screen 0:
---------
Name: DP-1
Enabled: 1
Geometry: 1920,0,2560x1440
Scale: 1
Refresh Rate: 74970
Adaptive Sync: incapable
Screen 1:
---------
Name: DP-2
Enabled: 1
Geometry: 0,0,1920x1080
Scale: 1
Refresh Rate: 60000
Adaptive Sync: incapable
Screen 2:
---------
Name: DP-3
Enabled: 1
Geometry: 4480,0,1920x1080
Scale: 1
Refresh Rate: 60000
Adaptive Sync: incapable

Compositing
===========
Compositing is active
Compositing Type: OpenGL
OpenGL vendor string: AMD
OpenGL renderer string: AMD Radeon Pro W5500 (navi14, LLVM 16.0.6, DRM 3.52, 6.3.7-1-default)
OpenGL version string: 4.6 (Compatibility Profile) Mesa 23.1.2
OpenGL platform interface: GLX
OpenGL shading language version string: 4.60
Driver: Unknown
GPU class: Unknown
OpenGL version: 4.6
GLSL version: 4.60
Mesa version: 23.1.2
X server version: 1.21.1
Linux kernel version: 6.3.7
Direct rendering: Requires strict binding: yes
GLSL shaders:  yes
Texture NPOT support:  yes
Virtual Machine:  no
OpenGL 2 Shaders are used

Loaded Effects:
---------------
colorpicker
outputlocator
screenshot
screenedge
zoom
blur
contrast
kwin4_effect_sessionquit
kwin4_effect_logout
kwin4_effect_login
slidingpopups
kwin4_effect_eyeonscreen
slide
kwin4_effect_squash
kwin4_effect_morphingpopups
kwin4_effect_maximize
kwin4_effect_fullscreen
kwin4_effect_frozenapp
kwin4_effect_fadingpopups
kwin4_effect_dialogparent
desktopgrid
highlightwindow
overview
tileseditor
windowview
wobblywindows
blendchanges
startupfeedback
kscreen

Currently Active Effects:
-------------------------
blur
contrast

Effect Settings:
----------------
colorpicker:

outputlocator:

screenshot:

screenedge:

zoom:
zoomFactor: 1.2
mousePointer: 0
mouseTracking: 0
focusTrackingEnabled: false
textCaretTrackingEnabled: false
focusDelay: 350
moveFactor: 20
targetZoom: 1

blur:

contrast:

kwin4_effect_sessionquit:
pluginId: kwin4_effect_sessionquit
isActiveFullScreenEffect: false

kwin4_effect_logout:
pluginId: kwin4_effect_logout
isActiveFullScreenEffect: false

kwin4_effect_login:
pluginId: kwin4_effect_login
isActiveFullScreenEffect: false

slidingpopups:
slideInDuration: 150
slideOutDuration: 250

kwin4_effect_eyeonscreen:
pluginId: kwin4_effect_eyeonscreen
isActiveFullScreenEffect: false

slide:
horizontalGap: 45
verticalGap: 20
slideBackground: true

kwin4_effect_squash:
pluginId: kwin4_effect_squash
isActiveFullScreenEffect: false

kwin4_effect_morphingpopups:
pluginId: kwin4_effect_morphingpopups
isActiveFullScreenEffect: false

kwin4_effect_maximize:
pluginId: kwin4_effect_maximize
isActiveFullScreenEffect: false

kwin4_effect_fullscreen:
pluginId: kwin4_effect_fullscreen
isActiveFullScreenEffect: false

kwin4_effect_frozenapp:
pluginId: kwin4_effect_frozenapp
isActiveFullScreenEffect: false

kwin4_effect_fadingpopups:
pluginId: kwin4_effect_fadingpopups
isActiveFullScreenEffect: false

kwin4_effect_dialogparent:
pluginId: kwin4_effect_dialogparent
isActiveFullScreenEffect: false

desktopgrid:
activeView: 
gridRows: 2
gridColumns: 2
animationDuration: 300
layout: 1
partialActivationFactor: 0
gestureInProgress: false
showAddRemove: true
desktopNameAlignment: 0
desktopLayoutMode: 0
customLayoutRows: 2

highlightwindow:

overview:
activeView: 
animationDuration: 300
layout: 1
ignoreMinimized: false
blurBackground: true
partialActivationFactor: 0
gestureInProgress: false
searchText: 

tileseditor:
activeView: 
animationDuration: 200

windowview:
activeView: 
animationDuration: 300
layout: 1
ignoreMinimized: false
mode: 111
partialActivationFactor: 0
gestureInProgress: false
searchText: 

wobblywindows:
stiffness: 0.06
drag: 0.9
moveFactor: 0.1
xTesselation: 20
yTesselation: 20
minVelocity: 0
maxVelocity: 1000
stopVelocity: 0.5
minAcceleration: 0
maxAcceleration: 1000
stopAcceleration: 0.5
moveWobble: true
resizeWobble: true

blendchanges:

startupfeedback:
type: 1

kscreen:


Loaded Plugins:
---------------
kwin5_plugin_krunner
kwin5_plugin_nightcolor

Available Plugins:
------------------
kwin5_plugin_buttonrebinds
kwin5_plugin_colord
kwin5_plugin_krunner
kwin5_plugin_nightcolor

When driving a single channel in CLI you get following errors:
entropy@localhost:~> kaffeine
21-06-23 09:55:19.567 [Warning ] QCommandLineParser: already having an option named "h"
21-06-23 09:55:19.567 [Warning ] QCommandLineParser: already having an option named "help-all"
21-06-23 09:55:19.567 [Warning ] QCommandLineParser: already having an option named "v"
21-06-23 09:55:19.734 [Info    ] kaffeine.dvb: Using built-in dvb device manager
21-06-23 09:55:20.398 [Info    ] kaffeine.dev: Found dvb device P14f188800070f038: Montage Technology M88RS6000
21-06-23 09:55:20.406 [Info    ] kaffeine.dev: Found dvb device P14f188800070f038: Silicon Labs Si2168
[00007fb6780051e0] gl gl: Initialized libplacebo v5.264.1 (API v264)
libva info: VA-API version 1.18.0
libva info: Trying to open /usr/lib64/dri/radeonsi_drv_video.so
libva info: Found init function __vaDriverInit_1_18
libva info: va_openDriver() returns 0
[00007fb6780051e0] glconv_vaapi_x11 gl error: vaDeriveImage: operation failed
[00007fb684071f60] main video output error: video output creation failed
[00007fb69402e310] main decoder error: failed to create video output
[00007fb6780051e0] gl gl: Initialized libplacebo v5.264.1 (API v264)
[00007fb69402e310] avcodec decoder: Using G3DVL VDPAU Driver Shared Library version 1.0 for hardware decoding
[h264 @ 0x7fb688012700] mmco: unref short failure


This does however allow normal operation when using this channel, with sound, video and registration. If, and ONLY if, you are moving within the same "bouquet" channel e.g. ZDF, ZDFneo the card will not crash. 
When doing this there is just the identical output. 

When doing a "stop reproduction" and then going into another channel, you can normally operate the card with all functions. 

When however as the OP posted, the card is used to change channel "on the fly" then you will get a "waiting for disc" unreachable and unkillable zombie process that is requiring a complete system restart to get rid of the frozen picture. When using for a long time e.g. VLC which is still operative while kaffeine is frozen, then after a while a "sound chiplet" of the last reproduction within kaffein may appear as late as 40 minutes or more after as a "parasite sound" during vlc reproduction 

Hence: the issue seems to be within VDPAU (a regression? I recall we had that time ago when having mesa changes). 

What I tried to exclude hardware issues. Change of three(!) PCI-e ports to exclude a IO-issue, change in mainboard settings to the most conservative ones. 
This is the reason because I did not report as coincidentally I changed to a new mainboard right when the error occurred (which must have been about two weeks ago. (Which gives the windows of the responsible changes). 

With me, I can confirm that shutdown takes about 15-20 minutes to complete. However it does shutdown (if one has faith e.g. goes to bed). 
There is no particular message but the kaffeine process being waited for.

Output when crashing kaffeine (here e.g. change from working ZDF to Kabel channel:
lhost:~> kaffeine
21-06-23 10:13:59.289 [Warning ] QCommandLineParser: already having an option named "h"
21-06-23 10:13:59.289 [Warning ] QCommandLineParser: already having an option named "help-all"
21-06-23 10:13:59.289 [Warning ] QCommandLineParser: already having an option named "v"
21-06-23 10:13:59.454 [Info    ] kaffeine.dvb: Using built-in dvb device manager
21-06-23 10:14:00.051 [Info    ] kaffeine.dev: Found dvb device P14f188800070f038: Montage Technology M88RS6000
21-06-23 10:14:00.059 [Info    ] kaffeine.dev: Found dvb device P14f188800070f038: Silicon Labs Si2168
[00007f11f40051e0] gl gl: Initialized libplacebo v5.264.1 (API v264)
libva info: VA-API version 1.18.0
libva info: Trying to open /usr/lib64/dri/radeonsi_drv_video.so
libva info: Found init function __vaDriverInit_1_18
libva info: va_openDriver() returns 0
[00007f11f40051e0] glconv_vaapi_x11 gl error: vaDeriveImage: operation failed
[00007f1200070ce0] main video output error: video output creation failed
[00007f121802e310] main decoder error: failed to create video output
[00007f11f40051e0] gl gl: Initialized libplacebo v5.264.1 (API v264)
[00007f121802e310] avcodec decoder: Using G3DVL VDPAU Driver Shared Library version 1.0 for hardware decoding
[00007f121802e310] avcodec decoder error: hardware acceleration picture allocation failed
[h264 @ 0x7f1204029280] get_buffer() failed
[h264 @ 0x7f1204029280] thread_get_buffer() failed
[h264 @ 0x7f1204029280] decode_slice_header error
[h264 @ 0x7f1204029280] no frame!
[h264 @ 0x7f12040f21c0] reference picture missing during reorder
[h264 @ 0x7f12040f21c0] Missing reference picture, default is 65588
[h264 @ 0x7f12040b8b40] reference picture missing during reorder
[h264 @ 0x7f12040b8b40] Missing reference picture, default is 65596
[h264 @ 0x7f1204029280] reference picture missing during reorder
[h264 @ 0x7f1204029280] Missing reference picture, default is 65604


The crash is instantaneous and definite. 
I join a pic of ksysguard to see how this presents as "waiting for disc". Feel free to remove if space is needed. 

I suggest to put this as "confirmed", as now with a second user and different hardware it is fairly sure that this is just software related. @Michael Zapf: thank you for reporting!
Comment 3 Stakanov Schufter 2023-06-21 08:25:28 UTC
Created attachment 867712 [details]
Zombie process after kaffeine crash.

Note that while kaffeine is in this state, running another instance of VLC is not bothered and funcitonal. Output in CLI:
entropy@localhost:~> vlc
VLC media player 3.0.18 Vetinari (revision 3.0.13-8-g41878ff4f2)
[00005615342e1ae0] main libvlc: Esecuzione di vlc con l'interfaccia predefinita. Usa 'cvlc' per utilizzare vlc senza interfaccia.
[000056153437aec0] main playlist: playlist is empty
[00007fa684004c30] gl gl: Initialized libplacebo v5.264.1 (API v264)
libva info: VA-API version 1.18.0
libva info: Trying to open /usr/lib64/dri/radeonsi_drv_video.so
libva info: Found init function __vaDriverInit_1_18
libva info: va_openDriver() returns 0
[00007fa688c2f240] avcodec decoder: Using Mesa Gallium driver 23.1.2 for AMD Radeon Pro W5500 (navi14, LLVM 16.0.6, DRM 3.52, 6.3.7-1-default) for hardware decoding
[mpeg2video @ 0x7fa68c07c840] get_buffer() failed
[mpeg2video @ 0x7fa68c07c840] thread_get_buffer() failed
[mpeg2video @ 0x7fa68c07c840] get_buffer() failed (-12 (nil))
Comment 4 Stakanov Schufter 2023-06-23 18:15:27 UTC
One further info I encountered a few minutes ago:
start Kaffeine in one channel (e.g. Tele5) but program a channel with a movie or whatever to be registered on another channel to be registered. You would expect the program to crash and to be zombied but this does not happen.
Although the channel is on another bouqet, the beginning registration does not cause the program to crash, instead channel is changed automatically, even during reproduction of another channel. 

Hence the bug can be narrowed down to what the software does in the very moment when it gives the command to change manually a channel. 

All the rest works then flawlessly.
Comment 5 stefan wannemacher 2023-06-25 06:19:44 UTC
I can confirm the issue on my PC (AMD HD6850)as well. OpenSuse TW, Tevii S470 card with conexant cx23885 chipset. Worked flawless for many years, latest kernel 6.3.7 kills it just like S.Schufters explains it.
Comment 6 stefan wannemacher 2023-06-26 04:20:56 UTC
Latest kernel update to 6.3.9 solves it for me.
Comment 7 Stakanov Schufter 2023-06-26 15:50:16 UTC
I can also confirm that the kernel update does the trick. Many thanks to the kernel developers that found the glitch. 

Works for me, @Michael Zapf, feel free to close from my part. Once again, thank you for reporting, much welcomed.
Comment 8 Michael Zapf 2023-06-30 16:13:29 UTC
Confirmed, no hangs anymore with 6.3.9.