-
-
Notifications
You must be signed in to change notification settings - Fork 1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
VST freezes on Arch #1875
Comments
Doh, posted above on wrong account... |
I've profiled LMMS with Valgrind during reproducing the issue and here's the result: I still don't know what to make out of this, but maybe someone else beats me to it. |
If that helps, I've managed to debug LMMS into a point where execution stops at: https://github.com/LMMS/lmms/blob/stable-1.1/plugins/vst_base/VstPlugin.cpp#L180 which is I'm guessing LMMS waits for a signal from remote plugin and either doesn't get it or gets it but doesn't process it properly (or locked?). Additionally I can see that wineserver process starts by doing 'ps aux'. |
Great bug report @obszczymucha! 👍 I am also experiencing this bug. |
Bad news. We are stuck in the loop: I've added:
And it always outputs: |
Reproduced on my machine as well, can't figure out why this happens. |
@badosu does this happen with other VSTs (i.e. DSK musicbox?) |
Yep, tested on lots of other VSTs. This is not a particular VST problem but with the messagery between wine and lmms as indicated above. At least, it's what it looks like/ |
I have this same issue on lmms 1.1.3 from kxstudio in vivid. |
@badosu is this a valid bug with our code, or a problem with the way these downstream packages are created? |
@tresf I'd have to try a previous release to test this, I really don't know. Gonna take a look. |
I can also produce this issue on Arch using the provided packages. This also happens when I use the git version from AUR. |
Same issue, also with Arch Linux 64 bit. Will try to investigate a bit further if I can find the time. |
Can any of you confirm this bug on Arch if you manually compile LMMS and not use the packages? |
I've built multiple versions from the source. Same problem. I'll try and build the latest 1.1.3 version and let you know the outcome. |
Just built 1.1.3 - the issue is still there. |
Yes, this is from a source build. I have started looking at it, but could not rootcause it yet, excepted that it seems to be a miscommunication between the main process and RemoteVstPlugin. That part of the code is not particularly easy to comprehend to new eyes. Here is the top of the backtrace from the main process:
What is weird is that it seems to happen only on Arch Linux? Let me know if I can provide more information. |
confirming from arch x64 with latest versions of wine and lmms |
I think I tracked down the wait to RemotePlugin.h:293. We are seeming to wait on a semaphore. Interesting enough, I tried to change to define USE_QT_SEMAPHORES which still crashes lmms in the same way but it gives me the GUI of the VST. |
I'd love to reproduce this problem and help troubleshoot, but I simply don't have the patience for a 50 page wiki article to get the OS loaded in a VM and I think this is an unreasonable request for the development team of music software. Can someone provide a working VM image? By "working", I mean something I can boot and use that is pre-partitioned, has networking installed, a GUI, a boot loader, et. al? I've skimmed a few quickstart guides, and even the "quick start" guides seem to take hours to complete, which is hours that could be better spent trying to fix this bug. -Tres |
Tremedous. I haven't heard of or tried any of those. Any recommendation? |
Another thing which I noticed in a debug session is that RemotePluginBase::waitForMessage is busy waiting while zero messages are left. Perhaps isInvalid() is not updated correctly? |
Sorry I hadn't yet posted an update on this... My Manjaro install suffers the exact same symptoms of that in the original bug report. I think the long term solution is to add better exception handling to our In the short term, the major troubleshooting issue we have is in these scenarios where our shared memory logic fails with no sign of where or why. Here's an article that explains (perhaps) how we can do better debugging: http://stackoverflow.com/a/7497455/3196753 I believe this is in part due to the choice to use native C++ shared memory for some platforms, but Qt Shared memory for others. I'm making some broad assumptions, but I assume shared memory started as a *nix-Only feature and matured into using Qt's more platform independent implementation for the proprietary platforms, -- such as Windows (and eventually for Mac #698, #703 -- once we get that sorted out) Although I'm curious if we should just switch our code to use Qt for all platforms, since it comes as a dependency on our codebase anyway. AFAIK, Mac -- for example -- has extremely low SHMEM thresholds when using pure C++. This requires applications to roll their own SHMEM calls. Qt should help circumvent these limitations. The only person on the project I've ever seen actually understand this remote process complexity is the author, (and the original author of LMMS), @tobydox. Perhaps we'll get lucky and get some insight from him as to how to fix these types of things, or at a minimum, how to debug them. Another option is to make some more |
Thank you, and thanks a lot for the work. |
The mentioned PR doesn't actually address the VST bug yet per #2390 (comment) So even when the Ubuntu 12.04 crash is fixed and the code split is merged, the option to use
|
From reading the linked issues, WineHQ and the Qt mailing list, it appears that the problem has its roots in the Qt implementation of a function called sendXEmbedMessage(). The arguments are actually passed in the wrong order, which causes everything to break. Seeing as the Linux users are stuck with a bug that makes most virtual instruments unusable with an estimated time to fix of never, is it possible to figure out some workaround? |
Given the name of the function ("X"), perhaps the bug can be avoided by
running LMMS under wayland instead of X11?
|
@Wallacoloo perhaps, but if this is a Qt+Wine bug, I'm not sure how it broke yet again. Perhaps someone reverted the Wine code accidentally in a cleanup effort. I see mentions of |
So then, installing Qt5 and following the build instructions on the wiki might solve the problem? I'll give that a try and see what works. EDIT: Apparently I won't. I broke my system trying to get build problems resolved. Gonna have to nuke it and reinstall Ubuntu, thank goodness I keep my home folder in a separate partition... |
This affects also Lubuntu 15.10 x64 + wine-1.8 + LMMS 1.1.3 from kxstudio repositories. |
Affects LMMS 1.1.90 built from source with wine-1.9.6 on Arch Linux x64. Tried both 32 and 64 bit VSTs. |
Affects LMMS 1.1.3 (Linux/x86_64, Qt4.8.6, GCC 4.8.2) on Ubuntu 15.10 |
It has been over a a year now. |
Assuming it's the same bug, doesn't that require a patch to X11?
There is, @Narfinger wrote one #2304. Unfortunately, this was closed as the original author of the VST bridge didn't like the idea of pulling IPC support. That spawned a multi-step isolation process...
The first step had a bug which is explained the respective PR. No further progress has been made, but please feel free to hack away at it. |
I'm sorry I don't understand, is there currently any way to use VSTs with LMMS in Linux? Or this feature is broken and was abandoned one year ago? |
Unless using Carla, not that I'm aware of, at least not on most modern Linux versions (VSTs load fine on Ubuntu 12.04 for me).
You could always clone and build the branch in #2304 and try that out, but of course that's not up to date with the stability changes we've had to master.
Or an alternative to LMMS, if it's a deal breaker for your needs. We need dev help on this.
:) |
Can someone please test this patch on Arch #2728 I'm testing on ElementaryOS Freya and it seems to be working so as long as I putting the linking back to the old method. |
I also have the lastest Arch Linux, and I can test this out very soon.
|
Anyone tried the patch? |
I have tried this... No it didn't work... |
The Qt bug report has been updated (https://bugreports.qt.io/browse/QTBUG-36446): apparently, they won't patch Qt 4 and Qt 5 doesn't have the functionality that allows for writing host applications. |
According to #2739 (comment), this issue is fixed. |
According to #2739, this issue is fixed. |
I have this problem on Debian Sid, but only with a 64-bit VST. RemotePluginClient::shmget: No such file or directory The VST fails to load, and then 'wineserver64 -p0' turns into a zombie and eats my CPU. I am using VSTSynthfont64. The 32-bit version of this synthfont does have this problem. |
Steps to reproduce:
Expected:
Actual:
Screenshot: http://i.imgur.com/2f5YURI.png
Affected system: Arch 64 bit
LMMS versions: 1.1.1, 1.1.2, 1.1.3
Wine versions used: at least 4 different - 1.6.4. 1.7.22, 1.7.33, 1.7.38
Example VST: Synth1
More details: https://lmms.io/forum/viewtopic.php?f=7&t=1749
Some strace dump: https://gist.github.com/obszczymucha/161b9fb25ce0a48b6af3 (it goes like that forever)
The text was updated successfully, but these errors were encountered: