Mumble: 1.3.0: JACK server is started unconditionally when mumble starts

Created on 8 Mar 2020  路  4Comments  路  Source: mumble-voip/mumble

Describe the bug
When JACK support is compiled in, mumble defaults to unconditionally starting a JACK server by default, when it is started.
This leads to scenarios, in which users of pulseaudio get a JACK server started, if they want to or not. The JACK server then grabs the hardware and depending on desktop environment or setup the applications currently connected through pulseaudio will not be able to play back anymore.

Further details can be found in this downstream bug on Arch Linux.

This (unconditional autostart) behavior is not good practice, as users will not get any feedback over what is happening. They can of course deactivate it via ~/.config/Mumble/Mumble.conf:

[jack]
startserver=false

IMHO the behavior should be exactly the other way round: Never autostart a JACK server (as mumble can't know what the user wants when it is started and will do the wrong thing).
However, starting of JACK could potentially be done in the Settings dialog (by user interaction!), if mumble detects, that no JACK server is running.

Steps to Reproduce
Steps to reproduce the behavior:

  1. Compile mumble with JACK support
  2. Start mumble on a system in which mainly pulseaudio is used (e.g. play back music in a web browser) and no JACK server is currently running (but JACK is installed)
  3. While mumble starts a JACK server, pulseaudio will lose access to the audio device (for better overview start mumble from a terminal)
  4. A JACK server is started silently without the user realizing that

Expected behavior
Mumble attempts to connect to JACK only when a server is running and otherwise either defaults back to another audio backend, or none.

Screenshots

Desktop (please complete the following information):

  • OS: Arch Linux
  • Version: Mumble 1.3.0

Additional context
For packaging purposes on Arch Linux I will reverse the behavior and not make mumble autostart a JACK server by default (src/mumble/Settings.cpp):

bJackStartServer = false;
audio client enhancement

Most helpful comment

@Krzmbrzl I can do it!

All 4 comments

I'm not too familiar with the audio system but from what you have wrote I agree with you.

@davidebeatrici is the Jack-expert here and he might have a specific reason as to why the jack server is started per default. :man_shrugging:

The JACK library starts the server by default: https://github.com/mumble-voip/mumble/blob/d1e4b47fd0472c50b11067379cf5306c78ea0736/src/mumble/JackAudio.cpp#L263

I agree that our option should be initialized to false, so that JackNoStartServer is passed by default.

Alright then I guess patching this is dead easy :+1:

@dvzrv do you want to open a PR with that patch or shall I do it? :)

@Krzmbrzl I can do it!

Was this page helpful?
0 / 5 - 0 ratings

Related issues

Kissaki picture Kissaki  路  5Comments

TerryGeng picture TerryGeng  路  5Comments

mumble-voip picture mumble-voip  路  4Comments

hoxia picture hoxia  路  4Comments

Teteros picture Teteros  路  4Comments