← Back to team overview

kicad-developers team mailing list archive

Re: hard crash with pcbnew

 

Hi Orson,

if you talk about the “onrightclick.cpp” fix in 5648, then I think this one only would address the other problem reported by Andy (if at all, that was just a guess of mine):
<<<
NSInvalidArgumentException,
reason: ‘Unlocking Focus on wrong view (<wxNSView:0x60800366fc0>), expected <wxNSButton: 0x608000563180>’
abort() called
terminating with uncaught exception of type NSException
>>>

The still open
>>> *** 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

>> 

is in my opinion a race condition resp. synchronisation problem of the COROUTINE stuff… at least in the “click second time before context menu had opened” case.


Regards,
Bernhard


> On 12 May 2015, at 09:24, Maciej Sumiński <maciej.suminski@xxxxxxx> wrote:
> 
> Hi Andy,
> 
> Have you upgraded source code recently (revision >=5648)? Jean-Pierre
> has committed a potential fix for the problem.
> 
> Regards,
> Orson
> 
> On 05/12/2015 08:37 AM, Andy Peters 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
>> 
>> OK, I have come up with a sequence that will kill pcbnew dead every time. It happens with my builds, it happens with the nightlies.
>> 
>> In the openGL canvas, select a footprint. Either left-click on it so it is highlighted, or right-click on it to bring up the context menu. Either select something from the context menu, or click the canvas to clear the selection, doesn’t matter. Then right-click on any footprint or element in the design.
>> 
>> Bang — pcbnew will crash with the “Menu to be set as submenu is already a submenu of some menu.” 
>> 
>> The dispatch queue for the thread that crashes is here:
>> 
>> Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
>> 0   libsystem_kernel.dylib        0x00007fff918e5866 __pthread_kill + 10
>> 1   libsystem_pthread.dylib       0x00007fff8baca35c pthread_kill + 92
>> 2   libsystem_c.dylib             0x00007fff88eb6b1a abort + 125
>> 3   libc++abi.dylib               0x00007fff92228f31 abort_message + 257
>> 4   libc++abi.dylib               0x00007fff9224e952 default_terminate_handler() + 264
>> 5   libobjc.A.dylib               0x00007fff9200c30d _objc_terminate() + 103
>> 6   libc++abi.dylib               0x00007fff9224c1d1 std::__terminate(void (*)()) + 8
>> 7   libc++abi.dylib               0x00007fff9224bc5b __cxa_throw + 124
>> 8   libobjc.A.dylib               0x00007fff9200bfa1 objc_exception_throw + 343
>> 9   com.apple.CoreFoundation      0x00007fff8f6b7038 +[NSException raise:format:arguments:] + 104
>> 10  com.apple.Foundation          0x00007fff8ef25361 -[NSAssertionHandler handleFailureInMethod:object:file:lineNumber:description:] + 189
>> 11  com.apple.AppKit              0x00007fff95f17912 -[NSMenuItem setSubmenu:] + 203
>> 12  libwx_osx_cocoau_core-3.0.0.dylib 0x000000010d608d5a wxMenuCocoaImpl::InsertOrAppend(wxMenuItem*, unsigned long) + 202
>> 13  libwx_osx_cocoau_core-3.0.0.dylib 0x000000010d560f6a wxMenu::DoInsertOrAppend(wxMenuItem*, unsigned long) + 122
>> 14  libwx_osx_cocoau_core-3.0.0.dylib 0x000000010d5615c9 wxMenu::DoAppend(wxMenuItem*) + 41
>> 15  _pcbnew.kiface                0x00000001137a8f17 CONTEXT_MENU::Add(CONTEXT_MENU*, wxString const&, bool) + 423
>> 16  _pcbnew.kiface                0x00000001131f48b4 CONDITIONAL_MENU::Generate(SELECTION&) + 212
>> 17  _pcbnew.kiface                0x00000001131ea6db SELECTION_TOOL::Main(TOOL_EVENT const&) + 571
>> 18  _pcbnew.kiface                0x000000011379ec46 COROUTINE<int, TOOL_EVENT const&>::callerStub(long) + 38
>> 19  _pcbnew.kiface                0x00000001138da537 make_fcontext + 55
>> 
>> so basically what I think is happening is that the previous context menu hasn’t been “released.” This is where my application-programming fu is very thin.
>> 
>> -a
>> _______________________________________________
>> Mailing list: https://launchpad.net/~kicad-developers
>> Post to     : kicad-developers@xxxxxxxxxxxxxxxxxxx
>> Unsubscribe : https://launchpad.net/~kicad-developers
>> More help   : https://help.launchpad.net/ListHelp
>> 
> 
> 
> _______________________________________________
> Mailing list: https://launchpad.net/~kicad-developers
> Post to     : kicad-developers@xxxxxxxxxxxxxxxxxxx
> Unsubscribe : https://launchpad.net/~kicad-developers
> More help   : https://help.launchpad.net/ListHelp



References