Menu

#1566 Crash when working with files with no Devices

None
closed
None
1
2019-03-20
2019-03-01
No

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.

Discussion

  • Ted Felix

    Ted Felix - 2019-03-01

    Confirmed. Looks like places I've been recently. Wonder what I broke.

     
    • D. Michael McIntyre

      On 03/01/2019 09:52 AM, Ted Felix wrote:

      Confirmed. Looks like places I've been recently. Wonder what I broke.

      Also confirmed. Very similar stack trace here.

      D. Michael McIntyre

       
  • Ted Felix

    Ted Felix - 2019-03-02

    Appears to be between 18.06 and 18.12. Will bisect next.

     
  • Ted Felix

    Ted Felix - 2019-03-02

    Crash is introduced by [r15289]. Time to dig...

     

    Related

    Commit: [r15289]

  • Ted Felix

    Ted Felix - 2019-03-02
    • assigned_to: Ted Felix
     
  • Ted Felix

    Ted Felix - 2019-03-02

    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...

     
  • Ted Felix

    Ted Felix - 2019-03-02

    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.

     
  • Ted Felix

    Ted Felix - 2019-03-02
    • summary: Crash when trying to play some example files --> Crash when working with files with no Devices
     
  • Ted Felix

    Ted Felix - 2019-03-02

    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.

     
  • Ted Felix

    Ted Felix - 2019-03-02

    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]

    • D. Michael McIntyre

      I will continue looking for additional crashes related to compositions
      with no devices.

      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

       
  • Ted Felix

    Ted Felix - 2019-03-20

    I only found one additional crash when adding a Track given no Devices. That is fixed in [r15463].

     

    Related

    Commit: [r15463]

  • Ted Felix

    Ted Felix - 2019-03-20
    • status: open --> closed
     

Log in to post a comment.