Corruptions in (linked) parts get detected, but only reported in the debug output, not in a dialog box like for corrupt scores

• Oct 27, 2016 - 09:01
Type
Functional
Frequency
Few
Severity
S3 - Major
Status
PR created
Regression
No
Workaround
No
Project
  1. take the score from https://musescore.org/en/node/138791#comment-588771
  2. 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.

Title Corruptions from 2.0 score get detected, but only reported in the debug output, not in a dialog box Corruptions in (linked) parts get detected, but only reported in the debug output, not in a dialog box like for corrupt scores
Reported version 3.0 2.1

Esp. bad in non-debug builds where you don't get any indication of that corruption.

Severity S4 - Minor S3 - Major
Reported version 2.1  
Frequency Few
Regression No
Workaround No

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