File: mac-py36tk86-crash-may18.txt

########################################################################################
# The console log of an abort in the May 2018 Python 3.6/Tk 8.6 python.org install, 
# described at http://learning-python.com/python-changes-2014-plus.html#macpythontk86.
# This one occurs on High Sierra, when opening a standard Tk file-save dialog during
# a basic Save-As action in the PyEdit program.  It's running code that has worked 
# perfectly on all other Pythons and Tks used.  Per tracing, the new Python 3.6 and 
# Tk 8.6 are indeed running (Tk 8.6.8 specifically, though 8.6.7 crashes similarly).
########################################################################################

/MY-STUFF/Code/pyedit/TextEditor$ python3.6 textEditor.py 
PyEdit auto-save running
PyEdit auto-save finished
PyEdit caught openApp
2018-05-16 11:21:36.290 Python[501:12731] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'File types array cannot be empty'
*** First throw call stack:
(
	0   CoreFoundation                      0x00007fff38af02fb __exceptionPreprocess + 171
	1   libobjc.A.dylib                     0x00007fff5f45bc76 objc_exception_throw + 48
	2   CoreFoundation                      0x00007fff38b81d6d +[NSException raise:format:] + 205
	3   AppKit                              0x00007fff36783ca0 -[NSSavePanel setAllowedFileTypes:] + 154
	4   libtk8.6.dylib                      0x0000000109ce8d7d Tk_GetSaveFileObjCmd + 1907
	5   libtcl8.6.dylib                     0x0000000109ae26dc TclNRRunCallbacks + 80
	6   _tkinter.cpython-36m-darwin.so      0x0000000109ac0219 Tkapp_Call + 585
	7   Python                              0x0000000108cd2ee2 PyCFunction_Call + 258
	8   Python                              0x0000000108d527ff _PyEval_EvalFrameDefault + 28527
	9   Python                              0x0000000108d566af _PyEval_EvalCodeWithName + 2447
	10  Python                              0x0000000108d5727b _PyFunction_FastCallDict + 763
	11  Python                              0x0000000108c8a287 _PyObject_FastCallDict + 247
	12  Python                              0x0000000108c8a3a5 _PyObject_Call_Prepend + 149
	13  Python                              0x0000000108c8a0c0 PyObject_Call + 96
	14  Python                              0x0000000108d5268f _PyEval_EvalFrameDefault + 28159
	15  Python                              0x0000000108d56ebd fast_function + 381
	16  Python                              0x0000000108d55c21 call_function + 401
	17  Python                              0x0000000108d523ac _PyEval_EvalFrameDefault + 27420
	18  Python                              0x0000000108d566af _PyEval_EvalCodeWithName + 2447
	19  Python                              0x0000000108d4b83b PyEval_EvalCodeEx + 107
	20  Python                              0x0000000108cb38cd function_call + 381
	21  Python                              0x0000000108c8a0c0 PyObject_Call + 96
	22  Python                              0x0000000108d5268f _PyEval_EvalFrameDefault + 28159
	23  Python                              0x0000000108d566af _PyEval_EvalCodeWithName + 2447
	24  Python                              0x0000000108d56f61 fast_function + 545
	25  Python                              0x0000000108d55c21 call_function + 401
	26  Python                              0x0000000108d523ac _PyEval_EvalFrameDefault + 27420
	27  Python                              0x0000000108d570dc _PyFunction_FastCallDict + 348
	28  Python                              0x0000000108c8a287 _PyObject_FastCallDict + 247
	29  Python                              0x0000000108c8a3a5 _PyObject_Call_Prepend + 149
	30  Python                              0x0000000108c8a0c0 PyObject_Call + 96
	31  Python                              0x0000000108d5268f _PyEval_EvalFrameDefault + 28159
	32  Python                              0x0000000108d566af _PyEval_EvalCodeWithName + 2447
	33  Python                              0x0000000108d5727b _PyFunction_FastCallDict + 763
	34  Python                              0x0000000108c8a287 _PyObject_FastCallDict + 247
	35  Python                              0x0000000108c8a3a5 _PyObject_Call_Prepend + 149
	36  Python                              0x0000000108c8a0c0 PyObject_Call + 96
	37  _tkinter.cpython-36m-darwin.so      0x0000000109ac276c PythonCmd + 204
	38  libtcl8.6.dylib                     0x0000000109ae1202 TclInvokeStringCommand + 124
	39  libtcl8.6.dylib                     0x0000000109ae26dc TclNRRunCallbacks + 80
	40  libtk8.6.dylib                      0x0000000109c63965 ButtonWidgetObjCmd + 922
	41  libtcl8.6.dylib                     0x0000000109ae26dc TclNRRunCallbacks + 80
	42  libtcl8.6.dylib                     0x0000000109ae393a TclEvalEx + 1953
	43  libtcl8.6.dylib                     0x0000000109ae3193 Tcl_EvalEx + 26
	44  libtk8.6.dylib                      0x0000000109c3839f Tk_BindEvent + 3956
	45  libtk8.6.dylib                      0x0000000109c3db6d TkBindEventProc + 347
	46  libtk8.6.dylib                      0x0000000109c45636 Tk_HandleEvent + 1108
	47  libtk8.6.dylib                      0x0000000109c45b5f WindowEventProc + 96
	48  libtcl8.6.dylib                     0x0000000109b91a65 Tcl_ServiceEvent + 140
	49  libtcl8.6.dylib                     0x0000000109b91d10 Tcl_DoOneEvent + 326
	50  _tkinter.cpython-36m-darwin.so      0x0000000109ac201d _tkinter_tkapp_mainloop + 269
	51  Python                              0x0000000108cd312b _PyCFunction_FastCallDict + 491
	52  Python                              0x0000000108d55c47 call_function + 439
	53  Python                              0x0000000108d523ac _PyEval_EvalFrameDefault + 27420
	54  Python                              0x0000000108d566af _PyEval_EvalCodeWithName + 2447
	55  Python                              0x0000000108d56f61 fast_function + 545
	56  Python                              0x0000000108d55c21 call_function + 401
	57  Python                              0x0000000108d523ac _PyEval_EvalFrameDefault + 27420
	58  Python                              0x0000000108d566af _PyEval_EvalCodeWithName + 2447
	59  Python                              0x0000000108d56f61 fast_function + 545
	60  Python                              0x0000000108d55c21 call_function + 401
	61  Python                              0x0000000108d523ac _PyEval_EvalFrameDefault + 27420
	62  Python                              0x0000000108d566af _PyEval_EvalCodeWithName + 2447
	63  Python                              0x0000000108d4b7c4 PyEval_EvalCode + 100
	64  Python                              0x0000000108d81901 PyRun_FileExFlags + 209
	65  Python                              0x0000000108d811b3 PyRun_SimpleFileExFlags + 851
	66  Python                              0x0000000108d9af62 Py_Main + 3554
	67  Python                              0x0000000108c75df8 Python + 3576
	68  libdyld.dylib                       0x00007fff6004a145 start + 1
	69  ???                                 0x0000000000000002 0x0 + 2
)
libc++abi.dylib: terminating with uncaught exception of type NSException
Abort trap: 6
/MY-STUFF/Code/pyedit/TextEditor$ 


########################################################################################
# The following sometimes appears on High Sierra program start-up too--but not always,
# and it also now appears when running a Python 3.5/Tk 8.5.  This may or may not be 
# related to the dialog crash, and prior 3.5/8.5 console output is unknown; but it may
# reflect a general Tk issue on High Sierra, or a disease spread by installing 3.6/8.6.
########################################################################################

/MY-STUFF/Code/pyedit/TextEditor$ python3.6 textEditor.py 
PyEdit auto-save running
PyEdit auto-save finished
PyEdit caught openApp
objc[510]: Class FIFinderSyncExtensionHost is implemented in both /System/Library/PrivateFrameworks/FinderKit.framework/Versions/A/FinderKit (0x7fff962e2a70) and /System/Library/PrivateFrameworks/FileProvider.framework/OverrideBundles/FinderSyncCollaborationFileProviderOverride.bundle/Contents/MacOS/FinderSyncCollaborationFileProviderOverride (0x12976dcd8). One of the two will be used. Which one is undefined.


########################################################################################
# Of course, this might be resolved with debugging, code changes, and workarounds,
# but that shouldn't be required.  Moreover, additional 8.6 issues have been observed
# when running source code, including odd button placement and toolbar buttons missing 
# altogether--even for a Python 3.5.  In other words, installing the 3.6/8.6 package 
# may have botched system-wide state, and there are clearly other problems looming.
# Hence, punt; the 3.6/8.6 install is not viable for apps on this site.  Luckily, 
# these apps bundle their own Python and Tk, and are thus immune to new bugs in either.  
########################################################################################



[Home page] Books Code Blog Python Author Train Find ©M.Lutz