Bug 397685 - Plasma panel hangs when audio player process is stopped
Summary: Plasma panel hangs when audio player process is stopped
Alias: None
Product: plasmashell
Classification: Plasma
Component: Media Player (show other bugs)
Version: 5.13.1
Platform: Debian testing Linux
: NOR normal
Target Milestone: 1.0
Assignee: Kai Uwe Broulik
Depends on:
Reported: 2018-08-20 20:57 UTC by Sebastian Dicke
Modified: 2018-08-23 14:48 UTC (History)
3 users (show)

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


Note You need to log in before you can comment on or make changes to this bug.
Description Sebastian Dicke 2018-08-20 20:57:24 UTC
Steps to reproduce:

1. Play a audio file with a media player which playback can be controlled with a widget in plasma panel.
2. Send a SIGSTOP to the media player process.
3. Press playback start/stop shortcut or key.
4. Click on any place on the plasma panel. No reaction is noticeable.
5. Send a SIGCONT to the media player process previously stopped.
6. The expected reactions to the clicks on the panel occurs.

The same behaviour occurs with openSUSE builds from version 5.13.4. The behaviour occurs both with VLC and dragon player. I am not sure which component is responsible for this behaviour so I chose component general as component to report the bug.
Comment 1 Kai Uwe Broulik 2018-08-21 09:03:39 UTC
Can confirm, does a blocking DBus call from the mpris dataengine. At least when pressing the keyboard shortcuts.
Comment 2 Kai Uwe Broulik 2018-08-23 14:48:28 UTC
Git commit eac5d2e40e1edaf258d9ce8181666326c333c412 by Kai Uwe Broulik.
Committed on 23/08/2018 at 14:47.
Pushed by broulik into branch 'Plasma/5.13'.

[MPRIS Data Engine] Avoid blocking calls in media shortcuts handling

All the information we need (player capabilities and playback status) is already present and managed by the PlayerContainer
FIXED-IN: 5.13.5

Differential Revision: https://phabricator.kde.org/D14970

M  +16   -27   dataengines/mpris2/multiplexedservice.cpp
M  +5    -0    dataengines/mpris2/playercontrol.h