On 19.10.2019 23:06, Branko Čibej wrote: > On 19.10.2019 19:55, Branko Čibej wrote: >> On 19.10.2019 11:45, Yasuhito FUTATSUKI wrote: >>> On 2019/10/18 8:39, Branko Čibej wrote: >>>> On 17.10.2019 23:46, Branko Čibej wrote: >>>>> On 17.10.2019 23:01, Daniel Shahaf wrote: >>>>>> Branko Čibej wrote on Thu, Oct 17, 2019 at 22:56:29 +0200: >>>>>>> On 17.10.2019 22:37, Daniel Shahaf wrote: >>>>>>>> Branko Čibej wrote on Thu, 17 Oct 2019 06:49 +00:00: >>>>>>>>> On 16.10.2019 10:01, Daniel Shahaf wrote: >>>>>>>>>> Which reminds me: it'd be nice to set up a buildbot to run the >>>>>>>>>> build and >>>>>>>>>> test process under Python 3. Any committer can edit the buildbot >>>>>>>>>> scripts[1], but the question is which of the buildbot slaves >>>>>>>>>> has Python 3 >>>>>>>>>> installed? >>>>>>>>> https://ci.apache.org/builders/svn-x64-macosx-local-python3 >>>>>>>>> >>>>>>>>> Been there, done that, bought the DVD. >>>>>>>> Why are svnadmin_tests 69 and tree_conflict_tests 26 passing on that >>>>>>>> bot? They (currently) fail under python3. >>>>>>> I don't know. It's possible, I suppose, that the activation of the >>>>>>> python3 virtual environment has no effect on the test driver. It >>>>>>> might >>>>>>> not be a bad idea to have the tests print the Python version in the >>>>>>> summary and possibly in the log of every test case. >>>>>> What's the value of $(PYTHON) in Makefile? That's what the «check» >>>>>> target uses. >>>>> Yep, apparently that's the bug ... I'm testing script changes now, >>>>> along >>>>> with r1868566 for good measure. >>>> I've set up this: >>>> https://ci.apache.org/builders/svn-x64-macosx-local-python3-swig >>>> >>>> It will build and test the core libraries and swig-py bindings with >>>> Python 3 on the swig-py3 branch. >>>> >>>> I hope ... build #0 running as we speak. >>> Unfortunately build #2, which ran after upgrading SWIG and Python, failed >>> to build SWIG Python bindings because of SWIG 4.0, as reported on >>> SVN-4818. >>> >>> This also affects on trunk with SWIG 4.0. >>> (e.g. https://ci.apache.org/builders/svn-x64-macosx-full/builds/2418) >>> >>> With attached patch on trunk (trunk_build_with_swig4_patch.txt) and >>> on swig-py3 (swig_py3_build_with_swig4_patch.txt), *.so can be produced, >>> but the modules don't work correctly. >>> >>> It seems they were caused by incompatibility of Python code for proxy >>> object generated by SWIG, and it can not be resolved so simple.... >>> (importlib module vs simply use 'import', absense of _swig_setattr() >>> and _swig_getattr(), etc.) >> My bad. I downgraded to Swig 3.0.12 and restarted the failed builds. > > Hm, that did not really help. On the swig-py3 branch: > > /bin/sh: line 1: 62481 Segmentation fault: 11 /srv/virtualenv-3/bin/python > /srv/buildbot/slave/svn-x64-macosx-local-python3-swig/build/subversion/bindings/swig/python/tests/run_all.py > make: *** [check-swig-py] Error 139 > > > So, the Python bindings seem to have crashed the Python 3 interpreter on > macOS?
Yes, they did: Process 28278 stopped * thread #2, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0x48) frame #0: 0x00007fff373ab746 Python`PyErr_Restore + 61 Python`PyErr_Restore: -> 0x7fff373ab746 <+61>: movq 0x48(%rbx), %rdi 0x7fff373ab74a <+65>: movq 0x50(%rbx), %r13 0x7fff373ab74e <+69>: movq 0x58(%rbx), %r12 0x7fff373ab752 <+73>: movq %r15, 0x48(%rbx) Target 0: (Python) stopped. frame #3: 0x0000000103800fea _core.so`PyInit__core at core.c:40158:12 40155 m = Py_InitModule((char *) SWIG_name, SwigMethods); 40156 #endif 40157 -> 40158 md = d = PyModule_GetDict(m); 40159 (void)md; 40160 40161 SWIG_InitializeModule(0); (lldb) print m (PyObject *) $0 = 0x000000010279ad70 (lldb) print *m (PyObject) $1 = { ob_refcnt = 785 ob_type = 0x000000010026ea30 } Full traceback attached, if that helps. -- Brane
* thread #2, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0x48) * frame #0: 0x00007fff373ab746 Python`PyErr_Restore + 61 frame #1: 0x00007fff373ac0fe Python`PyErr_Format + 153 frame #2: 0x00007fff373561f3 Python`PyModule_GetDict + 78 frame #3: 0x0000000103800fea _core.so`PyInit__core at core.c:40158:12 frame #4: 0x00000001001942cc Python`_PyImport_LoadDynamicModuleWithSpec + 568 frame #5: 0x0000000100193df9 Python`_imp_create_dynamic + 311 frame #6: 0x00000001000e9166 Python`_PyMethodDef_RawFastCallDict + 545 frame #7: 0x00000001000e8765 Python`_PyCFunction_FastCallDict + 44 frame #8: 0x0000000100177022 Python`_PyEval_EvalFrameDefault + 7367 frame #9: 0x000000010017e7a6 Python`_PyEval_EvalCodeWithName + 1870 frame #10: 0x00000001000e8a77 Python`_PyFunction_FastCallKeywords + 225 frame #11: 0x000000010017def7 Python`call_function + 753 frame #12: 0x0000000100176c70 Python`_PyEval_EvalFrameDefault + 6421 frame #13: 0x00000001000e8e8c Python`function_code_fastcall + 112 frame #14: 0x000000010017def7 Python`call_function + 753 frame #15: 0x0000000100176c57 Python`_PyEval_EvalFrameDefault + 6396 frame #16: 0x00000001000e8e8c Python`function_code_fastcall + 112 frame #17: 0x000000010017def7 Python`call_function + 753 frame #18: 0x0000000100176d0b Python`_PyEval_EvalFrameDefault + 6576 frame #19: 0x00000001000e8e8c Python`function_code_fastcall + 112 frame #20: 0x000000010017def7 Python`call_function + 753 frame #21: 0x0000000100176d0b Python`_PyEval_EvalFrameDefault + 6576 frame #22: 0x00000001000e8e8c Python`function_code_fastcall + 112 frame #23: 0x000000010017def7 Python`call_function + 753 frame #24: 0x0000000100176d0b Python`_PyEval_EvalFrameDefault + 6576 frame #25: 0x00000001000e8e8c Python`function_code_fastcall + 112 frame #26: 0x000000010017def7 Python`call_function + 753 frame #27: 0x0000000100176d0b Python`_PyEval_EvalFrameDefault + 6576 frame #28: 0x000000010017e7a6 Python`_PyEval_EvalCodeWithName + 1870 frame #29: 0x00000001000e8a77 Python`_PyFunction_FastCallKeywords + 225 frame #30: 0x000000010017def7 Python`call_function + 753 frame #31: 0x0000000100176c70 Python`_PyEval_EvalFrameDefault + 6421 frame #32: 0x000000010017e7a6 Python`_PyEval_EvalCodeWithName + 1870 frame #33: 0x00000001000e8a77 Python`_PyFunction_FastCallKeywords + 225 frame #34: 0x000000010017def7 Python`call_function + 753 frame #35: 0x0000000100176c70 Python`_PyEval_EvalFrameDefault + 6421 frame #36: 0x00000001000e8e8c Python`function_code_fastcall + 112 frame #37: 0x000000010017def7 Python`call_function + 753 frame #38: 0x0000000100176d0b Python`_PyEval_EvalFrameDefault + 6576 frame #39: 0x000000010017e7a6 Python`_PyEval_EvalCodeWithName + 1870 frame #40: 0x00000001001752b8 Python`PyEval_EvalCode + 51 frame #41: 0x0000000100172d1e Python`builtin_exec + 554 frame #42: 0x00000001000e9166 Python`_PyMethodDef_RawFastCallDict + 545 frame #43: 0x00000001000e8765 Python`_PyCFunction_FastCallDict + 44 frame #44: 0x0000000100177022 Python`_PyEval_EvalFrameDefault + 7367 frame #45: 0x000000010017e7a6 Python`_PyEval_EvalCodeWithName + 1870 frame #46: 0x00000001000e8a77 Python`_PyFunction_FastCallKeywords + 225 frame #47: 0x000000010017def7 Python`call_function + 753 frame #48: 0x0000000100176c70 Python`_PyEval_EvalFrameDefault + 6421 frame #49: 0x00000001000e8e8c Python`function_code_fastcall + 112 frame #50: 0x000000010017def7 Python`call_function + 753 frame #51: 0x0000000100176c57 Python`_PyEval_EvalFrameDefault + 6396 frame #52: 0x00000001000e8e8c Python`function_code_fastcall + 112 frame #53: 0x000000010017def7 Python`call_function + 753 frame #54: 0x0000000100176d0b Python`_PyEval_EvalFrameDefault + 6576 frame #55: 0x00000001000e8e8c Python`function_code_fastcall + 112 frame #56: 0x000000010017def7 Python`call_function + 753 frame #57: 0x0000000100176d0b Python`_PyEval_EvalFrameDefault + 6576 frame #58: 0x00000001000e8e8c Python`function_code_fastcall + 112 frame #59: 0x00000001000ea262 Python`object_vacall + 267 frame #60: 0x00000001000ea361 Python`_PyObject_CallMethodIdObjArgs + 168 frame #61: 0x0000000100193029 Python`PyImport_ImportModuleLevelObject + 1496 frame #62: 0x000000010017b94b Python`_PyEval_EvalFrameDefault + 26096 frame #63: 0x000000010017e7a6 Python`_PyEval_EvalCodeWithName + 1870 frame #64: 0x00000001001752b8 Python`PyEval_EvalCode + 51 frame #65: 0x0000000100172d1e Python`builtin_exec + 554 frame #66: 0x00000001000e9166 Python`_PyMethodDef_RawFastCallDict + 545 frame #67: 0x00000001000e8765 Python`_PyCFunction_FastCallDict + 44 frame #68: 0x0000000100177022 Python`_PyEval_EvalFrameDefault + 7367 frame #69: 0x000000010017e7a6 Python`_PyEval_EvalCodeWithName + 1870 frame #70: 0x00000001000e8a77 Python`_PyFunction_FastCallKeywords + 225 frame #71: 0x000000010017def7 Python`call_function + 753 frame #72: 0x0000000100176c70 Python`_PyEval_EvalFrameDefault + 6421 frame #73: 0x00000001000e8e8c Python`function_code_fastcall + 112 frame #74: 0x000000010017def7 Python`call_function + 753 frame #75: 0x0000000100176c57 Python`_PyEval_EvalFrameDefault + 6396 frame #76: 0x00000001000e8e8c Python`function_code_fastcall + 112 frame #77: 0x000000010017def7 Python`call_function + 753 frame #78: 0x0000000100176d0b Python`_PyEval_EvalFrameDefault + 6576 frame #79: 0x00000001000e8e8c Python`function_code_fastcall + 112 frame #80: 0x000000010017def7 Python`call_function + 753 frame #81: 0x0000000100176d0b Python`_PyEval_EvalFrameDefault + 6576 frame #82: 0x00000001000e8e8c Python`function_code_fastcall + 112 frame #83: 0x00000001000ea262 Python`object_vacall + 267 frame #84: 0x00000001000ea361 Python`_PyObject_CallMethodIdObjArgs + 168 frame #85: 0x0000000100193029 Python`PyImport_ImportModuleLevelObject + 1496 frame #86: 0x00000001001722d7 Python`builtin___import__ + 124 frame #87: 0x00000001000e8d54 Python`PyCFunction_Call + 208 frame #88: 0x0000000100177022 Python`_PyEval_EvalFrameDefault + 7367 frame #89: 0x000000010017e7a6 Python`_PyEval_EvalCodeWithName + 1870 frame #90: 0x00000001000e8a77 Python`_PyFunction_FastCallKeywords + 225 frame #91: 0x000000010017def7 Python`call_function + 753 frame #92: 0x0000000100176d0b Python`_PyEval_EvalFrameDefault + 6576 frame #93: 0x000000010017e7a6 Python`_PyEval_EvalCodeWithName + 1870 frame #94: 0x00000001000e86e5 Python`_PyFunction_FastCallDict + 441 frame #95: 0x00000001000ea262 Python`object_vacall + 267 frame #96: 0x00000001000ea361 Python`_PyObject_CallMethodIdObjArgs + 168 frame #97: 0x0000000100193144 Python`PyImport_ImportModuleLevelObject + 1779 frame #98: 0x000000010017b94b Python`_PyEval_EvalFrameDefault + 26096 frame #99: 0x000000010017e7a6 Python`_PyEval_EvalCodeWithName + 1870 frame #100: 0x00000001001752b8 Python`PyEval_EvalCode + 51 frame #101: 0x0000000100172d1e Python`builtin_exec + 554 frame #102: 0x00000001000e9166 Python`_PyMethodDef_RawFastCallDict + 545 frame #103: 0x00000001000e8765 Python`_PyCFunction_FastCallDict + 44 frame #104: 0x0000000100177022 Python`_PyEval_EvalFrameDefault + 7367 frame #105: 0x000000010017e7a6 Python`_PyEval_EvalCodeWithName + 1870 frame #106: 0x00000001000e8a77 Python`_PyFunction_FastCallKeywords + 225 frame #107: 0x000000010017def7 Python`call_function + 753 frame #108: 0x0000000100176c70 Python`_PyEval_EvalFrameDefault + 6421 frame #109: 0x00000001000e8e8c Python`function_code_fastcall + 112 frame #110: 0x000000010017def7 Python`call_function + 753 frame #111: 0x0000000100176c57 Python`_PyEval_EvalFrameDefault + 6396 frame #112: 0x00000001000e8e8c Python`function_code_fastcall + 112 frame #113: 0x000000010017def7 Python`call_function + 753 frame #114: 0x0000000100176d0b Python`_PyEval_EvalFrameDefault + 6576 frame #115: 0x00000001000e8e8c Python`function_code_fastcall + 112 frame #116: 0x000000010017def7 Python`call_function + 753 frame #117: 0x0000000100176d0b Python`_PyEval_EvalFrameDefault + 6576 frame #118: 0x00000001000e8e8c Python`function_code_fastcall + 112 frame #119: 0x00000001000ea262 Python`object_vacall + 267 frame #120: 0x00000001000ea361 Python`_PyObject_CallMethodIdObjArgs + 168 frame #121: 0x0000000100193029 Python`PyImport_ImportModuleLevelObject + 1496 frame #122: 0x000000010017b94b Python`_PyEval_EvalFrameDefault + 26096 frame #123: 0x000000010017e7a6 Python`_PyEval_EvalCodeWithName + 1870 frame #124: 0x00000001001752b8 Python`PyEval_EvalCode + 51 frame #125: 0x00000001001a394b Python`run_mod + 54 frame #126: 0x00000001001a2975 Python`PyRun_FileExFlags + 163 frame #127: 0x00000001001a201b Python`PyRun_SimpleFileExFlags + 263 frame #128: 0x00000001001ba89e Python`pymain_main + 5389 frame #129: 0x00000001001baf80 Python`_Py_UnixMain + 56 frame #130: 0x00007fff593843d5 libdyld.dylib`start + 1