File Open Dialog Kills Midi Contoller

Having trouble with LMMS? Ask about it here.
I've noticed this odd issue and hoping someone has some suggestions. Whenever I click File->Open in LMMS I get the error mesage

Code: Select all

MidiAlsaRaw::run(): Got EINTR while polling. Will stop polling MIDI-events from MIDI-port.
This is an annoying bug because once it stops polling MIDI events I can no longer use my Midi controller to control. I basically need to close LMMS entirely and restart before I can use my Midi controller again.

However if I open a project by using the command line (not using the File->Open UI dialog) E.g.

Code: Select all

lmms  ./myproj.mmpz
I do not get the Will stop polling MIDI-events from MIDI-port error. I can add controllers to elements in the project and all is well.

It seems there is some bug just about opening the File->Open dialog. Has anyone experienced this and know of work-around or fix?

P.S.
I noticed this on the old LMMS Sourceforge. It seems to be the only other mention on the entire internet of this issue
https://sourceforge.net/p/lmms/mailman/message/6077838/
Hmm. Just verified this is happening on File->Save as well. Looks like maybe any kind of operations with the File menu are leading to

Code: Select all

MidiAlsaRaw::run(): Got EINTR while polling. Will stop polling MIDI-events from MIDI-port
My system is LMMS v1.2.2 on Fedora 33 and I'm using "Alsa Raw Midi" as the Midi interface.
Opening a project using File->"Recently Opened Projects" doesn't lead the error. I can open the project and control channels with Midi controller.

So the problem seems to arise only in the file opening and file saving operations. Still annoying and seems to be some kind of bug, but at least there is something of a work-around. Weird!
I've been able to find that the error message is coming from LMMS here:

https://github.com/LMMS/lmms/blob/maste ... w.cpp#L114

The poll method seems to be this one
https://pubs.opengroup.org/onlinepubs/7 ... /poll.html

But beyond that, I'm not sure how to debug further.
calyx wrote:
Fri Dec 11, 2020 7:52 am
I've been able to find that the error message is coming from LMMS here:

https://github.com/LMMS/lmms/blob/maste ... w.cpp#L114

The poll method seems to be this one
https://pubs.opengroup.org/onlinepubs/7 ... /poll.html

But beyond that, I'm not sure how to debug further.
Great description of a possible bug! Thank you, but i Do need to ask you if you have installed the AppImage of LMMS -Eg this one: https://lmms.io/download#linux
It should show 1.2.2 in the tittlebar
I had built my LMMS a while a go and had forgotten about the AppImage's. The lmms v1.2.2 AppImage does not have this issue. So perhaps there is a run-time error coming up with the particular mix of shared libraries I am linking to in Fedora 33. Just for benefit of anyone coming to this thread here is the output of ldd /usr/local/bin/lmms for my Fedora 33 build as well as the RPM packages proving those libraries.

I would love to be able to build lmms from source, but for now I can definitely use the AppImage approach as you suggest.

Code: Select all

ldd /usr/local/bin/lmms | awk '{print $3}' | xargs rpm -q --whatprovides {} | sort | uniq

alsa-lib-1.2.4-5.fc33.x86_64
bzip2-libs-1.0.8-4.fc33.x86_64
dbus-libs-1.12.20-2.fc33.x86_64
flac-libs-1.3.3-3.fc33.x86_64
fontconfig-2.13.92-12.fc33.x86_64
freetype-2.10.4-1.fc33.x86_64
glib2-2.66.3-1.fc33.x86_64
glibc-2.32-2.fc33.x86_64
gsm-1.0.19-3.fc33.x86_64
jack-audio-connection-kit-1.9.14-5.fc33.x86_64
lame-libs-3.100-9.fc33.x86_64
libasyncns-0.8-19.fc33.x86_64
libbrotli-1.0.9-3.fc33.x86_64
libcap-2.26-8.fc33.x86_64
libdb-5.3.28-44.fc33.x86_64
libffi-3.1-26.fc33.x86_64
libgcc-10.2.1-9.fc33.x86_64
libgcrypt-1.8.7-1.fc33.x86_64
libgpg-error-1.37-2.fc33.x86_64
libICE-1.0.10-4.fc33.x86_64
libogg-1.3.4-3.fc33.x86_64
libpng-1.6.37-6.fc33.x86_64
libsamplerate-0.1.9-7.fc33.x86_64
libSM-1.2.3-6.fc33.x86_64
libsndfile-1.0.28-13.fc33.x86_64
libstdc++-10.2.1-9.fc33.x86_64
libuuid-2.36-3.fc33.x86_64
libvorbis-1.3.7-2.fc33.x86_64
libX11-1.6.12-3.fc33.x86_64
libX11-xcb-1.6.12-3.fc33.x86_64
libXau-1.0.9-4.fc33.x86_64
libxcb-1.13.1-5.fc33.x86_64
libXcursor-1.2.0-3.fc33.x86_64
libXext-1.3.4-4.fc33.x86_64
libXfixes-5.0.3-12.fc33.x86_64
libXi-1.7.10-4.fc33.x86_64
libXinerama-1.1.4-6.fc33.x86_64
libxml2-2.9.10-8.fc33.x86_64
libXrandr-1.5.2-4.fc33.x86_64
libXrender-0.9.10-12.fc33.x86_64
libXtst-1.2.3-12.fc33.x86_64
libzstd-1.4.5-5.fc33.x86_64
lz4-libs-1.9.1-3.fc33.x86_64
opus-1.3.1-6.fc33.x86_64
pcre-8.44-2.fc33.x86_64
portaudio-19-32.fc33.x86_64
pulseaudio-libs-14.0-2.fc33.x86_64
qt-4.8.7-57.fc33.x86_64
qt-x11-4.8.7-57.fc33.x86_64
SDL-1.2.15-45.fc33.x86_64
systemd-libs-246.6-3.fc33.x86_64
xz-libs-5.2.5-3.fc33.x86_64
zlib-1.2.11-23.fc33.x86_64

Code: Select all

        ldd /usr/local/bin/lmms 

	linux-vdso.so.1 (0x00007ffd02fd2000)
	libpthread.so.0 => /usr/lib64/libpthread.so.0 (0x00007f5028bb7000)
	libQtGui.so.4 => /usr/lib64/libQtGui.so.4 (0x00007f5027fe8000)
	libQtXml.so.4 => /usr/lib64/libQtXml.so.4 (0x00007f5027f98000)
	libQtCore.so.4 => /usr/lib64/libQtCore.so.4 (0x00007f5027c80000)
	libasound.so.2 => /usr/lib64/libasound.so.2 (0x00007f5027b83000)
	libSDL-1.2.so.0 => /usr/lib64/libSDL-1.2.so.0 (0x00007f5027aec000)
	libportaudio.so.2 => /usr/lib64/libportaudio.so.2 (0x00007f5027aba000)
	libpulse.so.0 => /usr/lib64/libpulse.so.0 (0x00007f5027a64000)
	libdl.so.2 => /usr/lib64/libdl.so.2 (0x00007f5027a5d000)
	libogg.so.0 => /usr/lib64/libogg.so.0 (0x00007f5027a52000)
	libvorbis.so.0 => /usr/lib64/libvorbis.so.0 (0x00007f5027a23000)
	libvorbisfile.so.3 => /usr/lib64/libvorbisfile.so.3 (0x00007f5027a18000)
	libvorbisenc.so.2 => /usr/lib64/libvorbisenc.so.2 (0x00007f502796b000)
	libmp3lame.so.0 => /usr/lib64/libmp3lame.so.0 (0x00007f50278f5000)
	libsamplerate.so.0 => /usr/lib64/libsamplerate.so.0 (0x00007f5027788000)
	libsndfile.so.1 => /usr/lib64/libsndfile.so.1 (0x00007f5027716000)
	libm.so.6 => /usr/lib64/libm.so.6 (0x00007f50275d0000)
	libstdc++.so.6 => /usr/lib64/libstdc++.so.6 (0x00007f50273e8000)
	libgcc_s.so.1 => /usr/lib64/libgcc_s.so.1 (0x00007f50273cb000)
	libc.so.6 => /usr/lib64/libc.so.6 (0x00007f5027200000)
	/lib64/ld-linux-x86-64.so.2 (0x00007f5028bdb000)
	libglib-2.0.so.0 => /usr/lib64/libglib-2.0.so.0 (0x00007f50270cf000)
	libpng16.so.16 => /usr/lib64/libpng16.so.16 (0x00007f5027096000)
	libz.so.1 => /usr/lib64/libz.so.1 (0x00007f502707c000)
	libfreetype.so.6 => /usr/lib64/libfreetype.so.6 (0x00007f5026fb9000)
	libgobject-2.0.so.0 => /usr/lib64/libgobject-2.0.so.0 (0x00007f5026f5d000)
	libSM.so.6 => /usr/lib64/libSM.so.6 (0x00007f5026f52000)
	libICE.so.6 => /usr/lib64/libICE.so.6 (0x00007f5026f35000)
	libXi.so.6 => /usr/lib64/libXi.so.6 (0x00007f5026f23000)
	libXrender.so.1 => /usr/lib64/libXrender.so.1 (0x00007f5026f16000)
	libXrandr.so.2 => /usr/lib64/libXrandr.so.2 (0x00007f5026f09000)
	libXfixes.so.3 => /usr/lib64/libXfixes.so.3 (0x00007f5026efe000)
	libXcursor.so.1 => /usr/lib64/libXcursor.so.1 (0x00007f5026ef1000)
	libXinerama.so.1 => /usr/lib64/libXinerama.so.1 (0x00007f5026eec000)
	libfontconfig.so.1 => /usr/lib64/libfontconfig.so.1 (0x00007f5026ea1000)
	libXext.so.6 => /usr/lib64/libXext.so.6 (0x00007f5026e8c000)
	libX11.so.6 => /usr/lib64/libX11.so.6 (0x00007f5026d45000)
	librt.so.1 => /usr/lib64/librt.so.1 (0x00007f5026d38000)
	libjack.so.0 => /usr/lib64/libjack.so.0 (0x00007f5026ce6000)
	libpulsecommon-14.0.so => /usr/lib64/pulseaudio/libpulsecommon-14.0.so (0x00007f5026c5e000)
	libX11-xcb.so.1 => /usr/lib64/libX11-xcb.so.1 (0x00007f5026c59000)
	libxcb.so.1 => /usr/lib64/libxcb.so.1 (0x00007f5026c2f000)
	libXtst.so.6 => /usr/lib64/libXtst.so.6 (0x00007f5026c24000)
	libsystemd.so.0 => /usr/lib64/libsystemd.so.0 (0x00007f5026b68000)
	libasyncns.so.0 => /usr/lib64/libasyncns.so.0 (0x00007f5026b60000)
	libdbus-1.so.3 => /usr/lib64/libdbus-1.so.3 (0x00007f5026b0f000)
	libcap.so.2 => /usr/lib64/libcap.so.2 (0x00007f5026b08000)
	libgsm.so.1 => /usr/lib64/libgsm.so.1 (0x00007f5026af7000)
	libFLAC.so.8 => /usr/lib64/libFLAC.so.8 (0x00007f5026a9c000)
	libpcre.so.1 => /usr/lib64/libpcre.so.1 (0x00007f5026a23000)
	libbz2.so.1 => /usr/lib64/libbz2.so.1 (0x00007f5026a10000)
	libbrotlidec.so.1 => /usr/lib64/libbrotlidec.so.1 (0x00007f5026a02000)
	libffi.so.6 => /usr/lib64/libffi.so.6 (0x00007f50269f5000)
	libuuid.so.1 => /usr/lib64/libuuid.so.1 (0x00007f50269ec000)
	libxml2.so.2 => /usr/lib64/libxml2.so.2 (0x00007f5026861000)
	libopus.so.0 => /usr/lib64/libopus.so.0 (0x00007f5026800000)
	libdb-5.3.so => /usr/lib64/libdb-5.3.so (0x00007f502663b000)
	libXau.so.6 => /usr/lib64/libXau.so.6 (0x00007f5026634000)
	liblzma.so.5 => /usr/lib64/liblzma.so.5 (0x00007f5026608000)
	libzstd.so.1 => /usr/lib64/libzstd.so.1 (0x00007f5026552000)
	liblz4.so.1 => /usr/lib64/liblz4.so.1 (0x00007f5026534000)
	libgcrypt.so.20 => /usr/lib64/libgcrypt.so.20 (0x00007f502640f000)
	libresolv.so.2 => /usr/lib64/libresolv.so.2 (0x00007f50263f5000)
	libbrotlicommon.so.1 => /usr/lib64/libbrotlicommon.so.1 (0x00007f50263d0000)
	libgpg-error.so.0 => /usr/lib64/libgpg-error.so.0 (0x00007f50263af000)
Great that the AppImage works fine!
calyx wrote:
Sat Dec 12, 2020 8:58 pm
I would love to be able to build lmms from source,
You can build your own AppImage from 1.2.2. master (leave 1.3 out for a moment, there are bugs)