View Issue Details

IDProjectCategoryView StatusLast Update
0004963ardourbugspublic2020-04-19 20:16
Reportermikkl Assigned Tocth103  
PrioritynormalSeveritycrashReproducibilityalways
Status closedResolutionfixed 
Platformamd64OSGentoo LinuxOS VersionKernel 3.4.4
Target Version3.0 
Summary0004963: assertion failure when opening session with recorded tracks
DescriptionWhen 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 Reproduce1. Create a new session
2. Record at least 1 audiotrack
3. Close and reopen the session
Additional InformationThe 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
TagsNo tags attached.

Relationships

has duplicate 0004987 closedcth103 Ardour Crashes when loading a session saved with record enabled track 

Activities

2012-06-28 09:44

 

ardour.backtrace (16,680 bytes)

2012-06-28 09:44

 

ardour.debug (2,874 bytes)

timbyr

2012-07-01 08:23

developer   ~0013757

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.

cth103

2012-07-04 19:56

administrator   ~0013774

Thanks Tim. Fixed in SVN 12986.

system

2020-04-19 20:16

developer   ~0023101

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.

Issue History

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