How to reproduce :
- File -> Open example... -> Select one of the following files :
exercise_notation.rg
glazunov-for-solo-and-piano-with-cue.rg
glazunov.rg
let-all-mortal-flesh.rg
mandolin-sonatina.rg
mozart-quartet.rg
perfect-moment.rg
test_tuplets.rg
vivaldi-cs3mv2.rg
- Press "Rewind to Beginning" (if needed)
- Press "Play"
Program terminated with signal SIGSEGV, Segmentation fault. #0 0x00007f3a1e9231c2 in std::vector<std::pair<unsigned char, unsigned char>, std::allocator<std::pair<unsigned char, unsigned char> > >::size (this=0x128) at /usr/include/c++/5.5.0/bits/stl_vector.h:655 655 { return size_type(this->_M_impl._M_finish - this->_M_impl._M_start); } [Current thread is 1 (Thread 0x7f39f81f9700 (LWP 24285))] (...) (gdb) bt #0 0x00007f3a1e9231c2 in std::vector<std::pair<unsigned char, unsigned char>, std::allocator<std::pair<unsigned char, unsigned char> > >::size (this=0x128) at /usr/include/c++/5.5.0/bits/stl_vector.h:655 #1 0x00007f3a1e923047 in std::vector<std::pair<unsigned char, unsigned char>, std::allocator<std::pair<unsigned char, unsigned char> > >::vector (this=0x7f39f81f8a10, __x=<error reading variable: Cannot access memory at address 0x130>) at /usr/include/c++/5.5.0/bits/stl_vector.h:320 #2 0x00007f3a1e9229e9 in Rosegarden::ControllerAndPBList::ControllerAndPBList (this=0x7f39f81f8a10, controllers=<error reading variable: Cannot access memory at address 0x130>) at /home/home.mg6/yves/workspace/RG.arbeit/src/gui/seqmanager/ChannelManager.h:47 #3 0x00007f3a1e968acf in Rosegarden::MetronomeMapper::makeReady (this=0x1496240, inserter=..., time=...) at /home/home.mg6/yves/workspace/RG.arbeit/src/gui/seqmanager/MetronomeMapper.cpp:276 #4 0x00007f3a1eaa1a71 in Rosegarden::MappedEventBuffer::iterator::makeReady (this=0xe27fe0, inserter=..., time=...) at /home/home.mg6/yves/workspace/RG.arbeit/src/gui/seqmanager/MappedEventBuffer.h:338 #5 0x00007f3a1eaa13e4 in Rosegarden::MappedBufMetaIterator::fetchEventsNoncompeting (this=0x7f39f0003148, inserter=..., startTime=..., endTime=...) at /home/home.mg6/yves/workspace/RG.arbeit/src/sound/MappedBufMetaIterator.cpp:352 #6 0x00007f3a1eaa10c2 in Rosegarden::MappedBufMetaIterator::fetchEvents (this=0x7f39f0003148, inserter=..., startTime=..., endTime=...) at /home/home.mg6/yves/workspace/RG.arbeit/src/sound/MappedBufMetaIterator.cpp:248 #7 0x00007f3a1eb66a83 in Rosegarden::RosegardenSequencer::getSlice (this=0x7f39f00030c0, mappedEventList=..., start=..., end=..., firstFetch=true) at /home/home.mg6/yves/workspace/RG.arbeit/src/sequencer/RosegardenSequencer.cpp:1181 #8 0x00007f3a1eb669cc in Rosegarden::RosegardenSequencer::fetchEvents (this=0x7f39f00030c0, mappedEventList=..., start=..., end=..., firstFetch=true) at /home/home.mg6/yves/workspace/RG.arbeit/src/sequencer/RosegardenSequencer.cpp:1159 #9 0x00007f3a1eb66cc9 in Rosegarden::RosegardenSequencer::startPlaying (this=0x7f39f00030c0) at /home/home.mg6/yves/workspace/RG.arbeit/src/sequencer/RosegardenSequencer.cpp:1227 #10 0x00007f3a1eb62e24 in Rosegarden::SequencerThread::run (this=0x830e80) at /home/home.mg6/yves/workspace/RG.arbeit/src/sequencer/SequencerThread.cpp:62 #11 0x00007f3a1c604e1a in QThreadPrivate::start(void*) () from /lib64/libQt5Core.so.5 #12 0x00007f3a1bd1166d in start_thread () from /lib64/libpthread.so.0 #13 0x00007f3a19e49e0d in clone () from /lib64/libc.so.6
The problem only happens with the quoted example files.
Other examples work fine.
Confirmed. Looks like places I've been recently. Wonder what I broke.
On 03/01/2019 09:52 AM, Ted Felix wrote:
Also confirmed. Very similar stack trace here.
D. Michael McIntyre
Appears to be between 18.06 and 18.12. Will bisect next.
Crash is introduced by [r15289]. Time to dig...
Related
Commit: [r15289]
It appears that these example files have no Devices in them after they are loaded. So the metronome is pointing nowhere and we get a crash.
Adding a Device then connecting the metronome to it fixes the file.
Tracking down why and how best to handle...
Examining exercise_notation.rg, it has a studio with nothing but a single buss. Looks like an older file format (1.7.0-svn, 1.4.0) that we need to handle properly.
Turned out to be missing checks for null pointers. There are several similar crashes hiding here as well. E.g. load an example that has no devices and try to add a track.
The original playback crash reported here should be fixed in [r15453].
I will continue looking for additional crashes related to compositions with no devices.
Related
Commit: [r15453]
That would probably be because you finally fixed the "phantom studio"
that used to confound me. It used to be you could think you had your
studio set up one way, but it was still pointing at some lingering
remnant from a previous file. This mostly went unnoticed, and the
behavior was ghostly and hard to work out just what was actually
happening. I encountered this while adding or changing something or
other related to the track LEDs if memory serves, and memory doesn't
serve so well anymore.
Anyway, carry on with the good work. We left you a ton of problems, but
you'll get every one of them licked eventually.
--
D. Michael McIntyre
I only found one additional crash when adding a Track given no Devices. That is fixed in [r15463].
Related
Commit: [r15463]