Crash in Cubase 9

  • Hi all,

    Running into a very consistent crash with a few of my customers running Cubase 9. I managed to reproduce the issue on my rig with a symbolicated crash log and it seems to be related to switching presets and the sample loading thread. I can't reproduce it in Cubase 9.5 or higher, so it seems specific to Cubase 9. Any leads would be greatly appreciated. Here's the crash report:

    Process:               Cubase 9 [14712]
    Path:                  /Applications/Cubase 9
    Identifier:            com.steinberg.cubase9
    Version:      (
    Code Type:             X86-64 (Native)
    Parent Process:        ??? [1]
    Responsible:           Cubase 9 [14712]
    User ID:               502
    Date/Time:             2021-05-23 21:00:22.539 -0700
    OS Version:            Mac OS X 10.13.6 (17G66)
    Report Version:        12
    Anonymous UUID:        17C59BB8-3A7A-3916-1D3C-0AA0A4200CB9
    Time Awake Since Boot: 20000 seconds
    System Integrity Protection: enabled
    Crashed Thread:        79  Sample Loading Thread
    Exception Type:        EXC_CRASH (SIGABRT)
    Exception Codes:       0x0000000000000000, 0x0000000000000000
    Exception Note:        EXC_CORPSE_NOTIFY
    Application Specific Information:
    abort() called
    *** error for object 0x60000021fd20: Freeing unallocated pointer
    Thread 79 Crashed:: Sample Loading Thread
    0   libsystem_kernel.dylib        	0x00007fff55a53b66 __pthread_kill + 10
    1   libsystem_pthread.dylib       	0x00007fff55c1e080 pthread_kill + 333
    2   libsystem_c.dylib             	0x00007fff559af1ae abort + 127
    3   libsystem_malloc.dylib        	0x00007fff55abedc1 nanozone_error + 502
    4   libsystem_malloc.dylib        	0x00007fff55ab35b0 nano_realloc + 869
    5   libsystem_malloc.dylib        	0x00007fff55aae92d malloc_zone_realloc + 111
    6   libsystem_malloc.dylib        	0x00007fff55aae820 realloc + 253
    7   com.steinberg.cubase9         	0x000000010eaa80f1 0x10d22b000 + 25678065
    8   com.steinberg.cubase9         	0x000000010eaa8d3d 0x10d22b000 + 25681213
    9   com.steinberg.cubase9         	0x000000010eb3b180 0x10d22b000 + 26280320
    10  com.steinberg.cubase9         	0x000000010eb3b147 0x10d22b000 + 26280263
    11  com.steinberg.cubase9         	0x000000010eb3b147 0x10d22b000 + 26280263
    12  com.steinberg.cubase9         	0x000000010eb3b147 0x10d22b000 + 26280263
    13  com.steinberg.cubase9         	0x000000010d90b54c 0x10d22b000 + 7210316
    14  com.steinberg.cubase9         	0x000000010e67c2dc 0x10d22b000 + 21304028
    15  com.steinberg.cubase9         	0x000000010e67c155 0x10d22b000 + 21303637
    16  com.steinberg.cubase9         	0x000000010e67c779 0x10d22b000 + 21305209
    17  com.steinberg.cubase9         	0x000000010ecd6d27 0x10d22b000 + 27966759
    18  com.steinberg.cubase9         	0x000000010e5a604f 0x10d22b000 + 20426831
    19  com.steinberg.cubase9         	0x000000010e5a6070 0x10d22b000 + 20426864
    20  com.steinberg.VSTPlugManager  	0x000000011ca8f44c 0x11ca40000 + 324684
    21  com.lunacyaudio.cube          	0x000000015364f0ed juce::AudioProcessorParameter::sendValueChangedMessageToListeners(float) + 189
    22  com.lunacyaudio.cube          	0x0000000153284d60 hise::ScriptedControlAudioParameter::setParameterNotifyingHostInternal(int, float) + 432 (juce_AudioProcessor.cpp:1443)
    23  com.lunacyaudio.cube          	0x0000000153133fd6 hise::ProcessorWithScriptingContent::controlCallback(hise::ScriptingApi::Content::ScriptComponent*, juce::var) + 1830 (ScriptComponentWrappers.cpp:2513)
    24  com.lunacyaudio.cube          	0x000000015321bec5 hise::ProcessorWithScriptingContent::setControlValue(int, float) + 645 (juce_Variant.cpp:502)
    25  com.lunacyaudio.cube          	0x000000015313fec3 hise::ScriptingApi::Content::restoreAllControlsFromPreset(juce::ValueTree const&) + 1827 (juce_ReferenceCountedObject.h:390)
    26  com.lunacyaudio.cube          	0x0000000152d66e80 std::__1::__function::__func<hise::MainController::UserPresetHandler::loadUserPreset(juce::ValueTree const&, bool)::$_15, std::__1::allocator<hise::MainController::UserPresetHandler::loadUserPreset(juce::ValueTree const&, bool)::$_15>, hise::SafeFunctionCall::Status (hise::Processor*)>::operator()(hise::Processor*&&) + 976 (juce_Array.h:224)
    27  com.lunacyaudio.cube          	0x0000000152cfd8bc hise::MainController::SampleManager::PreloadJob::runJob() + 924 (functional:1913)
    28  com.lunacyaudio.cube          	0x000000015345cc06 hise::SampleThreadPool::run() + 390 (atomic:921)
    29  com.lunacyaudio.cube          	0x000000015366fc3c threadEntryProc + 300 (juce_ReferenceCountedObject.h:390)
    30  libsystem_pthread.dylib       	0x00007fff55c1b661 _pthread_body + 340
    31  libsystem_pthread.dylib       	0x00007fff55c1b50d _pthread_start + 377
    32  libsystem_pthread.dylib       	0x00007fff55c1abf9 thread_start + 13

    @Christoph-Hart Any ideas for things to try?

    Thank you!

  • Does it happen with other HISE based plugins too?

  • @d-healey I've had reports of crashes during switching presets on my plugin, various DAWs.

  • @DanH That's a different issue, this only happens in Cubase 9

  • @d-healey Do you happen to have any sample projects I could test?

  • @Casey-Kolb Happy to send mine if it helps.... Or there's the super organ collab?

  • @Casey-Kolb I'll pm you.

    @DanH The organ doesn't use samples

  • Alright, so I've finally narrowed this issue down to this commit in HISE. If I revert this commit and rebuild the VST, it doesn't crash in Cubase 9.

    @Christoph-Hart This was the commit you added for CUBE to fix the orb drag automation bug, so that calling .changed() writes automation to the DAW. Any ideas as to why this might be breaking Cubase 9, but not Cubase 9.5 and above?

  • Nice catch! No idea why it breaks that particular cubase version. Have you attached a debugger to cubase with a debug build yet?

  • @Christoph-Hart I have not, but that's a good call! I need to figure out how to do that first 😬

  • @Christoph-Hart Here's an update! This is where it gets caught in Cubase 9 with that commit.

    Screen Shot 2021-06-01 at 1.32.26 PM.png

  • @Casey-Kolb Any news about this Cubase 9 problem?

  • @marcLab We're still investigating it, but should have a fix within the next week or two! Unfortunately it's a pretty deep one.

  • @Casey-Kolb One of my friends is having a strange problem with Cubase 10.5. Some presets are making the app crash. That's the message he's getting.

    cubse crash mndala.PNG

    Tried it on my PC with the same Cubase version and I can't recreate the bug. Everything is working perfectly on my side... not a single crash. Do you think this could be related to the problem you are having on your side?

  • @marcLab Hmm, it's hard to say without seeing a crash report or debugging on that machine. My guess would be that it's unrelated because we're only having issues on Cubase 9 on Mac, but everything works perfectly in Cubase 9.5 and above. It's related to updating the automation states of various knobs when preset switching.

Log in to reply