jackaudio / jack2

jack2 codebase
GNU General Public License v2.0
2.22k stars 377 forks source link

Jack clients stop working when system date/time is changed #469

Closed jofemodo closed 5 years ago

jofemodo commented 5 years ago

We are running jack in a RBPi. When we connect the RBPi to the network, it tries to update the system's date/time, causing jack clients to stop working. Although jackd server is still running, all clients must be reconnected or restarted.

May 24 01:18:19 zynthian startx[454]: libjackpeak registering as 'jackpeak'.
May 24 01:18:19 zynthian startx[454]: libjackpeak created input ports
May 30 11:33:04 zynthian startx[454]: JackPosixSemaphore::TimedWait err = Connection timed out
May 30 11:33:04 zynthian startx[454]: SuspendRefNum error
May 30 11:33:04 zynthian startx[454]: JackClient::Execute error name = ZynMidiRouter
May 30 11:33:04 zynthian startx[454]: JackPosixSemaphore::TimedWait err = Connection timed out
May 30 11:33:04 zynthian startx[454]: SuspendRefNum error
May 30 11:33:04 zynthian startx[454]: JackClient::Execute error name = jackpeak
May 30 11:33:04 zynthian startx[454]: Server is not running
May 30 11:33:04 zynthian startx[454]: Server is not running
May 30 11:33:06 zynthian startx[454]: Server is not running
jofemodo commented 5 years ago

It could be related with #307 ...

jofemodo commented 5 years ago

It seems to be an identical issue: #284

jofemodo commented 5 years ago

We have tested with 1.9.11 & 1.9.12, with same results. Also, the "JackPosixSemaphore::TimedWait err = Connection timed out" message is the same, although supposedly jack's code doesn't use posix semaphores anymore (¿¿??!!)

falkTX commented 5 years ago

The new code supposedly does not use it, correct. But there is still some posix sync classes in use (related to internal event handling, not audio sync)

I find it very strange that you see exactly the same messages though...

falkTX commented 5 years ago

hmm documentation for CLOCK_MONOTONIC_RAW leads me to think it is exactly what we need here...

falkTX commented 5 years ago

@jofemodo can you try with https://github.com/jackaudio/jack2/commit/a24777a16c8c611724ed7137ea6296074abc67d5 and see if it fixes the issue for you?

jofemodo commented 5 years ago

Hi @falkTX !

I've tried, but it doesn't work. Because of the "strange" error message, I've tried to be sure that everything is linked against the new compiled version:

First, running jack daemon is what should be:

Jun 03 13:48:29 zynthian jackd[2507]: jackdmp 1.9.12
Jun 03 13:48:29 zynthian jackd[2507]: Copyright 2001-2005 Paul Davis and others.
Jun 03 13:48:29 zynthian jackd[2507]: Copyright 2004-2016 Grame.
Jun 03 13:48:29 zynthian jackd[2507]: Copyright 2016-2017 Filipe Coelho.
Jun 03 13:48:29 zynthian jackd[2507]: jackdmp comes with ABSOLUTELY NO WARRANTY
Jun 03 13:48:29 zynthian jackd[2507]: This is free software, and you are welcome to redistribute it
Jun 03 13:48:29 zynthian jackd[2507]: under certain conditions; see the file COPYING for details
Jun 03 13:48:29 zynthian jackd[2507]: JACK server starting in realtime mode with priority 70
Jun 03 13:48:29 zynthian jackd[2507]: self-connect-mode is "Don't restrict self connect requests"
Jun 03 13:48:29 zynthian jackd[2507]: creating alsa driver ... hw:0|hw:0|256|2|44100|0|0|nomon|swmeter|-|32bit
Jun 03 13:48:29 zynthian jackd[2507]: configuring for 44100Hz, period = 256 frames (5.8 ms), buffer = 2 periods
Jun 03 13:48:29 zynthian jackd[2507]: ALSA: final selected sample format for playback: 32bit integer little-endian
Jun 03 13:48:29 zynthian jackd[2507]: ALSA: use 2 periods for playback
Jun 03 13:48:29 zynthian jackd[2507]: scan: added port hw:1,0,0 in-hw-1-0-0-MK-249C-USB-MIDI-keyboard-MIDI-
Jun 03 13:48:29 zynthian jackd[2507]: scan: added port hw:1,0,0 out-hw-1-0-0-MK-249C-USB-MIDI-keyboard-MIDI-
Jun 03 13:48:29 zynthian jackd[2507]: scan: opened port hw:1,0,0 in-hw-1-0-0-MK-249C-USB-MIDI-keyboard-MIDI-
Jun 03 13:48:29 zynthian jackd[2507]: scan: opened port hw:1,0,0 out-hw-1-0-0-MK-249C-USB-MIDI-keyboard-MIDI-

The new jack is installed in local, so:

# ldd  libzyncoder.so
    linux-vdso.so.1 (0x7ea00000)
    /usr/lib/arm-linux-gnueabihf/libarmmem.so (0x76f1b000)
    libwiringPi.so => /usr/lib/libwiringPi.so (0x76ee6000)
    libasound.so.2 => /usr/lib/arm-linux-gnueabihf/libasound.so.2 (0x76df9000)
    libjack.so.0 => /usr/local/lib/libjack.so.0 (0x76d96000)
    liblo.so.7 => /usr/lib/arm-linux-gnueabihf/liblo.so.7 (0x76d79000)
    libc.so.6 => /lib/arm-linux-gnueabihf/libc.so.6 (0x76c3a000)
    libm.so.6 => /lib/arm-linux-gnueabihf/libm.so.6 (0x76bbb000)
    libpthread.so.0 => /lib/arm-linux-gnueabihf/libpthread.so.0 (0x76b92000)
    librt.so.1 => /lib/arm-linux-gnueabihf/librt.so.1 (0x76b7b000)
    libcrypt.so.1 => /lib/arm-linux-gnueabihf/libcrypt.so.1 (0x76b3c000)
    libdl.so.2 => /lib/arm-linux-gnueabihf/libdl.so.2 (0x76b29000)
    /lib/ld-linux-armhf.so.3 (0x76f86000)
    libstdc++.so.6 => /usr/lib/arm-linux-gnueabihf/libstdc++.so.6 (0x769e1000)
    libgcc_s.so.1 => /lib/arm-linux-gnueabihf/libgcc_s.so.1 (0x769b4000)

That also seems good. I checked the dates of the libraries; The date is from just a minutes ago, just when i re-built and installed jack2.

I applied your proposed changes, but no luck. Same error, same message.

Also tried the changes proposed by @rmelch in #284:

https://github.com/jackaudio/jack2/files/1186002/JackPosixProcessSync-monotonic.patch.txt

You are right, and the posix code seems to not be used by current version. Of course, same error, same message.

Finally i search for the error message string in the code and found it here:

https://github.com/jackaudio/jack2/blob/a24777a16c8c611724ed7137ea6296074abc67d5/posix/JackPosixSemaphore.cpp#L133

It's in the posix code that seems to not be used, but anyway, i changed the error string and recompile the code. Same error. Same message!!! Although i can't find this string on any other place in the code.

I'm starting to thing that i'm too stupid to see something too evident ... ;-(

falkTX commented 5 years ago

You are using some other version that does not match what you are building. Just look at the version string, it should say 1.9.13 Until you solve this, anytihng else you try is pointless as you would be running again the old code

jofemodo commented 5 years ago

I patched the already installed 1.9.12 instead of "cloning" a new one from the repo. Anyway, i will try with a fresh clone this evening.

jofemodo commented 5 years ago

Hi @falkTX ! I just tried with fresh cloned and built. Here the result:

root@zynthian:~# journalctl -u jack2
-- Logs begin at Thu 2016-11-03 17:16:43 GMT, end at Mon 2019-06-03 17:27:48 BST. --
Jun 03 17:24:41 zynthian systemd[1]: Started JACK2 Audio Server.
Jun 03 17:24:42 zynthian jackd[419]: jackdmp 1.9.13
Jun 03 17:24:42 zynthian jackd[419]: Copyright 2001-2005 Paul Davis and others.
Jun 03 17:24:42 zynthian jackd[419]: Copyright 2004-2016 Grame.
Jun 03 17:24:42 zynthian jackd[419]: Copyright 2016-2019 Filipe Coelho.
Jun 03 17:24:42 zynthian jackd[419]: jackdmp comes with ABSOLUTELY NO WARRANTY
Jun 03 17:24:42 zynthian jackd[419]: This is free software, and you are welcome to redistribute it
Jun 03 17:24:42 zynthian jackd[419]: under certain conditions; see the file COPYING for details
Jun 03 17:24:42 zynthian jackd[419]: JACK server starting in realtime mode with priority 70
Jun 03 17:24:42 zynthian jackd[419]: self-connect-mode is "Don't restrict self connect requests"
Jun 03 17:24:43 zynthian jackd[419]: creating alsa driver ... hw:0|hw:0|256|2|44100|0|0|nomon|swmeter|-|32bit
Jun 03 17:24:43 zynthian jackd[419]: configuring for 44100Hz, period = 256 frames (5.8 ms), buffer = 2 periods
Jun 03 17:24:43 zynthian jackd[419]: ALSA: final selected sample format for playback: 32bit integer little-endian
Jun 03 17:24:43 zynthian jackd[419]: ALSA: use 2 periods for playback
Jun 03 17:24:43 zynthian jackd[419]: scan: added port hw:1,0,0 in-hw-1-0-0-MK-249C-USB-MIDI-keyboard-MIDI-
Jun 03 17:24:43 zynthian jackd[419]: scan: added port hw:1,0,0 out-hw-1-0-0-MK-249C-USB-MIDI-keyboard-MIDI-
Jun 03 17:24:43 zynthian jackd[419]: scan: opened port hw:1,0,0 in-hw-1-0-0-MK-249C-USB-MIDI-keyboard-MIDI-
Jun 03 17:24:43 zynthian jackd[419]: scan: opened port hw:1,0,0 out-hw-1-0-0-MK-249C-USB-MIDI-keyboard-MIDI-

Then i change the date/time like that:

date -s "03 Jun 2019"

And ta-chaaaaannnnn!!!

Jun 03 17:33:37 zynthian startx[2606]: X.Org X Server 1.19.2
Jun 03 17:33:37 zynthian startx[2606]: Release Date: 2017-03-02
Jun 03 17:33:37 zynthian startx[2606]: X Protocol Version 11, Revision 0
Jun 03 17:33:37 zynthian startx[2606]: Build Operating System: Linux 4.9.41-v7+ armv7l Raspbian
Jun 03 17:33:37 zynthian startx[2606]: Current Operating System: Linux zynthian 4.19.42-v7+ #1219 SMP Tue May 14 21:20:58 BST 2019 armv7l
Jun 03 17:33:37 zynthian startx[2606]: Kernel command line: coherent_pool=1M 8250.nr_uarts=1 bcm2708_fb.fbwidth=656 bcm2708_fb.fbheight=416 bcm2708_fb.fbswap=1 vc_mem.mem_base=0x3ec0
Jun 03 17:33:37 zynthian startx[2606]: Build Date: 18 October 2017  04:55:30PM
Jun 03 17:33:37 zynthian startx[2606]: xorg-server 2:1.19.2-1+rpt1+deb9u2 (https://www.debian.org/support)
Jun 03 17:33:37 zynthian startx[2606]: Current version of pixman: 0.34.0
Jun 03 17:33:37 zynthian startx[2606]:         Before reporting problems, check http://wiki.x.org
Jun 03 17:33:37 zynthian startx[2606]:         to make sure that you have the latest version.
Jun 03 17:33:37 zynthian startx[2606]: Markers: (--) probed, (**) from config file, (==) default setting,
Jun 03 17:33:37 zynthian startx[2606]:         (++) from command line, (!!) notice, (II) informational,
Jun 03 17:33:37 zynthian startx[2606]:         (WW) warning, (EE) error, (NI) not implemented, (??) unknown.
Jun 03 17:33:37 zynthian startx[2606]: (==) Log file: "/var/log/Xorg.0.log", Time: Mon Jun  3 17:33:37 2019
Jun 03 17:33:37 zynthian startx[2606]: (==) Using config directory: "/etc/X11/xorg.conf.d"
Jun 03 17:33:37 zynthian startx[2606]: (==) Using system config directory "/usr/share/X11/xorg.conf.d"
Jun 03 17:33:39 zynthian startx[2606]: libjackpeak registering as 'jackpeak'.
Jun 03 17:33:39 zynthian startx[2606]: libjackpeak created input ports
Jun 03 00:00:00 zynthian startx[2606]: JackPosixSemaphore::TimedWait err = Connection timed out
Jun 03 00:00:00 zynthian startx[2606]: SuspendRefNum error
Jun 03 00:00:00 zynthian startx[2606]: JackClient::Execute error name = ZynMidiRouter
Jun 03 00:00:00 zynthian startx[2606]: JackPosixSemaphore::TimedWait err = Connection timed out
Jun 03 00:00:00 zynthian startx[2606]: SuspendRefNum error
Jun 03 00:00:00 zynthian startx[2606]: JackClient::Execute error name = jackpeak
Jun 03 00:00:00 zynthian startx[2606]: Server is not running
Jun 03 00:00:00 zynthian startx[2606]: Server is not running
Jun 03 00:00:00 zynthian startx[2606]: Server is not running
Jun 03 00:00:02 zynthian startx[2606]: Server is not running
Jun 03 00:00:02 zynthian startx[2606]: Server is not running
Jun 03 00:00:02 zynthian startx[2606]: Server is not running
Jun 03 00:00:04 zynthian startx[2606]: Server is not running
Jun 03 00:00:04 zynthian startx[2606]: Server is not running
jofemodo commented 5 years ago

The strangest thing that i can't understand and make me suspect of something really stupid or bizarre is that:

root@zynthian:/zynthian/zynthian-sw/jack2# grep -R "JackPosixSemaphore::TimedWait err = " *
posix/JackPosixSemaphore.cpp:        jack_error("JackPosixSemaphore::TimedWait err = %s", strerror(errno));

???

jofemodo commented 5 years ago

Here the full build report:

root@zynthian:/zynthian/zynthian-sw# git clone https://github.com/jackaudio/jack2.git
Cloning into 'jack2'...
remote: Enumerating objects: 89, done.
remote: Counting objects: 100% (89/89), done.
remote: Compressing objects: 100% (73/73), done.
remote: Total 27503 (delta 42), reused 50 (delta 16), pack-reused 27414
Receiving objects: 100% (27503/27503), 14.54 MiB | 4.06 MiB/s, done.
Resolving deltas: 100% (22755/22755), done.
root@zynthian:/zynthian/zynthian-sw# cd jack2
root@zynthian:/zynthian/zynthian-sw/jack2# ./waf configure
Setting top to                           : /home/pi/zynthian-sw/jack2 
Setting out to                           : /home/pi/zynthian-sw/jack2/build 
Checking for 'g++' (C++ compiler)        : /usr/bin/g++ 
Checking for 'gcc' (C compiler)          : /usr/bin/gcc 
Checking platform                        : Linux 
Checking for program 'pkg-config'        : /usr/bin/pkg-config 
Checking for 'alsa >= 1.0.18'            : yes 
Checking for 'libffado >= 1.999.17'      : not found 
Checking for 'gtkIOStream >= 1.4.0'      : not found 
Checking for 'eigen3 >= 3.1.2'           : yes 
Checking for header windows.h            : not found 
Checking for 'portaudio-2.0 >= 19'       : not found 
Checking for header mmsystem.h           : not found 
Checking for 'celt >= 0.11.0'            : not found 
Checking for 'celt >= 0.8.0'             : not found 
Checking for 'celt >= 0.7.0'             : not found 
Checking for 'celt >= 0.5.0'             : not found 
Checking for header opus/opus_custom.h   : not found 
Checking for 'opus >= 0.9.0'             : not found 
Checking for 'samplerate'                : yes 
Checking for 'sndfile'                   : yes 
Checking for library readline            : yes 
Checking for header readline/readline.h  : yes 
Checking for header systemd/sd-daemon.h  : not found 
Checking for library systemd             : not found 
Checking for header db.h                 : not found 
Checking for library db                  : not found 
Checking for header alloca.h             : yes 
Checking for ppoll                       : yes 
Checking for header execinfo.h           : yes 
Checking for ucontext->uc_mcontext.gp_regs : no 
Checking for ucontext->uc_mcontext.uc_regs : no 
Checking for ucontext->uc_mcontext.mc_gregs : no 
Checking for ucontext->uc_mcontext.gregs    : no 
Checking for NGREG                          : yes 

==================
JACK 1.9.13 svn revision will checked and eventually updated during build
Maximum JACK clients                        : 64 
Maximum ports per application               : 768 
Install prefix                              : /usr/local 
Library directory                           : /usr/local/lib 
Drivers directory                           : /usr/local/lib/jack 
Build debuggable binaries                   : no 
C compiler flags                            : ['-mcpu=cortex-a53', '-mtune=cortex-a53', '-mfpu=neon-fp-armv8', '-mneon-for-64bits', '-mfloat-abi=hard', '-mvectorize-with-neon-quad', '-ftree-vectorize', '-Wall'] 
C++ compiler flags                          : ['-mcpu=cortex-a53', '-mtune=cortex-a53', '-mfpu=neon-fp-armv8', '-mneon-for-64bits', '-mfloat-abi=hard', '-mvectorize-with-neon-quad', '-ftree-vectorize', '-Wall', '-std=gnu++11'] 
Linker flags                                : [] 
Build with engine profiling                 : no 
Build with 32/64 bits mixed mode            : no 
Build standard JACK (jackd)                 : yes 
Build D-Bus JACK (jackdbus)                 : no 
Autostart method                            : classic 
Build doxygen documentation                 : no 
Enable ALSA driver                          : yes 
Enable FireWire driver (FFADO)              : no 
Enable IIO driver                           : no 
Enable Portaudio driver                     : no 
Enable WinMME driver                        : no 
Build with CELT                             : no 
Build Opus netjack2                         : no 
Build with libsamplerate                    : yes 
Build with libsndfile                       : yes 
Build with readline                         : yes 
Use systemd notify                          : no 
Use Berkeley DB (metadata)                  : no 

'configure' finished successfully (8.425s)
root@zynthian:/zynthian/zynthian-sw/jack2# ./waf build
Waf: Entering directory `/home/pi/zynthian-sw/jack2/build'
[  1/259] Compiling svnversion_regenerate.sh
[  2/259] Compiling jack.pc.in
Generated /home/pi/zynthian-sw/jack2/build/svnversion.h (0+a24777a16c8c611724ed7137ea6296074abc67d5)

[  3/259] Compiling common/shm.c
[  4/259] Compiling common/JackGlobals.cpp
[  5/259] Compiling common/JackTools.cpp
[  6/259] Compiling common/promiscuous.c
[  7/259] Compiling common/JackLibAPI.cpp
[  8/259] Compiling common/JackLibClient.cpp
[  9/259] Compiling common/timestamps.c
[ 10/259] Compiling linux/JackLinuxFutex.cpp
[ 11/259] Compiling common/JackGenericClientChannel.cpp
[ 12/259] Compiling common/JackEngineProfiling.cpp
[ 13/259] Compiling common/JackPortType.cpp
[ 14/259] Compiling posix/JackPosixProcessSync.cpp
[ 15/259] Compiling common/JackPort.cpp
[ 16/259] Compiling common/JackGraphManager.cpp
[ 17/259] Compiling common/ringbuffer.c
[ 18/259] Compiling common/JackException.cpp
[ 19/259] Compiling common/JackError.cpp
[ 20/259] Compiling common/JackMessageBuffer.cpp
[ 21/259] Compiling posix/JackPosixThread.cpp
[ 22/259] Compiling common/JackActivationCount.cpp
[ 23/259] Compiling common/JackClient.cpp
[ 24/259] Compiling common/JackConnectionManager.cpp
[ 25/259] Compiling common/JackAPI.cpp
[ 26/259] Compiling posix/JackPosixServerLaunch.cpp
[ 27/259] Compiling common/JackMetadata.cpp
[ 28/259] Compiling posix/JackSocketClientChannel.cpp
[ 29/259] Compiling common/JackFrameTimer.cpp
[ 30/259] Compiling common/JackTransportEngine.cpp
[ 31/259] Compiling common/JackAudioPort.cpp
[ 32/259] Compiling posix/JackPosixMutex.cpp
[ 33/259] Compiling linux/JackLinuxTime.c
[ 34/259] Compiling common/JackShmMem.cpp
[ 35/259] Compiling common/JackMidiPort.cpp
[ 36/259] Compiling common/JackMidiAPI.cpp
[ 37/259] Compiling common/JackEngineControl.cpp
[ 38/259] Compiling posix/JackSocket.cpp
[ 39/259] Compiling common/JackDebugClient.cpp
[ 40/259] Compiling common/JackAudioPort.cpp
[ 41/259] Compiling common/JackPortType.cpp
[ 42/259] Compiling common/JackGraphManager.cpp
[ 43/259] Compiling common/JackAPI.cpp
[ 44/259] Compiling common/JackMidiRawOutputWriteQueue.cpp
[ 45/259] Compiling common/JackMidiReceiveQueue.cpp
[ 46/259] Compiling common/JackMidiReadQueue.cpp
[ 47/259] Linking build/common/libjack.so
[ 48/259] Compiling common/JackMidiBufferWriteQueue.cpp
[ 49/259] Compiling common/JackMidiBufferReadQueue.cpp
[ 50/259] Compiling common/JackRequestDecoder.cpp
[ 51/259] Compiling common/JackConnectionManager.cpp
[ 52/259] Compiling common/JackMidiAsyncQueue.cpp
[ 53/259] Compiling common/JackMidiAsyncWaitQueue.cpp
[ 54/259] Compiling common/JackNetInterface.cpp
[ 55/259] Compiling common/JackNetTool.cpp
[ 56/259] Compiling posix/JackSocketServerChannel.cpp
[ 57/259] Compiling posix/JackSocketServerNotifyChannel.cpp
[ 58/259] Compiling common/JackEngine.cpp
[ 59/259] Compiling common/JackTools.cpp
[ 60/259] Compiling posix/JackSocketNotifyChannel.cpp
[ 61/259] Compiling common/JackServerAPI.cpp
[ 62/259] Compiling common/JackControlAPI.cpp
[ 63/259] Compiling common/JackWaitCallbackDriver.cpp
[ 64/259] Compiling common/JackWaitThreadedDriver.cpp
[ 65/259] Compiling common/JackServerGlobals.cpp
[ 66/259] Compiling common/JackThreadedDriver.cpp
[ 67/259] Compiling common/JackServer.cpp
[ 68/259] Compiling common/JackFreewheelDriver.cpp
[ 69/259] Compiling common/JackInternalSessionLoader.cpp
[ 70/259] Compiling common/JackInternalClient.cpp
[ 71/259] Compiling common/JackExternalClient.cpp
[ 72/259] Compiling common/JackDriverLoader.cpp
[ 73/259] Compiling common/JackRestartThreadedDriver.cpp
[ 74/259] Compiling common/JackDriver.cpp
[ 75/259] Compiling common/JackTimedDriver.cpp
[ 76/259] Compiling common/JackMidiDriver.cpp
[ 77/259] Compiling common/JackArgParser.cpp
[ 78/259] Compiling linux/JackLinuxFutex.cpp
[ 79/259] Compiling linux/JackLinuxTime.c
[ 80/259] Compiling posix/JackSocket.cpp
[ 81/259] Compiling posix/JackPosixMutex.cpp
[ 82/259] Compiling common/JackMidiSendQueue.cpp
[ 83/259] Compiling common/timestamps.c
[ 84/259] Compiling posix/JackPosixProcessSync.cpp
[ 85/259] Compiling common/promiscuous.c
[ 86/259] Compiling posix/JackPosixThread.cpp
[ 87/259] Compiling common/JackAudioDriver.cpp
[ 88/259] Compiling common/JackMessageBuffer.cpp
[ 89/259] Compiling common/JackDebugClient.cpp
[ 90/259] Compiling common/shm.c
[ 91/259] Compiling common/JackEngineProfiling.cpp
[ 92/259] Compiling common/JackTransportEngine.cpp
[ 93/259] Compiling common/JackGlobals.cpp
[ 94/259] Compiling common/JackMetadata.cpp
[ 95/259] Compiling posix/JackNetUnixSocket.cpp
[ 96/259] Compiling common/JackShmMem.cpp
[ 97/259] Compiling common/JackMidiAPI.cpp
[ 98/259] Compiling common/JackGenericClientChannel.cpp
[ 99/259] Compiling common/JackMidiPort.cpp
[100/259] Compiling common/JackPort.cpp
[101/259] Compiling common/JackFrameTimer.cpp
[102/259] Compiling common/JackEngineControl.cpp
[103/259] Compiling common/JackException.cpp
[104/259] Compiling common/JackMidiRawInputWriteQueue.cpp
[105/259] Compiling common/JackError.cpp
[106/259] Compiling common/JackMidiUtil.cpp
[107/259] Compiling common/ringbuffer.c
[108/259] Compiling common/JackMidiWriteQueue.cpp
[109/259] Compiling common/JackActivationCount.cpp
[110/259] Compiling common/JackClient.cpp
[111/259] Compiling common/JackException.cpp
[112/259] Compiling linux/JackLinuxTime.c
[113/259] Compiling common/JackNetAPI.cpp
[114/259] Compiling common/JackResampler.cpp
[115/259] Compiling posix/JackNetUnixSocket.cpp
[116/259] Compiling common/JackGlobals.cpp
[117/259] Compiling common/ringbuffer.c
[118/259] Compiling posix/JackPosixThread.cpp
[119/259] Compiling common/JackAudioAdapterInterface.cpp
[120/259] Compiling common/JackNetInterface.cpp
[121/259] Compiling posix/JackPosixMutex.cpp
[122/259] Linking build/common/libjackserver.so
[123/259] Compiling common/JackNetTool.cpp
[124/259] Compiling common/JackLibSampleRateResampler.cpp
[125/259] Compiling example-clients/inprocess.c
[126/259] Compiling common/JackNetManager.cpp
[127/259] Compiling common/JackProfiler.cpp
[128/259] Compiling common/JackResampler.cpp
[129/259] Linking build/example-clients/inprocess.so
[130/259] Compiling common/JackNetAdapter.cpp
[131/259] Compiling common/JackAudioAdapter.cpp
[132/259] Linking build/common/libjacknet.so
[133/259] Linking build/common/profiler.so
[134/259] Compiling common/JackAudioAdapterInterface.cpp
[135/259] Compiling common/JackLibSampleRateResampler.cpp
[136/259] Compiling common/JackResampler.cpp
[137/259] Compiling common/JackAudioAdapterFactory.cpp
[138/259] Compiling linux/alsa/JackAlsaAdapter.cpp
[139/259] Compiling common/JackLibSampleRateResampler.cpp
[140/259] Linking build/common/netadapter.so
[141/259] Linking build/common/netmanager.so
[142/259] Compiling common/JackAudioAdapterInterface.cpp
[143/259] Compiling common/JackAudioAdapter.cpp
[144/259] Compiling common/Jackdmp.cpp
[145/259] Compiling common/JackDummyDriver.cpp
[146/259] Compiling common/JackLoopbackDriver.cpp
[147/259] Compiling common/JackNetDriver.cpp
[148/259] Compiling common/JackNetOneDriver.cpp
[149/259] Linking build/common/audioadapter.so
[150/259] Linking build/jackd
[151/259] Linking build/jack_dummy.so
[152/259] Linking build/jack_loopback.so
[153/259] Compiling common/netjack_packet.c
[154/259] Compiling common/netjack.c
[155/259] Compiling common/JackProxyDriver.cpp
[156/259] Compiling linux/alsa/alsa_driver.c
[157/259] Compiling common/memops.c
[158/259] Compiling linux/alsa/alsa_midi_jackmp.cpp
[159/259] Linking build/jack_net.so
[160/259] Linking build/jack_netone.so
[161/259] Compiling linux/alsa/JackAlsaDriver.cpp
[162/259] Compiling linux/alsa/hammerfall.c
[163/259] Compiling linux/alsa/alsa_seqmidi.c
[164/259] Compiling linux/alsa/ice1712.c
[165/259] Compiling linux/alsa/alsa_rawmidi.c
[166/259] Compiling linux/alsa/hdsp.c
[167/259] Compiling linux/alsa/generic_hw.c
[168/259] Compiling linux/alsarawmidi/JackALSARawMidiInputPort.cpp
[169/259] Compiling linux/alsarawmidi/JackALSARawMidiSendQueue.cpp
[170/259] Compiling linux/alsarawmidi/JackALSARawMidiReceiveQueue.cpp
[171/259] Linking build/jack_proxy.so
[172/259] Compiling linux/alsarawmidi/JackALSARawMidiOutputPort.cpp
[173/259] Linking build/jack_alsa.so
[174/259] Compiling linux/alsarawmidi/JackALSARawMidiDriver.cpp
[175/259] Compiling linux/alsarawmidi/JackALSARawMidiPort.cpp
[176/259] Compiling linux/alsarawmidi/JackALSARawMidiUtil.cpp
[177/259] Compiling example-clients/midi_dump.c
[178/259] Compiling example-clients/server_control.cpp
[179/259] Compiling example-clients/session_notify.c
[180/259] Linking build/example-clients/jack_midi_dump
[181/259] Compiling example-clients/lsp.c
[182/259] Linking build/example-clients/jack_server_control
../example-clients/lsp.c: In function ‘main’:
../example-clients/lsp.c:249:6: warning: ‘jack_port_get_total_latency’ is deprecated [-Wdeprecated-declarations]
      jack_port_get_total_latency (client, port));
      ^~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../example-clients/lsp.c:26:0:
../common/jack/jack.h:1238:16: note: declared here
 jack_nframes_t jack_port_get_total_latency (jack_client_t *client,
                ^~~~~~~~~~~~~~~~~~~~~~~~~~~

[183/259] Linking build/example-clients/jack_session_notify
[184/259] Linking build/example-clients/jack_lsp
[185/259] Compiling example-clients/property.c
[186/259] Compiling example-clients/midi_latency_test.c
[187/259] Compiling example-clients/netslave.c
[189/259] Compiling example-clients/showtime.c
[189/259] Linking build/example-clients/jack_property
../example-clients/netslave.c: In function ‘main’:
../example-clients/netslave.c:136:5: warning: ‘jack_set_net_slave_shutdown_callback’ is deprecated [-Wdeprecated-declarations]
     jack_set_net_slave_shutdown_callback(net, net_shutdown, NULL);
     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../example-clients/netslave.c:30:0:
../common/jack/net.h:233:5: note: declared here
 int jack_set_net_slave_shutdown_callback(jack_net_slave_t *net, JackNetSlaveShutdownCallback shutdown_callback, void *arg) JACK_OPTIONAL_WEAK_DEPRECATED_EXPORT;
     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

[190/259] Linking build/example-clients/jack_showtime
[191/259] Compiling example-clients/cpu_load.c
[192/259] Linking build/example-clients/jack_midi_latency_test
[193/259] Linking build/example-clients/jack_net_slave
[194/259] Compiling example-clients/simdtests.cpp
[195/259] Linking build/example-clients/jack_cpu_load
[196/259] Compiling example-clients/thru_client.c
[197/259] Compiling example-clients/midisine.c
[198/259] Linking build/example-clients/jack_thru
[199/259] Compiling example-clients/ipload.c
[200/259] Compiling example-clients/freewheel.c
[201/259] Linking build/jack_alsarawmidi.so
[202/259] Linking build/example-clients/jack_midisine
[203/259] Linking build/example-clients/jack_load
[204/259] Linking build/example-clients/jack_freewheel
[205/259] Compiling example-clients/samplerate.c
[206/259] Compiling example-clients/metro.c
[207/259] Compiling example-clients/netmaster.c
[208/259] Linking build/example-clients/jack_samplerate
../example-clients/metro.c: In function ‘main’:
../example-clients/metro.c:138:6: warning: variable ‘verbose’ set but not used [-Wunused-but-set-variable]
  int verbose = 0;
      ^~~~~~~

[209/259] Compiling example-clients/zombie.c
[210/259] Linking build/example-clients/jack_metro
[211/259] Linking build/example-clients/jack_simdtests
[212/259] Linking build/example-clients/jack_net_master
[213/259] Compiling example-clients/connect.c
[214/259] Linking build/example-clients/jack_zombie
[215/259] Compiling example-clients/monitor_client.c
[216/259] Compiling example-clients/bufsize.c
[217/259] Linking build/example-clients/jack_connect
[218/259] Compiling example-clients/simple_session_client.c
[219/259] Linking build/example-clients/jack_monitor_client
[220/259] Compiling example-clients/latent_client.c
[221/259] Linking build/example-clients/jack_bufsize
[222/259] Compiling example-clients/simple_client.c
[223/259] Linking build/example-clients/jack_simple_session_client
[224/259] Linking build/example-clients/jack_latent_client
[225/259] Compiling example-clients/evmon.c
[226/259] Compiling example-clients/midiseq.c
[227/259] Linking build/example-clients/jack_simple_client
[228/259] Compiling example-clients/ipunload.c
[229/259] Compiling example-clients/alias.c
../example-clients/midiseq.c: In function ‘main’:
../example-clients/midiseq.c:85:17: warning: variable ‘nframes’ set but not used [-Wunused-but-set-variable]
  jack_nframes_t nframes;
                 ^~~~~~~

[230/259] Linking build/example-clients/jack_evmon
[231/259] Linking build/example-clients/jack_midiseq
[232/259] Linking build/example-clients/jack_unload
[233/259] Compiling example-clients/wait.c
[234/259] Compiling example-clients/transport.c
[235/259] Linking build/example-clients/jack_alias
[236/259] Compiling example-clients/capture_client.c
[237/259] Linking build/example-clients/jack_wait
[238/259] Compiling common/netjack_packet.c
[239/259] Linking build/example-clients/jack_transport
[240/259] Linking build/example-clients/jack_rec
[241/259] Compiling example-clients/netsource.c
[242/259] Compiling common/memops.c
[243/259] Compiling example-clients/alsa_in.c
[244/259] Compiling common/memops.c
[245/259] Compiling example-clients/alsa_out.c
../example-clients/alsa_in.c: In function ‘set_swparams’:
../example-clients/alsa_in.c:269:2: warning: ‘snd_pcm_sw_params_set_xfer_align’ is deprecated [-Wdeprecated-declarations]
  err = snd_pcm_sw_params_set_xfer_align(handle, swparams, 1);
  ^~~
In file included from /usr/include/alsa/asoundlib.h:54:0,
                 from ../example-clients/alsa_in.c:20:
/usr/include/alsa/pcm.h:1302:5: note: declared here
 int snd_pcm_sw_params_set_xfer_align(snd_pcm_t *pcm, snd_pcm_sw_params_t *params, snd_pcm_uframes_t val) __attribute__((deprecated));
     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

[246/259] Linking build/example-clients/jack_netsource
[247/259] Compiling tests/test.cpp
../example-clients/alsa_out.c: In function ‘set_swparams’:
../example-clients/alsa_out.c:270:2: warning: ‘snd_pcm_sw_params_set_xfer_align’ is deprecated [-Wdeprecated-declarations]
  err = snd_pcm_sw_params_set_xfer_align(handle, swparams, 1);
  ^~~
In file included from /usr/include/alsa/asoundlib.h:54:0,
                 from ../example-clients/alsa_out.c:21:
/usr/include/alsa/pcm.h:1302:5: note: declared here
 int snd_pcm_sw_params_set_xfer_align(snd_pcm_t *pcm, snd_pcm_sw_params_t *params, snd_pcm_uframes_t val) __attribute__((deprecated));
     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

[248/259] Linking build/example-clients/alsa_in
[249/259] Compiling tests/cpu.c
[250/259] Compiling tests/external_metro.cpp
[251/259] Linking build/example-clients/alsa_out
../tests/cpu.c: In function ‘process’:
../tests/cpu.c:81:31: warning: variable ‘in’ set but not used [-Wunused-but-set-variable]
  jack_default_audio_sample_t *in, *out;
                               ^~

[252/259] Compiling tests/iodelay.cpp
[253/259] Linking build/tests/jack_cpu
[254/259] Linking build/tests/jack_multiple_metro
[255/259] Linking build/tests/jack_iodelay
[256/259] Linking build/tests/jack_test
[257/259] Symlinking build/common/libjack.so
[258/259] Symlinking build/common/libjackserver.so
[259/259] Symlinking build/common/libjacknet.so
Waf: Leaving directory `/home/pi/zynthian-sw/jack2/build'
'build' finished successfully (2m11.074s)
root@zynthian:/zynthian/zynthian-sw/jack2# ./waf install
Waf: Entering directory `/home/pi/zynthian-sw/jack2/build'
- symlink /usr/local/lib/libjack.so.0 (to libjack.so.0.1.0)
+ install /usr/local/lib/libjack.so.0.1.0 (from build/common/libjack.so)
- symlink /usr/local/lib/libjack.so (to libjack.so.0.1.0)
- symlink /usr/local/lib/libjackserver.so (to libjackserver.so.0.1.0)
+ install /usr/local/lib/libjackserver.so.0.1.0 (from build/common/libjackserver.so)
- symlink /usr/local/lib/libjackserver.so.0 (to libjackserver.so.0.1.0)
+ install /usr/local/lib/libjacknet.so.0.1.0 (from build/common/libjacknet.so)
- symlink /usr/local/lib/libjacknet.so.0 (to libjacknet.so.0.1.0)
- symlink /usr/local/lib/libjacknet.so (to libjacknet.so.0.1.0)
+ install /usr/local/lib/jack/netmanager.so (from build/common/netmanager.so)
+ install /usr/local/lib/jack/profiler.so (from build/common/profiler.so)
+ install /usr/local/lib/jack/netadapter.so (from build/common/netadapter.so)
+ install /usr/local/lib/jack/audioadapter.so (from build/common/audioadapter.so)
+ install /usr/local/lib/pkgconfig/jack.pc (from build/jack.pc)
+ install /usr/local/bin/jackd (from build/jackd)
+ install /usr/local/lib/jack/jack_dummy.so (from build/jack_dummy.so)
+ install /usr/local/lib/jack/jack_loopback.so (from build/jack_loopback.so)
+ install /usr/local/include/jack/control.h (from common/jack/control.h)
+ install /usr/local/lib/jack/jack_net.so (from build/jack_net.so)
+ install /usr/local/include/jack/intclient.h (from common/jack/intclient.h)
+ install /usr/local/lib/jack/jack_netone.so (from build/jack_netone.so)
+ install /usr/local/lib/jack/jack_proxy.so (from build/jack_proxy.so)
+ install /usr/local/include/jack/jack.h (from common/jack/jack.h)
+ install /usr/local/lib/jack/jack_alsa.so (from build/jack_alsa.so)
+ install /usr/local/lib/jack/jack_alsarawmidi.so (from build/jack_alsarawmidi.so)
+ install /usr/local/include/jack/jslist.h (from common/jack/jslist.h)
+ install /usr/local/bin/jack_midi_dump (from build/example-clients/jack_midi_dump)
+ install /usr/local/bin/jack_server_control (from build/example-clients/jack_server_control)
+ install /usr/local/bin/jack_session_notify (from build/example-clients/jack_session_notify)
+ install /usr/local/include/jack/metadata.h (from common/jack/metadata.h)
+ install /usr/local/bin/jack_lsp (from build/example-clients/jack_lsp)
+ install /usr/local/bin/jack_property (from build/example-clients/jack_property)
+ install /usr/local/include/jack/midiport.h (from common/jack/midiport.h)
+ install /usr/local/bin/jack_midi_latency_test (from build/example-clients/jack_midi_latency_test)
+ install /usr/local/bin/jack_net_slave (from build/example-clients/jack_net_slave)
+ install /usr/local/bin/jack_showtime (from build/example-clients/jack_showtime)
+ install /usr/local/include/jack/net.h (from common/jack/net.h)
+ install /usr/local/bin/jack_simdtests (from build/example-clients/jack_simdtests)
+ install /usr/local/include/jack/ringbuffer.h (from common/jack/ringbuffer.h)
+ install /usr/local/bin/jack_cpu_load (from build/example-clients/jack_cpu_load)
+ install /usr/local/bin/jack_thru (from build/example-clients/jack_thru)
+ install /usr/local/include/jack/session.h (from common/jack/session.h)
+ install /usr/local/bin/jack_midisine (from build/example-clients/jack_midisine)
+ install /usr/local/bin/jack_load (from build/example-clients/jack_load)
+ install /usr/local/include/jack/statistics.h (from common/jack/statistics.h)
+ install /usr/local/bin/jack_freewheel (from build/example-clients/jack_freewheel)
+ install /usr/local/bin/jack_samplerate (from build/example-clients/jack_samplerate)
+ install /usr/local/include/jack/systemdeps.h (from common/jack/systemdeps.h)
+ install /usr/local/bin/jack_metro (from build/example-clients/jack_metro)
+ install /usr/local/bin/jack_net_master (from build/example-clients/jack_net_master)
+ install /usr/local/include/jack/thread.h (from common/jack/thread.h)
+ install /usr/local/bin/jack_zombie (from build/example-clients/jack_zombie)
+ install /usr/local/bin/jack_connect (from build/example-clients/jack_connect)
+ install /usr/local/include/jack/transport.h (from common/jack/transport.h)
+ install /usr/local/bin/jack_monitor_client (from build/example-clients/jack_monitor_client)
+ install /usr/local/bin/jack_bufsize (from build/example-clients/jack_bufsize)
+ install /usr/local/include/jack/types.h (from common/jack/types.h)
+ install /usr/local/bin/jack_latent_client (from build/example-clients/jack_latent_client)
+ install /usr/local/bin/jack_simple_session_client (from build/example-clients/jack_simple_session_client)
+ install /usr/local/include/jack/uuid.h (from common/jack/uuid.h)
+ install /usr/local/bin/jack_simple_client (from build/example-clients/jack_simple_client)
+ install /usr/local/bin/jack_midiseq (from build/example-clients/jack_midiseq)
+ install /usr/local/bin/jack_evmon (from build/example-clients/jack_evmon)
+ install /usr/local/include/jack/weakjack.h (from common/jack/weakjack.h)
+ install /usr/local/bin/jack_unload (from build/example-clients/jack_unload)
+ install /usr/local/include/jack/weakmacros.h (from common/jack/weakmacros.h)
+ install /usr/local/bin/jack_alias (from build/example-clients/jack_alias)
+ install /usr/local/bin/jack_wait (from build/example-clients/jack_wait)
+ install /usr/local/bin/jack_transport (from build/example-clients/jack_transport)
+ install /usr/local/bin/jack_rec (from build/example-clients/jack_rec)
+ install /usr/local/bin/jack_netsource (from build/example-clients/jack_netsource)
+ install /usr/local/bin/alsa_in (from build/example-clients/alsa_in)
+ install /usr/local/bin/alsa_out (from build/example-clients/alsa_out)
+ install /usr/local/lib/jack/inprocess.so (from build/example-clients/inprocess.so)
- symlink /usr/local/bin/jack_disconnect (to jack_connect)
+ install /usr/local/bin/jack_test (from build/tests/jack_test)
+ install /usr/local/bin/jack_control (from example-clients/jack_control)
+ install /usr/local/bin/jack_cpu (from build/tests/jack_cpu)
+ install /usr/local/share/man/man1/alsa_in.1 (from man/alsa_in.1)
+ install /usr/local/bin/jack_multiple_metro (from build/tests/jack_multiple_metro)
+ install /usr/local/bin/jack_iodelay (from build/tests/jack_iodelay)
+ install /usr/local/share/man/man1/alsa_out.1 (from man/alsa_out.1)
+ install /usr/local/share/man/man1/jack_bufsize.1 (from man/jack_bufsize.1)
+ install /usr/local/share/man/man1/jack_connect.1 (from man/jack_connect.1)
+ install /usr/local/share/man/man1/jack_disconnect.1 (from man/jack_disconnect.1)
+ install /usr/local/share/man/man1/jack_freewheel.1 (from man/jack_freewheel.1)
+ install /usr/local/share/man/man1/jack_impulse_grabber.1 (from man/jack_impulse_grabber.1)
+ install /usr/local/share/man/man1/jack_iodelay.1 (from man/jack_iodelay.1)
+ install /usr/local/share/man/man1/jack_load.1 (from man/jack_load.1)
+ install /usr/local/share/man/man1/jack_lsp.1 (from man/jack_lsp.1)
+ install /usr/local/share/man/man1/jack_metro.1 (from man/jack_metro.1)
+ install /usr/local/share/man/man1/jack_monitor_client.1 (from man/jack_monitor_client.1)
+ install /usr/local/share/man/man1/jack_netsource.1 (from man/jack_netsource.1)
+ install /usr/local/share/man/man1/jack_property.1 (from man/jack_property.1)
+ install /usr/local/share/man/man1/jack_samplerate.1 (from man/jack_samplerate.1)
+ install /usr/local/share/man/man1/jack_showtime.1 (from man/jack_showtime.1)
+ install /usr/local/share/man/man1/jack_simple_client.1 (from man/jack_simple_client.1)
+ install /usr/local/share/man/man1/jack_transport.1 (from man/jack_transport.1)
+ install /usr/local/share/man/man1/jack_unload.1 (from man/jack_unload.1)
+ install /usr/local/share/man/man1/jack_wait.1 (from man/jack_wait.1)
+ install /usr/local/share/man/man1/jackd.1 (from man/jackd.1)
+ install /usr/local/share/man/man1/jackrec.1 (from man/jackrec.1)
Waf: Leaving directory `/home/pi/zynthian-sw/jack2/build'
'install' finished successfully (1.674s)
jofemodo commented 5 years ago

The file "posix/JackPosixSemaphore.cpp" is not even compiled!

jofemodo commented 5 years ago

I've checked and no other jack servers are running. Jack clients are linked against the fresh installed libraries on /usr/local/lib.

jofemodo commented 5 years ago

OK! I found the problem ...

root@zynthian:/usr/local/bin# ldd jackd
    linux-vdso.so.1 (0x7e94f000)
    /usr/lib/arm-linux-gnueabihf/libarmmem.so (0x76ec8000)
    libjackserver.so.0 => /usr/lib/arm-linux-gnueabihf/libjackserver.so.0 (0x76e2c000)
    libpthread.so.0 => /lib/arm-linux-gnueabihf/libpthread.so.0 (0x76e03000)
    librt.so.1 => /lib/arm-linux-gnueabihf/librt.so.1 (0x76dec000)
    libdl.so.2 => /lib/arm-linux-gnueabihf/libdl.so.2 (0x76dd9000)
    libstdc++.so.6 => /usr/lib/arm-linux-gnueabihf/libstdc++.so.6 (0x76c91000)
    libm.so.6 => /lib/arm-linux-gnueabihf/libm.so.6 (0x76c12000)
    libgcc_s.so.1 => /lib/arm-linux-gnueabihf/libgcc_s.so.1 (0x76be5000)
    libc.so.6 => /lib/arm-linux-gnueabihf/libc.so.6 (0x76aa6000)
    libopus.so.0 => /usr/lib/arm-linux-gnueabihf/libopus.so.0 (0x76a53000)
    /lib/ld-linux-armhf.so.3 (0x76ede000)

Curiously, the jack server itself was linking against the debian jack2 package libraries (1.9.11). I added a simple:

LD_LIBRARY_PATH=/usr/local/lib

And now everything is working like a charm. In fact, the changes you commited today are not needed at all because as you set, the posix semaphores are not used anymore.

Thanks for your help and sorry for wasting your time ...

I hope this thread could serve for other people trying to build jack in "/usr/local" while maintaining the distribution package.

zerojano commented 5 years ago

Buenas @jofemodo , tengo dudas sobre la actualización del jackd 1.9.13, a que te refieres con LD_LIBRARY_PATH=/usr/local/lib ? Saludos!

jofemodo commented 5 years ago

This was useful for Raspbian Stretch, when trying to install jackd 1.9.3 from source while maintaining the repo version.

zerojano commented 5 years ago

@jofemodo Actualmente he instalado Raspbian kernel 4.19, y me he percatado que tiene una version 1.9.12 del Jackd, existe alternativa para actualizar a la ultima versión y evitar el error?

jofemodo commented 5 years ago

Yes, simply follow my path. Download, build and install 1.9.3, and set:

LD_LIBRARY_PATH=/usr/local/lib

before running jackd, so it load the fresh compiled libraries and not the repo-installed ones.