Hi guys,
I’m currently developing a standalone application which is intended to run on a headless RPi4, attached to a HiFiBerry DAC+ADC Pro soundcard. The build works perfectly fine. However, when running the application I get a load of XWindowSystem assertions until the application finally crashes in juce::StandaloneFilterWindow. This does not happen in non-headless mode (i.e. when connected using ssh -X).
Here is a collection of the window system assertions. These 4 assertions seem to be triggered randomly and about 3-5 times each:
Program received signal SIGTRAP, Trace/breakpoint trap.
0xb6a9920c in kill () at ../sysdeps/unix/syscall-template.S:78
78 in ../sysdeps/unix/syscall-template.S
(gdb) continue
Continuing.
JUCE Assertion failure in juce_linux_XWindowSystem.cpp:1617
Program received signal SIGTRAP, Trace/breakpoint trap.
0xb6a9920c in kill () at ../sysdeps/unix/syscall-template.S:78
78 in ../sysdeps/unix/syscall-template.S
(gdb) continue
Continuing.
JUCE Assertion failure in juce_linux_XWindowSystem.cpp:1729
Program received signal SIGTRAP, Trace/breakpoint trap.
0xb6a9920c in kill () at ../sysdeps/unix/syscall-template.S:78
78 in ../sysdeps/unix/syscall-template.S
(gdb) continue
Continuing.
JUCE Assertion failure in juce_linux_XWindowSystem.cpp:1936
Program received signal SIGTRAP, Trace/breakpoint trap.
0xb6a9920c in kill () at ../sysdeps/unix/syscall-template.S:78
78 in ../sysdeps/unix/syscall-template.S
(gdb) continue
Continuing.
JUCE Assertion failure in juce_linux_XWindowSystem.cpp:1717
And here is the segfault, which happens a few seconds after the assertions:
Thread 1 "optimicer" received signal SIGSEGV, Segmentation fault.
0x00020028 in juce::StandaloneFilterWindow::StandaloneFilterWindow(juce::String const&, juce::Colour, juce::PropertySet*, bool, juce::String const&, juce::AudioDeviceManager::AudioDeviceSetup const*, juce::Array<juce::StandalonePluginHolder::PluginInOuts, juce::DummyCriticalSection, 0> const&, bool)::{lambda()#1}::operator()() const (__closure=0xbefff21c) at /home/pi/optimicer/Source/Externals/JUCE/modules/juce_audio_plugin_client/Standalone/juce_StandaloneFilterWindow.h:757
757 const auto screenLimits = displays.getDisplayForRect ({ x, y, width, height })->userArea;
I’m using this kernel in combination with most recent JUCE on develop branch as of now:
Linux raspberrypi 5.4.79-v7l+ #1373 SMP Mon Nov 23 13:27:40 GMT 2020 armv7l GNU/Linux
I tracked down the JUCE versions and found out that my problem only occurs from JUCE >= 6.0.5 on, 6.0.4 is perfectly fine (at least there’s no segfault).
I think I already opened a similar, or even the same issue quite some time ago.
Unfortunately it seems the fix did not solve my problem in the end …
Any help appreciated, thank you a lot!