Reported on rosegarden-devel by Aere Greenway. Crash confirmed with test file. Looks like we try to access an invalid Instrument.
#0 0x00007fafc69f414a in Rosegarden::Instrument::getType (this=0x0) at /home/taco/SVN/rosegarden/src/base/Instrument.h:149 #1 0x00007fafc6a8748d in Rosegarden::RosegardenDocument::initialiseStudio (this=0x281d360) at /home/taco/SVN/rosegarden/src/document/RosegardenDocument.cpp:951 #2 0x00007fafc6a85bfa in Rosegarden::RosegardenDocument::openDocument (this=0x281d360, filename=..., permanent=true, squelchProgressDialog=false, enableLock=true) at /home/taco/SVN/rosegarden/src/document/RosegardenDocument.cpp:655 #3 0x00007fafc6dbaccc in Rosegarden::RosegardenMainWindow::createDocumentFromRGFile (this=0x1f7d670, filePath=..., lock=true) at /home/taco/SVN/rosegarden/src/gui/application/RosegardenMainWindow.cpp:1686 #4 0x00007fafc6dba784 in Rosegarden::RosegardenMainWindow::createDocument (this=0x1f7d670, filePath=..., importType=Rosegarden::RosegardenMainWindow::ImportRG4, lock=true) at /home/taco/SVN/rosegarden/src/gui/application/RosegardenMainWindow.cpp:1631 #5 0x00007fafc6db9a1f in Rosegarden::RosegardenMainWindow::openFile (this=0x1f7d670, filePath=..., type=Rosegarden::RosegardenMainWindow::ImportCheckType) at /home/taco/SVN/rosegarden/src/gui/application/RosegardenMainWindow.cpp:1500 #6 0x0000000000409497 in main (argc=2, argv=0x7ffc6b89bef8) at /home/taco/SVN/rosegarden/src/gui/application/main.cpp:710
The file contains tracks which reference instruments that do not exist.
E.g. track 0 references instrument="3328". There is no instrument 3328 in any device.
This is an easy situation to end up in. Connect some tracks to a device, then delete that device. Now save and reload.
We used to handle this ok, but my new code to initialize the studio allows a NULL pointer to be dereferenced. This is easily fixed.
Should be fixed in [r14776].
Related
Commit: [r14776]
Can confirm that this is fixed with patch to openSUSE's rosegarden-16.06