View Issue Details
| ID | Project | Category | View Status | Date Submitted | Last Update |
|---|---|---|---|---|---|
| 0007004 | ardour | bugs | public | 2016-09-03 03:34 | 2016-09-20 15:57 |
| Reporter | nstewart | Assigned To | paul | ||
| Priority | high | Severity | crash | Reproducibility | always |
| Status | closed | Resolution | fixed | ||
| Platform | x86 | OS | Ubuntu Studio | OS Version | 16.04 |
| Product Version | 5.X git (version in description) | ||||
| Summary | 0007004: Crash on exit if Jack has been stopped | ||||
| Description | If the user attempts to exit Ardour while the Jack server has been stopped, ardour will crash git version: cbd310ef650c88e61d65defdfc3e785aa9dc7326 | ||||
| Steps To Reproduce | 1. Start Jack 2. Start Ardour 3. Stop Jack 4. Exit Ardour. | ||||
| Additional Information | JACK HALTED: JACK server has been closed Pool: 'AudioEngine 4' max: 2 / 512 Pool: 'autoconnect' max: 0 / 1024 Pool: 'Mackie' max: 0 / 128 Butler drops pool trash Pool: 'butler events' max: 0 / 4096 Pool: 'midiUI' max: 0 / 128 Attempt to unlock mutex that was not locked #0 0x00007f9b888ad418 in __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:54 0000001 0x00007f9b888af01a in __GI_abort () at abort.c:89 #2 0x00007f9b8ceb823d in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0 #3 0x00007f9b90943b33 in Glib::Threads::Mutex::Lock::release (this=0x7ffe8c5231c0) at /usr/include/glibmm-2.4/glibmm/threads.h:688 0000004 0x00007f9b8f3b7263 in ARDOUR::AudioEngine::stop (this=0x3a65ee0, for_latency=false) at ../libs/ardour/audioengine.cc:909 0000005 0x00000000013488f4 in ARDOUR_UI::finish (this=0x3b0d590) at ../gtk2_ardour/ardour_ui.cc:1299 #6 0x000000000139db26 in sigc::bound_mem_functor0<void, ARDOUR_UI>::operator() (this=0x686bf80) at /usr/include/sigc++-2.0/sigc++/functors/mem_fun.h:1787 #7 0x0000000001392f3e in sigc::adaptor_functor<sigc::bound_mem_functor0<void, ARDOUR_UI> >::operator() (this=0x686bf78) at /usr/include/sigc++-2.0/sigc++/adaptors/adaptor_trait.h:256 0000008 0x00000000013e641c in sigc::retype_return_functor<void, sigc::bound_mem_functor0<void, ARDOUR_UI> >::operator() (this=0x686bf70) at /usr/include/sigc++-2.0/sigc++/adaptors/retype_return.h:269 0000009 0x00000000013e4731 in sigc::internal::slot_call0<sigc::retype_return_functor<void, sigc::bound_mem_functor0<void, ARDOUR_UI> >, void>::call_it (rep=0x686bf40) at /usr/include/sigc++-2.0/sigc++/functors/slot.h:108 0000010 0x00007f9b8d3e61f8 in Glib::SignalProxyNormal::slot0_void_callback(_GObject*, void*) () from /usr/lib/x86_64-linux-gnu/libglibmm-2.4.so.1 | ||||
| Tags | No tags attached. | ||||
|
|
0001-Fixes-7004-Ardour-crash-on-Just-Quit-when-AudioEngin.patch (897 bytes)
From 16aa4fd1a7420a1bd9fcaacd04163afb68095c76 Mon Sep 17 00:00:00 2001
From: Nathan Stewart <therealnathanstewart@gmail.com>
Date: Tue, 6 Sep 2016 20:14:25 -0400
Subject: [PATCH] Fixes 7004 - Ardour crash on Just Quit when AudioEngine is
stopped. AudioEngine::stop() if running() is not true and _backend->stop() is
true, mutex was being unlocked without being locked.
---
libs/ardour/audioengine.cc | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/libs/ardour/audioengine.cc b/libs/ardour/audioengine.cc
index 30c2113..2ca80e3 100644
--- a/libs/ardour/audioengine.cc
+++ b/libs/ardour/audioengine.cc
@@ -906,7 +906,9 @@ AudioEngine::stop (bool for_latency)
stop_engine = false;
} else {
if (_backend->stop ()) {
- pl.release ();
+ if (pl.locked ()) {
+ pl.release ();
+ }
return -1;
}
}
--
2.7.4
|
|
|
AudioEngine::stop (), if running() is not true, mutex pl will not be locked. if _backend->stop() is true, then mutex pl will be unlocked even though it was never locked. This appears to happen when the user 'Just Quit's while the audio engine is stopped. |
|
|
applied as 3b7cb8275a4 |
|
|
Fixed in git 3b7cb82 |
| Date Modified | Username | Field | Change |
|---|---|---|---|
| 2016-09-03 03:34 | nstewart | New Issue | |
| 2016-09-07 00:19 | nstewart | File Added: 0001-Fixes-7004-Ardour-crash-on-Just-Quit-when-AudioEngin.patch | |
| 2016-09-11 01:23 | nstewart | Note Added: 0018594 | |
| 2016-09-14 00:27 | paul | Note Added: 0018633 | |
| 2016-09-14 00:27 | paul | Status | new => resolved |
| 2016-09-14 00:27 | paul | Resolution | open => fixed |
| 2016-09-14 00:27 | paul | Assigned To | => paul |
| 2016-09-20 15:57 | nstewart | Note Added: 0018706 | |
| 2016-09-20 15:57 | nstewart | Status | resolved => closed |