Corruptions in (linked) parts get detected, but only reported in the debug output, not in a dialog box like for corrupt scores
- take the score from https://musescore.org/en/node/138791#comment-588771
- open it in a self-built (i.e. in DEBUG mode) ea88600
This gives the folloing debug output:
Debug: read206 (...\MuseScore\libmscore\read206.cpp:1667, Ms::Score::FileError Ms::MasterScore::read206(Ms::XmlReader&))
Debug: ---link 13338 not found (17250) (...\MuseScore\libmscore\element.cpp:712, virtual bool Ms::Element::readProperties(Ms::XmlReader&))
Debug: ---link 4478 not found (17251) (...\MuseScore\libmscore\element.cpp:712, virtual bool Ms::Element::readProperties(Ms::XmlReader&))
Debug: ---link 4479 not found (17252) (...\MuseScore\libmscore\element.cpp:712, virtual bool Ms::Element::readProperties(Ms::XmlReader&))
Debug: ---link 15507 not found (17253) (...\MuseScore\libmscore\element.cpp:712, virtual bool Ms::Element::readProperties(Ms::XmlReader&))
Debug: ---link 12214 not found (17254) (...\MuseScore\libmscore\element.cpp:712, virtual bool Ms::Element::readProperties(Ms::XmlReader&))
Debug: ---link 13798 not found (17255) (...\MuseScore\libmscore\element.cpp:712, virtual bool Ms::Element::readProperties(Ms::XmlReader&))
Debug: ---link 4538 not found (17256) (...\MuseScore\libmscore\element.cpp:712, virtual bool Ms::Element::readProperties(Ms::XmlReader&))
Debug: ---link 13800 not found (17257) (...\GitHub\MuseScore\libmscore\element.cpp:712, virtual bool Ms::Element::readProperties(Ms::XmlReader&))
Debug: ---link 15504 not found (17258) (...\MuseScore\libmscore\element.cpp:712, virtual bool Ms::Element::readProperties(Ms::XmlReader&))
Debug: ---link 1 not found (17259) (C...\MuseScore\libmscore\element.cpp:712, virtual bool Ms::Element::readProperties(Ms::XmlReader&))
Debug: ---link 4477 not found (17260) (...\MuseScore\libmscore\element.cpp:712, virtual bool Ms::Element::readProperties(Ms::XmlReader&))
Debug: ---link 5384 not found (17261) (...\MuseScore\libmscore\element.cpp:712, virtual bool Ms::Element::readProperties(Ms::XmlReader&))
Debug: ---link 15437 not found (17262) (...\MuseScore\libmscore\element.cpp:712, virtual bool Ms::Element::readProperties(Ms::XmlReader&))
Debug: ---link 15438 not found (17263) (...\MuseScore\libmscore\element.cpp:712, virtual bool Ms::Element::readProperties(Ms::XmlReader&))
Debug: ---link 15506 not found (17264) (...\MuseScore\libmscore\element.cpp:712, virtual bool Ms::Element::readProperties(Ms::XmlReader&))
Debug: ---link 15505 not found (17265) (...\MuseScore\libmscore\element.cpp:712, virtual bool Ms::Element::readProperties(Ms::XmlReader&))
Debug: ---link 4480 not found (17266) (...\MuseScore\libmscore\element.cpp:712, virtual bool Ms::Element::readProperties(Ms::XmlReader&))
Debug: ---link 4537 not found (17267) (...\MuseScore\libmscore\element.cpp:712, virtual bool Ms::Element::readProperties(Ms::XmlReader&))
Debug: ---link 5681 not found (17268) (...\MuseScore\libmscore\element.cpp:712, virtual bool Ms::Element::readProperties(Ms::XmlReader&))
Debug: ---link 9007 not found (17269) (...\MuseScore\libmscore\element.cpp:712, virtual bool Ms::Element::readProperties(Ms::XmlReader&))
Debug: ---link 13339 not found (17270) (...\MuseScore\libmscore\element.cpp:712, virtual bool Ms::Element::readProperties(Ms::XmlReader&))
Debug: ---link 13797 not found (17271) (...\MuseScore\libmscore\element.cpp:712, virtual bool Ms::Element::readProperties(Ms::XmlReader&))
Debug: ---link 13799 not found (17272) (...\MuseScore\libmscore\element.cpp:712, virtual bool Ms::Element::readProperties(Ms::XmlReader&))
Debug: ---link 15477 not found (17273) (C...\MuseScore\libmscore\element.cpp:712, virtual bool Ms::Element::readProperties(Ms::XmlReader&))
Debug: delete system (...\MuseScore\libmscore\layout.cpp:3559, void Ms::Score::doLayout())
Debug: delete system (...\MuseScore\libmscore\layout.cpp:3559, void Ms::Score::doLayout())
Debug: delete system (...\MuseScore\libmscore\layout.cpp:3559, void Ms::Score::doLayout())
Debug: delete system (...\MuseScore\libmscore\layout.cpp:3559, void Ms::Score::doLayout())
Debug: "Measure 200 Staff 1 incomplete. Expected: 4/4; Found: 0/1" (...\MuseScore\libmscore\check.cpp:200, bool Ms::Score::sanityCheck(const QString&))
Debug: delete system (...\MuseScore\libmscore\layout.cpp:3559, void Ms::Score::doLayout())
Debug: delete system (...\MuseScore\libmscore\layout.cpp:3559, void Ms::Score::doLayout())
Debug: delete system (...\MuseScore\libmscore\layout.cpp:3559, void Ms::Score::doLayout())
Debug: delete system (...\MuseScore\libmscore\layout.cpp:3559, void Ms::Score::doLayout())
Debug: "Measure 200 Staff 1 incomplete. Expected: 4/4; Found: 0/1" (...\MuseScore\libmscore\check.cpp:200, bool Ms::Score::sanityCheck(const QString&))
Debug: delete system (...\MuseScore\libmscore\layout.cpp:3559, void Ms::Score::doLayout())
Debug: "Measure 200 Staff 1 incomplete. Expected: 4/4; Found: 0/1" (...\MuseScore\libmscore\check.cpp:200, bool Ms::Score::sanityCheck(const QString&))
Debug: delete system (...\MuseScore\libmscore\layout.cpp:3559, void Ms::Score::doLayout())
Debug: "Measure 200 Staff 1 incomplete. Expected: 4/4; Found: 0/1" (...\MuseScore\libmscore\check.cpp:200, bool Ms::Score::sanityCheck(const QString&))
Debug: delete system (...\MuseScore\libmscore\layout.cpp:3559, void Ms::Score::doLayout())
Debug: delete system (...\MuseScore\libmscore\layout.cpp:3559, void Ms::Score::doLayout())
Debug: "Measure 203 Staff 1 incomplete. Expected: 4/4; Found: 0/1" (...\MuseScore\libmscore\check.cpp:200, bool Ms::Score::sanityCheck(const QString&))
Debug: "Measure 204 Staff 1 incomplete. Expected: 4/4; Found: 0/1" (...\MuseScore\libmscore\check.cpp:200, bool Ms::Score::sanityCheck(const QString&))
Debug: delete system (...\MuseScore\libmscore\layout.cpp:3559, void Ms::Score::doLayout())
Debug: "Measure 11 Staff 1 incomplete. Expected: 4/4; Found: 0/1" (useScore\libmscore\check.cpp:200, bool Ms::Score::sanityCheck(const QString&))
Debug: "Measure 12 Staff 1 incomplete. Expected: 4/4; Found: 0/1" (...\MuseScore\libmscore\check.cpp:200, bool Ms::Score::sanityCheck(const QString&))
Debug: "Measure 13 Staff 1 incomplete. Expected: 4/4; Found: 0/1" (...\MuseScore\libmscore\check.cpp:200, bool Ms::Score::sanityCheck(const QString&))
Debug: "Measure 203 Staff 1 incomplete. Expected: 4/4; Found: 0/1" (...\MuseScore\libmscore\check.cpp:200, bool Ms::Score::sanityCheck(const QString&))
Debug: "Measure 204 Staff 1 incomplete. Expected: 4/4; Found: 0/1" (...\MuseScore\libmscore\check.cpp:200, bool Ms::Score::sanityCheck(const QString&))Why are all these "inclomplete" Messages don't result in a Dialog box asking wheter to irgnore or not?
Note: 2.0.3 does not report these corruptions (either? Don't have a debug build to check whether they'd show in a debug output there)After having read the file, MuseScore crashes, see #139021: Crash on loading a possibly corrupted 2.0 file
Comments
Removing the parts of that score in 2.0.2 works, loading that fixed file in master then doesn't report any corruption anymore.
However, I wonder whether generally corrupted files from 1.x or 2.x would report these corruptions via a dialog box, or just silently as debug messages, which wouldn't print at all as soon as it is build in INSTALL mode.
Need to test with a file that 2.0 does report as corrupt.
As per #136236: Remove the time signature in the presence of another one in a score with parts leads to corruption/crash, comment #4 , the dialog is only shown for corrupt (main) scores, not for (linked) parts.
Esp. bad in non-debug builds where you don't get any indication of that corruption.
Such corruptions should get reported, to avoid later crashes and would allow for an early indicatioin of a workaround: delete and recreate the parts. Without such a notification the workaround is just way too hard to find
See https://github.com/musescore/MuseScore/issues/15977
and https://github.com/musescore/MuseScore/pull/15988