jackaudio / jack2

jack2 codebase
GNU General Public License v2.0
2.2k stars 373 forks source link

Jackd errors and give no sound #808

Open JulienPalard opened 2 years ago

JulienPalard commented 2 years ago

Describe the bug

When starting qjackctl and asking it to start jack I'm getting:

Could not connect to JACK server as client.
- Overall operation failed.
- Server communication error.
Please check the messages window for more info

when running jackd manually then starting jack_simple_client to test it I'm getting an error.

Environment

My tests are done after stopping pulseaudio (systemctl --user stop pulseaudio.socket; systemctl --user stop pulseaudio),

$ cat /proc/asound/cards
 0 [PCH            ]: HDA-Intel - HDA Intel PCH
                      HDA Intel PCH at 0xed518000 irq 185

Steps To Reproduce

On one terminal:

$ LANGUAGE= LC_ALL=C jackd -P60 -S -dalsa -dhw:PCH -r44100 -p512 -n2 -Xseq

In the other one:

jack_simple_client foo

Here's the jackd output:

$ LANGUAGE= LC_ALL=C jackd -P60 -S -dalsa -dhw:PCH -r44100 -p512 -n2 -Xseq
jackdmp 1.9.19
Copyright 2001-2005 Paul Davis and others.
Copyright 2004-2016 Grame.
Copyright 2016-2021 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
no message buffer overruns
no message buffer overruns
no message buffer overruns
JACK server starting in realtime mode with priority 60
self-connect-mode is "Don't restrict self connect requests"
audio_reservation_init
Acquire audio card Audio0
creating alsa driver ... hw:PCH|hw:PCH|512|2|44100|0|0|nomon|swmeter|-|32bit
configuring for 44100Hz, period = 512 frames (11.6 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
port created: Midi-Through:midi/playback_1
port created: Midi-Through:midi/capture_1

JackPosixProcessSync::LockedTimedWait error usec = 5000000 err = Connection timed out
Driver is not running
Cannot create new client
Unknown request 4294967295
CheckSize error size = 0 Size() = 12
CheckRead error

And the jack_simple_client output:

$ jack_simple_client foo
Cannot read socket fd = 9 err = Success
CheckRes error
JackSocketClientChannel read fail
Cannot open foo client
JackShmReadWritePtr1::~JackShmReadWritePtr1 - Init not done for -1, skipping unlock
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
jack_client_open() failed, status = 0x21

Tried with jackd -d dummy and it does not output any error.

Expected vs. actual behavior

I expected a test sound to be audible, got errors.

nettings commented 2 years ago

After how long does jackd bail out with the error message you posted?

What does jackd -dalsa -dhw:PCH -r 48000 -p 512 -n3 give you?

As an aside, you are setting a realtime priority without enabling realtime mode (-R) - I'm not sure that's implied, so you might want to specify -R explicitly. But then of course you will have to have the correct /etc/security/limits.conf settings wrt rt scheduling and memlock.