Hello,
We have an audio plugin built with JUCE that is crashing an awful lot, and I am having difficulty zeroing in on the cause.
A little background: We have been developing our plugin for 6+ years. Around 3 years ago, we integrated crash reporting using sentry native. Sentry is very informative, and at sentry.io, I see crash reports not only about our plugin, but since they all run in the same process, I see crash reports when the DAW crashes or other plugins crash. There isn’t much that I can do if the DAW crashes or other plugins crash, of course.
Recently, since JUCE 7 and our first release using JUCE 7, a crash in our plugin with the stack trace below has begun to dominate our Sentry reports.
juce::Component::internalMouseDown (juce_Component.cpp:2524)
juce::MouseInputSourceInternal::sendMouseDown (juce_MouseInputSource.cpp:124)
juce::MouseInputSourceInternal::setButtons (juce_MouseInputSource.cpp:204)
juce::MouseInputSourceInternal::handleEvent (juce_MouseInputSource.cpp:313)
juce::MouseInputSource::handleEvent (juce_MouseInputSource.cpp:610)
juce::ComponentPeer::handleMouseEvent (juce_ComponentPeer.cpp:90)
juce::NSViewComponentPeer::sendMouseEvent (juce_mac_NSViewComponentPeer.mm:785)
juce::NSViewComponentPeer::redirectMouseDown (juce_mac_NSViewComponentPeer.mm:661)
juce::JuceNSViewClass::callOnOwner<T> (juce_mac_NSViewComponentPeer.mm:2370)
juce::JuceNSViewClass::asyncMouseDown (juce_mac_NSViewComponentPeer.mm:2374)
__NSThreadPerformPerform
I believe that this is happening in the main/UI thread. The thing to notice is that all functions in this call stack, other than the system function __NSThreadPerformPerform
are juce::
functions and there is not a single plugin specific function active when the crash occurs.
Now this does not necessarily mean that there is no error in the plugin specific parts, since some corruption could have occurred on a previous UI thread loop pass. But I am really at a loss to understand this so that I can correct it, and I can’t help think that this might be a bug in JUCE 7.
So I have two questions
-
Does anyone else have any reason to believe that their plugins crash in the JUCE only parts, independent of the plugin specific code.
-
When might the next version of JUCE after 7.0.5 be available? For a while (after JUCE 7.0.5 appeared) I built our plugin using JUCE from the development branch, and that made the frequency of the above crash go higher. So I reverted to the 7.0.5 release, and that improved things quite a bit. But not enough.
I can’t say that I understand this at all, so I am hoping that someone in the community here might have an idea.
Thanks for your time.