Open iwannastay opened 5 months ago
import numpy as np
from numba.types import UniTuple
from numba import njit, float64, int32, void
@njit(float64(float64[:]), nogil=True, boundscheck=False)
def log_sum_exp(x):
"""
求x的e的幂的和的对数
:param x:
:return: x的e的幂的和的对数
"""
x_max = np.max(x)
if np.isinf(x_max):
return -np.Inf
return np.log(np.sum(np.exp(x)))
I run this python script after updating python version to 3.11.4 and it coredump with the same backtrace above, here is the bt and py-bt:
(gdb) bt
#0 0x00007f03eed996c7 in closure_fcn (cif=0x7f03ee3154a8, resp=0x7fffd37be2e0, args=0x7fffd37be160, userdata=0x3b) at /usr1/python/python/Python-3.9.11/Modules/_ctypes/callbacks.c:310
#1 0x00007f03eeda8718 in ffi_closure_unix64_inner () from /tmp/lstest2/lib/python3.11/lib-dynload/_ctypes.cpython-311-x86_64-linux-gnu.so
#2 0x00007f03eeda91e8 in ffi_closure_unix64 () from /tmp/lstest2/lib/python3.11/lib-dynload/_ctypes.cpython-311-x86_64-linux-gnu.so
#3 0x00007f03e813dc13 in LLVMPYObjectCache::notifyObjectCompiled (this=0x564454ccab00, M=0x564454ac1c90, MBR=...) at executionengine.cpp:195
#4 0x00007f03e95e418b in llvm::MCJIT::emitObject(llvm::Module*) [clone .localalias] () from /tmp/lstest2/lib/python3.11/site-packages/llvmlite/binding/libllvmlite.so
#5 0x00007f03e95e4a39 in llvm::MCJIT::generateCodeForModule(llvm::Module*) [clone .localalias] () from /tmp/lstest2/lib/python3.11/site-packages/llvmlite/binding/libllvmlite.so
#6 0x00007f03e95dff30 in llvm::MCJIT::finalizeObject() [clone .localalias] () from /tmp/lstest2/lib/python3.11/site-packages/llvmlite/binding/libllvmlite.so
#7 0x00007f03e813d5f5 in LLVMPY_FinalizeObject (EE=0x564454fbf0c0) at executionengine.cpp:63
#8 0x00007f03eeda9052 in ffi_call_unix64 () from /tmp/lstest2/lib/python3.11/lib-dynload/_ctypes.cpython-311-x86_64-linux-gnu.so
#9 0x00007f03eeda8137 in ffi_call_int () from /tmp/lstest2/lib/python3.11/lib-dynload/_ctypes.cpython-311-x86_64-linux-gnu.so
#10 0x00007f03eeda81a0 in ffi_call () from /tmp/lstest2/lib/python3.11/lib-dynload/_ctypes.cpython-311-x86_64-linux-gnu.so
#11 0x00007f03eed9b5a6 in _call_function_pointer (argtypecount=<optimized out>, argcount=1, resmem=0x7fffd37bf800, restype=<optimized out>, atypes=<optimized out>, avalues=0x7fffd37bf7f0, pProc=0x7f03e813d5ce <LLVMPY_FinalizeObject(LLVMExecutionEngineRef)>,
flags=4353) at /usr1/python/python/Python-3.9.11/Modules/_ctypes/callproc.c:923
#12 _ctypes_callproc (pProc=pProc@entry=0x7f03e813d5ce <LLVMPY_FinalizeObject(LLVMExecutionEngineRef)>, argtuple=argtuple@entry=0x7f03e6dd30a0, flags=4353, argtypes=argtypes@entry=0x7f03ee36afb0, restype=restype@entry=0x56445478d400, checker=0x0)
at /usr1/python/python/Python-3.9.11/Modules/_ctypes/callproc.c:1262
#13 0x00007f03eed9492f in PyCFuncPtr_call (self=<optimized out>, inargs=<optimized out>, kwds=0x7f03e6da5540) at /usr1/python/python/Python-3.9.11/Modules/_ctypes/_ctypes.c:4201
#14 0x00005644538c3e9a in _PyObject_Call (kwargs=0x7f03e6da5540, args=0x7f03e6dd30a0, callable=0x7f03e788c390, tstate=0x564453ca7ab8 <_PyRuntime+166328>) at Objects/call.c:343
#15 _PyObject_Call (tstate=0x564453ca7ab8 <_PyRuntime+166328>, callable=0x7f03e788c390, args=0x7f03e6dd30a0, kwargs=0x7f03e6da5540) at Objects/call.c:313
#16 0x000056445387672d in do_call_core (use_tracing=<optimized out>, kwdict=0x7f03e6da5540, callargs=0x7f03e6dd30a0, func=0x7f03e788c390, tstate=0x564453ca7ab8 <_PyRuntime+166328>) at Python/ceval.c:7357
#17 _PyEval_EvalFrameDefault (tstate=<optimized out>, frame=<optimized out>, throwflag=<optimized out>) at Python/ceval.c:5381
#18 0x0000564453993391 in _PyEval_EvalFrame (throwflag=0, frame=0x7f0415e46c08, tstate=0x564453ca7ab8 <_PyRuntime+166328>) at ./Include/internal/pycore_ceval.h:73
#19 _PyEval_Vector (tstate=0x564453ca7ab8 <_PyRuntime+166328>, func=<optimized out>, locals=<optimized out>, args=<optimized out>, argcount=<optimized out>, kwnames=<optimized out>) at Python/ceval.c:6439
#20 0x00005644538c41e7 in _PyObject_FastCallDictTstate (tstate=tstate@entry=0x564453ca7ab8 <_PyRuntime+166328>, callable=callable@entry=0x7f03ee31fec0, args=args@entry=0x7fffd37bfc10, nargsf=nargsf@entry=2, kwargs=kwargs@entry=0x0) at Objects/call.c:141
#21 0x00005644538c44c0 in _PyObject_Call_Prepend (tstate=tstate@entry=0x564453ca7ab8 <_PyRuntime+166328>, callable=callable@entry=0x7f03ee31fec0, obj=obj@entry=0x7f03ee36b4c0, args=args@entry=0x7f03e6dd3010, kwargs=kwargs@entry=0x0) at Objects/call.c:482
#22 0x000056445392637c in slot_tp_call (self=0x7f03ee36b4c0, args=0x7f03e6dd3010, kwds=0x0) at Objects/typeobject.c:7632
#23 0x00005644538c4070 in _PyObject_MakeTpCall (tstate=0x564453ca7ab8 <_PyRuntime+166328>, callable=callable@entry=0x7f03ee36b4c0, args=args@entry=0x7f0415e46c00, nargs=1, keywords=0x0, keywords@entry=0x7f03e6dd3010) at Objects/call.c:214
#24 0x00005644538c46f0 in _PyObject_VectorcallTstate (kwnames=0x7f03e6dd3010, nargsf=<optimized out>, args=0x7f0415e46c00, callable=0x7f03ee36b4c0, tstate=<optimized out>) at ./Include/internal/pycore_call.h:90
#25 _PyObject_VectorcallTstate (kwnames=0x7f03e6dd3010, nargsf=<optimized out>, args=0x7f0415e46c00, callable=0x7f03ee36b4c0, tstate=<optimized out>) at ./Include/internal/pycore_call.h:77
#26 PyObject_Vectorcall (callable=callable@entry=0x7f03ee36b4c0, args=args@entry=0x7f0415e46c00, nargsf=<optimized out>, kwnames=kwnames@entry=0x0) at Objects/call.c:299
#27 0x0000564453876ae6 in _PyEval_EvalFrameDefault (tstate=<optimized out>, frame=<optimized out>, throwflag=<optimized out>) at Python/ceval.c:7315
#28 0x0000564453993391 in _PyEval_EvalFrame (throwflag=0, frame=0x7f0415e46ba0, tstate=0x564453ca7ab8 <_PyRuntime+166328>) at ./Include/internal/pycore_ceval.h:73
#29 _PyEval_Vector (tstate=0x564453ca7ab8 <_PyRuntime+166328>, func=<optimized out>, locals=<optimized out>, args=<optimized out>, argcount=<optimized out>, kwnames=<optimized out>) at Python/ceval.c:6439
#30 0x000056445387672d in do_call_core (use_tracing=<optimized out>, kwdict=0x7f03eecc1d40, callargs=0x7f03e6dd3040, func=0x7f03ee37e3e0, tstate=0x564453ca7ab8 <_PyRuntime+166328>) at Python/ceval.c:7357
#31 _PyEval_EvalFrameDefault (tstate=<optimized out>, frame=<optimized out>, throwflag=<optimized out>) at Python/ceval.c:5381
#32 0x0000564453993391 in _PyEval_EvalFrame (throwflag=0, frame=0x7f0415e46878, tstate=0x564453ca7ab8 <_PyRuntime+166328>) at ./Include/internal/pycore_ceval.h:73
#33 _PyEval_Vector (tstate=0x564453ca7ab8 <_PyRuntime+166328>, func=<optimized out>, locals=<optimized out>, args=<optimized out>, argcount=<optimized out>, kwnames=<optimized out>) at Python/ceval.c:6439
#34 0x000056445387672d in do_call_core (use_tracing=<optimized out>, kwdict=0x7f03e6e02680, callargs=0x7f03e6e02500, func=0x7f03e6f30a40, tstate=0x564453ca7ab8 <_PyRuntime+166328>) at Python/ceval.c:7357
#35 _PyEval_EvalFrameDefault (tstate=<optimized out>, frame=<optimized out>, throwflag=<optimized out>) at Python/ceval.c:5381
#36 0x0000564453993391 in _PyEval_EvalFrame (throwflag=0, frame=0x7f0415e46540, tstate=0x564453ca7ab8 <_PyRuntime+166328>) at ./Include/internal/pycore_ceval.h:73
#37 _PyEval_Vector (tstate=0x564453ca7ab8 <_PyRuntime+166328>, func=<optimized out>, locals=<optimized out>, args=<optimized out>, argcount=<optimized out>, kwnames=<optimized out>) at Python/ceval.c:6439
#38 0x00005644538c41e7 in _PyObject_FastCallDictTstate (tstate=tstate@entry=0x564453ca7ab8 <_PyRuntime+166328>, callable=callable@entry=0x7f03e6ea60c0, args=args@entry=0x7f0408bcf0f0, nargsf=nargsf@entry=8, kwargs=kwargs@entry=0x0) at Objects/call.c:141
#39 0x00005644538c4455 in _PyObject_Call_Prepend (tstate=tstate@entry=0x564453ca7ab8 <_PyRuntime+166328>, callable=callable@entry=0x7f03e6ea60c0, obj=obj@entry=0x7f03e78b9c10, args=args@entry=0x7f03e6d5cac0, kwargs=kwargs@entry=0x0) at Objects/call.c:482
#40 0x00005644539264a4 in slot_tp_init (self=0x7f03e78b9c10, args=0x7f03e6d5cac0, kwds=0x0) at Objects/typeobject.c:7863
#41 0x000056445391f137 in type_call (type=<optimized out>, args=0x7f03e6d5cac0, kwds=0x0) at Objects/typeobject.c:1112
#42 0x00005644538c4070 in _PyObject_MakeTpCall (tstate=0x564453ca7ab8 <_PyRuntime+166328>, callable=callable@entry=0x564454f4eb60, args=args@entry=0x7f0415e46508, nargs=7, keywords=0x0, keywords@entry=0x5644538c4455 <_PyObject_Call_Prepend+149>) at Objects/call.c:214
#43 0x00005644538c46f0 in _PyObject_VectorcallTstate (kwnames=0x5644538c4455 <_PyObject_Call_Prepend+149>, nargsf=<optimized out>, args=0x7f0415e46508, callable=0x564454f4eb60, tstate=<optimized out>) at ./Include/internal/pycore_call.h:90
#44 _PyObject_VectorcallTstate (kwnames=0x5644538c4455 <_PyObject_Call_Prepend+149>, nargsf=<optimized out>, args=0x7f0415e46508, callable=0x564454f4eb60, tstate=<optimized out>) at ./Include/internal/pycore_call.h:77
#45 PyObject_Vectorcall (callable=callable@entry=0x564454f4eb60, args=args@entry=0x7f0415e46508, nargsf=<optimized out>, kwnames=kwnames@entry=0x0) at Objects/call.c:299
#46 0x0000564453876ae6 in _PyEval_EvalFrameDefault (tstate=<optimized out>, frame=<optimized out>, throwflag=<optimized out>) at Python/ceval.c:7315
#47 0x0000564453993391 in _PyEval_EvalFrame (throwflag=0, frame=0x7f0415e46020, tstate=0x564453ca7ab8 <_PyRuntime+166328>) at ./Include/internal/pycore_ceval.h:73
#48 _PyEval_Vector (tstate=tstate@entry=0x564453ca7ab8 <_PyRuntime+166328>, func=func@entry=0x7f0408b4fba0, locals=locals@entry=0x7f0408d9a340, args=args@entry=0x0, argcount=argcount@entry=0, kwnames=kwnames@entry=0x0) at Python/ceval.c:6439
#49 0x0000564453993444 in PyEval_EvalCode (co=co@entry=0x7f03e6f1c7a0, globals=globals@entry=0x7f0408d9a340, locals=locals@entry=0x7f0408d9a340) at Python/ceval.c:1154
#50 0x00005644539d3efa in run_eval_code_obj (tstate=tstate@entry=0x564453ca7ab8 <_PyRuntime+166328>, co=co@entry=0x7f03e6f1c7a0, globals=globals@entry=0x7f0408d9a340, locals=locals@entry=0x7f0408d9a340) at Python/pythonrun.c:1714
#51 0x00005644539d4107 in run_mod (mod=mod@entry=0x564454fbac78, filename=filename@entry=0x7f0408d9a4b0, globals=0x7f0408d9a340, locals=0x7f0408d9a340, flags=flags@entry=0x7fffd37c0718, arena=arena@entry=0x7f0408cc3790) at Python/pythonrun.c:1735
#52 0x00005644539d5cdb in PyRun_InteractiveOneObjectEx (fp=fp@entry=0x7f0415c8b860 <_IO_2_1_stdin_>, filename=filename@entry=0x7f0408d9a4b0, flags=flags@entry=0x7fffd37c0718) at Python/pythonrun.c:261
#53 0x00005644539d68a6 in _PyRun_InteractiveLoopObject (fp=fp@entry=0x7f0415c8b860 <_IO_2_1_stdin_>, filename=filename@entry=0x7f0408d9a4b0, flags=flags@entry=0x7fffd37c0718) at Python/pythonrun.c:138
#54 0x00005644539d708e in _PyRun_AnyFileObject (fp=fp@entry=0x7f0415c8b860 <_IO_2_1_stdin_>, filename=filename@entry=0x7f0408d9a4b0, closeit=closeit@entry=0, flags=flags@entry=0x7fffd37c0718) at Python/pythonrun.c:73
#55 0x00005644539d713a in PyRun_AnyFileExFlags (fp=0x7f0415c8b860 <_IO_2_1_stdin_>, filename=filename@entry=0x564453a65291 "<stdin>", closeit=closeit@entry=0, flags=flags@entry=0x7fffd37c0718) at Python/pythonrun.c:105
#56 0x00005644539f4173 in pymain_run_stdin (config=0x564453c8db00 <_PyRuntime+59904>) at Modules/main.c:509
#57 pymain_run_python (exitcode=0x7fffd37c0710) at Modules/main.c:604
#58 Py_RunMain () at Modules/main.c:680
#59 0x00005644539f4406 in pymain_main (args=0x7fffd37c0830) at Modules/main.c:710
#60 Py_BytesMain (argc=<optimized out>, argv=<optimized out>) at Modules/main.c:734
#61 0x00007f0415affc57 in __libc_start_main () from /usr/lib64/libc.so.6
#62 0x000056445387b17a in _start () at Python/ceval.c:2764
(gdb) py-bt
Traceback (most recent call first):
File "/path/to/python/lib/python3.9/site-packages/llvmlite/binding/ffi.py", line 190, in __call__
return self._cfn(*args, **kwargs)
File "/path/to/python/lib/python3.9/site-packages/llvmlite/binding/executionengine.py", line 92, in finalize_object
ffi.lib.LLVMPY_FinalizeObject(self)
File "/path/to/python/lib/python3.9/site-packages/numba/core/codegen.py", line 1060, in wrapper
return old(self._ee, *args, **kwargs)
File "/path/to/python/lib/python3.9/site-packages/numba/core/codegen.py", line 999, in _finalize_specific
self._codegen._engine.finalize_object()
File "/path/to/python/lib/python3.9/site-packages/numba/core/codegen.py", line 797, in _finalize_final_module
self._finalize_specific()
File "/path/to/python/lib/python3.9/site-packages/numba/core/codegen.py", line 765, in finalize
self._finalize_final_module()
File "/path/to/python/lib/python3.9/site-packages/numba/core/runtime/nrtdynmod.py", line 213, in compile_nrt_functions
library.finalize()
File "/path/to/python/lib/python3.9/site-packages/numba/core/runtime/nrt.py", line 45, in initialize
self._library = nrtdynmod.compile_nrt_functions(ctx)
File "/path/to/python/lib/python3.9/site-packages/numba/core/compiler_lock.py", line 35, in _acquire_compile_lock
return func(*args, **kwargs)
File "/path/to/python/lib/python3.9/site-packages/numba/core/cpu.py", line 66, in load_additional_registries
rtsys.initialize(self)
File "/path/to/python/lib/python3.9/site-packages/numba/core/base.py", line 267, in refresh
self.load_additional_registries()
File "/path/to/python/lib/python3.9/site-packages/numba/core/compiler.py", line 418, in __init__
targetctx.refresh()
File "/path/to/python/lib/python3.9/site-packages/numba/core/compiler.py", line 768, in compile_extra
pipeline = pipeline_class(typingctx, targetctx, library,
File "/path/to/python/lib/python3.9/site-packages/numba/core/dispatcher.py", line 152, in _compile_core
cres = compiler.compile_extra(self.targetdescr.typing_context,
File "/path/to/python/lib/python3.9/site-packages/numba/core/dispatcher.py", line 139, in _compile_cached
retval = self._compile_core(args, return_type)
File "/path/to/python/lib/python3.9/site-packages/numba/core/dispatcher.py", line 125, in compile
status, retval = self._compile_cached(args, return_type)
File "/path/to/python/lib/python3.9/site-packages/numba/core/dispatcher.py", line 965, in compile
cres = self._compiler.compile(args, return_type)
File "/path/to/python/lib/python3.9/site-packages/numba/core/decorators.py", line 241, in wrapper
disp.compile(sig)
File "./hmm/calculator.py", line 16, in <module>
<built-in method exec of module object at remote 0x7f2b02632b30>
File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed
File "<frozen importlib._bootstrap_external>", line 850, in exec_module
File "<frozen importlib._bootstrap>", line 680, in _load_unlocked
File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
<built-in method __import__ of module object at remote 0x7f2b02632b30>
File "/usr1/build/runner_base/runner/run.py", line 133, in _load_model
File "/usr1/build/runner_base/__init__.py", line 431, in wrapper
File "/usr1/build/runner_base/runner/run.py", line 198, in case_operate
File "/usr1/build/runner_base/__init__.py", line 431, in wrapper
File "/usr1/build/runner_base/boot/main.py", line 216, in run
File "/usr1/build/runner_base/boot/main.py", line 255, in <module>
Bug report
Bug description:
I encountered a core dump and the backtrace shows that it relates to ctypes:
I changed nothing but the version of libffi from 3.3 to 3.4.2, while it runs ok with version 3,3. I compile libffi and recompiling python with it:
I also run unittest of ctypes as ctypes unittest crashes with libffi 3.4.2,
it cored as follows:
Do you have any ideas?
Tested with:
CPython versions tested on:
3.9
Operating systems tested on:
Linux