View Issue Details
| ID | Project | Category | View Status | Date Submitted | Last Update |
|---|---|---|---|---|---|
| 0002489 | ardour | bugs | public | 2008-12-12 10:34 | 2011-08-16 11:11 |
| Reporter | colinf | Assigned To | paul | ||
| Priority | normal | Severity | crash | Reproducibility | always |
| Status | closed | Resolution | fixed | ||
| Product Version | SVN/2.0-ongoing | ||||
| Summary | 0002489: Crash on "undo solo change" in sessions created with monitor bus. | ||||
| Description | This seems pretty reproducible for me: - create a new session, with "Create Monitor Bus" ticked - add a new track to the session - solo the track - undo the solo change Ardour then outputs the following, and exits immediately after: duplicate port name in port registration request glibmm-ERROR **: unhandled exception (type std::exception) in signal handler: what: AudioEngine: cannot register port "Audio 1[control]/out 1": a port with this name already exists: check for duplicated track/bus names aborting... Aborted | ||||
| Tags | No tags attached. | ||||
|
|
Confirmed here with current SVN. |
|
2008-12-15 01:38
|
2489-undo-solo.patch (382 bytes)
diff -r 5eca06819498 libs/ardour/route.cc
--- a/libs/ardour/route.cc Sun Dec 14 23:43:47 2008 +0000
+++ b/libs/ardour/route.cc Mon Dec 15 01:37:14 2008 +0000
@@ -1829,6 +1829,7 @@
string coutname = _name;
coutname += _("[control]");
+ delete _control_outs;
_control_outs = new IO (_session, coutname);
_control_outs->set_state (**(child->children().begin()));
|
|
|
Fixed by the attached patch, I believe. |
|
|
Yes, that works fine. In fact, solo-via-bus didn't work at all for me without this patch, but now works as I'd expect with it applied. Thank you very much! Colin. |
|
2008-12-17 00:17
|
3.0-undo-solo-backtrace.txt (3,006 bytes)
#0 0x084d6227 in boost::detail::atomic_increment (pw=0x44656d65)
at /usr/include/boost/detail/sp_counted_base_gcc_x86.hpp:66
#1 0x084d6240 in boost::detail::sp_counted_base::add_ref_copy (
this=0x44656d61)
at /usr/include/boost/detail/sp_counted_base_gcc_x86.hpp:133
#2 0x084d6268 in shared_count (this=0xbfbd8928, r=@0x9fe0fa4)
at /usr/include/boost/detail/shared_count.hpp:216
#3 0x08597f34 in shared_ptr (this=0xbfbd8924)
at /usr/include/boost/shared_ptr.hpp:131
#4 0x088ee3b4 in ARDOUR::StreamPanner::pan_control (this=0x9fe0f58)
at libs/ardour/ardour/panner.h:76
#5 0xb7e9d620 in ARDOUR::Panner::automation_state (this=0x96dc908)
at libs/ardour/panner.cc:934
#6 0x088e4a05 in PannerUI::update_pan_sensitive (this=0x9af94b4)
at gtk2_ardour/panner_ui.cc:715
#7 0x088e812f in PannerUI::setup_pan (this=0x9af94b4)
at gtk2_ardour/panner_ui.cc:433
#8 0x088e8619 in PannerUI::panner_changed (this=0x9af94b4)
at gtk2_ardour/panner_ui.cc:334
#9 0x0888ba29 in sigc::bound_mem_functor0<void, PannerUI>::operator() (
this=0x9b07cfc) at libs/sigc++2/sigc++/functors/mem_fun.h:1787
#10 0x0888ba40 in sigc::adaptor_functor<sigc::bound_mem_functor0<void, PannerUI> >::operator() (this=0x9b07cf8)
at libs/sigc++2/sigc++/adaptors/adaptor_trait.h:251
#11 0x0888ba5c in sigc::internal::slot_call0<sigc::bound_mem_functor0<void, PannerUI>, void>::call_it (rep=0x9b07ce0)
at libs/sigc++2/sigc++/functors/slot.h:103
#12 0x0850543a in sigc::internal::signal_emit0<void, sigc::nil>::emit (
impl=0x9ac78a0) at libs/sigc++2/sigc++/signal.h:772
#13 0x08505502 in sigc::signal0<void, sigc::nil>::emit (this=0x96dc9b8)
at libs/sigc++2/sigc++/signal.h:2667
#14 0x08505515 in sigc::signal0<void, sigc::nil>::operator() (this=0x96dc9b8)
at libs/sigc++2/sigc++/signal.h:2675
#15 0xb7ea2f38 in ARDOUR::Panner::reset (this=0x96dc908, nouts=1, npans=2)
at libs/ardour/panner.cc:884
#16 0xb7ea38d8 in ARDOUR::Panner::set_state (this=0x96dc908, node=@0x9c5f158)
at libs/ardour/panner.cc:1093
#17 0xb7e4c235 in ARDOUR::IO::set_state (this=0x96dbfe0, node=@0x9c134e0)
at libs/ardour/io.cc:1416
#18 0xb7ef6e43 in ARDOUR::Route::_set_state (this=0x96dbfe0, node=@0x9c5f040,
call_base=true) at libs/ardour/route.cc:2293
#19 0xb7d18701 in ARDOUR::AudioTrack::_set_state (this=0x96dbfe0,
node=@0x9c5f040, call_base=true) at libs/ardour/audio_track.cc:237
#20 0xb7d13a65 in ARDOUR::AudioTrack::set_state (this=0x96dbfe0,
node=@0x9c5f040) at libs/ardour/audio_track.cc:227
#21 0x08988b4a in MementoCommand<ARDOUR::Route>::undo (this=0x9c7ce68)
at libs/pbd/pbd/memento_command.h:69
#22 0xb68207ed in UndoTransaction::undo (this=0x9c11188)
at libs/pbd/undo.cc:137
#23 0xb6820e10 in UndoHistory::undo (this=0x96c6c88, n=0)
at libs/pbd/undo.cc:254
#24 0x0871c0c6 in ARDOUR::Session::undo (this=0x96c6608, n=1)
at libs/ardour/ardour/session.h:821
#25 0x08711b1b in Editor::undo (this=0x94a8fc8, n=1)
at gtk2_ardour/editor_ops.cc:96
|
|
|
This same recipe also causes a crash in 3.0, though I think the cause is more complex. Backtrace attached. |
|
|
I think I've fixed this in 3.0. The fix includes the 2.0-ongoing patch and some more stuff. So I'll leave it up to Paul whether to apply this to 2.0-ongoing. |
|
|
applied to my source code, and will be committed shortly. |
| Date Modified | Username | Field | Change |
|---|---|---|---|
| 2008-12-12 10:34 | colinf | New Issue | |
| 2008-12-14 23:48 | cth103 | Note Added: 0005522 | |
| 2008-12-14 23:48 | cth103 | Status | new => confirmed |
| 2008-12-15 01:38 | cth103 | File Added: 2489-undo-solo.patch | |
| 2008-12-15 01:39 | cth103 | Note Added: 0005523 | |
| 2008-12-15 01:39 | cth103 | Status | confirmed => feedback |
| 2008-12-15 01:39 | cth103 | Status | feedback => assigned |
| 2008-12-15 01:39 | cth103 | Assigned To | => paul |
| 2008-12-15 12:44 | colinf | Note Added: 0005525 | |
| 2008-12-15 12:45 | colinf | Note Edited: 0005525 | |
| 2008-12-17 00:17 | cth103 | File Added: 3.0-undo-solo-backtrace.txt | |
| 2008-12-17 00:17 | cth103 | Note Added: 0005529 | |
| 2008-12-18 18:28 | cth103 | Note Added: 0005539 | |
| 2009-03-02 20:31 | paul | cost | => 0.00 |
| 2009-03-02 20:31 | paul | Status | assigned => resolved |
| 2009-03-02 20:31 | paul | Resolution | open => fixed |
| 2009-03-02 20:31 | paul | Note Added: 0005783 | |
| 2011-08-16 11:11 | colinf | Status | resolved => closed |