regression: crash in dynamic layout
If opeing the attached mscz files, mscore-3-dev dies with segemntation violation in Fedora 24 (self compiled).
gdb mscore
GNU gdb (GDB) Fedora 7.11.1-75.fc24
Copyright (C) 2016 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-redhat-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
.
Find the GDB manual and other documentation resources online at:
.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from mscore...(no debugging symbols found)...done.
(gdb) run 1.Satz.mscz
Starting program: /home/local/bin/mscore 1.Satz.mscz
Missing separate debuginfos, use: dnf debuginfo-install glibc-2.23.1-8.fc24.x86_64
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".
[New Thread 0x7fffd6403700 (LWP 17770)]
[New Thread 0x7fffce560700 (LWP 17771)]
[New Thread 0x7fffcdd5f700 (LWP 17772)]
[New Thread 0x7fffcd55e700 (LWP 17773)]
[New Thread 0x7fffbf594700 (LWP 17774)]
[New Thread 0x7fffbd39b700 (LWP 17776)]
[New Thread 0x7fffabeec700 (LWP 17777)]
[New Thread 0x7fffab673700 (LWP 17778)]
Thread 1 "mscore" received signal SIGSEGV, Segmentation fault.
0x0000000000c0266f in Ms::Dynamic::layout() ()
Missing separate debuginfos, use: dnf debuginfo-install GConf2-3.2.6-16.fc24.x86_64 PackageKit-gtk3-module-1.1.1-3.fc24.x86_64 adwaita-qt5-0.4-2.fc24.x86_64 alsa-lib-1.1.1-1.fc24.x86_64 at-spi2-atk-2.20.1-1.fc24.x86_64 at-spi2-core-2.20.2-1.fc24.x86_64 atk-2.20.0-1.fc24.x86_64 avahi-libs-0.6.32-1.fc24.x86_64 bzip2-libs-1.0.6-20.fc24.x86_64 cairo-1.14.6-1.fc24.x86_64 cairo-gobject-1.14.6-1.fc24.x86_64 clucene09-core-0.9.21b-16.fc24.x86_64 cups-libs-2.1.4-1.fc24.x86_64 dbus-glib-0.106-1.fc24.x86_64 dbus-libs-1.11.2-1.fc24.x86_64 dconf-0.26.0-1.fc24.x86_64 double-conversion-2.0.1-7.fc24.x86_64 elfutils-libelf-0.166-2.fc24.x86_64 expat-2.1.1-2.fc24.x86_64 flac-libs-1.3.1-6.fc24.x86_64 fontconfig-2.11.94-6.fc24.x86_64 freetype-2.6.3-2.fc24.x86_64 gdk-pixbuf2-2.34.0-1.fc24.x86_64 glib2-2.48.1-1.fc24.x86_64 gmp-6.1.0-2.fc24.x86_64 gnutls-3.4.13-1.fc24.x86_64 graphite2-1.3.6-1.fc24.x86_64 gsm-1.0.13-14.fc24.x86_64 gtk3-3.20.6-1.fc24.x86_64 gvfs-client-1.28.2-1.fc24.x86_64 harfbuzz-1.2.7-1.fc24.x86_64 jack-audio-connection-kit-1.9.10-5.fc24.x86_64 json-c-0.12-7.fc24.x86_64 keyutils-libs-1.5.9-8.fc24.x86_64 krb5-libs-1.14.1-7.fc24.x86_64 libICE-1.0.9-5.fc24.x86_64 libSM-1.2.2-4.fc24.x86_64 libX11-1.6.3-3.fc24.x86_64 libXau-1.0.8-6.fc24.x86_64 libXcomposite-0.4.4-8.fc24.x86_64 libXcursor-1.1.14-6.fc24.x86_64 libXdamage-1.1.4-8.fc24.x86_64 libXext-1.3.3-4.fc24.x86_64 libXfixes-5.0.2-2.fc24.x86_64 libXi-1.7.6-2.fc24.x86_64 libXinerama-1.1.3-6.fc24.x86_64 libXrandr-1.5.0-3.fc24.x86_64 libXrender-0.9.9-3.fc24.x86_64 libXtst-1.2.2-6.fc24.x86_64 libXxf86vm-1.1.4-3.fc24.x86_64 libasyncns-0.8-10.fc24.x86_64 libattr-2.4.47-16.fc24.x86_64 libcanberra-0.30-11.fc24.x86_64 libcanberra-gtk3-0.30-11.fc24.x86_64 libcap-2.24-9.fc24.x86_64 libcom_err-1.42.13-4.fc24.x86_64 libdatrie-0.2.9-3.fc24.x86_64 libdrm-2.4.68-1.fc24.x86_64 libepoxy-1.3.1-2.fc24.x86_64 libevdev-1.5.1-1.fc24.x86_64 libevent-2.0.21-8.fc24.x86_64 libffi-3.1-9.fc24.x86_64 libgcc-6.1.1-3.fc24.x86_64 libgcrypt-1.6.4-2.fc24.x86_64 libgpg-error-1.21-2.fc24.x86_64 libgudev-230-3.fc24.x86_64 libicu-56.1-4.fc24.x86_64 libidn-1.32-2.fc24.x86_64 libinput-1.3.3-2.fc24.x86_64 libjpeg-turbo-1.5.0-1.fc24.x86_64 libmodman-2.0.1-12.fc24.x86_64 libogg-1.3.2-5.fc24.x86_64 libpciaccess-0.13.4-3.fc24.x86_64 libpng-1.6.23-1.fc24.x86_64 libproxy-0.4.12-3.fc24.x86_64 libselinux-2.5-3.fc24.x86_64 libsndfile-1.0.25-20.fc24.x86_64 libsrtp-1.5.4-3.fc24.x86_64 libstdc++-6.1.1-3.fc24.x86_64 libtasn1-4.8-1.fc24.x86_64 libtdb-1.3.9-1.fc24.x86_64 libthai-0.1.24-1.fc24.x86_64 libtool-ltdl-2.4.6-11.fc24.x86_64 libuuid-2.28-3.fc24.x86_64 libvorbis-1.3.4-6.fc24.x86_64 libvpx-1.5.0-4.fc24.x86_64 libwacom-0.21-1.fc24.x86_64 libwayland-client-1.10.0-1.fc24.x86_64 libwayland-cursor-1.10.0-1.fc24.x86_64 libwayland-server-1.10.0-1.fc24.x86_64 libwebp-0.5.0-2.fc24.x86_64 libxcb-1.11.1-2.fc24.x86_64 libxkbcommon-0.6.1-1.fc24.x86_64 libxkbcommon-x11-0.6.1-1.fc24.x86_64 libxml2-2.9.3-3.fc24.x86_64 libxshmfence-1.2-3.fc24.x86_64 libxslt-1.1.28-12.fc24.x86_64 llvm-libs-3.8.0-1.fc24.x86_64 lz4-r131-2.fc24.x86_64 mesa-dri-drivers-11.2.2-2.20160614.fc24.x86_64 mesa-libEGL-11.2.2-2.20160614.fc24.x86_64 mesa-libGL-11.2.2-2.20160614.fc24.x86_64 mesa-libgbm-11.2.2-2.20160614.fc24.x86_64 mesa-libglapi-11.2.2-2.20160614.fc24.x86_64 mesa-libwayland-egl-11.2.2-2.20160614.fc24.x86_64 minizip-1.2.8-10.fc24.x86_64 mtdev-1.1.5-6.fc24.x86_64 nettle-3.2-2.fc24.x86_64 nspr-4.12.0-1.fc24.x86_64 nss-3.24.0-1.2.fc24.x86_64 nss-softokn-freebl-3.24.0-1.0.fc24.x86_64 nss-util-3.24.0-1.0.fc24.x86_64 openssl-libs-1.0.2h-1.fc24.x86_64 opus-1.1.2-2.fc24.x86_64 p11-kit-0.23.2-2.fc24.x86_64 pango-1.40.1-1.fc24.x86_64 pciutils-libs-3.4.1-2.fc24.x86_64 pcre-8.39-2.fc24.x86_64 pixman-0.34.0-2.fc24.x86_64 portaudio-19-23.fc24.x86_64 protobuf-2.6.1-4.fc24.x86_64 pulseaudio-libs-8.0-6.fc24.x86_64 qgnomeplatform-0.2-5.20160621git.fc24.x86_64 qt5-qtbase-5.6.0-21.fc24.x86_64 qt5-qtbase-gui-5.6.0-21.fc24.x86_64 qt5-qtdeclarative-5.6.0-11.fc24.x86_64 qt5-qtlocation-5.6.0-3.fc24.x86_64 qt5-qtsvg-5.6.0-3.fc24.x86_64 qt5-qttools-libs-clucene-5.6.0-3.fc24.x86_64 qt5-qttools-libs-designer-5.6.0-3.fc24.x86_64 qt5-qttools-libs-help-5.6.0-3.fc24.x86_64 qt5-qtwebchannel-5.6.0-3.fc24.x86_64 qt5-qtwebengine-5.6.0-8.fc24.x86_64 qt5-qtxmlpatterns-5.6.0-4.fc24.x86_64 re2-20160401-2.fc24.x86_64 snappy-1.1.3-2.fc24.x86_64 systemd-libs-229-8.fc24.x86_64 tcp_wrappers-libs-7.6-83.fc24.x86_64 xcb-util-0.4.0-5.fc24.x86_64 xcb-util-image-0.4.0-5.fc24.x86_64 xcb-util-keysyms-0.4.0-3.fc24.x86_64 xcb-util-renderutil-0.3.9-6.fc24.x86_64 xcb-util-wm-0.4.1-8.fc24.x86_64 xz-libs-5.2.2-2.fc24.x86_64 zlib-1.2.8-10.fc24.x86_64
(gdb) bt
#0 0x0000000000c0266f in Ms::Dynamic::layout() ()
#1 0x0000000000c57a65 in Ms::Score::collectSystem(Ms::LayoutContext&) ()
#2 0x0000000000c59759 in Ms::Score::collectPage(Ms::LayoutContext&) ()
#3 0x0000000000c5a39b in Ms::Score::doLayout() ()
#4 0x0000000000d4bfca in Ms::Score::update() ()
#5 0x0000000000976e89 in Ms::readScore(Ms::MasterScore*, QString, bool) ()
#6 0x00000000009772d2 in Ms::MuseScore::readScore(QString const&) ()
#7 0x00000000008075f2 in ()
#8 0x00000000006fc2bc in main ()
Attachment | Size |
---|---|
1.Satz_.mscz | 52.91 KB |
Comments
The official version mscore-2 open the attached mscz file flawlessly.
confirmed with a9ce98a on Windows 7, stack trace:
1 Ms::Dynamic::layout dynamic.cpp 184 0x8a2284
2 Ms::Score::collectSystem layout.cpp 3313 0x80a12a
3 Ms::Score::collectPage layout.cpp 3436 0x80ae29
4 Ms::Score::doLayout layout.cpp 3561 0x80b979
5 Ms::Score::update cmd.cpp 198 0x78171b
6 Ms::readScore file.cpp 2111 0x5a1aca
7 Ms::MuseScore::readScore file.cpp 328 0x5924c2
8 Ms::MuseScore::dropEvent musescore.cpp 1769 0x48a895
9 ZN7QWidget5eventEP6QEvent 0x1b11dad1
10 ?? 0x28c5a8
quick, dirty and easy fix is to change the `else` in dynamic.cpp, line 184 to an `else if (e)`
Looks like the issue got introduced with ae8644f82, which makes me think the real fix is different from my quick and dirty one
The fix helps indeed! Thanks for the quick response :-)
A look into an older version lets me suppose, an additionally "else continue;" after line 184 would be less dirty.
Or just an `if (!e) continue;` directly after line 174.
See https://github.com/musescore/MuseScore/pull/2698
Patch works too!
Fixed in branch master, commit 08f1e12082
fix #116411: crash in dynamic layout
Fixed in branch master, commit 63a43f0fe1
Merge pull request #2698 from Jojo-Schmitz/dynamic-layout
fix #116411: crash in dynamic layout
Automatically closed -- issue fixed for 2 weeks with no activity.