JUCE AudioUnit crashes when quiting Logic 10.3.2

Hello!

I’ve been reported by a customer that Logic 10.3.2 always crashes when closing with instance of our plugin (soothe) on it.

I’ll attach one of the full crash logs I’ve received:
soothec_au_crash2.txt (89.7 KB)

What we’re interested of here is:

Thread 15 Crashed:: ProcessThread1/2048
0   libsystem_platform.dylib      	0x00007fff935fef9c _platform_memmove$VARIANT$Haswell + 252
1   com.oeksound.soothe           	0x000000012235cbdb 0x122348000 + 84955
2   com.oeksound.soothe           	0x000000012234abde 0x122348000 + 11230
3   com.apple.music.apps.MAAudioEngine	0x0000000107941344 CMDAudioUnit::Process(MDPlugInputBusList const*, MDPlugOutputBusList const*, long, long, long, float const*, eProcessLevel) + 6020
4   com.apple.music.apps.MAAudioEngine	0x00000001078b3a6e MDPlug::_Process(MDPlugInputBusList const*, MDPlugOutputBusList const*, long, long, long, float const*, eProcessLevel) + 1726
5   com.apple.music.apps.MAAudioEngine	0x000000010788a197 MD::PluginProcess(MDProcInfo*, MDPlug*, long, long, long, eProcessLevel) + 4151
6   com.apple.music.apps.MAAudioEngine	0x0000000107886ba9 MD::StreamProcessing(eProcessLevel, long, long, long, int) + 7241
7   com.apple.music.apps.MAAudioEngine	0x0000000107880415 MD::Process(eProcessLevel) + 2629
8   com.apple.music.apps.MAAudioEngine	0x000000010789647b MD::CallProcessThread1(void*) + 251
9   libsystem_pthread.dylib       	0x00007fff9360593b _pthread_body + 180
10  libsystem_pthread.dylib       	0x00007fff93605887 _pthread_start + 286
11  libsystem_pthread.dylib       	0x00007fff9360508d thread_start + 13

The missing symbols are:

0x000000012235cbdb
AUBase::DoRender(unsigned int&, AudioTimeStamp const&, unsigned int, unsigned int, AudioBufferList&) (in soothe) (AUBase.cpp:1503)

0x000000012234abde
AUMethodRender(void*, unsigned int*, AudioTimeStamp const*, unsigned int, unsigned int, AudioBufferList*) (in soothe) (AUPlugInDispatch.cpp:296)

I haven’t been able to reproduce this. We’ve received several crash reports from the same user, with always the same symbols.

The plugin is compiled against JUCE 5.1.1 (we’re having problems with anything later, but that’s another topic). Has anything like this been fixed since, or is this a new issue? To me this seems JUCE AU wrapper dependent, which is why I’m asking here. :slight_smile:

Thanks!
Olli

Looks like something in your code is reading or writing to a dangling or null pointer… Without any more symbols I’m not sure how you could find out more, but it’s impossible from this to say whether it’s a mistake in your code or juce.