View Issue Details
| ID | Project | Category | View Status | Date Submitted | Last Update |
|---|---|---|---|---|---|
| 0004963 | ardour | bugs | public | 2012-06-28 09:44 | 2020-04-19 20:16 |
| Reporter | mikkl | Assigned To | cth103 | ||
| Priority | normal | Severity | crash | Reproducibility | always |
| Status | closed | Resolution | fixed | ||
| Platform | amd64 | OS | Gentoo Linux | OS Version | Kernel 3.4.4 |
| Target Version | 3.0 | ||||
| Summary | 0004963: assertion failure when opening session with recorded tracks | ||||
| Description | When opening a session ardour crashes with following assertion failed: ardour-3.0: /usr/include/boost/smart_ptr/shared_ptr.hpp:424: T* boost::shared_ptr<T>::operator->() const [with T = ARDOUR::AudioFileSource]: Assertion `px != 0' failed. | ||||
| Steps To Reproduce | 1. Create a new session 2. Record at least 1 audiotrack 3. Close and reopen the session | ||||
| Additional Information | The crash does not occur under 2 circumstances: 1. When there are no recorded tracks in the session 2. If there are recorded tracks, when removing write permissions on the .ardour session file I also found out that the last SVN version where this error didn't occur was 12921 | ||||
| Tags | No tags attached. | ||||
|
2012-06-28 09:44
|
|
|
2012-06-28 09:44
|
|
|
|
I got hit by this issue today and as the reporter mentions the commit that introduced this was svn@12922. The commit was to fix issue 0004947 and while it may of fixed that issue it looks as though it introduces at least this problem. From what I can tell in Track::set_state calling Route::set_state after set_diskstream means that Diskstream::set_track is called before the input IO state is set(route.cc:2048) which means that in Diskstream::set_track _io->n_ports() == ChanCount::ZERO and Diskstream::non_realtime_input_change () doesn't get called at Diskstream.cc:165 which calls Diskstream::reset_write_sources to set up the write sources for capture. This means(as you can see in the BT the report has attached) that later in Track::set_state(track.cc:155), AudioDiskstream::engage_record_enable is called(via the Controllable) without valid write sources. I hope this analysis is correct(I'm not very familiar with this section of code)and helps the other developers to come up with a solution that fixes both issues. |
|
|
Thanks Tim. Fixed in SVN 12986. |
|
|
Issue has been closed automatically, by Trigger Close Plugin. Feel free to re-open with additional information if you think the issue is not resolved. |
| Date Modified | Username | Field | Change |
|---|---|---|---|
| 2012-06-28 09:44 | mikkl | New Issue | |
| 2012-06-28 09:44 | mikkl | File Added: ardour.backtrace | |
| 2012-06-28 09:44 | mikkl | File Added: ardour.debug | |
| 2012-06-28 11:58 | cth103 | cost | => 0.00 |
| 2012-06-28 11:58 | cth103 | Target Version | => 3.0 |
| 2012-06-28 17:12 | cth103 | Status | new => confirmed |
| 2012-07-01 08:23 | timbyr | Note Added: 0013757 | |
| 2012-07-04 19:48 | cth103 | Relationship added | has duplicate 0004987 |
| 2012-07-04 19:56 | cth103 | Note Added: 0013774 | |
| 2012-07-04 19:56 | cth103 | Status | confirmed => resolved |
| 2012-07-04 19:56 | cth103 | Resolution | open => fixed |
| 2012-07-04 19:56 | cth103 | Assigned To | => cth103 |
| 2020-04-19 20:16 | system | Note Added: 0023101 | |
| 2020-04-19 20:16 | system | Status | resolved => closed |