LMMS / LMMS/lmms

RemoteVstPlugin.exe.so crashes lmms on "incompatible Qt library"

Open
#5,302 8 comments 0 reactions 0 assignees View on GitHub
bug upstream vst
Dominant language
C++
Stars
10.4k
Forks
1.3k
Avg merge
2d 13h
Merged PRs (30d)
7

Description

Hi, I'm maintaining lmms for Arch Linux and someone [reported a crash](https://bugs.archlinux.org/task/64356), that is caused by the Vestige VST plugin host.

In short:
lmms 1.2.1-1 was built against qt5-base 5.13.1. Then that person upgraded to 5.13.2 and now lmms crashes on loading a VST plugin.
I could reproduce this with TAL noisemaker:

```
VST sync support disabled in your configuration
VST_PATH not set, defaulting to /home/dave/vst:/usr/local/lib/vst:/usr/lib/vst
"Cannot load library /usr/lib/ladspa/lsp-plugins-ladspa.so: (/usr/lib/ladspa/lsp-plugins-ladspa.so: undefined symbol: _ZN3lsp17builtin_resourcesE)"
"Cannot load library /usr/lib/ladspa/lsp-plugins-ladspa.so: (/usr/lib/ladspa/lsp-plugins-ladspa.so: undefined symbol: _ZN3lsp17builtin_resourcesE)"
"Cannot load library /usr/lib64/ladspa/lsp-plugins-ladspa.so: (/usr/lib64/ladspa/lsp-plugins-ladspa.so: undefined symbol: _ZN3lsp17builtin_resourcesE)"
Starting using X11Embed protocol.
RemotePluginClient::shmget: No such file or directory
RemoteVstPlugin.cpp::shmget: No such file or directory
RemoteVstPlugin.cpp: Failed to initialize shared memory for VST synchronization.
(VST-host synchronization will be disabled)
unique ID: ncut
RemotePlugin::DebugMessage: inputs: 2 output: 2
RemotePlugin::DebugMessage: creating editor
002b:fixme:ver:GetCurrentPackageId (0xbbfefc (nil)): stub
0009:fixme:win:RegisterTouchWindow (0x10060 00000000): stub
0009:fixme:msg:ChangeWindowMessageFilterEx 0x10060 233 1 (nil)
0009:fixme:msg:ChangeWindowMessageFilterEx 0x10060 4a 1 (nil)
0009:fixme:msg:ChangeWindowMessageFilterEx 0x10060 49 1 (nil)
0009:err:ole:CoGetClassObject class {4ce576fa-83dc-4f88-951c-9d0782b4e376} not registered
0009:err:ole:create_server class {4ce576fa-83dc-4f88-951c-9d0782b4e376} not registered
0009:err:ole:CoGetClassObject no class object {4ce576fa-83dc-4f88-951c-9d0782b4e376} could be created for context 0x6
RemotePlugin::DebugMessage: editor successfully created
Cannot mix incompatible Qt library (version 0x50d01) with this library (version 0x50d02)
[1] 1242429 abort (core dumped) lmms
```

Problematically, afterwards, there will be an instance of `/usr/lib/lmms/RemoteVstPlugin.exe.so` running in the background.

I have rebuild lmms against qt5-base (and the other components) in version 5.13.2 and the problem disappers.

I'm wondering, whether this can be fixed in a better way, than to rebuild lmms even against patch level releases of Qt5 (note, no symbol changes or anything).

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by inspecting RemoteVstPlugin.cpp and the loading path for RemoteVstPlugin.exe.so, using the reported Qt 5.13.1/5.13.2 mismatch as the reproduction case. Determine a fix that avoids the crash without rebuilding LMMS for every Qt patch release, and verify that loading a VST plugin no longer leaves a background RemoteVstPlugin.exe.so process.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
desktop
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.