rncbc / qjackctl

QjackCtl - JACK Audio Connection Kit Qt GUI Interface
https://qjackctl.sourceforge.io
GNU General Public License v2.0
183 stars 40 forks source link

Errors, no D-Bus and no Pulseaudio integration since update to 0.9.0 #114

Closed shtaraen closed 3 years ago

shtaraen commented 3 years ago

Hi, since the update from 0.6.3 I am unable to get QjackCtl to work with D-Bus support and Pulseaudio. I've verified the issue across Manjaro and plain Archlinux, both fresh installs.

When I tick both 'enable D-Bus' and 'enable JACK D-Bus' boxes, the server starts up fine, but the Pulse Source and Sink don't appear. When I completely exit out of QjackCtl and re-open it, both boxes are unticked again. There are also some strange errors in the message window. Perhaps I am doing something wrong, but this has definitely worked before the update. Could this also be an issue on Pulseaudio's end?


03:00:46.862 ALSA connection change.
Cannot connect to server socket err = No such file or directory
Cannot connect to server request channel
jack server is not running or cannot be started
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
03:00:46.876 ALSA connection graph change.
03:00:50.221 JACK is starting...
03:00:50.221 /usr/bin/jackd -dalsa -r48000 -p1024 -n2 -D -Chw:UR22mkII -Phw:UR22mkII
Cannot connect to server socket err = No such file or directory
Cannot connect to server request channel
jack server is not running or cannot be started
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
03:00:50.224 JACK was started with PID=8390.
no message buffer overruns
no message buffer overruns
no message buffer overruns
jackdmp 1.9.16
Copyright 2001-2005 Paul Davis and others.
Copyright 2004-2016 Grame.
Copyright 2016-2020 Filipe Coelho.
jackdmp comes with ABSOLUTELY NO WARRANTY
This is free software, and you are welcome to redistribute it
under certain conditions; see the file COPYING for details
JACK server starting in realtime mode with priority 10
self-connect-mode is "Don't restrict self connect requests"
audio_reservation_init
Acquire audio card Audio1
creating alsa driver ... hw:UR22mkII|hw:UR22mkII|1024|2|48000|0|0|nomon|swmeter|-|32bit
configuring for 48000Hz, period = 1024 frames (21.3 ms), buffer = 2 periods
ALSA: final selected sample format for capture: 32bit integer little-endian
ALSA: use 2 periods for capture
ALSA: final selected sample format for playback: 32bit integer little-endian
ALSA: use 2 periods for playback
03:00:52.318 JACK connection change.
03:00:52.318 Server configuration saved to "/home/(username)/.jackdrc".
03:00:52.318 Statistics reset.
03:00:52.334 Client activated.
03:00:52.334 Patchbay deactivated.
03:00:52.360 JACK connection graph change.```
shtaraen commented 3 years ago

Strangely enough, Pulse integration it works perfectly fine when using Cadence.

shtaraen commented 3 years ago

Okay after some poking around, it seems that it's a dependency issue. You need to have the 'dbus-x11' package installed, which replaces the 'dbus' package, or it won't work. I'm not too sure what the difference is, but this might just be an Arch issue. So if nobody has a better idea, I'll close this issue soon and write to the QjackCtl package maintainer about making a dependency, since without it, it's obviously broken.

rncbc commented 3 years ago

can you test whether the following build for Arch suffers from the same issue? https://build.opensuse.org/package/binaries/home:rncbc/qjackctl/Arch

shtaraen commented 3 years ago

Hi, I have tested the new build. The issue is very perplexing, and I can not identify any clear pattern why it fails. Sometimes it worked flawlessly. Then I rebooted and it stopped working again. I tried it in a VM too. I could not get it to function again with the new build, also not with the repository build or even the old 0.6.3. I changed message output to verbose, and now it outputs 'D-Bus: Service not available'. The other errors have vanished. Maybe there was an update to D-Bus, but I'm not at all familiar with that. Here's the output:

18:55:25.500 Statistics reset.
18:55:25.509 ALSA connection change.
18:55:25.510 D-BUS: Service not available (org.jackaudio.service aka jackdbus).
18:55:25.517 JACK is starting...
18:55:25.518 /usr/bin/jackd -v -dalsa -dhw:UR22mkII -r96000 -p256 -n3 -zs
connect(2) call to /dev/shm/jack-1000/default/jack_0 failed (err=No such file or directory)
attempt to connect to server failed
connect(2) call to /dev/shm/jack-1000/default/jack_0 failed (err=No such file or directory)
attempt to connect to server failed
jackd 0.125.0
Copyright 2001-2009 Paul Davis, Stephane Letz, Jack O'Quinn, Torben Hohn and others.
jackd comes with ABSOLUTELY NO WARRANTY
This is free software, and you are welcome to redistribute it
under certain conditions; see the file COPYING for details
getting driver descriptor from /usr/lib/jack/jack_net.so
getting driver descriptor from /usr/lib/jack/jack_dummy.so
getting driver descriptor from /usr/lib/jack/jack_firewire.so
getting driver descriptor from /usr/lib/jack/jack_alsa_midi.so
getting driver descriptor from /usr/lib/jack/jack_alsa.so
getting driver descriptor from /usr/lib/jack/jack_oss.so
JACK compiled with System V SHM support.
server `default' registered
18:55:25.550 ALSA connection graph change.
18:55:25.552 JACK was started with PID=1741.
registered builtin port type 32 bit float mono audio
registered builtin port type 8 bit raw midi
clock source = system clock via clock_gettime
loading driver ..
start poll on 3 fd's
apparent rate = 96000
new client: alsa_pcm, uuid = 8589934593 type 1 @ 0x55b98e9d0c30 fd = -1
creating alsa driver ... hw:UR22mkII|hw:UR22mkII|256|3|96000|0|0|nomon|swmeter|-|32bit
configuring for 96000Hz, period = 256 frames (2.7 ms), buffer = 3 periods
ALSA: final selected sample format for capture: 32bit integer little-endian
ALSA: use 3 periods for capture
ALSA: final selected sample format for playback: 32bit integer little-endian
ALSA: use 3 periods for playback
new buffer size 256
resizing port buffer segment for type 0, one buffer = 1024 bytes
resizing port buffer segment for type 1, one buffer = 2048 bytes
registered port system:capture_1, offset = 1024
registered port system:capture_2, offset = 2048
registered port system:playback_1, offset = 0
registered port system:playback_2, offset = 0
++ jack_sort_graph
++ jack_rechain_graph():
-- jack_rechain_graph()
-- jack_sort_graph
1741 waiting for signals
load = 0.0375 max usecs: 2.000, spare = 2664.000
18:55:27.730 JACK connection change.
18:55:27.738 Server configuration saved to "/home/(username)/.jackdrc".
18:55:27.739 Statistics reset.
18:55:27.775 Client activated.
18:55:27.775 Patchbay deactivated.
18:55:27.777 Buffer size change (256).dbus
server thread back from poll
new client: qjackctl, uuid = 8589934594 type 2 @ 0x7f0be5bd4000 fd = 16
start poll on 4 fd's
server thread back from poll
new client qjackctl using 17 for events
start poll on 4 fd's
server thread back from poll
start poll on 4 fd's
server thread back from poll
start poll on 4 fd's
server thread back from poll
++ jack_sort_graph
client event poll on 17 for qjackctl starts at 16068163
back from client event poll after 17 usecs
client event poll on 17 for qjackctl starts at 16068187
back from client event poll after 9 usecs
++ jack_rechain_graph():
-- jack_rechain_graph()
-- jack_sort_graph
client event poll on 17 for qjackctl starts at 16068203
back from client event poll after 33 usecs
client event poll on 17 for qjackctl starts at 16068240
back from client event poll after 44 usecs
client event poll on 17 for qjackctl starts at 16068288
back from client event poll after 11 usecs
start poll on 4 fd's
server thread back from poll
start poll on 4 fd's
server thread back from poll
start poll on 4 fd's
server thread back from poll
start poll on 4 fd's
server thread back from poll
start poll on 4 fd's
server thread back from poll
start poll on 4 fd's
server thread back from poll
start poll on 4 fd's
server thread back from poll
start poll on 4 fd's
server thread back from poll
start poll on 4 fd's
load = 0.0563 max usecs: 2.000, spare = 2664.000
load = 0.0469 max usecs: 1.000, spare = 2665.000
load = 0.0422 max usecs: 1.000, spare = 2665.000

Let me know if I can provide you any other system details.

shtaraen commented 3 years ago

Okay, I managed to get it to work reliably with your build. This was on yet another clean install. Here are the steps I followed: I installed jack2, pulseaudio-jack, and qjackctl from the arch repository. Stock D-Bus without X11 Autolaunch. This failed in the same manner as expected: The 2 checkboxes didn't stick, no mention of D-Bus in the verbose log, no JACK Pulse Sink/Source. Then I installed the build you sent, and everything worked fine! log.txt

Attached the log file, since it's rather long.

fsciarra62 commented 3 years ago

Hi, I had a similar problem with latest 0.9.0 in Manjaro 20.2.1 . I've freshly installed and added qjackctl and other required packages, to discover the same thing about the 2 ticks and the absence of dbus related messages. Seen that I have the previous version, started from 20.2 and upgraded in the time, which is working perfectly, I've done a downgrade to 0.6.3, where everything looked ok, then I upgraded to 0.9.0 and that works... I don't know if this can be of any help... My hypothesis is that something in the configuration files is missing in 0.9.0 but is present in config files modified with 0.6.3. Hope this helps... Best regards, Fabrizio Sciarra

rncbc commented 3 years ago

this all seems a packaging / dependencies issue on your particular distro and system configuration.

shtaraen commented 3 years ago

@rncbc , It started working for me again with the build you sent to me a while back (0.9.0-44). What changes did you make as opposed to the one available in the Arch repositories, if any? This one works flawlessly.

rncbc commented 3 years ago

@Bafford-the-dour : i can't really tell what non-fixes did the Arch packagers did not do; my packages are upstream originals :)

robbert-vdh commented 3 years ago

These are the build definitions used on Arch: https://github.com/archlinux/svntogit-community/blob/packages/qjackctl/trunk/PKGBUILD

rncbc commented 3 years ago

well, the arch packagers are using the cmake build system which is not official yet... may that's the root cause for the resulting build is skipping some d-bus support dependencies (most probably Qt5::DBus) ...

fsciarra62 commented 3 years ago

Well, as I've written, I did a downgrade to 0.6.3 then I upgraded again to 0.9.0 and everything works. So I guess Dbus stuff is already there... Regards, Fabrizio Sciarra

Il giorno lun 11 gen 2021 alle 01:27 Rui Nuno Capela < notifications@github.com> ha scritto:

well, the arch packagers are using the cmake build system which is not official yet... may that's the root cause for the resulting build is skipping some d-bus support dependencies (most probably Qt5::DBus) ...

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/rncbc/qjackctl/issues/114#issuecomment-757571396, or unsubscribe https://github.com/notifications/unsubscribe-auth/ADRX4M43ERPVUTUMRWZB7R3SZJAWVANCNFSM4VB5PM4Q .

dvzrv commented 3 years ago

@rncbc Hi! I am packaging the qjackctl package on Arch.

I was under the impression, that cmake is already fully supported as a build system. Anyways, qjackctl links against the following libs in the 0.9.0-1 package:

/usr/bin/qjackctl
  NEEDED               libasound.so.2
  NEEDED               libportaudio.so.2
  NEEDED               libpthread.so.0
  NEEDED               libQt5Widgets.so.5
  NEEDED               libQt5Xml.so.5
  NEEDED               libQt5Network.so.5
  NEEDED               libQt5DBus.so.5
  NEEDED               libjack.so.0
  NEEDED               libm.so.6
  NEEDED               libQt5Gui.so.5
  NEEDED               libQt5Core.so.5
  NEEDED               libstdc++.so.6
  NEEDED               libgcc_s.so.1
  NEEDED               libc.so.6

All of the packages providing those libs are added as dependencies (apart from portaudio, which is an optional dependency - does that pose an issue?).

@Bafford-the-dour there's no dbus-x11 package in the official repositories on Arch Linux. If you have installed this from the AUR, your system is in an unsupported condition. Given that that AUR package is meant to replace core/dbus from the official repositories it is not surprising that it might cause issues.

rncbc commented 3 years ago

I was under the impression, that cmake is already fully supported as a build system

cmake works as you might know already, but saying it s "fully supported" is kind of a long stretch ;)

cheers

dvzrv commented 3 years ago

FWIW: I can reproduce the two dbus related checkboxes being unchecked (after checking them, closing the application and starting the application again).

When starting jack, only jackd is used, but not jackdbus (even if the checkboxes show as being checked).

rncbc commented 3 years ago

it might be that jackdbus or its d-bus service registration is not working properly...

what does messages say re. org.jackaudio.service aka jackdbus availability ?

dvzrv commented 3 years ago

When rebuilding using autotools:

This all basically boils down to (as observed by checking the file before/after):

what does messages say re. org.jackaudio.service aka jackdbus availability ?

The jackdbus service is never started by qjackctl (when building with cmake), but:

I don't think this has something to do with dbus, but might rather be related to some flaw in the cmake setup.

NOTE: I took a look at the cmake setup I use for building and used CMAKE_BUILD_TYPE=Release instead of CMAKE_BUILD_TYPE=None (which is in accordance to our packaging guidelines). However, that does not change anything about the above issues.

Guess I'll revert to autotools for the package until this is resolved. Maybe the above hints help in finding the root cause.

rncbc commented 3 years ago

btw. only the second checkbox relates to JACK D-BUS service (org.jackaudio.service aka jackdbus); the other one (the first) is only provided to control qjackctl itself via the system d-bus (unrelated at all with jackdbus).

rncbc commented 3 years ago

found the culprit to the cmake vs. autotools discrepancy: it was about a deceiving #if instead of a #ifdef to a CONFIG_DBUS config-option at compile time...

fixed among other things in qjackctl >= 0.9.0.28git.5546d5.

thanks for your patience

dvzrv commented 3 years ago

@rncbc glad you could find the issue and fix it!

I'll switch back to cmake for the next release :)