open the second instance GUI while keeping the first open
resize the second instance GUI
Result
The interface freezes (does not segfault / crash).
Additional details
When tested using local debug build of the VST3 Vitalium from commit f2dbaded0a05732e3499fa374a586e5b32370da5 under carla --dbg following backtrace can be interrupted from the scenario:
0 __futex_abstimed_wait_common64 (private=0, cancel=true, abstime=0x0, op=393, expected=0,
futex_word=0x55555de6ba08) at ./nptl/futex-internal.c:57
#1 __futex_abstimed_wait_common (cancel=true, private=0, abstime=0x0, clockid=0,
expected=0, futex_word=0x55555de6ba08) at ./nptl/futex-internal.c:87
#2 __GI___futex_abstimed_wait_cancelable64 (futex_word=futex_word@entry=0x55555de6ba08,
expected=expected@entry=0, clockid=clockid@entry=0, abstime=abstime@entry=0x0,
private=private@entry=0) at ./nptl/futex-internal.c:139
#3 0x00007ffff7c93ac1 in __pthread_cond_wait_common (abstime=0x0, clockid=0,
mutex=0x55555de3a0a0, cond=0x55555de6b9e0) at ./nptl/pthread_cond_wait.c:503
#4 ___pthread_cond_wait (cond=0x55555de6b9e0, mutex=0x55555de3a0a0)
at ./nptl/pthread_cond_wait.c:627
#5 0x00007ffff2ce7165 in ?? () from /lib/x86_64-linux-gnu/libX11.so.6
#6 0x00007ffff2ce7882 in ?? () from /lib/x86_64-linux-gnu/libX11.so.6
#7 0x00007ffff2ce96bb in XLockDisplay () from /lib/x86_64-linux-gnu/libX11.so.6
#8 0x00007fffb6af0638 in juce::XWindowSystemUtilities::ScopedXLock::ScopedXLock (
this=0x7fffffffba17)
at ../libs/juce6/source/modules/juce_gui_basics/native/x11/juce_linux_XWindowSystem.cpp:84
#9 0x00007fffb6af5069 in juce::XWindowSystem::isMinimised (this=0x55555742e5d0,
windowH=62914588)
at ../libs/juce6/source/modules/juce_gui_basics/native/x11/juce_linux_XWindowSystem.cpp:1839
#10 0x00007fffb6b5446f in juce::LinuxComponentPeer::isMinimised (this=0x55556eaf8580)
at ../libs/juce6/source/modules/juce_gui_basics/native/juce_linux_Windowing.cpp:177
#11 0x00007fffb6a49599 in juce::Component::isShowing (this=0x55556d84e420)
at ../libs/juce6/source/modules/juce_gui_basics/components/juce_Component.cpp:602
#12 0x00007fffb6a4ab60 in juce::Component::setBounds (this=0x55556d84e420, x=0, y=0, w=1270,
h=744) at ../libs/juce6/source/modules/juce_gui_basics/components/juce_Component.cpp:1108
#13 0x00007fffb6a4afca in juce::Component::setSize (this=0x55556d84e420, w=1270, h=744)
at ../libs/juce6/source/modules/juce_gui_basics/components/juce_Component.cpp:1200
#14 0x00007fffb67338bc in juce::JuceVST3EditController::JuceVST3Editor::onSize (
this=0x555562dd09a0, newSize=0x7fffffffbb90)
at ../libs/juce6/source/modules/juce_audio_plugin_client/VST3/juce_VST3_Wrapper.cpp:1297
...
Information
OS: 64-bit Ubuntu 22.04 Plugin Hosts: Ardour 7, Carla Plugin variant: VST3
How to reproduce
Result
The interface freezes (does not segfault / crash).
Additional details
When tested using local debug build of the VST3 Vitalium from commit f2dbaded0a05732e3499fa374a586e5b32370da5 under
carla --dbg
following backtrace can be interrupted from the scenario:Full backtrace: 2023-02-26_vitalium_resize_freeze_bt.log
Looks like the "freeze" comes from a XLockDisplay being reserved but never released.