Sunday, July 07, 2024

Re: Python numpy Floating point exception in latest snapshot

Hi Stuart,

Stuart Henderson <stu@spacehopper.org> wrote:
> I don't see that here.
>
> Firstly, did you run pkg_add -u after updating?

Yes. I also ran this command to ensure everything is up to date:
# pkg_add -uDsnap -Dinstalled

However I couldn't reproduce this error on a clean install on same
computer (Minisforum UM790 with Ryzen 9 7940HS).

> Install the gdb and debug-py3-numpy packages (as well as the
> debug-python you already have) and use the 'egdb' binary. The version
> of gdb in base is barely useful.

It seems that lldb is working, so I included my lldb output at the end
of this email.

> Which cpu architecture? amd64, arm64, sparc64, [...]?

amd64


$ lldb /usr/local/bin/python3.11
(lldb) target create "/usr/local/bin/python3.11"
Current executable set to '/usr/local/bin/python3.11' (x86_64).
(lldb) run -c "import numpy"
Process 48416 launched: '/usr/local/bin/python3.11' (x86_64)
Process 48416 stopped
* thread #1, stop reason = signal SIGFPE
frame #0: 0x0000069e436d7ea5 ld.so`_dl_find_symbol_obj(obj=0x0000069e12186000, sl=0x0000784c8e3b7198) at resolve.c:626:46
623 } else {
624 Elf_Word si;
625
-> 626 for (si = obj->buckets_elf[sl->sl_elf_hash % obj->nbuckets];
^
627 si != STN_UNDEF; si = obj->chains_elf[si]) {
628 const Elf_Sym *sym = symt + si;
629
(lldb) list
630 int r = matched_symbol(obj, sym, sl);
631 if (r)
632 return r > 0;
633 }
634 }
635 return 0;
636 }
(lldb) print obj
(elf_object_t *) $0 = 0x0000069e12186000
(lldb) print obj->nbuckets
(u_int32_t) $1 = 0
(lldb) bt
* thread #1, stop reason = signal SIGFPE
* frame #0: 0x0000069e436d7ea5 ld.so`_dl_find_symbol_obj(obj=0x0000069e12186000, sl=0x0000784c8e3b7198) at resolve.c:626:46
frame #1: 0x0000069e436d7b80 ld.so`_dl_find_symbol(name="PyInit__multiarray_umath", flags=96, ref_sym=0x0000000000000000, req_obj=0x0000069e12186000) at resolve.c:669:7
frame #2: 0x0000069e436d3a82 ld.so`dlsym(handle=<unavailable>, name="PyInit__multiarray_umath") at dlfcn.c:206:7
frame #3: 0x0000069eeb781e9e libpython3.11.so.0.0`_PyImport_FindSharedFuncptr(prefix="PyInit", shortname="_multiarray_umath", pathname="/usr/local/lib/python3.11/site-packages/numpy/core/_multiarray_umath.cpython-311.so", fp=0x0000000000000000) at dynload_shlib.c:109:22
frame #4: 0x0000069eeb73621f libpython3.11.so.0.0`_imp_create_dynamic at importdl.c:139:18
frame #5: 0x0000069eeb63da1e libpython3.11.so.0.0`cfunction_vectorcall_FASTCALL at methodobject.c:427:24
frame #6: 0x0000069eeb6fcaec libpython3.11.so.0.0`_PyEval_EvalFrameDefault at ceval.c:0
frame #7: 0x0000069eeb6ff24b libpython3.11.so.0.0`_PyEval_Vector at pycore_ceval.h:73:16
frame #8: 0x0000069eeb5e3261 libpython3.11.so.0.0`object_vacall at pycore_call.h:92:11
frame #9: 0x0000069eeb5e3043 libpython3.11.so.0.0`PyObject_CallMethodObjArgs at call.c:879:24
frame #10: 0x0000069eeb730fec libpython3.11.so.0.0`PyImport_ImportModuleLevelObject at import.c:1748:11
frame #11: 0x0000069eeb6f5236 libpython3.11.so.0.0`_PyEval_EvalFrameDefault at ceval.c:7422:15
frame #12: 0x0000069eeb6e985e libpython3.11.so.0.0`PyEval_EvalCode at pycore_ceval.h:73:16
frame #13: 0x0000069eeb6e4e9f libpython3.11.so.0.0`builtin_exec at bltinmodule.c:1077:17
frame #14: 0x0000069eeb63db39 libpython3.11.so.0.0`cfunction_vectorcall_FASTCALL_KEYWORDS at methodobject.c:443:24
frame #15: 0x0000069eeb6fcaec libpython3.11.so.0.0`_PyEval_EvalFrameDefault at ceval.c:0
frame #16: 0x0000069eeb6ff24b libpython3.11.so.0.0`_PyEval_Vector at pycore_ceval.h:73:16
frame #17: 0x0000069eeb5e3261 libpython3.11.so.0.0`object_vacall at pycore_call.h:92:11
frame #18: 0x0000069eeb5e3043 libpython3.11.so.0.0`PyObject_CallMethodObjArgs at call.c:879:24
frame #19: 0x0000069eeb730fec libpython3.11.so.0.0`PyImport_ImportModuleLevelObject at import.c:1748:11
frame #20: 0x0000069eeb6e3609 libpython3.11.so.0.0`builtin___import__ at bltinmodule.c:277:12
frame #21: 0x0000069eeb63db39 libpython3.11.so.0.0`cfunction_vectorcall_FASTCALL_KEYWORDS at methodobject.c:443:24
frame #22: 0x0000069eeb6fcaec libpython3.11.so.0.0`_PyEval_EvalFrameDefault at ceval.c:0
frame #23: 0x0000069eeb6ff24b libpython3.11.so.0.0`_PyEval_Vector at pycore_ceval.h:73:16
frame #24: 0x0000069eeb5e3261 libpython3.11.so.0.0`object_vacall at pycore_call.h:92:11
frame #25: 0x0000069eeb5e3043 libpython3.11.so.0.0`PyObject_CallMethodObjArgs at call.c:879:24
frame #26: 0x0000069eeb7311e2 libpython3.11.so.0.0`PyImport_ImportModuleLevelObject at import.c:1918:25
frame #27: 0x0000069eeb6f5236 libpython3.11.so.0.0`_PyEval_EvalFrameDefault at ceval.c:7422:15
frame #28: 0x0000069eeb6e985e libpython3.11.so.0.0`PyEval_EvalCode at pycore_ceval.h:73:16
frame #29: 0x0000069eeb6e4e9f libpython3.11.so.0.0`builtin_exec at bltinmodule.c:1077:17
frame #30: 0x0000069eeb63db39 libpython3.11.so.0.0`cfunction_vectorcall_FASTCALL_KEYWORDS at methodobject.c:443:24
frame #31: 0x0000069eeb6fcaec libpython3.11.so.0.0`_PyEval_EvalFrameDefault at ceval.c:0
frame #32: 0x0000069eeb6ff24b libpython3.11.so.0.0`_PyEval_Vector at pycore_ceval.h:73:16
frame #33: 0x0000069eeb5e3261 libpython3.11.so.0.0`object_vacall at pycore_call.h:92:11
frame #34: 0x0000069eeb5e3043 libpython3.11.so.0.0`PyObject_CallMethodObjArgs at call.c:879:24
frame #35: 0x0000069eeb730fec libpython3.11.so.0.0`PyImport_ImportModuleLevelObject at import.c:1748:11
frame #36: 0x0000069eeb6e3609 libpython3.11.so.0.0`builtin___import__ at bltinmodule.c:277:12
frame #37: 0x0000069eeb63db39 libpython3.11.so.0.0`cfunction_vectorcall_FASTCALL_KEYWORDS at methodobject.c:443:24
frame #38: 0x0000069eeb6fcaec libpython3.11.so.0.0`_PyEval_EvalFrameDefault at ceval.c:0
frame #39: 0x0000069eeb6ff24b libpython3.11.so.0.0`_PyEval_Vector at pycore_ceval.h:73:16
frame #40: 0x0000069eeb5e3261 libpython3.11.so.0.0`object_vacall at pycore_call.h:92:11
frame #41: 0x0000069eeb5e3043 libpython3.11.so.0.0`PyObject_CallMethodObjArgs at call.c:879:24
frame #42: 0x0000069eeb7311e2 libpython3.11.so.0.0`PyImport_ImportModuleLevelObject at import.c:1918:25
frame #43: 0x0000069eeb6f5236 libpython3.11.so.0.0`_PyEval_EvalFrameDefault at ceval.c:7422:15
frame #44: 0x0000069eeb6e985e libpython3.11.so.0.0`PyEval_EvalCode at pycore_ceval.h:73:16
frame #45: 0x0000069eeb6e4e9f libpython3.11.so.0.0`builtin_exec at bltinmodule.c:1077:17
frame #46: 0x0000069eeb63db39 libpython3.11.so.0.0`cfunction_vectorcall_FASTCALL_KEYWORDS at methodobject.c:443:24
frame #47: 0x0000069eeb6fcaec libpython3.11.so.0.0`_PyEval_EvalFrameDefault at ceval.c:0
frame #48: 0x0000069eeb6ff24b libpython3.11.so.0.0`_PyEval_Vector at pycore_ceval.h:73:16
frame #49: 0x0000069eeb5e3261 libpython3.11.so.0.0`object_vacall at pycore_call.h:92:11
frame #50: 0x0000069eeb5e3043 libpython3.11.so.0.0`PyObject_CallMethodObjArgs at call.c:879:24
frame #51: 0x0000069eeb730fec libpython3.11.so.0.0`PyImport_ImportModuleLevelObject at import.c:1748:11
frame #52: 0x0000069eeb6e3609 libpython3.11.so.0.0`builtin___import__ at bltinmodule.c:277:12
frame #53: 0x0000069eeb63db39 libpython3.11.so.0.0`cfunction_vectorcall_FASTCALL_KEYWORDS at methodobject.c:443:24
frame #54: 0x0000069eeb6fcaec libpython3.11.so.0.0`_PyEval_EvalFrameDefault at ceval.c:0
frame #55: 0x0000069eeb6ff24b libpython3.11.so.0.0`_PyEval_Vector at pycore_ceval.h:73:16
frame #56: 0x0000069eeb5e3261 libpython3.11.so.0.0`object_vacall at pycore_call.h:92:11
frame #57: 0x0000069eeb5e3043 libpython3.11.so.0.0`PyObject_CallMethodObjArgs at call.c:879:24
frame #58: 0x0000069eeb7311e2 libpython3.11.so.0.0`PyImport_ImportModuleLevelObject at import.c:1918:25
frame #59: 0x0000069eeb6f5236 libpython3.11.so.0.0`_PyEval_EvalFrameDefault at ceval.c:7422:15
frame #60: 0x0000069eeb6e985e libpython3.11.so.0.0`PyEval_EvalCode at pycore_ceval.h:73:16
frame #61: 0x0000069eeb6e4e9f libpython3.11.so.0.0`builtin_exec at bltinmodule.c:1077:17
frame #62: 0x0000069eeb63db39 libpython3.11.so.0.0`cfunction_vectorcall_FASTCALL_KEYWORDS at methodobject.c:443:24
frame #63: 0x0000069eeb6fcaec libpython3.11.so.0.0`_PyEval_EvalFrameDefault at ceval.c:0
frame #64: 0x0000069eeb6ff24b libpython3.11.so.0.0`_PyEval_Vector at pycore_ceval.h:73:16
frame #65: 0x0000069eeb5e3261 libpython3.11.so.0.0`object_vacall at pycore_call.h:92:11
frame #66: 0x0000069eeb5e3043 libpython3.11.so.0.0`PyObject_CallMethodObjArgs at call.c:879:24
frame #67: 0x0000069eeb730fec libpython3.11.so.0.0`PyImport_ImportModuleLevelObject at import.c:1748:11
frame #68: 0x0000069eeb6f5236 libpython3.11.so.0.0`_PyEval_EvalFrameDefault at ceval.c:7422:15
frame #69: 0x0000069eeb6e985e libpython3.11.so.0.0`PyEval_EvalCode at pycore_ceval.h:73:16
frame #70: 0x0000069eeb75a429 libpython3.11.so.0.0`run_mod [inlined] run_eval_code_obj(tstate=0x0000069eeb93d760, co=0x0000069e3475b5d0, globals=0x0000069e3482c2c0, locals=0x0000069e3482c2c0) at pythonrun.c:1741:9
frame #71: 0x0000069eeb75a3f5 libpython3.11.so.0.0`run_mod(mod=<unavailable>, filename=<unavailable>, globals=0x0000069e3482c2c0, locals=0x0000069e3482c2c0, flags=<unavailable>, arena=<unavailable>) at pythonrun.c:1762:19
frame #72: 0x0000069eeb75df30 libpython3.11.so.0.0`PyRun_SimpleStringFlags [inlined] PyRun_StringFlags(str="import numpy\n", start=257, globals=0x0000069e3482c2c0, locals=0x0000069e3482c2c0, flags=0x0000784c8e3ba400) at pythonrun.c:1632:15
frame #73: 0x0000069eeb75dedc libpython3.11.so.0.0`PyRun_SimpleStringFlags(command="import numpy\n", flags=0x0000784c8e3ba400) at pythonrun.c:487:9
frame #74: 0x0000069eeb782722 libpython3.11.so.0.0`Py_RunMain [inlined] pymain_run_command(command=<unavailable>) at main.c:255:11
frame #75: 0x0000069eeb782693 libpython3.11.so.0.0`Py_RunMain [inlined] pymain_run_python(exitcode=<unavailable>) at main.c:592:21
frame #76: 0x0000069eeb7825b0 libpython3.11.so.0.0`Py_RunMain at main.c:680:5
frame #77: 0x0000069eeb783e45 libpython3.11.so.0.0`pymain_main(args=0x0000784c8e3ba7a8) at main.c:710:12
frame #78: 0x0000069eeb78426c libpython3.11.so.0.0`Py_BytesMain(argc=<unavailable>, argv=0x0000784c8e3b7198) at main.c:734:12
frame #79: 0x0000069c102f694b python3.11`__start + 299
(lldb) down
error: Already at the bottom of the stack.
(lldb) up
frame #1: 0x0000069e436d7b80 ld.so`_dl_find_symbol(name="PyInit__multiarray_umath", flags=96, ref_sym=0x0000000000000000, req_obj=0x0000069e12186000) at resolve.c:669:7
666 struct object_vector vec;
667 int i;
668
-> 669 if (_dl_find_symbol_obj(req_obj, &sl))
^
670 goto found;
671
672 /* weak definition in the specified object is good enough */
(lldb) print sl
(symlookup) $2 = {
sl_name = 0x0000784c8e3b7370 "PyInit__multiarray_umath"
sl_out = {
sym = NULL
obj = NULL
}
sl_weak_out = {
sym = NULL
obj = NULL
}
sl_elf_hash = 182513432
sl_gnu_hash = 3258556712
sl_flags = 96
}
(lldb) print obj
error: expression failed to parse:
error: <user expression 3>:1:1: use of undeclared identifier 'obj'
obj
^
(lldb) print req_obj
(elf_object_t *) $3 = 0x0000069e12186000
(lldb) print *req_obj
(elf_object_t) $4 = {
obj_base = 7278442606592
load_name = 0x0000069e12187500 "/usr/local/lib/python3.11/site-packages/numpy/core/_multiarray_umath.cpython-311.so"
load_dyn = 0x0000069ea53f88f0
next = NULL
prev = 0x0000069e12188000
load_base = 7278442606592
load_list = 0x0000069ec896e700
load_size = 4677632
Dyn = {
info = {
[0] = 0
[...]
[36] = 0
}
u = {
null = 0
needed = 0
pltrelsz = 0
pltgot = 0x0000000000000000
hash = 0x0000000000000000
strtab = 0x0000000000000000
symtab = NULL
rela = NULL
relasz = 0
relaent = 0
strsz = 0
syment = 0
init = 0x0000000000000000
fini = 0x0000000000000000
soname = 0x0000000000000000
rpath = 0x0000000000000000
symbolic = 0
rel = NULL
relsz = 0
relent = 0
pltrel = 0
debug = 0
textrel = 0
jmprel = 0
bind_now = 0
init_array = 0x0000000000000000
fini_array = 0x0000000000000000
init_arraysz = 0
fini_arraysz = 0
runpath = 0x0000000000000000
flags = 0
encoding = 0
preinit_array = 0x0000000000000000
preinit_arraysz = 0
unassigned = 0
relrsz = 0
relr = 0x0000000000000000
}
}
relacount = 0
relcount = 0
status = 773
phdrp = 0x0000069ea4fc7040
phdrc = 11
obj_type = 4
obj_flags = 1
nodelete = 0
nbuckets = 0
nchains = 0
hash_u = {
u_elf = {
buckets = 0x0000000000000000
chains = 0x0000000000000000
}
u_gnu = {
buckets = 0x0000000000000000
chains = 0x0000000000000000
bloom = 0x0000000000000000
mask_bm = 0
shift2 = 0
symndx = 0
}
}
child_vec = {
len = 0
alloc = 0
vec = NULL
}
grpsym_vec = {
len = 1
alloc = 11
vec = 0x0000069e12185900
}
grpref_list = {
tqh_first = NULL
tqh_last = 0x0000069e121861e8
}
refcount = 0
opencount = 1
grprefcount = 0
load_object = 0x0000069e12186000
sod = {
sod_name = 7277002003136
sod_library = 0
sod_reserved = 0
sod_major = 0
sod_minor = 0
sod_next = 0
}
dev = 1044
inode = 959044
tls_fsize = 0
tls_msize = 0
tls_align = 0
tls_static_data = 0x0000000000000000
tls_offset = 0
relro_addr = 7278446992144
relro_size = 21744
grpsym_gen = 3
rpath = 0x0000000000000000
runpath = 0x0000000000000000
traced = 0
imut = {
slice = {
[0] = (start = 7278442606592, end = 7278447284224)
[1] = (start = 0, end = 0)
[...]
[39] = (start = 0, end = 0)
}
count = 1
}
mut = {
slice = {
[0] = (start = 7278446992144, end = 7278447013888)
[1] = (start = 0, end = 0)
[...]
[39] = (start = 0, end = 0)
}
count = 1
}
islibc = 0
}
(lldb) up
frame #2: 0x0000069e436d3a82 ld.so`dlsym(handle=<unavailable>, name="PyInit__multiarray_umath") at dlfcn.c:206:7
203 }
204 }
205
-> 206 sr = _dl_find_symbol(name, flags|SYM_NOWARNNOTFOUND, NULL, object);
^
207 if (sr.sym == NULL) {
208 DL_DEB(("dlsym: failed to find symbol %s\n", name));
209 _dl_errno = DL_NO_SYMBOL;
(lldb) print object
(elf_object_t *) $5 = 0x0000069e12186000
(lldb) up
frame #3: 0x0000069eeb781e9e libpython3.11.so.0.0`_PyImport_FindSharedFuncptr(prefix="PyInit", shortname="_multiarray_umath", pathname="/usr/local/lib/python3.11/site-packages/numpy/core/_multiarray_umath.cpython-311.so", fp=0x0000000000000000) at dynload_shlib.c:109:22

No comments:

Post a Comment