Summary: | media-sound/musescore-3.3.4 - whenever opening a score, segmentation fault in FluidS::Sample::optimize() | ||
---|---|---|---|
Product: | Gentoo Linux | Reporter: | Hans Lub <hanslub42> |
Component: | Current packages | Assignee: | Gentoo Sound Team <sound> |
Status: | RESOLVED FIXED | ||
Severity: | normal | ||
Priority: | Normal | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | Linux | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- | |
Attachments: |
build log
emerge --info output lddtree output |
Created attachment 602732 [details]
emerge --info output
Created attachment 602734 [details]
lddtree output
i tried musescore-3.3.4, but cannot make it crash: musescore /usr/share/mscore-3.3/demos/Reunion.mscz i also tried musescore-9999 and it does not crash neither: musescore /usr/share/mscore-3.4/demos/Reunion.mscz here are my use flags: [ebuild U *] media-sound/musescore-9999::gentoo [3.3.4::gentoo] USE="alsa jack mp3 pulseaudio vorbis -debug -portaudio -portmidi -webengine" 0 KiB and lddtree: musescore => /usr/bin/musescore (interpreter => /lib64/ld-linux-x86-64.so.2) libvorbisfile.so.3 => /usr/lib64/libvorbisfile.so.3 libvorbis.so.0 => /usr/lib64/libvorbis.so.0 libogg.so.0 => /usr/lib64/libogg.so.0 libQt5Solutions_SingleApplication-2.6.so.1 => /usr/lib64/libQt5Solutions_SingleApplication-2.6.so.1 libQt5Solutions_LockedFile-2.4.so.1 => /usr/lib64/libQt5Solutions_LockedFile-2.4.so.1 libfreetype.so.6 => /usr/lib64/libfreetype.so.6 libbz2.so.1.0 => /lib64/libbz2.so.1.0 libpng16.so.16 => /usr/lib64/libpng16.so.16 libsndfile.so.1 => /usr/lib64/libsndfile.so.1 libFLAC.so.8 => /usr/lib64/libFLAC.so.8 libvorbisenc.so.2 => /usr/lib64/libvorbisenc.so.2 libopus.so.0 => /usr/lib64/libopus.so.0 libasound.so.2 => /usr/lib64/libasound.so.2 ld-linux-x86-64.so.2 => /lib64/ld-linux-x86-64.so.2 libQt5Xml.so.5 => /usr/lib64/libQt5Xml.so.5 libQt5XmlPatterns.so.5 => /usr/lib64/libQt5XmlPatterns.so.5 libQt5Svg.so.5 => /usr/lib64/libQt5Svg.so.5 libQt5PrintSupport.so.5 => /usr/lib64/libQt5PrintSupport.so.5 libQt5Help.so.5 => /usr/lib64/libQt5Help.so.5 libQt5Sql.so.5 => /usr/lib64/libQt5Sql.so.5 libz.so.1 => /lib64/libz.so.1 libdl.so.2 => /lib64/libdl.so.2 libpthread.so.0 => /lib64/libpthread.so.0 libpulse.so.0 => /usr/lib64/libpulse.so.0 libpulsecommon-13.0.so => /usr/lib64/pulseaudio/libpulsecommon-13.0.so libX11-xcb.so.1 => /usr/lib64/libX11-xcb.so.1 libX11.so.6 => /usr/lib64/libX11.so.6 libxcb.so.1 => /usr/lib64/libxcb.so.1 libXau.so.6 => /usr/lib64/libXau.so.6 libXdmcp.so.6 => /usr/lib64/libXdmcp.so.6 libbsd.so.0 => /usr/lib64/libbsd.so.0 libICE.so.6 => /usr/lib64/libICE.so.6 libSM.so.6 => /usr/lib64/libSM.so.6 libuuid.so.1 => /lib64/libuuid.so.1 libXtst.so.6 => /usr/lib64/libXtst.so.6 libXext.so.6 => /usr/lib64/libXext.so.6 libasyncns.so.0 => /usr/lib64/libasyncns.so.0 libresolv.so.2 => /lib64/libresolv.so.2 librt.so.1 => /lib64/librt.so.1 libdbus-1.so.3 => /usr/lib64/libdbus-1.so.3 libQt5Quick.so.5 => /usr/lib64/libQt5Quick.so.5 libQt5QmlModels.so.5 => /usr/lib64/libQt5QmlModels.so.5 libQt5Qml.so.5 => /usr/lib64/libQt5Qml.so.5 libQt5Network.so.5 => /usr/lib64/libQt5Network.so.5 libgssapi_krb5.so.2 => /usr/lib64/libgssapi_krb5.so.2 libkrb5.so.3 => /usr/lib64/libkrb5.so.3 libk5crypto.so.3 => /usr/lib64/libk5crypto.so.3 libcom_err.so.2 => /lib64/libcom_err.so.2 libkrb5support.so.0 => /usr/lib64/libkrb5support.so.0 libkeyutils.so.1 => /lib64/libkeyutils.so.1 libproxy.so.1 => /usr/lib64/libproxy.so.1 libssl.so.1.1 => /usr/lib64/libssl.so.1.1 libcrypto.so.1.1 => /usr/lib64/libcrypto.so.1.1 libQt5Widgets.so.5 => /usr/lib64/libQt5Widgets.so.5 libQt5Gui.so.5 => /usr/lib64/libQt5Gui.so.5 libGL.so.1 => /usr/lib64/libGL.so.1 libglapi.so.0 => /usr/lib64/libglapi.so.0 libdrm.so.2 => /usr/lib64/libdrm.so.2 libxcb-glx.so.0 => /usr/lib64/libxcb-glx.so.0 libxcb-dri2.so.0 => /usr/lib64/libxcb-dri2.so.0 libXfixes.so.3 => /usr/lib64/libXfixes.so.3 libXdamage.so.1 => /usr/lib64/libXdamage.so.1 libXxf86vm.so.1 => /usr/lib64/libXxf86vm.so.1 libexpat.so.1 => /usr/lib64/libexpat.so.1 libxcb-dri3.so.0 => /usr/lib64/libxcb-dri3.so.0 libxcb-present.so.0 => /usr/lib64/libxcb-present.so.0 libxcb-sync.so.1 => /usr/lib64/libxcb-sync.so.1 libxshmfence.so.1 => /usr/lib64/libxshmfence.so.1 libharfbuzz.so.0 => /usr/lib64/libharfbuzz.so.0 libglib-2.0.so.0 => /usr/lib64/libglib-2.0.so.0 libpcre.so.1 => /lib64/libpcre.so.1 libgraphite2.so.3 => /usr/lib64/libgraphite2.so.3 libQt5Core.so.5 => /usr/lib64/libQt5Core.so.5 libdouble-conversion.so.3 => /usr/lib64/libdouble-conversion.so.3 libicui18n.so.65 => /usr/lib64/libicui18n.so.65 libicuuc.so.65 => /usr/lib64/libicuuc.so.65 libicudata.so.65 => /usr/lib64/libicudata.so.65 libpcre2-16.so.0 => /usr/lib64/libpcre2-16.so.0 libstdc++.so.6 => /usr/lib/gcc/x86_64-pc-linux-gnu/9.2.0/libstdc++.so.6 libm.so.6 => /lib64/libm.so.6 libgcc_s.so.1 => /usr/lib/gcc/x86_64-pc-linux-gnu/9.2.0/libgcc_s.so.1 libc.so.6 => /lib64/libc.so.6 Using a C(XX)FLAGS with '-Og -ggdb' I was able to get an executable/core with more information: #0 0x00005568f81b881a in FluidS::Sample::optimize (this=this@entry=0x5568faf09760) at /var/tmp/portage/media-sound/musescore-3.3.4/work/MuseScore-3.3.4/fluid/voice.cpp:1817 #1 0x00005568f81bcada in FluidS::Sample::load (this=0x5568faf09760) at /var/tmp/portage/media-sound/musescore-3.3.4/work/MuseScore-3.3.4/fluid/sfont.cpp:680 #2 0x00005568f81bccf0 in FluidS::Preset::loadSamples (this=this@entry=0x5568fadc6590) at /var/tmp/portage/media-sound/musescore-3.3.4/work/MuseScore-3.3.4/fluid/sfont.cpp:173 #3 0x00005568f81ba4a1 in FluidS::Channel::setPreset (this=this@entry=0x7f6594001440, p=0x5568fadc6590) at /var/tmp/portage/media-sound/musescore-3.3.4/work/MuseScore-3.3.4/fluid/chan.cpp:224 #4 0x00005568f81ba4d2 in FluidS::Channel::init (this=this@entry=0x7f6594001440) at /var/tmp/portage/media-sound/musescore-3.3.4/work/MuseScore-3.3.4/fluid/chan.cpp:58 #5 0x00005568f81ba4f1 in FluidS::Channel::reset (this=0x7f6594001440) at /var/tmp/portage/media-sound/musescore-3.3.4/work/MuseScore-3.3.4/fluid/chan.cpp:47 #6 0x00005568f81ba521 in FluidS::Channel::Channel (this=<optimized out>, s=<optimized out>, num=<optimized out>) at /var/tmp/portage/media-sound/musescore-3.3.4/work/MuseScore-3.3.4/fluid/chan.cpp:38 #7 0x00005568f81b2856 in FluidS::Fluid::play (this=0x5568fadd3920, event=...) at /var/tmp/portage/media-sound/musescore-3.3.4/work/MuseScore-3.3.4/fluid/fluid.cpp:141 #8 0x00005568f81a61c5 in Ms::MasterSynthesizer::play (this=<optimized out>, event=..., syntiIdx=syntiIdx@entry=0) at /usr/lib/gcc/x86_64-pc-linux-gnu/9.2.0/include/g++-v9/bits/stl_vector.h:1040 #9 0x00005568f7d9284a in Ms::Seq::putEvent (this=this@entry=0x5568fb288050, event=..., framePos=framePos@entry=0) at /var/tmp/portage/media-sound/musescore-3.3.4/work/MuseScore-3.3.4/mscore/seq.cpp:1510 #10 0x00005568f7d95d8d in Ms::Seq::processMessages (this=this@entry=0x5568fb288050) at /var/tmp/portage/media-sound/musescore-3.3.4/work/MuseScore-3.3.4/mscore/seq.cpp:581 #11 0x00005568f7d96472 in Ms::Seq::process (this=0x5568fb288050, framesPerPeriod=framesPerPeriod@entry=1152, buffer=buffer@entry=0x5568fb27c064) at /var/tmp/portage/media-sound/musescore-3.3.4/work/MuseScore-3.3.4/mscore/seq.cpp:746 #12 0x00005568f8147271 in Ms::PulseAudio::paCallback (s=0x5568fafac330, len=9216, data=0x5568fb27c020) at /var/tmp/portage/media-sound/musescore-3.3.4/work/MuseScore-3.3.4/mscore/pulseaudio.cpp:64 #13 0x00007f65c5ca3d3e in ?? () from /usr/lib64/libpulse.so.0 #14 0x00007f65c3792bac in pa_pdispatch_run () from /usr/lib64/pulseaudio/libpulsecommon-13.0.so #15 0x00007f65c5c86dbf in ?? () from /usr/lib64/libpulse.so.0 #16 0x00007f65c379556d in ?? () from /usr/lib64/pulseaudio/libpulsecommon-13.0.so #17 0x00007f65c37982eb in ?? () from /usr/lib64/pulseaudio/libpulsecommon-13.0.so #18 0x00007f65c37986a6 in ?? () from /usr/lib64/pulseaudio/libpulsecommon-13.0.so #19 0x00007f65c3798efa in ?? () from /usr/lib64/pulseaudio/libpulsecommon-13.0.so #20 0x00007f65c5c9c161 in pa_mainloop_dispatch () from /usr/lib64/libpulse.so.0 #21 0x00007f65c5c9c48e in pa_mainloop_iterate () from /usr/lib64/libpulse.so.0 #22 0x00005568f814731e in Ms::PulseAudio::paLoop (data=0x5568fb27c020) at /var/tmp/portage/media-sound/musescore-3.3.4/work/MuseScore-3.3.4/mscore/pulseaudio.cpp:177 #23 0x00007f65c5cd22d7 in start_thread () from /lib64/libpthread.so.0 #24 0x00007f65c3afba5f in clone () from /lib64/libc.so.6 A quick inspection with gdb reveals that this is a NULL pointer dereference: musescore tries to optimize a sample s with s->data=0x0 I had this problem for some time, with all recent versions of musescore (including -9999), on two slightly different machines. Using a different soundfont solves the problem, for me at least. as bumping musescore-3.4.1, i noticed that sf3 requires vorbis use flag enabled. i suppose you have this use flag disabled which causes musescore crash as sf3 support is not compiled in. can you please confirm that? You are correct: I didn't have the vorbis USE flag enabled. Compiling musescore-9999 with USE=vorbis yields a working musescore, (while without it I get the segfaulting one) Thanks for clearing that up! thank you for verifying that. i will rename the vorbis use flag to sf3 to make it obvious what's the purpose and will make it enabled by default as without it musescore crashes as you reported. The bug has been closed via the following commit(s): https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=bd81fcd5b63fd0fc170a50751b78c8439bb73815 commit bd81fcd5b63fd0fc170a50751b78c8439bb73815 Author: Miroslav Šulc <fordfrog@gentoo.org> AuthorDate: 2020-02-08 00:10:12 +0000 Commit: Miroslav Šulc <fordfrog@gentoo.org> CommitDate: 2020-02-08 00:42:49 +0000 media-sound/musescore: renamed use flag in 3.3.4 renamed use flag vorbis to sf3 to make obvious the purpose of it and make it default to be able to load bundled sf3 file Bug: https://bugs.gentoo.org/708666 Closes: https://bugs.gentoo.org/704916 Package-Manager: Portage-2.3.87, Repoman-2.3.20 Signed-off-by: Miroslav Šulc <fordfrog@gentoo.org> media-sound/musescore/musescore-3.3.4.ebuild | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) |
Created attachment 602730 [details] build log musescore (without arguments) starts normally, but whenever I open a score (or start it with `mscore score.mscz`) it segfaults. gdb backtrace: #0 0x0000558d00ae4fbf in FluidS::Sample::optimize() () [Current thread is 1 (Thread 0x7f92d6ffd700 (LWP 22725))] (gdb) bt #0 0x0000558d00ae4fbf in FluidS::Sample::optimize() () #1 0x0000558d00ae857d in FluidS::Sample::load() () #2 0x0000558d00ae87a4 in FluidS::Preset::loadSamples() () #3 0x0000558d00ae6aef in FluidS::Channel::setPreset(FluidS::Preset*) () #4 0x0000558d00ae6b34 in FluidS::Channel::init() () #5 0x0000558d00ae6b59 in FluidS::Channel::reset() () #6 0x0000558d00adf8b2 in FluidS::Fluid::play(Ms::PlayEvent const&) () #7 0x0000558d00758b64 in Ms::Seq::putEvent(Ms::NPlayEvent const&, unsigned int) () #8 0x0000558d0075c38f in Ms::Seq::processMessages() () #9 0x0000558d0075c78c in Ms::Seq::process(unsigned int, float*) () #10 0x0000558d00a85ca0 in Ms::PulseAudio::paCallback(pa_stream*, unsigned long, void*) () #11 0x00007f92f54ebd3e in ?? () from /usr/lib64/libpulse.so.0 #12 0x00007f92f2fdabac in pa_pdispatch_run () from /usr/lib64/pulseaudio/libpulsecommon-13.0.so #13 0x00007f92f54cedbf in ?? () from /usr/lib64/libpulse.so.0 #14 0x00007f92f2fdd56d in ?? () from /usr/lib64/pulseaudio/libpulsecommon-13.0.so #15 0x00007f92f2fe02eb in ?? () from /usr/lib64/pulseaudio/libpulsecommon-13.0.so #16 0x00007f92f2fe06a6 in ?? () from /usr/lib64/pulseaudio/libpulsecommon-13.0.so #17 0x00007f92f2fe0efa in ?? () from /usr/lib64/pulseaudio/libpulsecommon-13.0.so #18 0x00007f92f54e4161 in pa_mainloop_dispatch () from /usr/lib64/libpulse.so.0 #19 0x00007f92f54e448e in pa_mainloop_iterate () from /usr/lib64/libpulse.so.0 #20 0x0000558d00a85d50 in Ms::PulseAudio::paLoop(void*) () #21 0x00007f92f551a2d7 in start_thread () from /lib64/libpthread.so.0 #22 0x00007f92f3343a5f in clone () from /lib64/libc.so.6 Looking at the backtrace, I suspected a problem with the soundfont. Just putting MuseScore_General.sf2 in ~/Documents/Musescore3/Soundfonts didn't help, however. Then I replaced the in /usr/share/mscore-3.3/MuseScore_General.sf3 with MuseScore_General.sf2, renaming it to MuseScore_General.sf3. After this, musescore works normally.