Crash on save after creating new part from score with connecting barlines with parts selected in bottom-to-top order
To reproduce, open attached score, go to File -> Parts, click New, check boxes for more than one instrument in bottom-to-top order (e.g., check Viola, Violin II, Violin I), click OK, then attempt to save, or wait for the autosave. MuseScore crashes, and the autorecovery file is corrupted. This can be reproduced with any score with linked parts.
Issue exists in released 2.0.2 and c012358.
Attachment | Size |
---|---|
partscrash.mscz | 19.36 KB |
Comments
Just discovered one more determining factor: this does not happen if the score does not contain connected barlines.
Right, I can reproduce.
All we need to do is create a new part and check Violin II, then Violin I. When saving, it seems to crashes because the staves are inverted. Violin II is over Violin I (the the new part score).
If we check violin I before Violin II, everything works.
I don't know if there's an easy way to sort the linked staves to add them to the new part in the right order.
But the solution lies in excerptsdialog.cpp in function createExcerptClicked.
// a new excerpt is created in AddExcerpt, make sure the parts are filed
for (Excerpt* ee : e->oscore()->excerpts()) {
if (ee->partScore() == nscore) {
ee->parts().clear();
ee->parts().append(e->parts());
}
}
See also https://musescore.org/en/node/91226.
I just wanted to say thanks. I just started having this problem, and I couldn't figure out why.
This probably the most vicious known bug in MuseScore, because it also destroys the automatic backup file.
Does it still, though? We changed the save algorithm so that should never happen any more.
I suppose I was ambiguous just now. I'm referring to the crash backup/autosave—the "MuseScore quit unexpectedly. Restore previous session?" file. This bug leads to that file being reduced to a few bytes and unopenable, even in c6ab148.
OK, I can imagine the auytosave file might be corrupt in this case, but your original file should never be destroyed. If you have steps that destory the actual score, do post those, but as far as I know, that is no longer a problem. Merely having a bogus auto-save file is unfortunate, but not the end of the world.
Fair point. Let's say it's one of the most vicious bugs in 2.0.2, but will soon be only a very vicious bug.
Do we really want the ability to have a different order of instrument in parts?
If yes, I guess we need a better UI... In the meantime, I think I will disallow this and make sure the instruments in the parts are in the same order than in the score, at least at creation time...
Any opinion?
I see two ways of fixing this.
1/ We make sure the span doesn't go over the number of staves
2/ We make sure that parts have the same instrument order than score at part creation time.
So again, does anyone rely on the fact that we can generate parts in the order they instrument are clicked in the part dialog? If not, we can go for 1/, if yes, let's go for 2...
are the instruments in the parts getting reodered, if they get reordered in the parent score?
Can instruments get reodered in part, independantly of parent score?
As of today,
Are the instruments in the parts getting reordered, if they get reordered in the parent score
No
Can instruments get reordered in part, independently of parent score?
No
Which means if you want them in a different order in parts than score, you'd have to add them in that order on part Generation.
May make sense on occasions? But maybe surprising and unwanted in much more cases, so maybe better disallow it altogether for now, and maybe later (i.e. not in 2.0.3) allow reordering?
I would love to hear Isaac since he is the OP
FWIW, I am happy to see us disallow having instruments in a different order between part and score. Seems like allowing that is asking for trouble. Today it's barline span, tomorrow it's brackets, then it's, oh, maybe staff spacing due to lyrics or something else.
Ok, let's do both.
Fixed in branch master, commit 8982eb6d79
fix #91271: Crash on save after creating new part from score with connecting barlines with parts selected in bottom-to-top order
Fixed in branch 2.0.3, commit 888788aee4
fix #91271: Crash on save after creating new part from score with connecting barlines with parts selected in bottom-to-top order
This is great! Thanks!
Automatically closed -- issue fixed for 2 weeks with no activity.