VSTi Crash in Ableton Live OSX


#1

A user reported a crash in ableton live while using the VST plugin. I couldnt reproduce it in a simple project, but he sent me a crash log and it looks that the button listeners produces the crash. Here are the steps that lead to the crash some times:

I have now managed to recreate the crash several times by playing the computer keyboard as a regular keyboard for the VSTi Plugin, than opening up the interface and trying to adjust something, which in several cases ends up in a crash.

Process:         Live [25942]
Path:            /Applications/Ableton Live 8.app/Contents/MacOS/Live
Identifier:      com.ableton.live
Version:         8.3.4 [2012-08-30_b858ac4acd] (8.3.4 [2012-08-30_b858ac4acd])
Code Type:       X86 (Native)
Parent Process:  launchd [229]

Date/Time:       2013-01-07 21:30:26.992 +0100
OS Version:      Mac OS X 10.7.5 (11G63)
Report Version:  9

Crashed Thread:  0  Dispatch queue: com.apple.main-thread

Exception Type:  EXC_BAD_ACCESS (SIGBUS)
Exception Codes: KERN_PROTECTION_FAILURE at 0x000000000000000d

VM Regions Near 0xd:
--> __PAGEZERO             0000000000000000-0000000000001000 [    4K] ---/--- SM=NUL  /Applications/Ableton Live 8.app/Contents/MacOS/Live
    __TEXT                 0000000000001000-00000000020a4000 [ 32.6M] r-x/rwx SM=COW  /Applications/Ableton Live 8.app/Contents/MacOS/Live

Application Specific Information:
objc[25942]: garbage collection is OFF

Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0   ch.toguaudioline.talunolxv2   	0x3cf553b6 void juce::ListenerList<juce::Button::Listener, juce::Array<juce::Button::Listener*, juce::DummyCriticalSection> >::callChecked<juce::Component::BailOutChecker, juce::Button*>(juce::Component::BailOutChecker const&, void (juce::Button::Listener::*)(juce::Button*), juce::TypeHelpers::ParameterType<juce::Button*>::type) + 54
1   ch.toguaudioline.talunolxv2   	0x3cf1740f juce::Button::sendStateMessage() + 101
2   ch.toguaudioline.talunolxv2   	0x3cf4db50 juce::Button::updateState(bool, bool) + 148
3   ch.toguaudioline.talunolxv2   	0x3cf4dd05 juce::Button::mouseExit(juce::MouseEvent const&) + 33
4   ch.toguaudioline.talunolxv2   	0x3cf1e7b7 juce::Component::internalMouseExit(juce::MouseInputSource&, juce::Point<int> const&, juce::Time const&) + 167
5   ch.toguaudioline.talunolxv2   	0x3cf7a73f juce::MouseInputSourceInternal::sendMouseExit(juce::Component*, juce::Point<int> const&, juce::Time const&) + 91
6   ch.toguaudioline.talunolxv2   	0x3cf8538a juce::MouseInputSourceInternal::setComponentUnderMouse(juce::Component*, juce::Point<int> const&, juce::Time const&) + 182
7   ch.toguaudioline.talunolxv2   	0x3cf85488 juce::MouseInputSourceInternal::setScreenPos(juce::Point<int> const&, juce::Time const&, bool) + 60
8   ch.toguaudioline.talunolxv2   	0x3cf855ec juce::MouseInputSourceInternal::handleAsyncUpdate() + 108
9   ch.toguaudioline.talunolxv2   	0x3ce7298a juce::MessageQueue::deliverNextMessage() + 68
10  ch.toguaudioline.talunolxv2   	0x3ce729ee juce::MessageQueue::runLoopCallback() + 24
11  com.apple.CoreFoundation      	0x9a7b213f __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 15
12  com.apple.CoreFoundation      	0x9a7b1af6 __CFRunLoopDoSources0 + 246
13  com.apple.CoreFoundation      	0x9a7db9c8 __CFRunLoopRun + 1112
14  com.apple.CoreFoundation      	0x9a7db1dc CFRunLoopRunSpecific + 332
15  com.apple.CoreFoundation      	0x9a7db088 CFRunLoopRunInMode + 120
16  com.apple.HIToolbox           	0x92ec6543 RunCurrentEventLoopInMode + 318
17  com.apple.HIToolbox           	0x92ecd7d6 ReceiveNextEventCommon + 168
18  com.apple.HIToolbox           	0x92ecd71a BlockUntilNextEventMatchingListInMode + 88
19  com.apple.AppKit              	0x91595ee8 _DPSNextEvent + 678
20  com.apple.AppKit              	0x91595752 -[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:] + 113
21  com.apple.AppKit              	0x91591ac1 -[NSApplication run] + 911
22  com.ableton.live              	0x0147ac50 std::out_of_range::~out_of_range() + 2268656
23  com.ableton.live              	0x0146c204 std::out_of_range::~out_of_range() + 2208676
24  com.ableton.live              	0x00002bbb 0x1000 + 7099
25  com.ableton.live              	0x00002ae9 0x1000 + 6889

Thread 1:: Dispatch queue: com.apple.libdispatch-manager
0   libsystem_kernel.dylib        	0x94bf090a kevent + 10
1   libdispatch.dylib             	0x9ac0be04 _dispatch_mgr_invoke + 969
2   libdispatch.dylib             	0x9ac0a853 _dispatch_mgr_thread + 53

Thread 2:
0   libsystem_kernel.dylib        	0x94bedc5e semaphore_wait_trap + 10
1   com.ableton.live              	0x003b3a10 0x1000 + 3877392
2   com.ableton.live              	0x00460663 0x1000 + 4585059
3   com.ableton.live              	0x00460687 0x1000 + 4585095
4   com.ableton.live              	0x003ad261 0x1000 + 3850849
5   libsystem_c.dylib             	0x92385ed9 _pthread_start + 335
6   libsystem_c.dylib             	0x923896de thread_start + 34

Thread 3:
0   libsystem_kernel.dylib        	0x94bedc5e semaphore_wait_trap + 10
1   com.ableton.live              	0x003b3a10 0x1000 + 3877392
2   com.ableton.live              	0x00073f7f 0x1000 + 470911
3   com.ableton.live              	0x003ad261 0x1000 + 3850849
4   libsystem_c.dylib             	0x92385ed9 _pthread_start + 335
5   libsystem_c.dylib             	0x923896de thread_start + 34

Thread 4:
0   libsystem_kernel.dylib        	0x94bedc5e semaphore_wait_trap + 10
1   com.ableton.live              	0x003b3a10 0x1000 + 3877392
2   com.ableton.live              	0x00073f7f 0x1000 + 470911
3   com.ableton.live              	0x003ad261 0x1000 + 3850849
4   libsystem_c.dylib             	0x92385ed9 _pthread_start + 335
5   libsystem_c.dylib             	0x923896de thread_start + 34

Thread 5:
0   libsystem_kernel.dylib        	0x94bedc5e semaphore_wait_trap + 10
1   com.ableton.live              	0x003b3a10 0x1000 + 3877392
2   com.ableton.live              	0x00073f7f 0x1000 + 470911
3   com.ableton.live              	0x003ad261 0x1000 + 3850849
4   libsystem_c.dylib             	0x92385ed9 _pthread_start + 335
5   libsystem_c.dylib             	0x923896de thread_start + 34

Thread 6:
0   libsystem_kernel.dylib        	0x94bedc5e semaphore_wait_trap + 10
1   com.ableton.live              	0x003b3a10 0x1000 + 3877392
2   com.ableton.live              	0x002d65b1 0x1000 + 2971057
3   com.ableton.live              	0x003ad261 0x1000 + 3850849
4   libsystem_c.dylib             	0x92385ed9 _pthread_start + 335
5   libsystem_c.dylib             	0x923896de thread_start + 34

Thread 7:
0   libsystem_kernel.dylib        	0x94bedc22 mach_msg_trap + 10
1   libsystem_kernel.dylib        	0x94bed1f6 mach_msg + 70
2   com.apple.audio.midi.CoreMIDI 	0x02aaaf67 XServerMachPort::ReceiveMessage(int&, void*, int&) + 101
3   com.apple.audio.midi.CoreMIDI 	0x02acdf5b MIDIProcess::RunMIDIInThread() + 259
4   com.apple.audio.midi.CoreMIDI 	0x02ace8e2 MIDIProcess::MIDIInPortThread::Run() + 24
5   com.apple.audio.midi.CoreMIDI 	0x02aac53b XThread::RunHelper(void*) + 17
6   com.apple.audio.midi.CoreMIDI 	0x02aabf05 CAPThread::Entry(CAPThread*) + 123
7   libsystem_c.dylib             	0x92385ed9 _pthread_start + 335
8   libsystem_c.dylib             	0x923896de thread_start + 34

Thread 8:
0   libsystem_kernel.dylib        	0x94bedd36 mach_wait_until + 10
1   com.apple.CoreServices.CarbonCore	0x908007f8 MPDelayUntil + 29
2   com.apple.CoreServices.CarbonCore	0x90812694 Delay + 108
3   se.propellerheads.rewire.library	0x10e3a274 RWIsReWireMixerAppRunningImp + 33924
4   se.propellerheads.rewire.library	0x10e48208 RWIsReWireMixerAppRunningImp + 91160
5   libsystem_c.dylib             	0x92385ed9 _pthread_start + 335
6   libsystem_c.dylib             	0x923896de thread_start + 34

Thread 9:
0   libsystem_kernel.dylib        	0x94bedc22 mach_msg_trap + 10
1   libsystem_kernel.dylib        	0x94bed1f6 mach_msg + 70
2   se.propellerheads.reason.engine	0x1141b51a RWDEFLaunchPanelApp + 3327482
3   libsystem_c.dylib             	0x92385ed9 _pthread_start + 335
4   libsystem_c.dylib             	0x923896de thread_start + 34

Thread 10:
0   libsystem_kernel.dylib        	0x94bedc76 semaphore_timedwait_trap + 10
1   com.ableton.live              	0x003b3aff 0x1000 + 3877631
2   com.ableton.live              	0x00fd6bca std::range_error::~range_error() + 1324472
3   com.ableton.live              	0x003ad261 0x1000 + 3850849
4   libsystem_c.dylib             	0x92385ed9 _pthread_start + 335
5   libsystem_c.dylib             	0x923896de thread_start + 34

Thread 11:: com.apple.audio.IOThread.client
0   libsystem_kernel.dylib        	0x94bedc22 mach_msg_trap + 10
1   libsystem_kernel.dylib        	0x94bed1f6 mach_msg + 70
2   com.apple.audio.CoreAudio     	0x900309d6 HALB_MachPort::SendMessageWithReply(unsigned int, unsigned int, unsigned long, unsigned long, mach_msg_header_t*, unsigned int) + 122
3   com.apple.audio.CoreAudio     	0x90030a42 HALB_MachPort::SendSimpleMessageWithSimpleReply(unsigned int, unsigned int, int, int&, unsigned int) + 60
4   com.apple.audio.CoreAudio     	0x90028e37 HALC_ProxyIOContext::IOWorkLoop() + 1145
5   com.apple.audio.CoreAudio     	0x900288fe HALC_ProxyIOContext::IOThreadEntry(void*) + 136
6   com.apple.audio.CoreAudio     	0x90028870 __HALC_ProxyIOContext_block_invoke_6 + 20
7   com.apple.audio.CoreAudio     	0x900287f5 HALB_IOThread::Entry(void*) + 69
8   libsystem_c.dylib             	0x92385ed9 _pthread_start + 335
9   libsystem_c.dylib             	0x923896de thread_start + 34

Thread 12:: com.apple.CFSocket.private
0   libsystem_kernel.dylib        	0x94befb42 __select + 10
1   com.apple.CoreFoundation      	0x9a829e15 __CFSocketManager + 1557
2   libsystem_c.dylib             	0x92385ed9 _pthread_start + 335
3   libsystem_c.dylib             	0x923896de thread_start + 34

Thread 13:: Juce Timer
0   libsystem_kernel.dylib        	0x94bef83e __psynch_cvwait + 10
1   libsystem_c.dylib             	0x92389e21 _pthread_cond_wait + 827
2   libsystem_c.dylib             	0x9233a3e0 pthread_cond_timedwait$UNIX2003 + 70
3   ch.toguaudioline.talunolxv2   	0x3ce588ef juce::WaitableEventImpl::wait(int) + 175
4   ch.toguaudioline.talunolxv2   	0x3ce2e287 juce::Thread::wait(int) const + 27
5   ch.toguaudioline.talunolxv2   	0x3ce732f0 juce::Timer::TimerThread::run() + 202
6   ch.toguaudioline.talunolxv2   	0x3ce34739 juce::Thread::threadEntryPoint() + 103
7   ch.toguaudioline.talunolxv2   	0x3ce347b7 threadEntryProc + 40
8   libsystem_c.dylib             	0x92385ed9 _pthread_start + 335
9   libsystem_c.dylib             	0x923896de thread_start + 34

Thread 14:
0   libsystem_kernel.dylib        	0x94bf002e __workq_kernreturn + 10
1   libsystem_c.dylib             	0x92387ccf _pthread_wqthread + 773
2   libsystem_c.dylib             	0x923896fe start_wqthread + 30

Thread 15:
0   libsystem_kernel.dylib        	0x94bf002e __workq_kernreturn + 10
1   libsystem_c.dylib             	0x92387ccf _pthread_wqthread + 773
2   libsystem_c.dylib             	0x923896fe start_wqthread + 30

Thread 0 crashed with X86 Thread State (32-bit):
  eax: 0x00000001  ebx: 0x00000000  ecx: 0x253f3428  edx: 0x00000000
  edi: 0x253f34d0  esi: 0x0000000d  ebp: 0xbfffe4e8  esp: 0xbfffe4b0
   ss: 0x00000023  efl: 0x00010202  eip: 0x3cf553b6   cs: 0x0000001b
   ds: 0x00000023   es: 0x00000023   fs: 0x00000000   gs: 0x0000000f
  cr2: 0x0000000d
Logical CPU: 2


0x3cd98000 - 0x3d278ffb +ch.toguaudioline.talunolxv2 (2.0.1 - 2.0.1) <3AB0201C-99C9-3085-BF89-F2E66221404A> /Library/Audio/Plug-Ins/VST/TAL-U-NO-LX-V2.vst/Contents/MacOS/TAL-U-NO-LX-V2

Any help is welcome.


#2

Did you ever get any help with this? I am encountering a similar issue on Windows 7 x64 and Live 8.2.5


#3

No. I had no chance to fix this because i couldnt reproduce it on my machine and even the bug reporter couldnt reproduce it reliable.
Updated to the latest tip and didnt get any bug reports about this anymore. Maybe the problem still exists.

Be carefully when you update to the latest tip. You maybe run into follwing issue if you make a vsti where people play the synth with the laptop keys and modulate the sound:
http://www.rawmaterialsoftware.com/viewtopic.php?f=8&t=11290


#4

The keyboard issue is something i had with my morf plugin. But i managed to fix it. It looks like Live passes keyboard events to the plugin and does that in a loop until your plugin “eats” the event. So i had to add a keyPressed() callback to my plugin editor and return “true” in it, in all other cases Live would either hanG or crash, while the plugin would be in an infinite loop calling the keyPressed() method.

If you want to look at the code it’s here https://sourceforge.net/projects/morf-wrapper/

I noticed that the flag “Plugin wants keyboard focus” makes no difference.


#5

[quote=“atom”]The keyboard issue is something i had with my morf plugin. But i managed to fix it. It looks like Live passes keyboard events to the plugin and does that in a loop until your plugin “eats” the event. So i had to add a keyPressed() callback to my plugin editor and return “true” in it, in all other cases Live would either hanG or crash, while the plugin would be in an infinite loop calling the keyPressed() method.

If you want to look at the code it’s here https://sourceforge.net/projects/morf-wrapper/

I noticed that the flag “Plugin wants keyboard focus” makes no difference.[/quote]
Thanks for the information. Sounds exactly like the problem here http://www.rawmaterialsoftware.com/viewtopic.php?f=8&t=11290. I will try it.


#6

[quote=“atom”]The keyboard issue is something i had with my morf plugin. But i managed to fix it. It looks like Live passes keyboard events to the plugin and does that in a loop until your plugin “eats” the event. So i had to add a keyPressed() callback to my plugin editor and return “true” in it, in all other cases Live would either hanG or crash, while the plugin would be in an infinite loop calling the keyPressed() method.

If you want to look at the code it’s here https://sourceforge.net/projects/morf-wrapper/

I noticed that the flag “Plugin wants keyboard focus” makes no difference.[/quote]

Thanks! This was the problem. I don’t think you have the latest code hosted on sourceforge though, I couldn’t find the keyPressed() event in your Editor.