[GP] Crash on a gpx file import

• Jul 24, 2015 - 21:00
Reported version
2.1
Type
Functional
Severity
S2 - Critical
Status
closed
Project
Tags

MuseScore 2.0.2 / Windows 7

1) Open this gpx (GP6) file: Coldplay - Clocks.gpx

Result: crash

By exporting the same file in gp5 format, its opening works as expected.
Coldplay - Clocks.gp5


Comments

Problem seems to have something to do with an ottava, somehow we are confused about where it ends maybe. Do you see any unusual ottavas in the the original? There don't appear to be any in the gp5 version - or at least, MuseScore did not seem to recognize any.

Indeed, there is an ottava 8va... permanent over the top staff (vocals part).
But by opening the two files (gpx and gp5) with GP6, this ottava which extend on 162 measures (!) is the same, always present, and I don't see an unusual other thing, and another difference between the two files (after a first checking).

Well, after some effort, I can reproduce from scratch with GP6 a minimal crash - 1 measure, 2 staves :)
better than the initial file...!
Involving an ottava indeed.

Conditions:
1) File with a staff, and a note with ottava: test.gpx
Result at the opening: ok

2) Adding a second staff, but the measure is empty: test1.gpx
Result at the opening: ok

3) Adding a note in the measure of the second staff. Like this:
add note.jpg
Result at opening of the gpx file: test2.gpx
Crash

If you delete the ottava: sans ottava.gpx
No crash.

That definitely is reproducible and with further investigations I found that the ottava parsing in MS GP6 import seems a bit broken. It behaves as if the ottava could never end. I'm currently designing a fix that we'll discuss in a PR.

I think I can assign that bug to myself.

Status (old) patch (code needs review) active

PR got closed, unmerged, long time ago, so back to the drawing board?
emeric/eplanet has not been active since more than year, so I'm unassigning the issue

I both couldn't find inspiration and time to fix this issue… Maybe I'll work on it later, but I agree it should be unassigned to make room so that somebody can fix it.