Crash on SetStatusBar()

I’m making slow progress on getting Dabo working. I’m at the point where the initial frame and menu have been created and the app’s MainLoop is running. In the initialization of the main frame, I use a CallAfter() to invoke the method that creates the frame’s StatusBar. It consistently crashes on the call to SetStatusBar().

The entire crash dump is at Process: Python [29375]Path: /Library/Framework - Pastebin.com, but here is the info at the top:

Process: Python [29375]
Path: /Library/Frameworks/Python.framework/Versions/3.7/Resources/Python.app/Contents/MacOS/Python
Identifier: org.python.python
Version: 3.7.2 (3.7.2)
Code Type: X86-64 (Native)
Parent Process: bash [3647]
Responsible: Python [29375]
User ID: 501


Date/Time: 2019-01-28 18:22:08.575 -0600
OS Version: Mac OS X 10.14.2 (18C54)
Report Version: 12
Anonymous UUID: B41278DA-B6CD-1053-61D0-51246DAB08C9


Sleep/Wake UUID: 0DDD93FA-D84B-4FA8-BCBD-4709F93A7798


Time Awake Since Boot: 150000 seconds
Time Since Wake: 38000 seconds


System Integrity Protection: enabled


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


Exception Type: EXC_BAD_ACCESS (SIGSEGV)
Exception Codes: KERN_INVALID_ADDRESS at 0x0000000000000000
Exception Note: EXC_CORPSE_NOTIFY


Termination Signal: Segmentation fault: 11
Termination Reason: Namespace SIGNAL, Code 0xb
Terminating Process: exc handler [29375]


VM Regions Near 0:
-->
    __TEXT 000000010d41e000-000000010d41f000 [ 4K] r-x/rwx SM=COW /Library/Frameworks/Python.framework/Versions/3.7/Resources/Python.app/Contents/MacOS/Python


Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0 libwx_osx_cocoau_core-3.0.0.4.0.dylib	0x000000010ecf5de8 wxWindow::DoGetPosition(int*, int*) const + 40
1 _core.cpython-37m-darwin.so 0x000000010e23eb53 sipwxStatusBar::DoGetPosition(int*, int*) const + 115
2 libwx_osx_cocoau_core-3.0.0.4.0.dylib	0x000000010ecf6f4d wxWindow::DoSetSize(int, int, int, int, int) + 61
3 _core.cpython-37m-darwin.so 0x000000010e23e9c8 sipwxStatusBar::DoSetSize(int, int, int, int, int) + 152
4 libwx_osx_cocoau_core-3.0.0.4.0.dylib	0x000000010ed4d91d wxFrame::PositionStatusBar() + 93
5 libwx_osx_cocoau_core-3.0.0.4.0.dylib	0x000000010ee2f0e7 wxFrameBase::SetStatusBar(wxStatusBar*) + 55
6 _core.cpython-37m-darwin.so 0x000000010e029c49 meth_wxFrame_SetStatusBar(_object*, _object*, _object*) + 153
7 org.python.python 0x000000010d44485d _PyMethodDef_RawFastCallKeywords + 685
8 org.python.python 0x000000010d443cca _PyCFunction_FastCallKeywords + 42
9 org.python.python 0x000000010d502804 call_function + 724

Any ideas as to what’s wrong, or how I could debug further?

– Ed

No solid ideas, but I think I would try to delay the target of the CallAfter by switching to CallLater, just to see if the timing of the startup sequence is having some effect on the problem. For example, if there is something that results in a wx.Yield or similar nested event loop before the real MainLoop starts up, and the CallAfter is being invoked there, then perhaps something is in an inconsistent state and is not ready to do the things that are done when the statusbar is added.

···

On Monday, January 28, 2019 at 4:33:13 PM UTC-8, Ed Leafe wrote:

I’m making slow progress on getting Dabo working. I’m at the point where the initial frame and menu have been created and the app’s MainLoop is running. In the initialization of the main frame, I use a CallAfter() to invoke the method that creates the frame’s StatusBar. It consistently crashes on the call to SetStatusBar().

Any ideas as to what’s wrong, or how I could debug further?

Robin