-
-
Notifications
You must be signed in to change notification settings - Fork 197
Description
When I import the compiled .so file (similar as official site exmaple, but I use pythoncall in the so) in python using python's ctypes module like mylib = ctypes.CDLL(...), and call the compiled funciton in python, when it runs into mylib.init_julia(argc, argv), it reports the following error:
free(): invalid pointer
[260555] signal 6 (-6): Aborted
in expression starting at none:0
gsignal at /usr/lib64/libc.so.6 (unknown line)
abort at /usr/lib64/libc.so.6 (unknown line)
__libc_message at /usr/lib64/libc.so.6 (unknown line)
malloc_printerr at /usr/lib64/libc.so.6 (unknown line)
_int_free at /usr/lib64/libc.so.6 (unknown line)
_PyMem_RawFree at /usr/local/src/conda/python-3.10.9/Objects/obmalloc.c:127 [inlined]
PyMem_RawFree at /usr/local/src/conda/python-3.10.9/Objects/obmalloc.c:595 [inlined]
PyObject_Free at /usr/local/src/conda/python-3.10.9/Objects/obmalloc.c:2246 [inlined]
_PyObject_Free at /usr/local/src/conda/python-3.10.9/Objects/obmalloc.c:2239 [inlined]
PyObject_Free at /usr/local/src/conda/python-3.10.9/Objects/obmalloc.c:709 [inlined]
object_dealloc at /usr/local/src/conda/python-3.10.9/Objects/typeobject.c:4510
_Py_DECREF at /usr/local/src/conda/python-3.10.9/Include/object.h:500 [inlined]
_Py_XDECREF at /usr/local/src/conda/python-3.10.9/Include/object.h:567 [inlined]
_PyImport_LoadDynamicModuleWithSpec at /usr/local/src/conda/python-3.10.9/Python/importdl.c:244 [inlined]
_imp_create_dynamic_impl at /usr/local/src/conda/python-3.10.9/Python/import.c:2050 [inlined]
_imp_create_dynamic at /usr/local/src/conda/python-3.10.9/Python/clinic/import.c.h:330
cfunction_vectorcall_FASTCALL at /usr/local/src/conda/python-3.10.9/Objects/methodobject.c:430
do_call_core at /usr/local/src/conda/python-3.10.9/Python/ceval.c:5915 [inlined]
_PyEval_EvalFrameDefault at /usr/local/src/conda/python-3.10.9/Python/ceval.c:4277
_PyEval_EvalFrame at /usr/local/src/conda/python-3.10.9/Include/internal/pycore_ceval.h:46 [inlined]
_PyEval_Vector at /usr/local/src/conda/python-3.10.9/Python/ceval.c:5065 [inlined]
_PyFunction_Vectorcall at /usr/local/src/conda/python-3.10.9/Objects/call.c:342
PyObject_VectorcallTstate at /usr/local/src/conda/python-3.10.9/Include/cpython/abstract.h:114 [inlined]
PyObject_Vectorcall at /usr/local/src/conda/python-3.10.9/Include/cpython/abstract.h:123 [inlined]
call_function at /usr/local/src/conda/python-3.10.9/Python/ceval.c:5891 [inlined]
_PyEval_EvalFrameDefault at /usr/local/src/conda/python-3.10.9/Python/ceval.c:4181
_PyEval_EvalFrame at /usr/local/src/conda/python-3.10.9/Include/internal/pycore_ceval.h:46 [inlined]
_PyEval_Vector at /usr/local/src/conda/python-3.10.9/Python/ceval.c:5065 [inlined]
_PyFunction_Vectorcall at /usr/local/src/conda/python-3.10.9/Objects/call.c:342
PyObject_VectorcallTstate at /usr/local/src/conda/python-3.10.9/Include/cpython/abstract.h:114 [inlined]
PyObject_Vectorcall at /usr/local/src/conda/python-3.10.9/Include/cpython/abstract.h:123 [inlined]
call_function at /usr/local/src/conda/python-3.10.9/Python/ceval.c:5891 [inlined]
_PyEval_EvalFrameDefault at /usr/local/src/conda/python-3.10.9/Python/ceval.c:4198
_PyEval_EvalFrame at /usr/local/src/conda/python-3.10.9/Include/internal/pycore_ceval.h:46 [inlined]
_PyEval_Vector at /usr/local/src/conda/python-3.10.9/Python/ceval.c:5065 [inlined]
_PyFunction_Vectorcall at /usr/local/src/conda/python-3.10.9/Objects/call.c:342
PyObject_VectorcallTstate at /usr/local/src/conda/python-3.10.9/Include/cpython/abstract.h:114 [inlined]
PyObject_Vectorcall at /usr/local/src/conda/python-3.10.9/Include/cpython/abstract.h:123 [inlined]
call_function at /usr/local/src/conda/python-3.10.9/Python/ceval.c:5891 [inlined]
_PyEval_EvalFrameDefault at /usr/local/src/conda/python-3.10.9/Python/ceval.c:4213
_PyEval_EvalFrame at /usr/local/src/conda/python-3.10.9/Include/internal/pycore_ceval.h:46 [inlined]
_PyEval_Vector at /usr/local/src/conda/python-3.10.9/Python/ceval.c:5065 [inlined]
_PyFunction_Vectorcall at /usr/local/src/conda/python-3.10.9/Objects/call.c:342
object_vacall at /usr/local/src/conda/python-3.10.9/Objects/call.c:734
_PyObject_CallMethodIdObjArgs at /usr/local/src/conda/python-3.10.9/Objects/call.c:825
import_find_and_load at /usr/local/src/conda/python-3.10.9/Python/import.c:1522 [inlined]
PyImport_ImportModuleLevelObject at /usr/local/src/conda/python-3.10.9/Python/import.c:1623
import_name at /usr/local/src/conda/python-3.10.9/Python/ceval.c:6615 [inlined]
_PyEval_EvalFrameDefault at /usr/local/src/conda/python-3.10.9/Python/ceval.c:3695
_PyEval_EvalFrame at /usr/local/src/conda/python-3.10.9/Include/internal/pycore_ceval.h:46 [inlined]
_PyEval_Vector at /usr/local/src/conda/python-3.10.9/Python/ceval.c:5065
PyEval_EvalCode at /usr/local/src/conda/python-3.10.9/Python/ceval.c:1134
builtin_exec_impl at /usr/local/src/conda/python-3.10.9/Python/bltinmodule.c:1055 [inlined]
builtin_exec at /usr/local/src/conda/python-3.10.9/Python/clinic/bltinmodule.c.h:371
cfunction_vectorcall_FASTCALL at /usr/local/src/conda/python-3.10.9/Objects/methodobject.c:430
do_call_core at /usr/local/src/conda/python-3.10.9/Python/ceval.c:5915 [inlined]
_PyEval_EvalFrameDefault at /usr/local/src/conda/python-3.10.9/Python/ceval.c:4277
_PyEval_EvalFrame at /usr/local/src/conda/python-3.10.9/Include/internal/pycore_ceval.h:46 [inlined]
_PyEval_Vector at /usr/local/src/conda/python-3.10.9/Python/ceval.c:5065 [inlined]
_PyFunction_Vectorcall at /usr/local/src/conda/python-3.10.9/Objects/call.c:342
PyObject_VectorcallTstate at /usr/local/src/conda/python-3.10.9/Include/cpython/abstract.h:114 [inlined]
PyObject_Vectorcall at /usr/local/src/conda/python-3.10.9/Include/cpython/abstract.h:123 [inlined]
call_function at /usr/local/src/conda/python-3.10.9/Python/ceval.c:5891 [inlined]
_PyEval_EvalFrameDefault at /usr/local/src/conda/python-3.10.9/Python/ceval.c:4181
_PyEval_EvalFrame at /usr/local/src/conda/python-3.10.9/Include/internal/pycore_ceval.h:46 [inlined]
_PyEval_Vector at /usr/local/src/conda/python-3.10.9/Python/ceval.c:5065 [inlined]
_PyFunction_Vectorcall at /usr/local/src/conda/python-3.10.9/Objects/call.c:342
PyObject_VectorcallTstate at /usr/local/src/conda/python-3.10.9/Include/cpython/abstract.h:114 [inlined]
PyObject_Vectorcall at /usr/local/src/conda/python-3.10.9/Include/cpython/abstract.h:123 [inlined]
call_function at /usr/local/src/conda/python-3.10.9/Python/ceval.c:5891 [inlined]
_PyEval_EvalFrameDefault at /usr/local/src/conda/python-3.10.9/Python/ceval.c:4213
_PyEval_EvalFrame at /usr/local/src/conda/python-3.10.9/Include/internal/pycore_ceval.h:46 [inlined]
_PyEval_Vector at /usr/local/src/conda/python-3.10.9/Python/ceval.c:5065 [inlined]
_PyFunction_Vectorcall at /usr/local/src/conda/python-3.10.9/Objects/call.c:342
PyObject_VectorcallTstate at /usr/local/src/conda/python-3.10.9/Include/cpython/abstract.h:114 [inlined]
PyObject_Vectorcall at /usr/local/src/conda/python-3.10.9/Include/cpython/abstract.h:123 [inlined]
call_function at /usr/local/src/conda/python-3.10.9/Python/ceval.c:5891 [inlined]
_PyEval_EvalFrameDefault at /usr/local/src/conda/python-3.10.9/Python/ceval.c:4213
_PyEval_EvalFrame at /usr/local/src/conda/python-3.10.9/Include/internal/pycore_ceval.h:46 [inlined]
_PyEval_Vector at /usr/local/src/conda/python-3.10.9/Python/ceval.c:5065 [inlined]
_PyFunction_Vectorcall at /usr/local/src/conda/python-3.10.9/Objects/call.c:342
PyObject_VectorcallTstate at /usr/local/src/conda/python-3.10.9/Include/cpython/abstract.h:114 [inlined]
PyObject_Vectorcall at /usr/local/src/conda/python-3.10.9/Include/cpython/abstract.h:123 [inlined]
object_vacall at /usr/local/src/conda/python-3.10.9/Objects/call.c:734
_PyObject_CallMethodIdObjArgs at /usr/local/src/conda/python-3.10.9/Objects/call.c:825
import_find_and_load at /usr/local/src/conda/python-3.10.9/Python/import.c:1522 [inlined]
PyImport_ImportModuleLevelObject at /usr/local/src/conda/python-3.10.9/Python/import.c:1623
import_name at /usr/local/src/conda/python-3.10.9/Python/ceval.c:6615 [inlined]
_PyEval_EvalFrameDefault at /usr/local/src/conda/python-3.10.9/Python/ceval.c:3695
PyObject_Vectorcall at /usr/local/src/conda/python-3.10.9/Include/cpython/abstract.h:123 [inlined]
cfunction_call at /usr/local/src/conda/python-3.10.9/Objects/methodobject.c:543
_PyObject_MakeTpCall at /usr/local/src/conda/python-3.10.9/Objects/call.c:215
_PyObject_VectorcallTstate at /usr/local/src/conda/python-3.10.9/Include/cpython/abstract.h:114 [inlined]
_PyObject_VectorcallDictTstate at /usr/local/src/conda/python-3.10.9/Include/cpython/abstract.h:99 [inlined]
_PyObject_VectorCallWithKeywords at /usr/local/src/conda/python-3.10.9/Objects/call.c:483 [inlined]
_PyObject_CallFunction at /usr/local/src/conda/python-3.10.9/Objects/call.c:190
import_all_from at /usr/local/src/conda/python-3.10.9/Python/ceval.c:6164 [inlined]
_PyImport_Import at /software/Julia_depot_path/packages/PyThonCall/4eJ5v/src/Core/Py.jl:131 [inlined]
jlpy_eval_getvalue at /software/Julia_depot_path/packages/PyThonCall/4eJ5v/src/Core/Py.jl:1561 [inlined]
jlpycall_eval at /software/Julia_depot_path/packages/PyThonCall/4eJ5v/src/Core/Py.jl:199 [inlined]
jlpyfunction_call at /software/Julia_depot_path/packages/PyThonCall/4eJ5v/src/Core/consts.jl:301
str__init__1 at /home/test_user/code_juliss/PackageCompiler.jl-master/examples/MyLib.so/: MyLibCompileLib/libMyLib.so (unknown line)
_main_jl at /home/test_user/code_juliss/PackageCompiler.jl-master/examples/MyLib.so/: MyLibCompileLib/libMyLib.so (unknown line)
jl_module_run_initializer at /cache/build/tester-amdci-71juliareleases_juliarelease 1.dot.11/arc/toplevels.c:76
_jl_init_julia at /cache/build/tester-amdci-71juliareleases_juliarelease1.dot.11/src/init.c:962
jl_init_with_image at /cache/build/tester-amdci-71juliareleases_juliarelease1.dot.11/src/init.c:985
unknown function (ip: 0x1555516e7e72)
unknown function (ip: 0x1555516e85c)
unknown function (ip: 0x1555516719c)
_PyObject_VectorCall at /usr/local/src/conda/python-3.10.9/Include/cpython/abstract.h:114 [inlined]
PyObject_Vectorcall at /usr/local/src/conda/python-3.10.9/Include/cpython/abstract.h:123 [inlined]
call_function at /usr/local/src/conda/python-3.10.9/Python/ceval.c:5891 [inlined]
_PyEval_EvalFrameDefault at /usr/local/src/conda/python-3.10.9/Python/ceval.c:4181
_PyEval_EvalFrame at /usr/local/src/conda/python-3.10.9/Include/internal/pycore_ceval.h:46 [inlined]
_PyEval_Vector at /usr/local/src/conda/python-3.10.9/Python/ceval.c:5065
PyEval_EvalCode at /usr/local/src/conda/python-3.10.9/Python/ceval.c:1134
builtin_exec_impl at /usr/local/src/conda/python-3.10.9/Python/bltinmodule.c:1055 [inlined]
builtin_exec at /usr/local/src/conda/python-3.10.9/Python/clinic/bltinmodule.c.h:371
cfunction_vectorcall_FASTCALL at /usr/local/src/conda/python-3.10.9/Objects/methodobject.c:430
_PyObject_VectorcallTstate at /usr/local/src/conda/python-3.10.9/Include/cpython/abstract.h:114 [inlined]
PyObject_Vectorcall at /usr/local/src/conda/python-3.10.9/Include/cpython/abstract.h:123 [inlined]
call_function at /usr/local/src/conda/python-3.10.9/Python/ceval.c:5891 [inlined]
_PyEval_EvalFrameDefault at /usr/local/src/conda/python-3.10.9/Python/ceval.c:4219
_PyEval_EvalFrame at /usr/local/src/conda/python-3.10.9/Include/internal/pycore_ceval.h:46 [inlined]
gen_send_ex at /usr/local/src/conda/python-3.10.9/Objects/genobject.c:218
gen_send_ex at /usr/local/src/conda/python-3.10.9/Objects/genobject.c:270
_PyEval_EvalFrameDefault at /usr/local/src/conda/python-3.10.9/Python/ceval.c:2566
_PyEval_EvalFrame at /usr/local/src/conda/python-3.10.9/Include/internal/pycore_ceval.h:46 [inlined]
_PyEval_Vector at /usr/local/src/conda/python-3.10.9/Python/ceval.c:5065 [inlined]
PyObject_VectorcallTstate at /usr/local/src/conda/python-3.10.9/Include/cpython/abstract.h:114 [inlined]
PyObject_Vectorcall at /usr/local/src/conda/python-3.10.9/Include/cpython/abstract.h:123 [inlined]
call_function at /usr/local/src/conda/python-3.10.9/Python/ceval.c:5891 [inlined]
_PyEval_EvalFrameDefault at /usr/local/src/conda/python-3.10.9/Python/ceval.c:4198
_PyEval_EvalFrame at /usr/local/src/conda/python-3.10.9/Include/internal/pycore_ceval.h:46 [inlined]
_PyEval_Vector at /usr/local/src/conda/python-3.10.9/Python/ceval.c:5065 [inlined]
_PyFunction_Vectorcall at /usr/local/src/conda/python-3.10.9/Objects/call.c:342
PyObject_VectorcallTstate at /usr/local/src/conda/python-3.10.9/Include/cpython/abstract.h:114 [inlined]
PyObject_Vectorcall at /usr/local/src/conda/python-3.10.9/Include/cpython/abstract.h:123 [inlined]
call_function at /usr/local/src/conda/python-3.10.9/Python/ceval.c:5891 [inlined]
_PyEval_EvalFrameDefault at /usr/local/src/conda/python-3.10.9/Python/ceval.c:4213
_PyEval_EvalFrame at /usr/local/src/conda/python-3.10.9/Include/internal/pycore_ceval.h:46 [inlined]
_PyEval_Vector at /usr/local/src/conda/python-3.10.9/Python/ceval.c:5065 [inlined]
_PyFunction_Vectorcall at /usr/local/src/conda/python-3.10.9/Objects/call.c:342
PyObject_VectorcallTstate at /usr/local/src/conda/python-3.10.9/Include/cpython/abstract.h:114 [inlined]
PyObject_Vectorcall at /usr/local/src/conda/python-3.10.9/Include/cpython/abstract.h:123 [inlined]
call_function at /usr/local/src/conda/python-3.10.9/Python/ceval.c:5891 [inlined]
_PyEval_EvalFrameDefault at /usr/local/src/conda/python-3.10.9/Python/ceval.c:4213
_PyEval_EvalFrame at /usr/local/src/conda/python-3.10.9/Include/internal/pycore_ceval.h:46 [inlined]
_PyEval_Vector at /usr/local/src/conda/python-3.10.9/Python/ceval.c:5065 [inlined]
_PyFunction_Vectorcall at /usr/local/src/conda/python-3.10.9/Objects/call.c:342
PyObject_VectorcallTstate at /usr/local/src/conda/python-3.10.9/Include/cpython/abstract.h:114 [inlined]
PyObject_Vectorcall at /usr/local/src/conda/python-3.10.9/Include/cpython/abstract.h:123 [inlined]
call_function at /usr/local/src/conda/python-3.10.9/Python/ceval.c:5891 [inlined]
_PyEval_EvalFrameDefault at /usr/local/src/conda/python-3.10.9/Python/ceval.c:4198
_PyEval_EvalFrame at /usr/local/src/conda/python-3.10.9/Include/internal/pycore_ceval.h:46 [inlined]
_PyEval_Vector at /usr/local/src/conda/python-3.10.9/Python/ceval.c:5065 [inlined]
_PyFunction_Vectorcall at /usr/local/src/conda/python-3.10.9/Objects/call.c:342
PyObject_VectorcallTstate at /usr/local/src/conda/python-3.10.9/Include/cpython/abstract.h:114 [inlined]
PyObject_Vectorcall at /usr/local/src/conda/python-3.10.9/Include/cpython/abstract.h:123 [inlined]
call_function at /usr/local/src/conda/python-3.10.9/Python/ceval.c:5891 [inlined]
_PyEval_EvalFrameDefault at /usr/local/src/conda/python-3.10.9/Python/ceval.c:4198
_PyEval_EvalFrame at /usr/local/src/conda/python-3.10.9/Include/internal/pycore_ceval.h:46 [inlined]
_PyEval_Vector at /usr/local/src/conda/python-3.10.9/Python/ceval.c:5065 [inlined]
_PyFunction_Vectorcall at /usr/local/src/conda/python-3.10.9/Objects/call.c:342
PyObject_VectorcallTstate at /usr/local/src/conda/python-3.10.9/Include/cpython/abstract.h:114 [inlined]
PyObject_Vectorcall at /usr/local/src/conda/python-3.10.9/Include/cpython/abstract.h:123 [inlined]
call_function at /usr/local/src/conda/python-3.10.9/Python/ceval.c:5891 [inlined]
_PyEval_EvalFrameDefault at /usr/local/src/conda/python-3.10.9/Python/ceval.c:4198
_PyEval_EvalFrame at /usr/local/src/conda/python-3.10.9/Include/internal/pycore_ceval.h:46 [inlined]
_PyEval_Vector at /usr/local/src/conda/python-3.10.9/Python/ceval.c:5065 [inlined]
_PyFunction_Vectorcall at /usr/local/src/conda/python-3.10.9/Objects/call.c:342 [inlined]
PyObject_VectorcallTstate at /usr/local/src/conda/python-3.10.9/Include/cpython/abstract.h:114 [inlined]
method_vectorcall at /usr/local/src/conda/python-3.10.9/Objects/classobject.c:53
PyVectorcall_Call at /usr/local/src/conda/python-3.10.9/Objects/call.c:267 [inlined]
_PyObject_Call at /usr/local/src/conda/python-3.10.9/Objects/call.c:290 [inlined]
PyObject_Call at /usr/local/src/conda/python-3.10.9/Objects/call.c:317
do_call_core at /usr/local/src/conda/python-3.10.9/Python/ceval.c:5943 [inlined]
_PyEval_EvalFrameDefault at /usr/local/src/conda/python-3.10.9/Python/ceval.c:4277
_PyEval_EvalFrame at /usr/local/src/conda/python-3.10.9/Include/internal/pycore_ceval.h:46 [inlined]
_PyEval_Vector at /usr/local/src/conda/python-3.10.9/Python/ceval.c:5065 [inlined]
_PyFunction_Vectorcall at /usr/local/src/conda/python-3.10.9/Objects/call.c:342
PyObject_VectorcallTstate at /usr/local/src/conda/python-3.10.9/Include/cpython/abstract.h:114 [inlined]
PyObject_Vectorcall at /usr/local/src/conda/python-3.10.9/Include/cpython/abstract.h:123 [inlined]
call_function at /usr/local/src/conda/python-3.10.9/Python/ceval.c:5891 [inlined]
_PyEval_EvalFrameDefault at /usr/local/src/conda/python-3.10.9/Python/ceval.c:4213
_PyEval_EvalFrame at /usr/local/src/conda/python-3.10.9/Include/internal/pycore_ceval.h:46 [inlined]
_PyEval_Vector at /usr/local/src/conda/python-3.10.9/Python/ceval.c:5065
PyEval_EvalCode at /usr/local/src/conda/python-3.10.9/Python/ceval.c:1134
run_eval_code_obj at /usr/local/src/conda/python-3.10.9/Python/pythonrun.c:1291
run_mod at /usr/local/src/conda/python-3.10.9/Python/pythonrun.c:1312
pyrun_file at /usr/local/src/conda/python-3.10.9/Python/pythonrun.c:1208
_PyRun_SimpleFileObject at /usr/local/src/conda/python-3.10.9/Python/pythonrun.c:456
_PyRun_AnyFileObject at /usr/local/src/conda/python-3.10.9/Python/pythonrun.c:90
pymain_run_file at /usr/local/src/conda/python-3.10.9/Modules/main.c:357 [inlined]
pymain_run_file at /usr/local/src/conda/python-3.10.9/Modules/main.c:376 [inlined]
pymain_run_python at /usr/local/src/conda/python-3.10.9/Modules/main.c:591 [inlined]
Py_RunMain at /usr/local/src/conda/python-3.10.9/Modules/main.c:670
Py_BytesMain at /usr/local/src/conda/python-3.10.9/Modules/main.c:1090
__libc_start_main at /usr/lib64/libc.so.6 (unknown line)
_start at /softwares/miniconda3/bin/python (unknown line)
Allocations: 4 (Pool: 24); Bug: 0); GC: 0
fish: Job 1, 'ipython' terminated by signal SIGABRT (Abort)The init_julia(argc, argv) source code is as follows:
PackageCompiler.jl/src/julia_init.c
Lines 64 to 75 in 57505ca
| void init_julia(int argc, char **argv) { | |
| setup_args(argc, argv); | |
| const char *sysimage_path = get_sysimage_path(JULIAC_PROGRAM_LIBNAME); | |
| char *_sysimage_path = strdup(sysimage_path); | |
| char *root_dir = dirname(dirname(_sysimage_path)); | |
| set_depot_load_path(root_dir); | |
| free(_sysimage_path); | |
| jl_options.image_file = sysimage_path; | |
| julia_init(JL_IMAGE_CWD); | |
| } |
The reason why I want to use the compiled .so file is that I want to seperate the implementation (the julia source code) and the API (the .so file), and only release the .so file to others. And because others are using python, so I want to test the .so in python.
I can run the .so file in c/c++ successfully, but not in python.
Anyone can help?