← Back to team overview

kicad-developers team mailing list archive

Re: hard crash with pcbnew

 

Hi,

> On 08.05.2015, at 05:22, Andy Peters <devel@xxxxxxxxx> wrote:
> 
> 
>> On May 6, 2015, at 12:55 PM, Andy Peters <devel@xxxxxxxxx> wrote:
>> 
>> Using Adam’s nightly OS X builds, most recently BZR 5645, pcbnew is repeatedly crashing. It happens on both my 10.9 machine and my 10.10 machine. In OpenGL mode, it seems to get confused about menus, or something. It happens if I right-click to do something. I am not exactly sure what conditions cause it. Attached is the relevant part of the bug report:
>> 
>> 
>> Crashed Thread:        0  Dispatch queue: com.apple.main-thread
>> 
>> Exception Type:        EXC_CRASH (SIGABRT)
>> Exception Codes:       0x0000000000000000, 0x0000000000000000
>> 
>> Application Specific Information:
>> *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Menu to be set as submenu is already a submenu of some menu.'
>> abort() called
>> terminating with uncaught exception of type NSException

I also can easily reproduce this one by quickly right-clicking in OpenGL mode a second time before the context menu of the previous click has opened.
The stack trace I get:

Application Specific Information:
*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Menu to be set as submenu is already a submenu of some menu.'
abort() called
terminating with uncaught exception of type NSException

Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0   libsystem_kernel.dylib        	0x00007fff96b67282 __pthread_kill + 10
1   libsystem_c.dylib             	0x00007fff8e7b6b73 abort + 129
2   libc++abi.dylib               	0x00007fff96ab3a21 abort_message + 257
3   libc++abi.dylib               	0x00007fff96adb9d1 default_terminate_handler() + 267
4   libobjc.A.dylib               	0x00007fff9141e6c6 _objc_terminate() + 103
5   libc++abi.dylib               	0x00007fff96ad90a1 std::__terminate(void (*)()) + 8
6   libc++abi.dylib               	0x00007fff96ad8b30 __cxa_throw + 121
7   libobjc.A.dylib               	0x00007fff9141a808 objc_exception_throw + 341
8   com.apple.CoreFoundation      	0x00007fff9569642a +[NSException raise:format:arguments:] + 106
9   com.apple.Foundation          	0x00007fff979305b9 -[NSAssertionHandler handleFailureInMethod:object:file:lineNumber:description:] + 195
10  com.apple.AppKit              	0x00007fff949fffcd -[NSMenuItem setSubmenu:] + 194
11  libwx_osx_cocoau_core-3.0.0.dylib	0x00000001094bc9e2 wxMenuCocoaImpl::InsertOrAppend(wxMenuItem*, unsigned long) + 178
12  libwx_osx_cocoau_core-3.0.0.dylib	0x000000010942273a wxMenu::DoInsertOrAppend(wxMenuItem*, unsigned long) + 122
13  libwx_osx_cocoau_core-3.0.0.dylib	0x0000000109422d49 wxMenu::DoAppend(wxMenuItem*) + 41
14  _pcbnew.kiface                	0x0000000111b4dd5c CONTEXT_MENU::Add(CONTEXT_MENU*, wxString const&, bool) + 348
15  _pcbnew.kiface                	0x000000011187ee78 CONDITIONAL_MENU::Generate(SELECTION&) + 264
16  _pcbnew.kiface                	0x00000001118745d6 SELECTION_TOOL::Main(TOOL_EVENT const&) + 630
17  _pcbnew.kiface                	0x0000000111b44d96 COROUTINE<int, TOOL_EVENT const&>::callerStub(long) + 38

The exception text and the stack trace looks like some race condition when creating the context menu?
Maybe some synchronization of these COROUTINE stuff needed when processing a previous right-click is not yet finished?

This is with 5648.


Regards,
Bernhard


Follow ups

References