12 May Gig Performer and UAD Console Recall Plugin problem
From the beginning, as touring musicians ourselves, we designed Gig Performer to be as reliable as possible so that performers on stage, including ourselves, could focus on playing and not worry about the product crashing in the middle of the show. We use it ourselves all the time while touring so reliability is not just an abstraction for us.
If a problem occurs that is due to Gig Performer, we work diligently to solve it as quickly and releasing a fix as quickly as possible. Fortunately, this is rarely necessary as Gig Performer has matured.
However, some misbehaving plugins can still bring down the application. In such cases we do our best to work closely with the plugin developer to determine the cause of the problem. Most developers are extremely happy to work with us on such issues as fixing problems benefits the plugin developer, the plugin host developer and most importantly, the customer. It has often been the case that Gig Performer has been the first product to expose a bug that, in other applications, while less likely, are still essentially time bombs waiting to go off. This is because Gig Performer tends to exercise more of the plugin SDK than many other hosts and so is more likely to expose issues.
Unfortunately, a very small number of developers choose to ignore reports even when the report shows clearly that the bug is in the plugin. Rather than examining the issue and recognizing that there is an opportunity to improve the quality of the plugin, some developers simply claim that Gig Performer is not a supported product and so they ignore the issue. In some cases, typically after the problem is eventually reported in other hosts, an update is released that actually fixes the problem running in Gig Performer as well.
A customer recently (early May, 2022) reported that the UAD Console Recall Plugin was crashing in Gig Performer after they updated to Big Sur Version 11.6.5. The stack trace clearly shows that the problem is due to a function call inside that plugin (see the highlighted entry in the trace at the bottom of this article. However, upon reporting this issue to UAD, the customer was informed that the problem is unlikely to be investigated further.
Since UAD declines to take this report seriously even though the precise location of the crash is highlighted, we must encourage our customers to use due diligence and test with care when using this particular plugin.
Thread 5 Crashed:: UALogWriter
0 ??? 0x00007ffe9475e8f4 ???
1 libsystem_kernel.dylib 0x00007fff2034f91e __pthread_kill + 10
2 libsystem_c.dylib 0x00007fff202d3406 abort + 125
3 libc++abi.dylib 0x00007fff20341ef2 abort_message + 241
4 libc++abi.dylib 0x00007fff203335e5 demangling_terminate_handler() + 242
5 libobjc.A.dylib 0x00007fff2022c3db _objc_terminate() + 104
6 libc++abi.dylib 0x00007fff20341307 std::__terminate(void (*)()) + 8
7 libc++abi.dylib 0x00007fff20343beb __cxxabiv1::failed_throw(__cxxabiv1::__cxa_exception*) + 27
8 libc++abi.dylib 0x00007fff20343bb2 __cxa_throw + 116
9 libc++.1.dylib 0x00007fff2031e7bb std::__1::__throw_system_error(int, char const*) + 77
10 libc++.1.dylib 0x00007fff203153ed std::__1::mutex::lock() + 29
11 com.uaudio.effects.U3BU 0x000000011082dbc8 UAThread::GetThreadName(_opaque_pthread_t*, char*, unsigned long) + 40
12 com.uaudio.effects.U3BU 0x0000000110824e32 UALog::ProcessRecord(unsigned int&, unsigned int&) + 402
13 com.uaudio.effects.U3BU 0x000000011081a81e UALog::ProcessRecords() + 206
14 com.uaudio.effects.U3BU 0x000000011081be3d UALog::ThreadProc(bool volatile&) + 3341
15 com.uaudio.effects.U3BU 0x000000011082d99a UAThread::ThreadProcInternal() + 170
16 com.uaudio.effects.U3BU 0x000000011082defe void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, void (UAThread::*)(), UAThread*> >(void*) + 62
17 libsystem_pthread.dylib 0x00007fff2037e8fc _pthread_start + 224
18 libsystem_pthread.dylib 0x00007fff2037a443 thread_start + 15
– Plugins crash – How to find out which one