jpcima / ensemble-chorus

Digital model of electronic string ensemble chorus
Boost Software License 1.0
30 stars 2 forks source link

Standalone segfaults #12

Open magnetophon opened 4 years ago

magnetophon commented 4 years ago

When I run ensemble_chorus_fl, I get the following output:

Jack: JackClient::SetupDriverSync driver sem in flush mode
Jack: JackLinuxFutex::Connect name = jack_sem.1000_default_RtApiJackCount
Jack: Clock source : system clock via clock_gettime
Jack: JackLibClient::Open name = RtApiJackCount refnum = 5
Jack: jack_client_close
Jack: JackClient::Close ref = 5
Jack: JackClient::Deactivate
Jack: JackSocketClientChannel::Stop
Jack: JackPosixThread::Kill
Jack: JackClientSocket::Close
Jack: JackClientSocket::Close
Jack: JackLibClient::~JackLibClient
Jack: JackShmReadWritePtr1::~JackShmReadWritePtr1 5
Jack: Succeeded in unlocking 422 byte memory area
Jack: JackLibGlobals Destroy 615320
Jack: ~JackLibGlobals
Jack: no message buffer overruns
Jack: JackPosixThread::Stop
Jack: JackPosixThread::ThreadHandler : exit
Jack: JackShmReadWritePtr::~JackShmReadWritePtr 1
Jack: Succeeded in unlocking 1187 byte memory area
Jack: JackShmReadWritePtr::~JackShmReadWritePtr 0
Jack: Succeeded in unlocking 47664026 byte memory area
Jack: jack_client_close res = 0
Jack: jack_client_open RtApiJackInfo
Jack: JackLibGlobals Init 0
Jack: JackLibGlobals
Jack: JackPosixThread::StartImp : create non RT thread
Jack: JackPosixThread::ThreadHandler : start
Jack: JackGenericClientChannel::ServerCheck = default
Jack: JackClientSocket::Connect : addr.sun_path /dev/shm/jack_default_1000_0
Jack: JackClientSocket::Close
Jack: JackLibClient::JackLibClient table = 6290f0
Jack: JackLibClient::Open name = RtApiJackInfo
Jack: JackSocketClientChannel::Open name = RtApiJackInfo
Jack: JackClientSocket::Connect : addr.sun_path /dev/shm/jack_default_1000_0
Jack: JackServerSocket::Bind : addr.sun_path /dev/shm/jack_RtApiJackInfo_1000_0
Jack: JackSocketClientChannel::Start
Jack: JackPosixThread::StartImp : create non RT thread
Jack: JackPosixThread::ThreadHandler : start
Jack: JackSocketClientChannel::Init
Jack: JackServerSocket::Close /dev/shm/jack_RtApiJackInfo_1000_0
Jack: JackClient::ClientNotify ref = 0 name = system notify = 0
Jack: JackClient::AddClient name = system, ref = 0
Jack: JackLinuxFutex::Connect name = jack_sem.1000_default_system
Jack: JackClient::ClientNotify ref = 1 name = freewheel notify = 0
Jack: JackClient::AddClient name = freewheel, ref = 1
Jack: JackLinuxFutex::Connect name = jack_sem.1000_default_freewheel
Jack: JackClient::ClientNotify ref = 2 name = qjackctl notify = 0
Jack: JackClient::AddClient name = qjackctl, ref = 2
Jack: JackLinuxFutex::Connect name = jack_sem.1000_default_qjackctl
Jack: JackClient::ClientNotify ref = 3 name = Simple Scope (4 channel) notify = 0
Jack: JackClient::AddClient name = Simple Scope (4 channel), ref = 3
Jack: JackLinuxFutex::Connect name = jack_sem.1000_default_Simple Scope (4 channel)
Jack: JackClient::ClientNotify ref = 4 name = LLng notify = 0
Jack: JackClient::AddClient name = LLng, ref = 4
Jack: JackLinuxFutex::Connect name = jack_sem.1000_default_LLng
Jack: JackShmReadWritePtr::Init 1 -1
Jack: Succeeded in locking 1187 byte memory area
Jack: JackShmReadWritePtr::Init 0 -1
Jack: Succeeded in locking 47664026 byte memory area
Jack: JackShmReadWritePtr1::Init 5 -1
Jack: Succeeded in locking 422 byte memory area
Jack: JackClient::SetupDriverSync driver sem in flush mode
Jack: JackLinuxFutex::Connect name = jack_sem.1000_default_RtApiJackInfo
Jack: Clock source : system clock via clock_gettime
Jack: JackLibClient::Open name = RtApiJackInfo refnum = 5
Jack: jack_client_close
Jack: JackClient::Close ref = 5
Jack: JackClient::Deactivate
Jack: JackSocketClientChannel::Stop
Jack: JackPosixThread::Kill
Jack: JackClientSocket::Close
Jack: JackClientSocket::Close
Jack: JackLibClient::~JackLibClient
Jack: JackShmReadWritePtr1::~JackShmReadWritePtr1 5
Jack: Succeeded in unlocking 422 byte memory area
Jack: JackLibGlobals Destroy 6290d0
Jack: ~JackLibGlobals
Jack: no message buffer overruns
Jack: JackPosixThread::Stop
Jack: JackPosixThread::ThreadHandler : exit
Jack: JackShmReadWritePtr::~JackShmReadWritePtr 1
Jack: Succeeded in unlocking 1187 byte memory area
Jack: JackShmReadWritePtr::~JackShmReadWritePtr 0
Jack: Succeeded in unlocking 47664026 byte memory area
Jack: jack_client_close res = 0
Jack: jack_client_open RtApiJackCount
Jack: JackLibGlobals Init 0
Jack: JackLibGlobals
Jack: JackPosixThread::StartImp : create non RT thread
Jack: JackPosixThread::ThreadHandler : start
Jack: JackGenericClientChannel::ServerCheck = default
Jack: JackClientSocket::Connect : addr.sun_path /dev/shm/jack_default_1000_0
Jack: JackClientSocket::Close
Jack: JackLibClient::JackLibClient table = 6290f0
Jack: JackLibClient::Open name = RtApiJackCount
Jack: JackSocketClientChannel::Open name = RtApiJackCount
Jack: JackClientSocket::Connect : addr.sun_path /dev/shm/jack_default_1000_0
Jack: JackServerSocket::Bind : addr.sun_path /dev/shm/jack_RtApiJackCount_1000_0
Jack: JackSocketClientChannel::Start
Jack: JackPosixThread::StartImp : create non RT thread
Jack: JackPosixThread::ThreadHandler : start
Jack: JackSocketClientChannel::Init
Jack: JackServerSocket::Close /dev/shm/jack_RtApiJackCount_1000_0
Jack: JackClient::ClientNotify ref = 0 name = system notify = 0
Jack: JackClient::AddClient name = system, ref = 0
Jack: JackLinuxFutex::Connect name = jack_sem.1000_default_system
Jack: JackClient::ClientNotify ref = 1 name = freewheel notify = 0
Jack: JackClient::AddClient name = freewheel, ref = 1
Jack: JackLinuxFutex::Connect name = jack_sem.1000_default_freewheel
Jack: JackClient::ClientNotify ref = 2 name = qjackctl notify = 0
Jack: JackClient::AddClient name = qjackctl, ref = 2
Jack: JackLinuxFutex::Connect name = jack_sem.1000_default_qjackctl
Jack: JackClient::ClientNotify ref = 3 name = Simple Scope (4 channel) notify = 0
Jack: JackClient::AddClient name = Simple Scope (4 channel), ref = 3
Jack: JackLinuxFutex::Connect name = jack_sem.1000_default_Simple Scope (4 channel)
Jack: JackClient::ClientNotify ref = 4 name = LLng notify = 0
Jack: JackClient::AddClient name = LLng, ref = 4
Jack: JackLinuxFutex::Connect name = jack_sem.1000_default_LLng
Jack: JackShmReadWritePtr::Init 1 -1
Jack: Succeeded in locking 1187 byte memory area
Jack: JackShmReadWritePtr::Init 0 -1
Jack: Succeeded in locking 47664026 byte memory area
Jack: JackShmReadWritePtr1::Init 5 -1
Jack: Succeeded in locking 422 byte memory area
Jack: JackClient::SetupDriverSync driver sem in flush mode
Jack: JackLinuxFutex::Connect name = jack_sem.1000_default_RtApiJackCount
Jack: Clock source : system clock via clock_gettime
Jack: JackLibClient::Open name = RtApiJackCount refnum = 5
Jack: jack_client_close
Jack: JackClient::Close ref = 5
Jack: JackClient::Deactivate
Jack: JackSocketClientChannel::Stop
Jack: JackPosixThread::Kill
Jack: JackClientSocket::Close
Jack: JackClientSocket::Close
Jack: JackLibClient::~JackLibClient
Jack: JackShmReadWritePtr1::~JackShmReadWritePtr1 5
Jack: Succeeded in unlocking 422 byte memory area
Jack: JackLibGlobals Destroy 6290d0
Jack: ~JackLibGlobals
Jack: no message buffer overruns
Jack: JackPosixThread::ThreadHandler : exit
Jack: JackPosixThread::Stop
Jack: JackShmReadWritePtr::~JackShmReadWritePtr 1
Jack: Succeeded in unlocking 1187 byte memory area
Jack: JackShmReadWritePtr::~JackShmReadWritePtr 0
Jack: Succeeded in unlocking 47664026 byte memory area
Jack: jack_client_close res = 0
Jack: jack_client_open JPC Ensemble Chorus
Jack: JackLibGlobals Init 0
Jack: JackLibGlobals
Jack: JackPosixThread::StartImp : create non RT thread
Jack: JackPosixThread::ThreadHandler : start
Jack: JackGenericClientChannel::ServerCheck = default
Jack: JackClientSocket::Connect : addr.sun_path /dev/shm/jack_default_1000_0
Jack: JackClientSocket::Close
Jack: JackLibClient::JackLibClient table = 6290f0
Jack: JackLibClient::Open name = JPC Ensemble Chorus
Jack: JackSocketClientChannel::Open name = JPC Ensemble Chorus
Jack: JackClientSocket::Connect : addr.sun_path /dev/shm/jack_default_1000_0
Jack: JackServerSocket::Bind : addr.sun_path /dev/shm/jack_JPC Ensemble Chorus_1000_0
Jack: JackSocketClientChannel::Start
Jack: JackPosixThread::StartImp : create non RT thread
Jack: JackPosixThread::ThreadHandler : start
Jack: JackSocketClientChannel::Init
Jack: JackServerSocket::Close /dev/shm/jack_JPC Ensemble Chorus_1000_0
Jack: JackClient::ClientNotify ref = 0 name = system notify = 0
Jack: JackClient::AddClient name = system, ref = 0
Jack: JackLinuxFutex::Connect name = jack_sem.1000_default_system
Jack: JackClient::ClientNotify ref = 1 name = freewheel notify = 0
Jack: JackClient::AddClient name = freewheel, ref = 1
Jack: JackLinuxFutex::Connect name = jack_sem.1000_default_freewheel
Jack: JackClient::ClientNotify ref = 2 name = qjackctl notify = 0
Jack: JackClient::AddClient name = qjackctl, ref = 2
Jack: JackLinuxFutex::Connect name = jack_sem.1000_default_qjackctl
Jack: JackClient::ClientNotify ref = 3 name = Simple Scope (4 channel) notify = 0
Jack: JackClient::AddClient name = Simple Scope (4 channel), ref = 3
Jack: JackLinuxFutex::Connect name = jack_sem.1000_default_Simple Scope (4 channel)
Jack: JackClient::ClientNotify ref = 4 name = LLng notify = 0
Jack: JackClient::AddClient name = LLng, ref = 4
Jack: JackLinuxFutex::Connect name = jack_sem.1000_default_LLng
Jack: JackShmReadWritePtr::Init 1 -1
Jack: Succeeded in locking 1187 byte memory area
Jack: JackShmReadWritePtr::Init 0 -1
Jack: Succeeded in locking 47664026 byte memory area
Jack: JackShmReadWritePtr1::Init 5 -1
Jack: Succeeded in locking 422 byte memory area
Jack: JackClient::SetupDriverSync driver sem in flush mode
Jack: JackLinuxFutex::Connect name = jack_sem.1000_default_JPC Ensemble Chorus
Jack: Clock source : system clock via clock_gettime
Jack: JackLibClient::Open name = JPC Ensemble Chorus refnum = 5
Jack: JackClient::PortRegister ref = 5 name = JPC Ensemble Chorus:outport 0 type = 32 bit float mono audio port_index = 15
Jack: JackClient::PortRegister ref = 5 name = JPC Ensemble Chorus:outport 1 type = 32 bit float mono audio port_index = 16
[2]    3630 segmentation fault (core dumped)  ensemble_chorus_fl
jpcima commented 4 years ago

Since it dumps core, would you be able to extract a backtrace from it? (on Debug or RelWithDebInfo build)

eg. coredumpctl debug and then bt

magnetophon commented 4 years ago

Here you go:

           PID: 3630 (ensemble_chorus)
           UID: 1000 (bart)
           GID: 100 (users)
        Signal: 11 (SEGV)
     Timestamp: Sun 2019-11-03 14:49:32 CET (41min ago)
  Command Line: ensemble_chorus_fl
    Executable: /nix/store/3spalaqqxlbqddndrp2dl8diiwyd7yrq-ensemble-chorus-unstable-15-02-2019/bin/ensemble_chorus_fl
 Control Group: /user.slice/user-1000.slice/session-1.scope
          Unit: session-1.scope
         Slice: user-1000.slice
       Session: 1
     Owner UID: 1000 (bart)
       Boot ID: 37ac98c4160943f6bd604fbc44fb0fc7
    Machine ID: 289f074dad1e45648fbaa604266d70bc
      Hostname: thinknix
       Storage: /var/lib/systemd/coredump/core.ensemble_chorus.1000.37ac98c4160943f6bd604fbc44fb0fc7.3630.1572788972000000000000.lz4
       Message: Process 3630 (ensemble_chorus) of user 1000 dumped core.

GNU gdb (GDB) 8.3.1
Copyright (C) 2019 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.
This GDB was configured as "x86_64-unknown-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
    <http://www.gnu.org/software/gdb/documentation/>.

For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from /nix/store/3spalaqqxlbqddndrp2dl8diiwyd7yrq-ensemble-chorus-unstable-15-02-2019/bin/ensemble_chorus_fl...
(No debugging symbols found in /nix/store/3spalaqqxlbqddndrp2dl8diiwyd7yrq-ensemble-chorus-unstable-15-02-2019/bin/ensemble_chorus_fl)

warning: core file may not match specified executable file.
[New LWP 3630]
[New LWP 3631]
[New LWP 3638]
[New LWP 3639]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/nix/store/qn76sklvyalzw9ilnxz6sh0020gl2qn6-glibc-2.27/lib/libthread_db.so.1".
Core was generated by `ensemble_chorus_fl'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0  0x00000000004247ba in RtApiJack::probeDeviceOpen(unsigned int, RtApi::StreamMode, unsigned int, unsigned int, unsigned int, unsigned long, unsigned int*, RtAudio::StreamOptions*) ()
[Current thread is 1 (Thread 0x7f74f3610840 (LWP 3630))]
warning: File "/nix/store/ddkfn28jz1xhn7czbxrliiq3ap4m5mln-gcc-8.3.0-lib/lib/libstdc++.so.6.0.25-gdb.py" auto-loading has been declined by your `auto-load safe-path' set to "$debugdir:$datadir/auto-load".
To enable execution of this file add
    add-auto-load-safe-path /nix/store/ddkfn28jz1xhn7czbxrliiq3ap4m5mln-gcc-8.3.0-lib/lib/libstdc++.so.6.0.25-gdb.py
line to your configuration file "/home/bart/.gdbinit".
To completely disable this security protection add
    set auto-load safe-path /
line to your configuration file "/home/bart/.gdbinit".
For more information about this security protection see the
"Auto-loading safe path" section in the GDB manual.  E.g., run from the shell:
    info "(gdb)Auto-loading safe path"
(gdb) bt
#0  0x00000000004247ba in RtApiJack::probeDeviceOpen(unsigned int, RtApi::StreamMode, unsigned int, unsigned int, unsigned int, unsigned long, unsigned int*, RtAudio::StreamOptions*) ()
#1  0x000000000041c46c in RtApi::openStream(RtAudio::StreamParameters*, RtAudio::StreamParameters*, unsigned long, unsigned int, unsigned int*, int (*)(void*, void*, unsigned int, double, unsigned int, void*), void*, RtAudio::StreamOptions*, void (*)(RtAudioError::Type, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)) ()
#2  0x000000000040bd20 in main ()
jpcima commented 4 years ago

Are you able to reproduce this backtrace on a debug builds, symbols not stripped ? -DCMAKE_BUILD_TYPE=Debug in cmake

also which Jack version is it?

magnetophon commented 4 years ago

Hmmm, looks the same to me. Maybe I did it wrong, or maybe it's just cause NixOS is a bit odd.

           PID: 7016 (ensemble_chorus)
           UID: 1000 (bart)
           GID: 100 (users)
        Signal: 11 (SEGV)
     Timestamp: Sun 2019-11-03 16:39:37 CET (25s ago)
  Command Line: ensemble_chorus_fl
    Executable: /nix/store/hmvs0lfymqscwapgaqdf8p389jgny6r0-ensemble-chorus-unstable-15-02-2019/bin/ensemble_chorus_fl
 Control Group: /user.slice/user-1000.slice/session-1.scope
          Unit: session-1.scope
         Slice: user-1000.slice
       Session: 1
     Owner UID: 1000 (bart)
       Boot ID: 1397dc3472f64b1eaf8214c2c75455b2
    Machine ID: 289f074dad1e45648fbaa604266d70bc
      Hostname: thinknix
       Storage: /var/lib/systemd/coredump/core.ensemble_chorus.1000.1397dc3472f64b1eaf8214c2c75455b2.7016.1572795577000000000000.lz4
       Message: Process 7016 (ensemble_chorus) of user 1000 dumped core.

GNU gdb (GDB) 8.3.1
Copyright (C) 2019 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.
This GDB was configured as "x86_64-unknown-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
    <http://www.gnu.org/software/gdb/documentation/>.

For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from /nix/store/hmvs0lfymqscwapgaqdf8p389jgny6r0-ensemble-chorus-unstable-15-02-2019/bin/ensemble_chorus_fl...
(No debugging symbols found in /nix/store/hmvs0lfymqscwapgaqdf8p389jgny6r0-ensemble-chorus-unstable-15-02-2019/bin/ensemble_chorus_fl)

warning: core file may not match specified executable file.
[New LWP 7016]
[New LWP 7017]
[New LWP 7024]
[New LWP 7025]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/nix/store/qn76sklvyalzw9ilnxz6sh0020gl2qn6-glibc-2.27/lib/libthread_db.so.1".
Core was generated by `ensemble_chorus_fl'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0  0x000000000041f392 in RtApiJack::probeDeviceOpen(unsigned int, RtApi::StreamMode, unsigned int, unsigned int, unsigned int, unsigned long, unsigned int*, RtAudio::StreamOptions*) ()
[Current thread is 1 (Thread 0x7f3e16f46840 (LWP 7016))]
warning: File "/nix/store/ddkfn28jz1xhn7czbxrliiq3ap4m5mln-gcc-8.3.0-lib/lib/libstdc++.so.6.0.25-gdb.py" auto-loading has been declined by your `auto-load safe-path' set to "$debugdir:$datadir/auto-load".
To enable execution of this file add
    add-auto-load-safe-path /nix/store/ddkfn28jz1xhn7czbxrliiq3ap4m5mln-gcc-8.3.0-lib/lib/libstdc++.so.6.0.25-gdb.py
line to your configuration file "/home/bart/.gdbinit".
To completely disable this security protection add
    set auto-load safe-path /
line to your configuration file "/home/bart/.gdbinit".
For more information about this security protection see the
"Auto-loading safe path" section in the GDB manual.  E.g., run from the shell:
    info "(gdb)Auto-loading safe path"
(gdb) bt
#0  0x000000000041f392 in RtApiJack::probeDeviceOpen(unsigned int, RtApi::StreamMode, unsigned int, unsigned int, unsigned int, unsigned long, unsigned int*, RtAudio::StreamOptions*) ()
#1  0x000000000041d20c in RtApi::openStream(RtAudio::StreamParameters*, RtAudio::StreamParameters*, unsigned long, unsigned int, unsigned int*, int (*)(void*, void*, unsigned int, double, unsigned int, void*), void*, RtAudio::StreamOptions*, void (*)(RtAudioError::Type, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)) ()
#2  0x000000000040bc90 in main ()

I'm using jackdmp version 1.9.12 tmpdir /dev/shm protocol 8