On Jul 21, 2017, at 5:43 PM, pd-list-request@lists.iem.at wrote:
From: Max <abonnements@revolwear.com mailto:abonnements@revolwear.com> Subject: Re: [PD] PD 0.48-0 test3 segfaults with Jack and rt on Linux Date: July 21, 2017 at 4:49:50 PM GMT+2 To: pd-list@lists.iem.at mailto:pd-list@lists.iem.at
I want to go back. Package management seems like an awesome idea until this. Just give me a download including all the libraries statically linked and I will happily download a few MB more.... /rant end./
In the meantime, can't you install the latest stable release in the package manager? Thanks for helping test the new version at any rate.
I also wonder if this is a "linking jack2 when we want jack1" issue.
Dan Wilcox @danomatika http://twitter.com/danomatika danomatika.com http://danomatika.com/ robotcowboy.com http://robotcowboy.com/
On 2017년 07월 21일 18:03, Dan Wilcox wrote:
In the meantime, can't you install the latest stable release in the package manager? Thanks for helping test the new version at any rate.
I wish I could, but when choosing "force version" in synaptic, I end up with broken packages and can't apply the changes any more.
I also wonder if this is a "linking jack2 when we want jack1" issue.
I don't think so. I had a jack2 system until I just broke everything trying to help debugging..
On Jul 21, 2017, at 6:11 PM, Max abonnements@revolwear.com wrote:
On 2017년 07월 21일 18:03, Dan Wilcox wrote:
In the meantime, can't you install the latest stable release in the package manager? Thanks for helping test the new version at any rate.
I wish I could, but when choosing "force version" in synaptic, I end up with broken packages and can't apply the changes any more.
Ouch. Yeah, I guess I don't have to tell you forcing things is a bad idea. Sorry.
I also wonder if this is a "linking jack2 when we want jack1" issue.
I don't think so. I had a jack2 system until I just broke everything trying to help debugging..
In this case it might have been better to build jack itself from source and then tell pd to link it instead. I believe there is a configure option for this, IOhannes will know for sure.
Dan Wilcox @danomatika http://twitter.com/danomatika danomatika.com http://danomatika.com/ robotcowboy.com http://robotcowboy.com/
On 2017년 07월 21일 18:47, Dan Wilcox wrote:
In this case it might have been better to build jack itself from source and then tell pd to link it instead. I believe there is a configure option for this, IOhannes will know for sure.
I'm willing to try this :)
On 07/21/2017 08:19 PM, Max wrote:
On 2017년 07월 21일 18:47, Dan Wilcox wrote:
In this case it might have been better to build jack itself from source and then tell pd to link it instead. I believe there is a configure option for this, IOhannes will know for sure.
I'm willing to try this :)
there's basically two options. none of them includes any special flags to compile Pd.
first i'd probably restore the old jack configuration, so you can have audio again.
#1 rebuild the (proper, working) libjack packages with debugging symbols. there's a description how to build your package with debug symbols if you cannot obtain them otherwise on [1] (in retrospect, this would have been the better choice). this will create a number of packages, you only need to install the newly created libjack-jackd2-0 (which ought to have the exact same version as the original package).
#2 alternatively, you could just rebuild jack2 and do a sudo make install
(which will (well "should"; i haven't manually checked) install
to /usr/local/). then run sudo ldconfig
, and any newly started
application will start using libjack.so from /usr/local/lib/.
this is more brittle then #1, as it potentially uses a different libjack
version - potentially breaking your system (again).
in theory you could also *not* make install
, and then start Pd with
LD_LIBRARY_PATH to force using the non-installed libjack.so
LD_LIBRARY_PATH=/path/to/src/jack/wherever/libjack.so/is/ gdb ./pd
that's probably even more error-prone, because you might end up using a jackd server with a non-matching pd/libjack
another interesting test would be to switch your system to jackd1 (as provided by kxstudio), and see whether that works. (you shouldn't need to uninstall any packages, apart from some "-dev" packages which don't change the runtime characteristics of your system).
gfas IOhannes
[1] https://wiki.debian.org/HowToGetABacktrace#Rebuilding_the_package_you.2BIBk-...
On 2017년 07월 21일 21:21, IOhannes m zmölnig wrote:
On 07/21/2017 08:19 PM, Max wrote:
On 2017년 07월 21일 18:47, Dan Wilcox wrote:
In this case it might have been better to build jack itself from source and then tell pd to link it instead. I believe there is a configure option for this, IOhannes will know for sure.
I'm willing to try this :)
there's basically two options. none of them includes any special flags to compile Pd.
first i'd probably restore the old jack configuration, so you can have audio again.
#1 rebuild the (proper, working) libjack packages with debugging symbols. there's a description how to build your package with debug symbols if you cannot obtain them otherwise on [1] (in retrospect, this would have been the better choice). this will create a number of packages, you only need to install the newly created libjack-jackd2-0 (which ought to have the exact same version as the original package).
Cool, thanks for holding my hand.
I think the rebuilding with debug symbols was successful.
(gdb) run Starting program: /home/max/Code/pd-0.48-0test3/bin/pd [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1". [New Thread 0x7ffff7f32700 (LWP 8921)] [New Thread 0x7ffff7eb1700 (LWP 8923)]
Thread 3 "pd" received signal SIGSEGV, Segmentation fault. [Switching to Thread 0x7ffff7eb1700 (LWP 8923)] 0x00007ffff78b8f96 in Jack::JackLinuxFutex::Connect (this=0x76a990, name=name@entry=0x7ffff7eb0be4 "system", server_name=server_name@entry=0x784610 "default") at ../linux/JackLinuxFutex.cpp:181 181 if (! fPrivate && fFutex->wasInternal)
(gdb) thread apply all bt
Thread 3 (Thread 0x7ffff7eb1700 (LWP 8966)): #0 0x00007ffff78b8f96 in Jack::JackLinuxFutex::Connect (this=0x76a990, name=name@entry=0x7ffff7eb0be4 "system", server_name=server_name@entry=0x784610 "default") at ../linux/JackLinuxFutex.cpp:181 #1 0x00007ffff78b99c5 in Jack::JackLibClient::ClientNotifyImp (this=0x7844e0, refnum=0, name=0x7ffff7eb0be4 "system", notify=0, sync=<optimized out>, message=<optimized out>, value1=0, value2=0) at ../common/JackLibClient.cpp:169 #2 0x00007ffff7893fc8 in Jack::JackClient::ClientNotify (this=0x7844e0, refnum=0, name=0x7ffff7eb0be4 "system", notify=<optimized out>, sync=1, message=0x7ffff7eb0c3c "", value1=0, value2=0) at ../common/JackClient.cpp:210 #3 0x00007ffff78bbb6a in Jack::JackSocketClientChannel::Execute (this=0x764970) at ../posix/JackSocketClientChannel.cpp:143 #4 0x00007ffff78b6aa0 in Jack::JackPosixThread::ThreadHandler (arg=0x764a98) at ../posix/JackPosixThread.cpp:59 #5 0x00007ffff766c6ba in start_thread (arg=0x7ffff7eb1700) at pthread_create.c:333 #6 0x00007ffff6e953dd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109
Thread 2 (Thread 0x7ffff7f32700 (LWP 8964)): #0 pthread_cond_wait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185 #1 0x00007ffff78b78cc in Jack::JackPosixProcessSync::Wait (this=this@entry=0x784458) at ../posix/JackPosixProcessSync.cpp:81 #2 0x00007ffff78aa828 in Jack::JackMessageBuffer::Execute (this=0x77c220) at ../common/JackMessageBuffer.cpp:104 #3 0x00007ffff78b6aa0 in Jack::JackPosixThread::ThreadHandler (arg=0x784438) at ../posix/JackPosixThread.cpp:59 #4 0x00007ffff766c6ba in start_thread (arg=0x7ffff7f32700) at pthread_create.c:333 #5 0x00007ffff6e953dd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109
Thread 1 (Thread 0x7ffff7f348c0 (LWP 8955)): #0 0x00007ffff767551d in read () at ../sysdeps/unix/syscall-template.S:84 #1 0x00007ffff78b81f5 in read (__nbytes=4, __buf=<optimized out>, __fd=<optimized out>) at /usr/include/x86_64-linux-gnu/bits/unistd.h:44 #2 Jack::JackClientSocket::Read (this=0x764950, data=<optimized out>, len=4) at ../posix/JackSocket.cpp:187 #3 0x00007ffff78a1e4b in Jack::JackResult::Read (trans=0x764950, this=0x7fffffffd6e0) at ../common/JackRequest.h:143 #4 Jack::JackClientOpenResult::Read (trans=0x764950, this=0x7fffffffd6e0) at ../common/JackRequest.h:294 #5 Jack::JackGenericClientChannel::ServerSyncCall (result=0x7fffffffd7dc, res=0x7fffffffd6e0, req=0x7fffffffd700, this=0x764970) at ../common/JackGenericClientChannel.cpp:68 #6 Jack::JackGenericClientChannel::ClientOpen (this=0x764970, name=name@entry=0x7fffffffd7e0 "pure_data", pid=8955, uuid=uuid@entry=-1, shared_engine=shared_engine@entry=0x7fffffffd7d0, shared_client=shared_client@entry=0x7fffffffd7d4, shared_graph=0x7fffffffd7d8, result=0x7fffffffd7dc) at ../common/JackGenericClientChannel.cpp:113 #7 0x00007ffff78b9aff in Jack::JackLibClient::Open (this=0x7844e0, server_name=0x7ffff78bcb9f "default", name=<optimized out>, uuid=-1, options=JackNoStartServer, status=0x7fffffffd9fc) at ../common/JackLibClient.cpp:114 #8 0x00007ffff78bb0da in jack_client_open_aux (ap=0x7fffffffd8b8, status=0x7fffffffd9fc, options=JackNoStartServer, client_name=0x763200 "pure_data") at ../common/JackLibAPI.cpp:155 #9 jack_client_open (ext_client_name=0x763200 "pure_data", options=JackNoStartServer, status=<optimized out>) at ../common/JackLibAPI.cpp:176 #10 0x00000000004d9a28 in jack_open_audio (inchans=2, outchans=2, rate=48000, callback=0x0) at s_audio_jack.c:341 #11 0x000000000048b591 in sys_reopen_audio () at s_audio.c:452 #12 0x0000000000492e20 in sys_main (argc=1, argv=0x7fffffffdc98) at s_main.c:384 #13 0x000000000048cc98 in main (argc=1, argv=0x7fffffffdc98) at s_entry.c:32
On 2017년 07월 21일 21:21, IOhannes m zmölnig wrote:
#2 alternatively, you could just rebuild jack2 and do a
sudo make install
(which will (well "should"; i haven't manually checked) install to /usr/local/). then runsudo ldconfig
, and any newly started application will start using libjack.so from /usr/local/lib/. this is more brittle then #1, as it potentially uses a different libjack version - potentially breaking your system (again). in theory you could also *not*make install
, and then start Pd with LD_LIBRARY_PATH to force using the non-installed libjack.soLD_LIBRARY_PATH=/path/to/src/jack/wherever/libjack.so/is/ gdb ./pd
that's probably even more error-prone, because you might end up using a jackd server with a non-matching pd/libjack
ooh, that sounds like playing with fire. Not sure if I am ready for this.
another interesting test would be to switch your system to jackd1 (as provided by kxstudio), and see whether that works. (you shouldn't need to uninstall any packages, apart from some "-dev" packages which don't change the runtime characteristics of your system).
seems easy - Starting Synaptic shows me now libjack-jackd2-0 wants to be upgraded with the same version - that's probably because I installed the debug symbols version locally (?)
however, marking jackd1 for installation results in broken packages which I don't know how to resolve. See attachment
On 07/21/2017 06:11 PM, Max wrote:
I also wonder if this is a "linking jack2 when we want jack1" issue.
I don't think so. I had a jack2 system until I just broke everything trying to help debugging..
i don't think so either. jackd2 and jackd1 are really binary compatible.
they offer slightly different feature-sets (like dbus support), but that's not something that is visible to the consuming applications (those that link against libjack).
fmgards IOhannes
PS: of course i feel your pain that you broke the system. i'm really sorry about this, despite my "more important" remark in my other mail.