Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Segmentation fault when importing python package #115

Closed
moble opened this issue Feb 20, 2022 · 6 comments
Closed

Segmentation fault when importing python package #115

moble opened this issue Feb 20, 2022 · 6 comments

Comments

@moble
Copy link

moble commented Feb 20, 2022

I maintain a python package that I wanted to use via PythonCall, but as soon as I try to import it, I get a segfault. I've never encountered such a problem when using it from python. And I can use the python binary installed as .CondaPkg/env/bin/python, and successfully import and use the package that way — but not so in julia with pyimport. I've tried this in Julia 1.6.2 and 1.7.2, with the same result.

I don't claim to understand the traceback, but it looks like it starts in libLLVM. The package being loaded does make pretty extensive use of numba, but I've also tried just pyimport("numba"), and don't see such a segfault. FWIW, the python package was just updated and rebuilt with all the latest goodness on the python side. The only relevant thing I can find on the internet is this issue, which appears to be going the opposite direction (using julia from python), and doesn't reach any useful conclusions.

Here is a MWE starting from an empty project:

> cd tmp/PythonCallTest  # or whatever disposable directory
> julia --project=.
julia> using Pkg
julia> Pkg.add(["CondaPkg", "PythonCall"])
julia> using CondaPkg
julia> CondaPkg.add("quaternionic")
julia> CondaPkg.resolve(; force=true)
julia> using PythonCall
julia> pyimport("quaternionic")
Here is the list of packages conda installs (click to expand)
  + bzip2                1.0.8  h0d85af4_4          conda-forge/osx-64     Cached
  + ca-certificates  2021.10.8  h033912b_0          conda-forge/osx-64     Cached
  + libblas              3.9.0  13_osx64_openblas   conda-forge/osx-64     Cached
  + libcblas             3.9.0  13_osx64_openblas   conda-forge/osx-64     Cached
  + libcxx              12.0.1  habf9029_1          conda-forge/osx-64     Cached
  + libffi               3.4.2  h0d85af4_5          conda-forge/osx-64     Cached
  + libgfortran          5.0.0  9_3_0_h6c81a4c_23   conda-forge/osx-64     Cached
  + libgfortran5         9.3.0  h6c81a4c_23         conda-forge/osx-64     Cached
  + liblapack            3.9.0  13_osx64_openblas   conda-forge/osx-64     Cached
  + libllvm11           11.1.0  hd011deb_3          conda-forge/osx-64     Cached
  + libopenblas         0.3.18  openmp_h3351f45_0   conda-forge/osx-64     Cached
  + libzlib             1.2.11  h9173be1_1013       conda-forge/osx-64     Cached
  + llvm-openmp         13.0.1  hda6cdc1_0          conda-forge/osx-64     Cached
  + llvmlite            0.38.0  py310h003a20c_0     conda-forge/osx-64     Cached
  + ncurses                6.3  he49afe7_0          conda-forge/osx-64     Cached
  + numba               0.55.1  py310h3ca88a5_0     conda-forge/osx-64     Cached
  + numpy               1.21.5  py310ha69e199_0     conda-forge/osx-64     Cached
  + openssl              3.0.0  h0d85af4_2          conda-forge/osx-64     Cached
  + pip                 22.0.3  pyhd8ed1ab_0        conda-forge/noarch     Cached
  + python              3.10.2  hea1dfa3_3_cpython  conda-forge/osx-64     Cached
  + python_abi            3.10  2_cp310             conda-forge/osx-64     Cached
  + quaternionic         1.0.3  pyhd8ed1ab_0        conda-forge/noarch     Cached
  + readline               8.1  h05e3726_0          conda-forge/osx-64     Cached
  + scipy                1.8.0  py310h47774c9_1     conda-forge/osx-64     Cached
  + setuptools          60.9.3  py310h2ec42d9_0     conda-forge/osx-64     Cached
  + sqlite              3.37.0  h23a322b_0          conda-forge/osx-64     Cached
  + tk                  8.6.12  h5dbffcc_0          conda-forge/osx-64     Cached
  + tzdata               2021e  he74cb21_0          conda-forge/noarch     Cached
  + wheel               0.37.1  pyhd8ed1ab_0        conda-forge/noarch     Cached
  + xz                   5.2.5  haf1e3a3_1          conda-forge/osx-64     Cached
  + zlib                1.2.11  h9173be1_1013       conda-forge/osx-64     Cached
And here is the resulting segfault (click to expand)
signal (11): Segmentation fault: 11
in expression starting at REPL[8]:1
_ZN4llvm17PMTopLevelManager16addImmutablePassEPNS_13ImmutablePassE at /Users/me/tmp/PythonCallTest/.CondaPkg/env/lib/libLLVM-11.dylib (unknown line)
_ZN4llvm17PMTopLevelManager12schedulePassEPNS_4PassE at /Users/me/tmp/PythonCallTest/.CondaPkg/env/lib/libLLVM-11.dylib (unknown line)
_ZN4llvm17PMTopLevelManager12schedulePassEPNS_4PassE at /Users/me/tmp/PythonCallTest/.CondaPkg/env/lib/libLLVM-11.dylib (unknown line)
_ZN4llvm18PassManagerBuilder25populateModulePassManagerERNS_6legacy15PassManagerBaseE at /Users/me/tmp/PythonCallTest/.CondaPkg/env/lib/libLLVM-11.dylib (unknown line)
ffi_call_unix64 at /Users/me/tmp/PythonCallTest/.CondaPkg/env/lib/libffi.8.dylib (unknown line)
ffi_call_int at /Users/me/tmp/PythonCallTest/.CondaPkg/env/lib/libffi.8.dylib (unknown line)
_ctypes_callproc at /Users/me/tmp/PythonCallTest/.CondaPkg/env/lib/python3.10/lib-dynload/_ctypes.cpython-310-darwin.so (unknown line)
PyCFuncPtr_call at /Users/me/tmp/PythonCallTest/.CondaPkg/env/lib/python3.10/lib-dynload/_ctypes.cpython-310-darwin.so (unknown line)
_PyObject_Call at /Users/me/tmp/PythonCallTest/.CondaPkg/env/lib/libpython3.10.dylib (unknown line)
_PyEval_EvalFrameDefault at /Users/me/tmp/PythonCallTest/.CondaPkg/env/lib/libpython3.10.dylib (unknown line)
_PyEval_Vector at /Users/me/tmp/PythonCallTest/.CondaPkg/env/lib/libpython3.10.dylib (unknown line)
_PyObject_FastCallDictTstate at /Users/me/tmp/PythonCallTest/.CondaPkg/env/lib/libpython3.10.dylib (unknown line)
slot_tp_call at /Users/me/tmp/PythonCallTest/.CondaPkg/env/lib/libpython3.10.dylib (unknown line)
_PyObject_MakeTpCall at /Users/me/tmp/PythonCallTest/.CondaPkg/env/lib/libpython3.10.dylib (unknown line)
call_function at /Users/me/tmp/PythonCallTest/.CondaPkg/env/lib/libpython3.10.dylib (unknown line)
_PyEval_EvalFrameDefault at /Users/me/tmp/PythonCallTest/.CondaPkg/env/lib/libpython3.10.dylib (unknown line)
_PyEval_Vector at /Users/me/tmp/PythonCallTest/.CondaPkg/env/lib/libpython3.10.dylib (unknown line)
call_function at /Users/me/tmp/PythonCallTest/.CondaPkg/env/lib/libpython3.10.dylib (unknown line)
_PyEval_EvalFrameDefault at /Users/me/tmp/PythonCallTest/.CondaPkg/env/lib/libpython3.10.dylib (unknown line)
_PyEval_Vector at /Users/me/tmp/PythonCallTest/.CondaPkg/env/lib/libpython3.10.dylib (unknown line)
call_function at /Users/me/tmp/PythonCallTest/.CondaPkg/env/lib/libpython3.10.dylib (unknown line)
_PyEval_EvalFrameDefault at /Users/me/tmp/PythonCallTest/.CondaPkg/env/lib/libpython3.10.dylib (unknown line)
_PyEval_Vector at /Users/me/tmp/PythonCallTest/.CondaPkg/env/lib/libpython3.10.dylib (unknown line)
method_vectorcall at /Users/me/tmp/PythonCallTest/.CondaPkg/env/lib/libpython3.10.dylib (unknown line)
call_function at /Users/me/tmp/PythonCallTest/.CondaPkg/env/lib/libpython3.10.dylib (unknown line)
_PyEval_EvalFrameDefault at /Users/me/tmp/PythonCallTest/.CondaPkg/env/lib/libpython3.10.dylib (unknown line)
_PyEval_Vector at /Users/me/tmp/PythonCallTest/.CondaPkg/env/lib/libpython3.10.dylib (unknown line)
call_function at /Users/me/tmp/PythonCallTest/.CondaPkg/env/lib/libpython3.10.dylib (unknown line)
_PyEval_EvalFrameDefault at /Users/me/tmp/PythonCallTest/.CondaPkg/env/lib/libpython3.10.dylib (unknown line)
_PyEval_Vector at /Users/me/tmp/PythonCallTest/.CondaPkg/env/lib/libpython3.10.dylib (unknown line)
_PyObject_FastCallDictTstate at /Users/me/tmp/PythonCallTest/.CondaPkg/env/lib/libpython3.10.dylib (unknown line)
slot_tp_init at /Users/me/tmp/PythonCallTest/.CondaPkg/env/lib/libpython3.10.dylib (unknown line)
type_call at /Users/me/tmp/PythonCallTest/.CondaPkg/env/lib/libpython3.10.dylib (unknown line)
_PyObject_MakeTpCall at /Users/me/tmp/PythonCallTest/.CondaPkg/env/lib/libpython3.10.dylib (unknown line)
call_function at /Users/me/tmp/PythonCallTest/.CondaPkg/env/lib/libpython3.10.dylib (unknown line)
_PyEval_EvalFrameDefault at /Users/me/tmp/PythonCallTest/.CondaPkg/env/lib/libpython3.10.dylib (unknown line)
_PyEval_Vector at /Users/me/tmp/PythonCallTest/.CondaPkg/env/lib/libpython3.10.dylib (unknown line)
_PyEval_EvalFrameDefault at /Users/me/tmp/PythonCallTest/.CondaPkg/env/lib/libpython3.10.dylib (unknown line)
_PyEval_Vector at /Users/me/tmp/PythonCallTest/.CondaPkg/env/lib/libpython3.10.dylib (unknown line)
call_function at /Users/me/tmp/PythonCallTest/.CondaPkg/env/lib/libpython3.10.dylib (unknown line)
_PyEval_EvalFrameDefault at /Users/me/tmp/PythonCallTest/.CondaPkg/env/lib/libpython3.10.dylib (unknown line)
_PyEval_Vector at /Users/me/tmp/PythonCallTest/.CondaPkg/env/lib/libpython3.10.dylib (unknown line)
method_vectorcall at /Users/me/tmp/PythonCallTest/.CondaPkg/env/lib/libpython3.10.dylib (unknown line)
call_function at /Users/me/tmp/PythonCallTest/.CondaPkg/env/lib/libpython3.10.dylib (unknown line)
_PyEval_EvalFrameDefault at /Users/me/tmp/PythonCallTest/.CondaPkg/env/lib/libpython3.10.dylib (unknown line)
_PyEval_Vector at /Users/me/tmp/PythonCallTest/.CondaPkg/env/lib/libpython3.10.dylib (unknown line)
_PyObject_FastCallDictTstate at /Users/me/tmp/PythonCallTest/.CondaPkg/env/lib/libpython3.10.dylib (unknown line)
slot_tp_init at /Users/me/tmp/PythonCallTest/.CondaPkg/env/lib/libpython3.10.dylib (unknown line)
type_call at /Users/me/tmp/PythonCallTest/.CondaPkg/env/lib/libpython3.10.dylib (unknown line)
_PyObject_MakeTpCall at /Users/me/tmp/PythonCallTest/.CondaPkg/env/lib/libpython3.10.dylib (unknown line)
call_function at /Users/me/tmp/PythonCallTest/.CondaPkg/env/lib/libpython3.10.dylib (unknown line)
_PyEval_EvalFrameDefault at /Users/me/tmp/PythonCallTest/.CondaPkg/env/lib/libpython3.10.dylib (unknown line)
_PyEval_Vector at /Users/me/tmp/PythonCallTest/.CondaPkg/env/lib/libpython3.10.dylib (unknown line)
call_function at /Users/me/tmp/PythonCallTest/.CondaPkg/env/lib/libpython3.10.dylib (unknown line)
_PyEval_EvalFrameDefault at /Users/me/tmp/PythonCallTest/.CondaPkg/env/lib/libpython3.10.dylib (unknown line)
_PyEval_Vector at /Users/me/tmp/PythonCallTest/.CondaPkg/env/lib/libpython3.10.dylib (unknown line)
object_vacall at /Users/me/tmp/PythonCallTest/.CondaPkg/env/lib/libpython3.10.dylib (unknown line)
PyObject_CallFunctionObjArgs at /Users/me/tmp/PythonCallTest/.CondaPkg/env/lib/libpython3.10.dylib (unknown line)
_PyObject_GenericGetAttrWithDict at /Users/me/tmp/PythonCallTest/.CondaPkg/env/lib/libpython3.10.dylib (unknown line)
_PyEval_EvalFrameDefault at /Users/me/tmp/PythonCallTest/.CondaPkg/env/lib/libpython3.10.dylib (unknown line)
_PyEval_Vector at /Users/me/tmp/PythonCallTest/.CondaPkg/env/lib/libpython3.10.dylib (unknown line)
property_descr_get at /Users/me/tmp/PythonCallTest/.CondaPkg/env/lib/libpython3.10.dylib (unknown line)
_PyObject_GenericGetAttrWithDict at /Users/me/tmp/PythonCallTest/.CondaPkg/env/lib/libpython3.10.dylib (unknown line)
_PyEval_EvalFrameDefault at /Users/me/tmp/PythonCallTest/.CondaPkg/env/lib/libpython3.10.dylib (unknown line)
_PyEval_Vector at /Users/me/tmp/PythonCallTest/.CondaPkg/env/lib/libpython3.10.dylib (unknown line)
_PyObject_FastCallDictTstate at /Users/me/tmp/PythonCallTest/.CondaPkg/env/lib/libpython3.10.dylib (unknown line)
slot_tp_init at /Users/me/tmp/PythonCallTest/.CondaPkg/env/lib/libpython3.10.dylib (unknown line)
type_call at /Users/me/tmp/PythonCallTest/.CondaPkg/env/lib/libpython3.10.dylib (unknown line)
_PyObject_Call at /Users/me/tmp/PythonCallTest/.CondaPkg/env/lib/libpython3.10.dylib (unknown line)
_PyEval_EvalFrameDefault at /Users/me/tmp/PythonCallTest/.CondaPkg/env/lib/libpython3.10.dylib (unknown line)
_PyEval_Vector at /Users/me/tmp/PythonCallTest/.CondaPkg/env/lib/libpython3.10.dylib (unknown line)
call_function at /Users/me/tmp/PythonCallTest/.CondaPkg/env/lib/libpython3.10.dylib (unknown line)
_PyEval_EvalFrameDefault at /Users/me/tmp/PythonCallTest/.CondaPkg/env/lib/libpython3.10.dylib (unknown line)
_PyEval_Vector at /Users/me/tmp/PythonCallTest/.CondaPkg/env/lib/libpython3.10.dylib (unknown line)
PyVectorcall_Call at /Users/me/tmp/PythonCallTest/.CondaPkg/env/lib/libpython3.10.dylib (unknown line)
_PyEval_EvalFrameDefault at /Users/me/tmp/PythonCallTest/.CondaPkg/env/lib/libpython3.10.dylib (unknown line)
_PyEval_Vector at /Users/me/tmp/PythonCallTest/.CondaPkg/env/lib/libpython3.10.dylib (unknown line)
PyVectorcall_Call at /Users/me/tmp/PythonCallTest/.CondaPkg/env/lib/libpython3.10.dylib (unknown line)
partial_call at /Users/me/tmp/PythonCallTest/.CondaPkg/env/lib/libpython3.10.dylib (unknown line)
_PyObject_MakeTpCall at /Users/me/tmp/PythonCallTest/.CondaPkg/env/lib/libpython3.10.dylib (unknown line)
call_function at /Users/me/tmp/PythonCallTest/.CondaPkg/env/lib/libpython3.10.dylib (unknown line)
_PyEval_EvalFrameDefault at /Users/me/tmp/PythonCallTest/.CondaPkg/env/lib/libpython3.10.dylib (unknown line)
_PyEval_Vector at /Users/me/tmp/PythonCallTest/.CondaPkg/env/lib/libpython3.10.dylib (unknown line)
call_function at /Users/me/tmp/PythonCallTest/.CondaPkg/env/lib/libpython3.10.dylib (unknown line)
_PyEval_EvalFrameDefault at /Users/me/tmp/PythonCallTest/.CondaPkg/env/lib/libpython3.10.dylib (unknown line)
_PyEval_Vector at /Users/me/tmp/PythonCallTest/.CondaPkg/env/lib/libpython3.10.dylib (unknown line)
builtin_exec at /Users/me/tmp/PythonCallTest/.CondaPkg/env/lib/libpython3.10.dylib (unknown line)
cfunction_vectorcall_FASTCALL at /Users/me/tmp/PythonCallTest/.CondaPkg/env/lib/libpython3.10.dylib (unknown line)
_PyEval_EvalFrameDefault at /Users/me/tmp/PythonCallTest/.CondaPkg/env/lib/libpython3.10.dylib (unknown line)
_PyEval_Vector at /Users/me/tmp/PythonCallTest/.CondaPkg/env/lib/libpython3.10.dylib (unknown line)
call_function at /Users/me/tmp/PythonCallTest/.CondaPkg/env/lib/libpython3.10.dylib (unknown line)
_PyEval_EvalFrameDefault at /Users/me/tmp/PythonCallTest/.CondaPkg/env/lib/libpython3.10.dylib (unknown line)
_PyEval_Vector at /Users/me/tmp/PythonCallTest/.CondaPkg/env/lib/libpython3.10.dylib (unknown line)
call_function at /Users/me/tmp/PythonCallTest/.CondaPkg/env/lib/libpython3.10.dylib (unknown line)
_PyEval_EvalFrameDefault at /Users/me/tmp/PythonCallTest/.CondaPkg/env/lib/libpython3.10.dylib (unknown line)
_PyEval_Vector at /Users/me/tmp/PythonCallTest/.CondaPkg/env/lib/libpython3.10.dylib (unknown line)
call_function at /Users/me/tmp/PythonCallTest/.CondaPkg/env/lib/libpython3.10.dylib (unknown line)
_PyEval_EvalFrameDefault at /Users/me/tmp/PythonCallTest/.CondaPkg/env/lib/libpython3.10.dylib (unknown line)
_PyEval_Vector at /Users/me/tmp/PythonCallTest/.CondaPkg/env/lib/libpython3.10.dylib (unknown line)
call_function at /Users/me/tmp/PythonCallTest/.CondaPkg/env/lib/libpython3.10.dylib (unknown line)
_PyEval_EvalFrameDefault at /Users/me/tmp/PythonCallTest/.CondaPkg/env/lib/libpython3.10.dylib (unknown line)
_PyEval_Vector at /Users/me/tmp/PythonCallTest/.CondaPkg/env/lib/libpython3.10.dylib (unknown line)
object_vacall at /Users/me/tmp/PythonCallTest/.CondaPkg/env/lib/libpython3.10.dylib (unknown line)
_PyObject_CallMethodIdObjArgs at /Users/me/tmp/PythonCallTest/.CondaPkg/env/lib/libpython3.10.dylib (unknown line)
PyImport_ImportModuleLevelObject at /Users/me/tmp/PythonCallTest/.CondaPkg/env/lib/libpython3.10.dylib (unknown line)
builtin___import__ at /Users/me/tmp/PythonCallTest/.CondaPkg/env/lib/libpython3.10.dylib (unknown line)
cfunction_call at /Users/me/tmp/PythonCallTest/.CondaPkg/env/lib/libpython3.10.dylib (unknown line)
_PyObject_Call at /Users/me/tmp/PythonCallTest/.CondaPkg/env/lib/libpython3.10.dylib (unknown line)
_PyEval_EvalFrameDefault at /Users/me/tmp/PythonCallTest/.CondaPkg/env/lib/libpython3.10.dylib (unknown line)
_PyEval_Vector at /Users/me/tmp/PythonCallTest/.CondaPkg/env/lib/libpython3.10.dylib (unknown line)
call_function at /Users/me/tmp/PythonCallTest/.CondaPkg/env/lib/libpython3.10.dylib (unknown line)
_PyEval_EvalFrameDefault at /Users/me/tmp/PythonCallTest/.CondaPkg/env/lib/libpython3.10.dylib (unknown line)
_PyEval_Vector at /Users/me/tmp/PythonCallTest/.CondaPkg/env/lib/libpython3.10.dylib (unknown line)
object_vacall at /Users/me/tmp/PythonCallTest/.CondaPkg/env/lib/libpython3.10.dylib (unknown line)
_PyObject_CallMethodIdObjArgs at /Users/me/tmp/PythonCallTest/.CondaPkg/env/lib/libpython3.10.dylib (unknown line)
PyImport_ImportModuleLevelObject at /Users/me/tmp/PythonCallTest/.CondaPkg/env/lib/libpython3.10.dylib (unknown line)
_PyEval_EvalFrameDefault at /Users/me/tmp/PythonCallTest/.CondaPkg/env/lib/libpython3.10.dylib (unknown line)
_PyEval_Vector at /Users/me/tmp/PythonCallTest/.CondaPkg/env/lib/libpython3.10.dylib (unknown line)
builtin_exec at /Users/me/tmp/PythonCallTest/.CondaPkg/env/lib/libpython3.10.dylib (unknown line)
cfunction_vectorcall_FASTCALL at /Users/me/tmp/PythonCallTest/.CondaPkg/env/lib/libpython3.10.dylib (unknown line)
_PyEval_EvalFrameDefault at /Users/me/tmp/PythonCallTest/.CondaPkg/env/lib/libpython3.10.dylib (unknown line)
_PyEval_Vector at /Users/me/tmp/PythonCallTest/.CondaPkg/env/lib/libpython3.10.dylib (unknown line)
call_function at /Users/me/tmp/PythonCallTest/.CondaPkg/env/lib/libpython3.10.dylib (unknown line)
_PyEval_EvalFrameDefault at /Users/me/tmp/PythonCallTest/.CondaPkg/env/lib/libpython3.10.dylib (unknown line)
_PyEval_Vector at /Users/me/tmp/PythonCallTest/.CondaPkg/env/lib/libpython3.10.dylib (unknown line)
call_function at /Users/me/tmp/PythonCallTest/.CondaPkg/env/lib/libpython3.10.dylib (unknown line)
_PyEval_EvalFrameDefault at /Users/me/tmp/PythonCallTest/.CondaPkg/env/lib/libpython3.10.dylib (unknown line)
_PyEval_Vector at /Users/me/tmp/PythonCallTest/.CondaPkg/env/lib/libpython3.10.dylib (unknown line)
call_function at /Users/me/tmp/PythonCallTest/.CondaPkg/env/lib/libpython3.10.dylib (unknown line)
_PyEval_EvalFrameDefault at /Users/me/tmp/PythonCallTest/.CondaPkg/env/lib/libpython3.10.dylib (unknown line)
_PyEval_Vector at /Users/me/tmp/PythonCallTest/.CondaPkg/env/lib/libpython3.10.dylib (unknown line)
call_function at /Users/me/tmp/PythonCallTest/.CondaPkg/env/lib/libpython3.10.dylib (unknown line)
_PyEval_EvalFrameDefault at /Users/me/tmp/PythonCallTest/.CondaPkg/env/lib/libpython3.10.dylib (unknown line)
_PyEval_Vector at /Users/me/tmp/PythonCallTest/.CondaPkg/env/lib/libpython3.10.dylib (unknown line)
object_vacall at /Users/me/tmp/PythonCallTest/.CondaPkg/env/lib/libpython3.10.dylib (unknown line)
_PyObject_CallMethodIdObjArgs at /Users/me/tmp/PythonCallTest/.CondaPkg/env/lib/libpython3.10.dylib (unknown line)
PyImport_ImportModuleLevelObject at /Users/me/tmp/PythonCallTest/.CondaPkg/env/lib/libpython3.10.dylib (unknown line)
builtin___import__ at /Users/me/tmp/PythonCallTest/.CondaPkg/env/lib/libpython3.10.dylib (unknown line)
cfunction_call at /Users/me/tmp/PythonCallTest/.CondaPkg/env/lib/libpython3.10.dylib (unknown line)
_PyObject_MakeTpCall at /Users/me/tmp/PythonCallTest/.CondaPkg/env/lib/libpython3.10.dylib (unknown line)
_PyObject_CallFunctionVa at /Users/me/tmp/PythonCallTest/.CondaPkg/env/lib/libpython3.10.dylib (unknown line)
PyObject_CallFunction at /Users/me/tmp/PythonCallTest/.CondaPkg/env/lib/libpython3.10.dylib (unknown line)
PyImport_Import at /Users/me/tmp/PythonCallTest/.CondaPkg/env/lib/libpython3.10.dylib (unknown line)
PyImport_Import at /Users/me/.julia/packages/PythonCall/H8yA3/src/cpython/pointers.jl:290 [inlined]
macro expansion at /Users/me/.julia/packages/PythonCall/H8yA3/src/Py.jl:129 [inlined]
pyimport at /Users/me/.julia/packages/PythonCall/H8yA3/src/concrete/import.jl:11
jl_apply_generic at /Applications/Julia-1.7.app/Contents/Resources/julia/lib/julia/libjulia-internal.1.7.dylib (unknown line)
do_call at /Applications/Julia-1.7.app/Contents/Resources/julia/lib/julia/libjulia-internal.1.7.dylib (unknown line)
eval_body at /Applications/Julia-1.7.app/Contents/Resources/julia/lib/julia/libjulia-internal.1.7.dylib (unknown line)
jl_interpret_toplevel_thunk at /Applications/Julia-1.7.app/Contents/Resources/julia/lib/julia/libjulia-internal.1.7.dylib (unknown line)
jl_toplevel_eval_flex at /Applications/Julia-1.7.app/Contents/Resources/julia/lib/julia/libjulia-internal.1.7.dylib (unknown line)
jl_toplevel_eval_flex at /Applications/Julia-1.7.app/Contents/Resources/julia/lib/julia/libjulia-internal.1.7.dylib (unknown line)
jl_toplevel_eval_in at /Applications/Julia-1.7.app/Contents/Resources/julia/lib/julia/libjulia-internal.1.7.dylib (unknown line)
eval at ./boot.jl:373 [inlined]
eval_user_input at /Users/julia/buildbot/worker/package_macos64/build/usr/share/julia/stdlib/v1.7/REPL/src/REPL.jl:150
repl_backend_loop at /Users/julia/buildbot/worker/package_macos64/build/usr/share/julia/stdlib/v1.7/REPL/src/REPL.jl:246
start_repl_backend at /Users/julia/buildbot/worker/package_macos64/build/usr/share/julia/stdlib/v1.7/REPL/src/REPL.jl:231
#run_repl#47 at /Users/julia/buildbot/worker/package_macos64/build/usr/share/julia/stdlib/v1.7/REPL/src/REPL.jl:364
run_repl at /Users/julia/buildbot/worker/package_macos64/build/usr/share/julia/stdlib/v1.7/REPL/src/REPL.jl:351
jl_apply_generic at /Applications/Julia-1.7.app/Contents/Resources/julia/lib/julia/libjulia-internal.1.7.dylib (unknown line)
#930 at ./client.jl:394
jfptr_YY.930_24448.clone_1 at /Applications/Julia-1.7.app/Contents/Resources/julia/lib/julia/sys.dylib (unknown line)
jl_apply_generic at /Applications/Julia-1.7.app/Contents/Resources/julia/lib/julia/libjulia-internal.1.7.dylib (unknown line)
jl_f__call_latest at /Applications/Julia-1.7.app/Contents/Resources/julia/lib/julia/libjulia-internal.1.7.dylib (unknown line)
#invokelatest#2 at ./essentials.jl:716 [inlined]
invokelatest at ./essentials.jl:714 [inlined]
run_main_repl at ./client.jl:379
exec_options at ./client.jl:309
_start at ./client.jl:495
jfptr__start_24435.clone_1 at /Applications/Julia-1.7.app/Contents/Resources/julia/lib/julia/sys.dylib (unknown line)
jl_apply_generic at /Applications/Julia-1.7.app/Contents/Resources/julia/lib/julia/libjulia-internal.1.7.dylib (unknown line)
true_main at /Applications/Julia-1.7.app/Contents/Resources/julia/lib/julia/libjulia-internal.1.7.dylib (unknown line)
jl_repl_entrypoint at /Applications/Julia-1.7.app/Contents/Resources/julia/lib/julia/libjulia-internal.1.7.dylib (unknown line)
Allocations: 14719881 (Pool: 14713399; Big: 6482); GC: 18

signal (11): Segmentation fault: 11
in expression starting at REPL[8]:1
_PyUnicode_FromId at /Users/me/tmp/PythonCallTest/.CondaPkg/env/lib/libpython3.10.dylib (unknown line)
wait_for_thread_shutdown at /Users/me/tmp/PythonCallTest/.CondaPkg/env/lib/libpython3.10.dylib (unknown line)
Py_FinalizeEx at /Users/me/tmp/PythonCallTest/.CondaPkg/env/lib/libpython3.10.dylib (unknown line)
Py_FinalizeEx at /Users/me/.julia/packages/PythonCall/H8yA3/src/cpython/pointers.jl:290 [inlined]
#35 at /Users/me/.julia/packages/PythonCall/H8yA3/src/cpython/context.jl:179
unknown function (ip: 0x10e4647af)
jl_apply_generic at /Applications/Julia-1.7.app/Contents/Resources/julia/lib/julia/libjulia-internal.1.7.dylib (unknown line)
_atexit at ./initdefs.jl:350
jfptr__atexit_33738.clone_1 at /Applications/Julia-1.7.app/Contents/Resources/julia/lib/julia/sys.dylib (unknown line)
jl_apply_generic at /Applications/Julia-1.7.app/Contents/Resources/julia/lib/julia/libjulia-internal.1.7.dylib (unknown line)
jl_atexit_hook at /Applications/Julia-1.7.app/Contents/Resources/julia/lib/julia/libjulia-internal.1.7.dylib (unknown line)
jl_exit at /Applications/Julia-1.7.app/Contents/Resources/julia/lib/julia/libjulia-internal.1.7.dylib (unknown line)
jl_exit_thread0_cb at /Applications/Julia-1.7.app/Contents/Resources/julia/lib/julia/libjulia-internal.1.7.dylib (unknown line)
Allocations: 14719881 (Pool: 14713399; Big: 6482); GC: 18

Any help is much appreciated. Thanks!

@cjdoris
Copy link
Collaborator

cjdoris commented Feb 21, 2022

Thanks for the MWE, it makes it so much easier.

My guess is that there is some incompatibility between LLVM versions, since Julia ships its own.

It works for me, on Windows, but then it looks like the Windows distro of llvmlite doesn't bundle libllvm, whereas the Linux one does.

What's the output of versioninfo() in Julia? And what versions of python and llvmlite were installed by CondaPkg?

@giordano
Copy link

How did you install Julia?

@moble
Copy link
Author

moble commented Feb 21, 2022

@cjdoris This is the output of versioninfo():

julia> versioninfo()
Julia Version 1.7.2
Commit bf53498635 (2022-02-06 15:21 UTC)
Platform Info:
  OS: macOS (x86_64-apple-darwin19.5.0)
  CPU: Intel(R) Core(TM) i7-4770HQ CPU @ 2.20GHz
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-12.0.1 (ORCJIT, haswell)

I've also added the full package list output by mamba during the CondaPkg.resolve step. It installs python 3.10.2 and llvmlite 0.38.0. Possibly also relevant are libllvm11 11.1.0 and llvm-openmp 13.0.1. Maybe particularly the fact that julia is on libLLVM-12.0.1, while python is using 11.1.0???

@giordano I just installed the .dmg for macOS x86 from the official downloads page.

@moble
Copy link
Author

moble commented Feb 21, 2022

Oh, and I just found a relevant issue in PyCall: JuliaPy/PyCall.jl#903 looks like probably the same issue, though @stevengj seems to think it should have been resolved long ago.

I don't understand how these libraries are being loaded, but I really don't see how there could be a conflict if julia has long-since switched to using symbol versioning. Unfortunately, I also can't figure out how to look at for any symbol versioning in the libLLVM..dylib that comes with julia for macOS. (I can use readelf on linux, but that chokes on .dylib files.)

@cjdoris
Copy link
Collaborator

cjdoris commented Feb 21, 2022

This is beyond my expertise I'm afraid, though I can confirm I can reproduce the issue on Mac (but not Linux, WSL or Windows).

@moble
Copy link
Author

moble commented Feb 23, 2022

It looks like this is a problem on the numba side. I don't know if there can be a better fix for this, but it turns out that this works when using numba with a version of llvmlite that is statically linked against LLVM. At the moment, this is not the case when you get numba from conda-forge (which most of us probably do). It looks like you can install either from pip, or from the numba channel — e.g., with mamba install -c numba llvmlite.

Anyway, thanks for the help @cjdoris, and the nice packages. :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants