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