Bug#848285: jackd2: spits verbose output and exits immediately when the client stops sending audio

Francesco Poli (wintermute) invernomuto at paranoici.org
Thu Dec 15 23:18:51 UTC 2016


Package: jackd2
Version: 1.9.10+20150825git1ed50c92~dfsg-4
Severity: grave
Justification: renders package unusable

Hello and thanks for maintaining jackd2!

After the upgrade

  [UPGRADE] jackd2:amd64 1.9.10+20150825git1ed50c92~dfsg-3 -> 1.9.10+20150825git1ed50c92~dfsg-4
  [UPGRADE] jackd2-firewire:amd64 1.9.10+20150825git1ed50c92~dfsg-3 -> 1.9.10+20150825git1ed50c92~dfsg-4
  [UPGRADE] libjack-jackd2-0:amd64 1.9.10+20150825git1ed50c92~dfsg-3 -> 1.9.10+20150825git1ed50c92~dfsg-4

I experienced a grave bug: as soon as the client (audacious, firefox through
ALSA redirection in ~/.asoundrc, ...) stops sending audio to the jackd
sound server, the latter spits a bunch of output messages and exits
immediately (as if the --temporary option were passed, no!, even worse!).

Steps to reproduce:

  0) run jackd with the following command line:

     $ jackd --realtime -d alsa --device hw:1 --softmode --hwmeter --rate 44100 &

  1) run, e.g., audacious (configured to use the Jack output plugin)

  2) play some audio: everything seems to work, even though jackd seems
     to have become more verbose than ever, with a long sequence of
     output lines similar to:

     [...]
     Jack: JackSocketServerChannel::Execute : fPollTable i = 1 fd = 9
     Jack: JackSocketServerChannel::Execute : fPollTable i = 2 fd = 10
     Jack: JackSocketServerChannel::Execute : fPollTable i = 1 fd = 9
     Jack: JackSocketServerChannel::Execute : fPollTable i = 2 fd = 10
     Jack: JackSocketServerChannel::Execute : fPollTable i = 1 fd = 9
     Jack: JackSocketServerChannel::Execute : fPollTable i = 2 fd = 10
     [...]

  3) click on the stop button in the audacious interface: jackd spits the
     following output and exits immediately:

     Jack: JackSocketServerChannel::Execute : fPollTable i = 1 fd = 9
     Jack: JackSocketServerChannel::Execute : fPollTable i = 2 fd = 10
     Jack: JackRequest::DeactivateClient
     Jack: JackEngine::ClientDeactivate ref = 2 name = audacious
     Jack: JackEngine::PortDisconnect ref = -1 src = 9 dst = 65535
     Jack: JackEngine::PortDisconnect ref = -1 src = 9 dst = 3
     Jack: JackGraphManager::Disconnect port_src = 9 port_dst = 3
     Jack: JackConnectionManager::Disconnect port_src = 9 port_dst = 3
     Jack: JackConnectionManager::Disconnect port_src = 3 port_dst = 9
     Jack: JackConnectionManager::DecConnectionRef: ref1 = 2 ref2 = 0
     Jack: JackEngine::ClientNotify: no callback for notification = 12
     Jack: JackEngine::ClientNotify: no callback for notification = 12
     Jack: JackEngine::ClientNotify: no callback for notification = 12
     Jack: JackEngine::PortDisconnect ref = -1 src = 10 dst = 65535
     Jack: JackEngine::PortDisconnect ref = -1 src = 10 dst = 4
     Jack: JackGraphManager::Disconnect port_src = 10 port_dst = 4
     Jack: JackConnectionManager::Disconnect port_src = 10 port_dst = 4
     Jack: JackConnectionManager::Disconnect port_src = 4 port_dst = 10
     Jack: JackConnectionManager::DirectDisconnect last: ref1 = 2 ref2 = 0
     Jack: JackConnectionManager::DecConnectionRef: ref1 = 2 ref2 = 0
     Jack: JackEngine::ClientNotify: no callback for notification = 12
     Jack: JackEngine::ClientNotify: no callback for notification = 12
     Jack: JackEngine::ClientNotify: no callback for notification = 12
     Jack: JackEngine::ClientNotify: no callback for notification = 10
     Jack: JackEngine::ClientNotify: no callback for notification = 10
     Jack: JackEngine::ClientNotify: no callback for notification = 10
     Jack: JackEngine::ClientNotify: no callback for notification = 10
     Jack: JackEngine::ClientNotify: no callback for notification = 10
     Jack: JackEngine::ClientNotify: no callback for notification = 10
     Jack: JackConnectionManager::DirectDisconnect last: ref1 = 2 ref2 = 1
     Jack: JackGraphManager::DisconnectRefNum cur_index = 3 ref1 = 2 ref2 = 1
     Jack: JackConnectionManager::DirectDisconnect last: ref1 = 1 ref2 = 2
     Jack: JackGraphManager::DisconnectRefNum cur_index = 3 ref1 = 1 ref2 = 2
     Jack: JackPosixProcessSync::TimedWait time out = 464380
     Jack: JackPosixProcessSync::TimedWait finished delta = 16446.0
     Jack: JackSocketServerChannel::Execute : fPollTable i = 1 fd = 9
     Jack: JackRequest::Notification
     Jack: JackDriver::ClientNotify ref = 1 driver = freewheel name = freewheel notify = 18
     Jack: JackDriver::ClientNotify ref = 1 driver = freewheel name = freewheel notify = 18
     Jack: JackDriver::ClientNotify ref = 1 driver = freewheel name = freewheel notify = 18
     Jack: JackDriver::ClientNotify ref = 1 driver = freewheel name = freewheel notify = 18
     Jack: JackEngine::ClientNotify: no callback for notification = 4
     Jack: JackEngine::ClientNotify: no callback for notification = 4
     Jack: JackEngine::ClientNotify: no callback for notification = 4
     Jack: JackSocketServerChannel::Execute : fPollTable i = 2 fd = 10
     Jack: JackSocketServerChannel::Execute : fPollTable i = 1 fd = 9
     Jack: JackSocketServerChannel::Execute : fPollTable i = 2 fd = 10
     Jack: JackRequest::ClientClose
     Jack: JackEngine::ClientExternalClose ref = 2
     Jack: JackEngine::ClientCloseAux ref = 2
     Jack: JackEngine::PortUnRegister ref = 2 port_index = 9
     Jack: JackEngine::PortDisconnect ref = -1 src = 9 dst = 65535
     Jack: JackGraphManager::DisconnectAllOutput port_index = 9 
     Jack: JackConnectionManager::RemoveOutputPort ref = 2 port_index = 9 
     Jack: JackEngine::PortUnRegister ref = 2 port_index = 10
     Jack: JackEngine::PortDisconnect ref = -1 src = 10 dst = 65535
     Jack: JackGraphManager::DisconnectAllOutput port_index = 10 
     Jack: JackConnectionManager::RemoveOutputPort ref = 2 port_index = 10 
     Jack: JackEngine::ReleaseRefnum server quit
     JackTemporaryException : now quits...
     Jack: JackSocketServerChannel::ClientRemove ref = 2 fd = 10
     Jack: JackClientSocket::Close
     Jack main caught signal 2
     Jack: JackSocketServerChannel::BuildPoolTable size = 2
     Jack: JackServer::Stop
     Jack: JackThreadedDriver::Stop
     Jack: JackPosixThread::Stop
     Jack: JackSocketServerChannel::BuildPoolTable fSocketTable i = 1 fd = 9
     Jack: JackSocketServerChannel::Execute : fPollTable i = 1 fd = 9
     Jack: JackRequest::Notification
     Jack: JackPosixThread::ThreadHandler : exit
     Jack: JackDriver::ClientNotify ref = 1 driver = freewheel name = freewheel notify = 18
     Jack: JackDriver::ClientNotify ref = 1 driver = freewheel name = freewheel notify = 18
     Jack: JackDriver::ClientNotify ref = 1 driver = freewheel name = freewheel notify = 18
     Jack: JackDriver::ClientNotify ref = 1 driver = freewheel name = freewheel notify = 18
     Jack: JackEngine::ClientNotify: no callback for notification = 4
     Jack: JackEngine::ClientNotify: no callback for notification = 4
     Jack: JackPosixThread::Stop
     Jack: JackSocketServerChannel::Execute : fPollTable i = 1 fd = 9
     Jack: JackRequest::Notification
     Jack: JackRequest::Notification kQUIT
     Jack: JackSocketServerChannel::Execute : JackQuitException
     Jack: JackPosixThread::ThreadHandler : exit
     Jack: JackEngine::ClientNotify: no callback for notification = 15
     Jack: JackEngine::ClientNotify: no callback for notification = 15
     Jack: JackServer::Close
     Jack: JackServerSocket::Close /dev/shm/jack_default_1000_0
     Jack: JackClientSocket::Close
     Jack: JackAudioDriver::Detach
     Jack: JackEngine::PortUnRegister ref = 0 port_index = 1
     Jack: JackEngine::PortDisconnect ref = -1 src = 1 dst = 65535
     Jack: JackGraphManager::DisconnectAllOutput port_index = 1 
     Jack: JackConnectionManager::RemoveOutputPort ref = 0 port_index = 1 
     Jack: JackEngine::ClientNotify: no callback for notification = 10
     Jack: JackEngine::ClientNotify: no callback for notification = 10
     Jack: JackEngine::PortUnRegister ref = 0 port_index = 2
     Jack: JackEngine::PortDisconnect ref = -1 src = 2 dst = 65535
     Jack: JackGraphManager::DisconnectAllOutput port_index = 2 
     Jack: JackConnectionManager::RemoveOutputPort ref = 0 port_index = 2 
     Jack: JackEngine::ClientNotify: no callback for notification = 10
     Jack: JackEngine::ClientNotify: no callback for notification = 10
     Jack: JackEngine::PortUnRegister ref = 0 port_index = 3
     Jack: JackEngine::PortDisconnect ref = -1 src = 3 dst = 65535
     Jack: JackGraphManager::DisconnectAllInput port_index = 3
     Jack: JackConnectionManager::RemoveInputPort ref = 0 port_index = 3 
     Jack: JackEngine::ClientNotify: no callback for notification = 10
     Jack: JackEngine::ClientNotify: no callback for notification = 10
     Jack: JackEngine::PortUnRegister ref = 0 port_index = 4
     Jack: JackEngine::PortDisconnect ref = -1 src = 4 dst = 65535
     Jack: JackGraphManager::DisconnectAllInput port_index = 4
     Jack: JackConnectionManager::RemoveInputPort ref = 0 port_index = 4 
     Jack: JackEngine::ClientNotify: no callback for notification = 10
     Jack: JackEngine::ClientNotify: no callback for notification = 10
     Jack: JackEngine::PortUnRegister ref = 0 port_index = 5
     Jack: JackEngine::PortDisconnect ref = -1 src = 5 dst = 65535
     Jack: JackGraphManager::DisconnectAllInput port_index = 5
     Jack: JackConnectionManager::RemoveInputPort ref = 0 port_index = 5 
     Jack: JackEngine::ClientNotify: no callback for notification = 10
     Jack: JackEngine::ClientNotify: no callback for notification = 10
     Jack: JackEngine::PortUnRegister ref = 0 port_index = 6
     Jack: JackEngine::PortDisconnect ref = -1 src = 6 dst = 65535
     Jack: JackGraphManager::DisconnectAllInput port_index = 6
     Jack: JackConnectionManager::RemoveInputPort ref = 0 port_index = 6 
     Jack: JackEngine::ClientNotify: no callback for notification = 10
     Jack: JackEngine::ClientNotify: no callback for notification = 10
     Jack: JackEngine::PortUnRegister ref = 0 port_index = 7
     Jack: JackEngine::PortDisconnect ref = -1 src = 7 dst = 65535
     Jack: JackGraphManager::DisconnectAllInput port_index = 7
     Jack: JackConnectionManager::RemoveInputPort ref = 0 port_index = 7 
     Jack: JackEngine::ClientNotify: no callback for notification = 10
     Jack: JackEngine::ClientNotify: no callback for notification = 10
     Jack: JackEngine::PortUnRegister ref = 0 port_index = 8
     Jack: JackEngine::PortDisconnect ref = -1 src = 8 dst = 65535
     Jack: JackGraphManager::DisconnectAllInput port_index = 8
     Jack: JackConnectionManager::RemoveInputPort ref = 0 port_index = 8 
     Jack: JackEngine::ClientNotify: no callback for notification = 10
     Jack: JackEngine::ClientNotify: no callback for notification = 10
     Jack: JackDriver::Close
     Jack: JackConnectionManager::DirectDisconnect last: ref1 = 0 ref2 = 0
     Jack: JackGraphManager::DisconnectRefNum cur_index = 5 ref1 = 0 ref2 = 0
     Jack: JackEngine::ClientInternalClose ref = 0
     Jack: JackEngine::ClientCloseAux ref = 0
     Jack: JackGraphManager::RemoveAllPorts ref = 0
     Jack: JackDriver::ClientNotify ref = 0 driver = freewheel name = system notify = 1
     Jack: JackPosixSemaphore::Destroy name = jack_sem.1000_default_system
     Released audio card Audio1
     audio_reservation_finish
     Jack: JackDriver::Close
     Jack: JackConnectionManager::DirectDisconnect last: ref1 = 1 ref2 = 1
     Jack: JackGraphManager::DisconnectRefNum cur_index = 5 ref1 = 1 ref2 = 1
     Jack: JackEngine::ClientInternalClose ref = 1
     Jack: JackEngine::ClientCloseAux ref = 1
     Jack: JackGraphManager::RemoveAllPorts ref = 1
     Jack: JackPosixSemaphore::Destroy name = jack_sem.1000_default_freewheel
     Jack: JackEngine::Close
     Jack: JackClientSocket::Close
     Jack: no message buffer overruns
     Jack: JackPosixThread::Stop
     Jack: JackPosixThread::ThreadHandler : exit
     Jack: Succeeded in unlocking 82274202 byte memory area
     Jack: JackShmMem::delete size = 0 index = 0
     Jack: ~JackDriver
     Jack: ~JackDriver
     Jack: Succeeded in unlocking 1186 byte memory area
     Jack: JackShmMem::delete size = 0 index = 1
     Jack: Cleaning up shared memory
     Jack: Cleaning up files
     Jack: Unregistering server `default'

     [1]+  Done                    jackd --realtime -d alsa --device hw:1 --softmode --hwmeter --rate 44100

  4) after that, the only way to listen to audio again is starting jackd
     by hand for the second time, then for the third time, and so forth,
     and so forth, and so forth...

After a downgrade:

  # cd /var/cache/apt/archives/
  # dpkg -i --force-depends --force-conflicts \
    jackd2-firewire_1.9.10+20150825git1ed50c92~dfsg-3_amd64.deb \
    libjack-jackd2-0_1.9.10+20150825git1ed50c92~dfsg-3_amd64.deb \
    jackd2_1.9.10+20150825git1ed50c92~dfsg-3_amd64.deb

everything works again as usual.
I experienced this bug on two different machines and I believe that
it renders the package unusable (hence the "grave" severity).

Please investigate and fix this bug and/or forward it upstream,
as appropriate.

Thanks for your time!
Bye.


-- System Information:
Debian Release: stretch/sid
  APT prefers testing
  APT policy: (800, 'testing'), (500, 'unstable')
Architecture: amd64 (x86_64)

Kernel: Linux 4.8.0-1-amd64 (SMP w/4 CPU cores)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)

Versions of packages jackd2 depends on:
ii  coreutils              8.25-2+b1
ii  debconf [debconf-2.0]  1.5.59
ii  libasound2             1.1.2-1
ii  libc6                  2.24-7
ii  libdbus-1-3            1.10.14-1
ii  libexpat1              2.2.0-1
ii  libgcc1                1:6.2.1-5
ii  libjack-jackd2-0       1.9.10+20150825git1ed50c92~dfsg-4
ii  libopus0               1.1.3-1
ii  libreadline7           7.0-1
ii  libsamplerate0         0.1.8-8
ii  libsndfile1            1.0.27-1
ii  libstdc++6             6.2.1-5
ii  python-dbus            1.2.4-1
pn  python:any             <none>

Versions of packages jackd2 recommends:
ii  jackd2-firewire  1.9.10+20150825git1ed50c92~dfsg-4
ii  libpam-modules   1.1.8-3.3
ii  qjackctl         0.4.4-1

Versions of packages jackd2 suggests:
pn  jack-tools   <none>
pn  meterbridge  <none>

-- debconf information:
* jackd/tweak_rt_limits: true



More information about the pkg-multimedia-maintainers mailing list