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