illegal repeatsegment
Reported version
3.6
Priority
P1 - High
Type
Functional
Frequency
Few
Severity
S2 - Critical
Reproducibility
Always
Status
closed
Regression
No
Workaround
Yes
Project
1.) Open attached score or create a score with:
* Open Volta that has to be skipped
* Jump at end of open volta
* End Repeat at same bar as that Jump
* Jump+End Repeat must be at section/score end
2.) Press Rewind/Play
Expected Result: Rewind/Play executed
Actual Result: crash
Original report and stacktrace by Jojo at https://musescore.org/en/node/309288#comment-1107749
Attachment | Size |
---|---|
repeat67.mscx | 6.17 KB |
Fix version
4.0.0
Comments
Parsing logic made it so that the Jump aborts the volta, but doing so leads to the repeat no longer being covered by it.
As a consequence, unwinding then tries to add a nullptr repeatsegment to the repeatlist due to processing that repeat after skipping the volta. Further processing of the repeatlist by other functionality (such as UpdateTempo) then crashes on the unexpected nullptr in it.
3.x: https://github.com/musescore/MuseScore/pull/10158
4.x: https://github.com/musescore/MuseScore/pull/10159
Now integrated into https://github.com/musescore/MuseScore/pull/9000
Hopefully into the master branch too
Here's the score that crashed in 3.6.2.
The crash is fixed with those PRs, the playback though stops at the Fine in the 1st round already.
Is that intended?
In reply to Here's the score that… by Jojo-Schmitz
It stops right before that fine and is intended:
The "5" is skipped, next for evaluation is the "1,2,3,4" (which is actually a "2") and it is also skipped (no repeats yet, thus playcount is still one). That volta covers the end repeat barline and as such the repeat instruction is also skipped at which point the end of section/score is hit. Which in turn makes playback stop.
OK, thanks.
Came up again in #335346: Immediate crash on playback when replacing a "Secunda Volta" with a "Secunda Volta, open" and is still an issue in MU4, actually there such a score crashes on open already, not only on play
(Workaround is to use closed voltas)
Fixed in branch master, commit aa22f018d4
fix #327681 illegal repeatsegment inserted due to a certain open volta, jump and end repeat combination
Automatically closed -- issue fixed for 2 weeks with no activity.