Copy-paste a part with mm rests on another part/mm rests leads to corruption/crash
Reported version
3.1
Type
Functional
Frequency
Many
Severity
S2 - Critical
Reproducibility
Always
Status
closed
Regression
Yes
Workaround
Yes
Project
This is in conjunction to Musescore not playing percussion parts properly.
Attachment | Size |
---|---|
I_Write_Sins_Not_Tragedies_Arati's_Version.mscz | 106.03 KB |
Fix version
3.2.3
Comments
Has occurred about 11 times today.
Has occurred about 11 times today.
In order to investigate, we would need precise steps to reproduce the problem with this score.
Plays back fine here, no crash.
In reply to (No subject) by Jojo-Schmitz
That's weird because it's still happening over here. I can't finish my piece.
try reverting to factory settings
In reply to try reverting to factory… by Jojo-Schmitz
I'm sorry for asking, but how do I do that?
See https://musescore.org/en/handbook/3/revert-factory-settings
In reply to See https://musescore.org/en… by Jojo-Schmitz
Hi I'm sorry to bother you again but reverting to factory settings doesn't make a difference unfortunately...it still keeps quitting unexpectedly.
precise steps to reproduce the problem with this score?
Just opening that score and starting playback does not reproduce the issue.
In reply to precise steps to reproduce… by Jojo-Schmitz
1.Add a new section of the piece to the tenor sax
2. Press save ( I did this as a precaution in case the program quit again, however it still did not save my amends)
3. Program crashes
In reply to precise steps to reproduce… by Jojo-Schmitz
The problem is very similar to issue #290559
What does 1.Add a new section... mean? Add measures (if so how many), put a section break in the tenor sax part only?
In reply to What does 1.Add a new… by mike320
Adding a new section means adding new bars etc.
That didn't cause a crash for me and it seems we're both using version 3.1. It's unlikely that a Mac will crash and not Windows, but perhaps a Mac user could try it. Everyone else who has responded use either windows or linux.
Similar to #290559: Appending measures makes saving crash if corrupt part?
In reply to Similar to #290559: Adding… by Jojo-Schmitz
Probably, also I am using version 3.0, not 3.1, does that make a difference?
Your score says you saved it using 3.1.
In reply to Your score says you saved it… by mike320
oh, ok
In reply to oh, ok by karate_arati
It seems like the problem is only for this file. My other pieces are fine.
In reply to It seems like the problem is… by karate_arati
As it seems that you can reproduce the issue quite easily, could you record the screen actions up to the issue in a small video and post it?
It doesn't seem to be letting me upload it.
Zip the video to upload it.
In reply to Zip the video to upload it. by mike320
Here is a video of what happens.
In reply to Here is a video of what… by karate_arati
Please attach the right/good score. In first attachment, Tenor sax part is empty. Different in the .mov file (images below)
Can you explain what you have done between these "two" files? Change instrument(s) in parts e.g., copy-paste, or other thing?
See, I am not able to add the sax part onto the score because it does not show up afterwards, even after I saved it the previous time before it quitted
In reply to See, I am not able to add… by karate_arati
So if we do it in steps:
1. Add Tenor Sax/ any part
2. Press save
3. Musescore shuts down
4. Re-open Musescore
5. Saved/ Recently added portion is not there
Ok, got it. Worths just to precise a bit, but right now, basically, the program shuts down when saving a part if this part has received previously the pasting of another empty part (so, with a complete mm rest)
Reproducible from scratch.
New provisional title, probably improvable.
Status active of course.
From scratch (other possible scenarios I guess)
1) SATB template + create parts (test file: test satb.mscz )
2) Toggle in Alto part -> Copy this part (ie all range selection)
3) Paste in first Soprano part
4) Remains in this soprano part
5) Save as -> Save
------> crash
Note also:
By disabing mm rest at step #4 (ie in the pasted soprano part): no crash at step #5.
But, you note the corruption at the end of the part:
New title. Basically, mm rests don't appreciate to be copy-paste into the parts.
This leads to crash when saving the destination part, which has become a corrupt part: corruption which appears when disabling the mm rest in the destination part.
In reply to (No subject) by cadiz1
Ok, so say one instrument's part is exactly the same as the other...maybe an octave higher or such...then would I need to paste it in bar by bar without pasting in the mm rests and then put the mm rests in manually while doing so?
No, not bar by bar. Pay attention only to disable mm rests in the first instrument's part, before copy-paste in another instrument's part
(apparently, it's ok if the destination part contains mm rests, but maybe more precautious to disable here too mm rests. Need a bit more checking)
Said in another way: copy-past a part to another part if both contain mm rests must be avoid. If at least the first one (the "copy") doesn't contain mm rests, seems ok.
In reply to No, not bar by bar. Pay… by cadiz1
Ok, thank you so much!
none of the score attached here crash in current master
You talk about which attached score ? At least have you try the steps described here: https://musescore.org/en/node/290546#comment-926315
And of course, after step#5, it crashes with the lastest nightly/master: f0768f1
None of the score attached to this issue here crash for me
But if they do, it'd be a duplicate of #286495: Corrupt score with empty measure crashes on load, wouldn't it?
No, certainly not. You confuse the origin and the result. The root cause is likely this current issue, #290546: Copy-paste a part with mm rests on another part/mm rests leads to corruption/crash
The score from the initial post doesn't crash in current master
Your score crashes after step 5 (I missed those), with an assertion failure, so indeed a different problem:
Fatal: ASSERT: "first()" in file ...\libmscore\measure.cpp, line 1921 (C...\libmscore\measure.cpp:1921, )
Famous last words before that:
Debug: PasteStaff: element TimeSig not handled (...\libmscore\paste.cpp:417, bool Ms::Score::pasteStaff(Ms::XmlReader&, Ms::Segment*, int, Ms::Fraction))
"The score from the initial post doesn't crash in current master"
Please read all the post. Indeed, nobody couldn't crash the programm with the initial score. Things began to be more understood from this comment: https://musescore.org/en/node/290546#comment-926305, and confirmed after: https://musescore.org/en/node/290546#comment-926420
OK, time for the brown paperbag...
That was not necessary! Just take the time necessary to fully evaluate things.
Came up again in https://musescore.org/en/node/291262
Workaround: delete and re-create parts.
But, preferably, beforehand: disable the mm rests at least of the copied part.
The problem seems to occur at the copy end as opposed to the paste end, we are failing to include the last segment in the last measure of the mmrest if it's the last measure of the score, and that's the rest, so we end up copying an empty last measure.
Problem seems to stem from an incomplete solution here: https://github.com/musescore/MuseScore/commit/3a0655682d337aaf883578bfe…, to fix #141496: Copy-paste multimeasure rests containing a full measure, or not after cuting, causes corruption/crash. So even though it seems we are seeing lots of reports of this only recently, it's actually been a problem for some quite some time.
It only occurs if the underlying measures have not been laid out yet (because the part was generated, or score was loaded, and then mmrests were never turned off), because if the measure is laid out, then it has a barline, so we only skip that during the copy, and that's harmless.
Fix should be to improve how we know when to stop copying segments in the case of an mmrest at the end of the score. I should be able to have a PR tomorrow.
https://github.com/musescore/MuseScore/pull/5191
Fixed in branch master, commit 544a91deb6
fix #290546: corruption on copy/paste end final mmrest
Fixed in branch master, commit b552efc74c
_Merge pull request #5191 from MarcSabatella/290546-copy-mmrest
fix #290546: corruption on copy/paste end final mmrest_
Automatically closed -- issue fixed for 2 weeks with no activity.