View Issue Details

IDCategoryLast Update
0008503bugs2020-12-15 23:03
ReporterrosslagerwallAssigned To 
Reproducibilityrandom 
Status newResolutionopen 
PlatformArchOSLinuxOS Version(any)
Product Version6.5 
Fixed in Version 
Summary0008503: Segfault when quitting (related to jack)
DescriptionSince upgrading to 6.5, I get sporadic segfaults when quitting Ardour. It has happened several times, but not consistently.

It seems to be related to jack clean up. The stack trace is below but unfortunately I didn't have full debugging information. I will try to capture better stack trace in case it is useful.

Program terminated with signal SIGSEGV, Segmentation fault.
#0 0x00007fe585a1b8e7 in std::_Rb_tree<void*, std::pair<void* const, boost::shared_ptr<ARDOUR::JackPort> >, std::_Select1st<std::pair<void* const, boost::shared_ptr<ARDOUR::JackPort> > >, std::less<void*>, std::allocator<std::pair<void* const, boost::shared_ptr<ARDOUR::JackPort> > > >::_M_erase(std::_Rb_tree_node<std::pair<void* const, boost::shared_ptr<ARDOUR::JackPort> > >*) [clone .isra.0] ()
   from /usr/lib/ardour6/backends/libjack_audiobackend.so
[Current thread is 1 (Thread 0x7fe58d841d40 (LWP 5757))]
(gdb) bt
#0 0x00007fe585a1b8e7 in std::_Rb_tree<void*, std::pair<void* const, boost::shared_ptr<ARDOUR::JackPort> >, std::_Select1st<std::pair<void* const, boost::shared_ptr<ARDOUR::JackPort> > >, std::less<void*>, std::allocator<std::pair<void* const, boost::shared_ptr<ARDOUR::JackPort> > > >::_M_erase(std::_Rb_tree_node<std::pair<void* const, boost::shared_ptr<ARDOUR::JackPort> > >*) [clone .isra.0] () at /usr/lib/ardour6/backends/libjack_audiobackend.so
0000001 0x00007fe585a1b8b8 in std::_Rb_tree<void*, std::pair<void* const, boost::shared_ptr<ARDOUR::JackPort> >, std::_Select1st<std::pair<void* const, boost::shared_ptr<ARDOUR::JackPort> > >, std::less<void*>, std::allocator<std::pair<void* const, boost::shared_ptr<ARDOUR::JackPort> > > >::_M_erase(std::_Rb_tree_node<std::pair<void* const, boost::shared_ptr<ARDOUR::JackPort> > >*) [clone .isra.0] () at /usr/lib/ardour6/backends/libjack_audiobackend.so
#2 0x00007fe585a1b8b8 in std::_Rb_tree<void*, std::pair<void* const, boost::shared_ptr<ARDOUR::JackPort> >, std::_Select1st<std::pair<void* const, boost::shared_ptr<ARDOUR::JackPort> > >, std::less<void*>, std::allocator<std::pair<void* const, boost::shared_ptr<ARDOUR::JackPort> > > >::_M_erase(std::_Rb_tree_node<std::pair<void* const, boost::shared_ptr<ARDOUR::JackPort> > >*) [clone .isra.0] () at /usr/lib/ardour6/backends/libjack_audiobackend.so
#3 0x00007fe585a21452 in ARDOUR::JACKAudioBackend::~JACKAudioBackend() () at /usr/lib/ardour6/backends/libjack_audiobackend.so
0000004 0x00007fe585a21d59 in ARDOUR::JACKAudioBackend::~JACKAudioBackend() () at /usr/lib/ardour6/backends/libjack_audiobackend.so
0000005 0x00007fe585a174c2 in deinstantiate() () at /usr/lib/ardour6/backends/libjack_audiobackend.so
#6 0x00007fe59877ed0f in ARDOUR::AudioEngine::~AudioEngine() () at /usr/lib/ardour6/libardour.so.3
#7 0x00007fe59877fd21 in ARDOUR::AudioEngine::destroy() () at /usr/lib/ardour6/libardour.so.3
0000008 0x00007fe5988a1da4 in ARDOUR::cleanup() () at /usr/lib/ardour6/libardour.so.3
0000009 0x000056529ac3ad40 in main ()
(gdb) frame 0
#0 0x00007fe585a1b8e7 in std::_Rb_tree<void*, std::pair<void* const, boost::shared_ptr<ARDOUR::JackPort> >, std::_Select1st<std::pair<void* const, boost::shared_ptr<ARDOUR::JackPort> > >, std::less<void*>, std::allocator<std::pair<void* const, boost::shared_ptr<ARDOUR::JackPort> > > >::_M_erase(std::_Rb_tree_node<std::pair<void* const, boost::shared_ptr<ARDOUR::JackPort> > >*) [clone .isra.0] () from /usr/lib/ardour6/backends/libjack_audiobackend.so
(gdb) info locals
No symbol table info available.
(gdb) disas
Dump of assembler code for function _ZNSt8_Rb_treeIPvSt4pairIKS0_N5boost10shared_ptrIN6ARDOUR8JackPortEEEESt10_Select1stIS8_ESt4lessIS0_ESaIS8_EE8_M_eraseEPSt13_Rb_tree_nodeIS8_E.isra.0:
   0x00007fe585a1b8a0 <+0>: test %rdi,%rdi
   0x00007fe585a1b8a3 <+3>: je 0x7fe585a1b910 <_ZNSt8_Rb_treeIPvSt4pairIKS0_N5boost10shared_ptrIN6ARDOUR8JackPortEEEESt10_Select1stIS8_ESt4lessIS0_ESaIS8_EE8_M_eraseEPSt13_Rb_tree_nodeIS8_E.isra.0+112>
   0x00007fe585a1b8a5 <+5>: push %r12
   0x00007fe585a1b8a7 <+7>: push %rbp
   0x00007fe585a1b8a8 <+8>: push %rbx
   0x00007fe585a1b8a9 <+9>: mov %rdi,%rbx
   0x00007fe585a1b8ac <+12>: mov 0x18(%rbx),%rdi
   0x00007fe585a1b8b0 <+16>: mov %rbx,%r12
   0x00007fe585a1b8b3 <+19>: callq 0x7fe585a1b8a0 <_ZNSt8_Rb_treeIPvSt4pairIKS0_N5boost10shared_ptrIN6ARDOUR8JackPortEEEESt10_Select1stIS8_ESt4lessIS0_ESaIS8_EE8_M_eraseEPSt13_Rb_tree_nodeIS8_E.isra.0>
   0x00007fe585a1b8b8 <+24>: mov 0x30(%r12),%rbp
   0x00007fe585a1b8bd <+29>: mov 0x10(%rbx),%rbx
   0x00007fe585a1b8c1 <+33>: test %rbp,%rbp
   0x00007fe585a1b8c4 <+36>: je 0x7fe585a1b8cc <_ZNSt8_Rb_treeIPvSt4pairIKS0_N5boost10shared_ptrIN6ARDOUR8JackPortEEEESt10_Select1stIS8_ESt4lessIS0_ESaIS8_EE8_M_eraseEPSt13_Rb_tree_nodeIS8_E.isra.0+44>
   0x00007fe585a1b8c6 <+38>: lock decl 0x8(%rbp)
   0x00007fe585a1b8ca <+42>: je 0x7fe585a1b8e0 <_ZNSt8_Rb_treeIPvSt4pairIKS0_N5boost10shared_ptrIN6ARDOUR8JackPortEEEESt10_Select1stIS8_ESt4lessIS0_ESaIS8_EE8_M_eraseEPSt13_Rb_tree_nodeIS8_E.isra.0+64>
   0x00007fe585a1b8cc <+44>: mov %r12,%rdi
   0x00007fe585a1b8cf <+47>: callq 0x7fe585a146d0 <_ZdlPv@plt>
   0x00007fe585a1b8d4 <+52>: test %rbx,%rbx
   0x00007fe585a1b8d7 <+55>: jne 0x7fe585a1b8ac <_ZNSt8_Rb_treeIPvSt4pairIKS0_N5boost10shared_ptrIN6ARDOUR8JackPortEEEESt10_Select1stIS8_ESt4lessIS0_ESaIS8_EE8_M_eraseEPSt13_Rb_tree_nodeIS8_E.isra.0+12>
   0x00007fe585a1b8d9 <+57>: pop %rbx
   0x00007fe585a1b8da <+58>: pop %rbp
   0x00007fe585a1b8db <+59>: pop %r12
   0x00007fe585a1b8dd <+61>: retq
   0x00007fe585a1b8de <+62>: xchg %ax,%ax
   0x00007fe585a1b8e0 <+64>: mov 0x0(%rbp),%rax
   0x00007fe585a1b8e4 <+68>: mov %rbp,%rdi
=> 0x00007fe585a1b8e7 <+71>: callq *0x10(%rax)
   0x00007fe585a1b8ea <+74>: lock decl 0xc(%rbp)
   0x00007fe585a1b8ee <+78>: jne 0x7fe585a1b8cc <_ZNSt8_Rb_treeIPvSt4pairIKS0_N5boost10shared_ptrIN6ARDOUR8JackPortEEEESt10_Select1stIS8_ESt4lessIS0_ESaIS8_EE8_M_eraseEPSt13_Rb_tree_nodeIS8_E.isra.0+44>
   0x00007fe585a1b8f0 <+80>: mov 0x0(%rbp),%rax
   0x00007fe585a1b8f4 <+84>: mov %rbp,%rdi
   0x00007fe585a1b8f7 <+87>: mov 0x18(%rax),%rdx
   0x00007fe585a1b8fb <+91>: cmp 0x2642e(%rip),%rdx # 0x7fe585a41d30
   0x00007fe585a1b902 <+98>: jne 0x7fe585a1b911 <_ZNSt8_Rb_treeIPvSt4pairIKS0_N5boost10shared_ptrIN6ARDOUR8JackPortEEEESt10_Select1stIS8_ESt4lessIS0_ESaIS8_EE8_M_eraseEPSt13_Rb_tree_nodeIS8_E.isra.0+113>
   0x00007fe585a1b904 <+100>: callq *0x8(%rax)
   0x00007fe585a1b907 <+103>: jmp 0x7fe585a1b8cc <_ZNSt8_Rb_treeIPvSt4pairIKS0_N5boost10shared_ptrIN6ARDOUR8JackPortEEEESt10_Select1stIS8_ESt4lessIS0_ESaIS8_EE8_M_eraseEPSt13_Rb_tree_nodeIS8_E.isra.0+44>
   0x00007fe585a1b909 <+105>: nopl 0x0(%rax)
   0x00007fe585a1b910 <+112>: retq
   0x00007fe585a1b911 <+113>: callq *%rdx
   0x00007fe585a1b913 <+115>: jmp 0x7fe585a1b8cc <_ZNSt8_Rb_treeIPvSt4pairIKS0_N5boost10shared_ptrIN6ARDOUR8JackPortEEEESt10_Select1stIS8_ESt4lessIS0_ESaIS8_EE8_M_eraseEPSt13_Rb_tree_nodeIS8_E.isra.0+44>
End of assembler dump.
Additional InformationI'm using jack as the audio backend. I compiled Ardour from the 6.5 tag.
TagsNo tags attached.

Activities

There are no notes attached to this issue.

Issue History

Date Modified Username Field Change
2020-12-15 23:03 rosslagerwall New Issue