Bug 2367454
| Summary: | python-crick fails to build with Python 3.14: crick/tests/test_space_saving.py::test_merge_algorithm[s111-s211] Fatal Python error: Segmentation fault | ||
|---|---|---|---|
| Product: | [Fedora] Fedora | Reporter: | Karolina Surma <ksurma> |
| Component: | python-crick | Assignee: | Sandro <gui1ty> |
| Status: | CLOSED WORKSFORME | QA Contact: | |
| Severity: | unspecified | Docs Contact: | |
| Priority: | unspecified | ||
| Version: | rawhide | CC: | code, fti-bugs, gui1ty, ksurma, loganjerry, mhroncok, quantum.analyst, vstinner |
| Target Milestone: | --- | ||
| Target Release: | --- | ||
| Hardware: | Unspecified | ||
| OS: | Unspecified | ||
| Whiteboard: | |||
| Fixed In Version: | python-crick-0.0.8-6.fc43 | Doc Type: | --- |
| Doc Text: | Story Points: | --- | |
| Clone Of: | Environment: | ||
| Last Closed: | 2025-08-01 16:12:35 UTC | Type: | Bug |
| Regression: | --- | Mount Type: | --- |
| Documentation: | --- | CRM: | |
| Verified Versions: | Category: | --- | |
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
| Cloudforms Team: | --- | Target Upstream Version: | |
| Embargoed: | |||
| Bug Depends On: | |||
| Bug Blocks: | 2322407, 2339432, 2339435, 2371852, 2371862 | ||
|
Description
Karolina Surma
2025-05-20 11:36:03 UTC
*** Bug 2371847 has been marked as a duplicate of this bug. *** The full trasceback with debug symbols is:
(gdb) bt full
#0 _PyFreeList_PopNoStats (fl=<optimized out>) at /usr/src/debug/python3.14-3.14.0~b2-3.fc43.x86_64/Include/internal/pycore_freelist.h:79
obj = 0xffffffff
#1 _PyFreeList_Pop (fl=<optimized out>) at /usr/src/debug/python3.14-3.14.0~b2-3.fc43.x86_64/Include/internal/pycore_freelist.h:88
op = <optimized out>
#2 PyFloat_FromDouble (fval=0.00040049338713288307) at /usr/src/debug/python3.14-3.14.0~b2-3.fc43.x86_64/Objects/floatobject.c:126
op = <optimized out>
#3 _PyFloat_FromDouble_ConsumeInputs (left=..., right=..., value=<optimized out>) at /usr/src/debug/python3.14-3.14.0~b2-3.fc43.x86_64/Objects/floatobject.c:142
No locals.
#4 0x00007ffff79701bb in _PyEval_EvalFrameDefault (tstate=0x7ffff7da61f8 <_PyRuntime+315512>, frame=0x7ffff7e1fe20, throwflag=-798002704) at /usr/src/debug/python3.14-3.14.0~b2-3.fc43.x86_64/Python/generated_cases.c.h:1036
left_o = <optimized out>
right_o = <optimized out>
dres = 0.00040049338713288307
value = <optimized out>
this_instr = <optimized out>
left = <optimized out>
right = <optimized out>
res = <optimized out>
opcode = <optimized out>
oparg = 10
entry = {frame = {f_executable = {bits = 140737351188993}, previous = 0x7ffff7e1f8e0, f_funcobj = {bits = 93824994576032}, f_globals = 0x7fff00000001, f_builtins = 0x1, f_locals = 0x1, frame_obj = 0x7ffff7144040,
instr_ptr = 0x7ffff7c1a202 <_Py_INTERPRETER_TRAMPOLINE_INSTRUCTIONS+2>, stackpointer = 0x7fffffffcb38, return_offset = 0, owner = 3 '\003', visited = 0 '\000', localsplus = {{bits = 1}}}, stack = {{bits = 1}}}
next_instr = <optimized out>
stack_pointer = <optimized out>
exception_unwind = <optimized out>
enter_tier_two = <optimized out>
dying = <optimized out>
__func__ = "_PyEval_EvalFrameDefault"
opcode_targets = {...}
word = <optimized out>
word = <optimized out>
#5 0x00007ffff7968b85 in _PyEval_EvalFrame (tstate=0x7ffff7da61f8 <_PyRuntime+315512>, frame=0x7ffff7e1f980, throwflag=0) at /usr/src/debug/python3.14-3.14.0~b2-3.fc43.x86_64/Include/internal/pycore_ceval.h:119
No locals.
#6 _PyEval_Vector (tstate=0x7ffff7da61f8 <_PyRuntime+315512>, func=<optimized out>, locals=<optimized out>, args=<optimized out>, argcount=<optimized out>, kwnames=<optimized out>) at /usr/src/debug/python3.14-3.14.0~b2-3.fc43.x86_64/Python/ceval.c:1961
total_args = 3
stack_array = {{bits = 140737329299376}, {bits = 140736690128464}, {bits = 140736690128976}, {bits = 140737347445669}, {bits = 140737488342160}, {bits = 140737347133224}, {bits = 140737334227744}, {bits = 140737334227744}}
arguments = 0x7fffffffcbe0
frame = 0x7ffff7e1f980
#7 0x00007ffff7a53fa0 in _PyFunction_Vectorcall (func=0x7ffff7144040, stack=0x7ffff673a818, nargsf=9223372036854775809, kwnames=0x7fffd0069780) at /usr/src/debug/python3.14-3.14.0~b2-3.fc43.x86_64/Objects/call.c:413
f = 0x7ffff7144040
nargs = 1
tstate = <optimized out>
#8 _PyObject_VectorcallDictTstate (tstate=0x7ffff7da61f8 <_PyRuntime+315512>, callable=0x7ffff7144040, args=<optimized out>, nargsf=1, kwargs=<optimized out>) at /usr/src/debug/python3.14-3.14.0~b2-3.fc43.x86_64/Objects/call.c:146
kwnames = 0x7fffd0069780
newargs = 0x7ffff673a818
nargs = <optimized out>
func = 0x7ffff799e120 <_PyFunction_Vectorcall>
res = <optimized out>
#9 0x00007ffff7aaee76 in _PyObject_Call_Prepend (tstate=0x7ffff7da61f8 <_PyRuntime+315512>, callable=0x7ffff7144040, obj=0x7ffff684ffb0, args=0x7ffff7d6f308 <_PyRuntime+90504>, kwargs=0x7fffd020b8c0) at /usr/src/debug/python3.14-3.14.0~b2-3.fc43.x86_64/Objects/call.c:504
small_stack = {0x7ffff684ffb0, 0x7ffff684ffb0, 0x7fffffffcd60, 0x7ffff798d14e <_PyDict_FromItems.constprop.0+366>, 0x7ffff684ffb0}
stack = 0x7fffffffcd00
argcount = 0
result = <optimized out>
#10 call_method (self=0x7ffff684ffb0, attr=<optimized out>, args=0x7ffff7d6f308 <_PyRuntime+90504>, kwds=0x7fffd020b8c0) at /usr/src/debug/python3.14-3.14.0~b2-3.fc43.x86_64/Objects/typeobject.c:2919
meth = 0x7ffff7144040
tstate = 0x7ffff7da61f8 <_PyRuntime+315512>
cref = <optimized out>
res = 0x0
unbound = <optimized out>
#11 slot_tp_call (self=0x7ffff684ffb0, args=0x7ffff7d6f308 <_PyRuntime+90504>, kwds=0x7fffd020b8c0) at /usr/src/debug/python3.14-3.14.0~b2-3.fc43.x86_64/Objects/typeobject.c:10181
No locals.
#12 0x00007ffff795447c in _PyObject_MakeTpCall (tstate=0x7ffff7da61f8 <_PyRuntime+315512>, callable=0x7ffff684ffb0, args=0x7fffffffcfc8, nargs=<optimized out>, keywords=<optimized out>) at /usr/src/debug/python3.14-3.14.0~b2-3.fc43.x86_64/Objects/call.c:242
call = <optimized out>
argstuple = <optimized out>
kwdict = <optimized out>
result = 0x0
#13 0x00007ffff797227a in _PyEval_EvalFrameDefault (tstate=0x7ffff7da61f8 <_PyRuntime+315512>, frame=0x7ffff7e1f8e0, throwflag=-798002704) at /usr/src/debug/python3.14-3.14.0~b2-3.fc43.x86_64/Python/generated_cases.c.h:3227
arguments = 0xffffffff
kwnames_o = <optimized out>
callable_o = <optimized out>
res_o = <optimized out>
tmp = {bits = 140736690352625}
tmp = <optimized out>
total_args = -798002704
args_o_temp = {0x7ffff66a8350, 0x7fffd06c0650, 0x7fffd06c0850, 0x7ffff7d256c0 <_Py_FalseStruct>, 0x0, 0x1, 0x1, 0x7ffff7115c60, 0x7fffffffd0c0, 0x7ffff796b7b8 <initialize_locals+984>, 0x7ffff625fb80}
args_o = <optimized out>
positional_args = -798002704
_i = <optimized out>
callable = <optimized out>
self_or_null = <optimized out>
this_instr = <optimized out>
args = 0x7ffff7e1f968
kwnames = <optimized out>
res = <optimized out>
opcode = <optimized out>
oparg = 10
entry = {frame = {f_executable = {bits = 140737351188993}, previous = 0x7ffff7e1f5e0, f_funcobj = {bits = 93824994576032}, f_globals = 0x7fff00000001, f_builtins = 0x1, f_locals = 0x1, frame_obj = 0x7ffff7144040,
instr_ptr = 0x7ffff7c1a202 <_Py_INTERPRETER_TRAMPOLINE_INSTRUCTIONS+2>, stackpointer = 0x7fffffffd078, return_offset = 0, owner = 3 '\003', visited = 0 '\000', localsplus = {{bits = 1}}}, stack = {{bits = 1}}}
next_instr = <optimized out>
stack_pointer = <optimized out>
exception_unwind = <optimized out>
enter_tier_two = <optimized out>
dying = <optimized out>
__func__ = "_PyEval_EvalFrameDefault"
opcode_targets = {...}
word = <optimized out>
word = <optimized out>
#14 0x00007ffff7968b85 in _PyEval_EvalFrame (tstate=0x7ffff7da61f8 <_PyRuntime+315512>, frame=0x7ffff7e1f660, throwflag=0) at /usr/src/debug/python3.14-3.14.0~b2-3.fc43.x86_64/Include/internal/pycore_ceval.h:119
No locals.
#15 _PyEval_Vector (tstate=0x7ffff7da61f8 <_PyRuntime+315512>, func=<optimized out>, locals=<optimized out>, args=<optimized out>, argcount=<optimized out>, kwnames=<optimized out>) at /usr/src/debug/python3.14-3.14.0~b2-3.fc43.x86_64/Python/ceval.c:1961
total_args = 2
stack_array = {{bits = 140737329463520}, {bits = 140737327563600}, {bits = 1}, {bits = 8091417940339733504}, {bits = 140737488343504}, {bits = 140737351672312}, {bits = 140737334227744}, {bits = 140737334227744}}
arguments = 0x7fffffffd120
frame = 0x7ffff7e1f660
#16 0x00007ffff7a53fa0 in _PyFunction_Vectorcall (func=0x7ffff7144040, stack=0x7fffd093b598, nargsf=9223372036854775809, kwnames=0x7ffff625fb80) at /usr/src/debug/python3.14-3.14.0~b2-3.fc43.x86_64/Objects/call.c:413
f = 0x7ffff7144040
nargs = 1
tstate = <optimized out>
#17 _PyObject_VectorcallDictTstate (tstate=0x7ffff7da61f8 <_PyRuntime+315512>, callable=0x7ffff7144040, args=<optimized out>, nargsf=1, kwargs=<optimized out>) at /usr/src/debug/python3.14-3.14.0~b2-3.fc43.x86_64/Objects/call.c:146
kwnames = 0x7ffff625fb80
newargs = 0x7fffd093b598
nargs = <optimized out>
func = 0x7ffff799e120 <_PyFunction_Vectorcall>
res = <optimized out>
#18 0x00007ffff7aaee76 in _PyObject_Call_Prepend (tstate=0x7ffff7da61f8 <_PyRuntime+315512>, callable=0x7ffff7144040, obj=0x7ffff68780e0, args=0x7ffff7d6f308 <_PyRuntime+90504>, kwargs=0x7ffff6281dc0) at /usr/src/debug/python3.14-3.14.0~b2-3.fc43.x86_64/Objects/call.c:504
small_stack = {0x7ffff68780e0, 0x7fffffffd508, 0x7fffffffd2a0, 0x7ffff798d14e <_PyDict_FromItems.constprop.0+366>, 0x7fffffffd290}
stack = 0x7fffffffd240
argcount = 0
result = <optimized out>
#19 call_method (self=0x7ffff68780e0, attr=<optimized out>, args=0x7ffff7d6f308 <_PyRuntime+90504>, kwds=0x7ffff6281dc0) at /usr/src/debug/python3.14-3.14.0~b2-3.fc43.x86_64/Objects/typeobject.c:2919
meth = 0x7ffff7144040
tstate = 0x7ffff7da61f8 <_PyRuntime+315512>
cref = <optimized out>
res = 0x0
unbound = <optimized out>
#20 slot_tp_call (self=0x7ffff68780e0, args=0x7ffff7d6f308 <_PyRuntime+90504>, kwds=0x7ffff6281dc0) at /usr/src/debug/python3.14-3.14.0~b2-3.fc43.x86_64/Objects/typeobject.c:10181
No locals.
#21 0x00007ffff795447c in _PyObject_MakeTpCall (tstate=0x7ffff7da61f8 <_PyRuntime+315512>, callable=0x7ffff68780e0, args=0x7fffffffd508, nargs=<optimized out>, keywords=<optimized out>) at /usr/src/debug/python3.14-3.14.0~b2-3.fc43.x86_64/Objects/call.c:242
call = <optimized out>
argstuple = <optimized out>
kwdict = <optimized out>
result = 0x0
#22 0x00007ffff797b194 in _PyEval_EvalFrameDefault (tstate=0x7ffff7da61f8 <_PyRuntime+315512>, frame=0x7ffff7e1f5e0, throwflag=-798002704) at /usr/src/debug/python3.14-3.14.0~b2-3.fc43.x86_64/Python/generated_cases.c.h:2959
callable_o = <optimized out>
total_args = -136907912
err = <optimized out>
arguments = 0x7fffd06f71f1
args_o_temp = {0x7ffff650b620, 0x7ffff66a8350, 0x7ffff6f28a70, 0x7ffff69474d0, 0x7ffff7d30200 <_Py_NoneStruct>, 0x7ffff7d30200 <_Py_NoneStruct>, 0x555555732f80, 0x7ffff7d256c0 <_Py_FalseStruct>, 0x7ffff71c9490, 0x7ffff796b7b8 <initialize_locals+984>, 0x7ffff672d640}
args_o = <optimized out>
arg = <optimized out>
op = <optimized out>
tracer = <optimized out>
tmp = {bits = 140736690352625}
_tmp_op_ptr = <optimized out>
data = <optimized out>
_i = <optimized out>
kwnames_o = <optimized out>
positional_args = -136998528
res_o = <optimized out>
_tmp_old_op = <optimized out>
dealloc = <optimized out>
callable = <optimized out>
self_or_null = <optimized out>
this_instr = 0x1
args = <optimized out>
kwnames = <optimized out>
res = <optimized out>
opcode = <optimized out>
oparg = 10
entry = {frame = {f_executable = {bits = 140737351188993}, previous = 0x7ffff7e1f130, f_funcobj = {bits = 93824994576032}, f_globals = 0x7fff00000001, f_builtins = 0x1, f_locals = 0x1, frame_obj = 0x7ffff7144040,
instr_ptr = 0x7ffff7c1a202 <_Py_INTERPRETER_TRAMPOLINE_INSTRUCTIONS+2>, stackpointer = 0x7fffffffd5b8, return_offset = 0, owner = 3 '\003', visited = 0 '\000', localsplus = {{bits = 1}}}, stack = {{bits = 1}}}
next_instr = <optimized out>
stack_pointer = <optimized out>
exception_unwind = <optimized out>
enter_tier_two = <optimized out>
dying = <optimized out>
__func__ = "_PyEval_EvalFrameDefault"
opcode_targets = {...}
word = <optimized out>
word = <optimized out>
#23 0x00007ffff7968b85 in _PyEval_EvalFrame (tstate=0x7ffff7da61f8 <_PyRuntime+315512>, frame=0x7ffff7e1f218, throwflag=0) at /usr/src/debug/python3.14-3.14.0~b2-3.fc43.x86_64/Include/internal/pycore_ceval.h:119
No locals.
#24 _PyEval_Vector (tstate=0x7ffff7da61f8 <_PyRuntime+315512>, func=<optimized out>, locals=<optimized out>, args=<optimized out>, argcount=<optimized out>, kwnames=<optimized out>) at /usr/src/debug/python3.14-3.14.0~b2-3.fc43.x86_64/Python/ceval.c:1961
total_args = 2
stack_array = {{bits = 140737329294576}, {bits = 140737329238032}, {bits = 1}, {bits = 140737351447416}, {bits = 140737351493136}, {bits = 140737351394600}, {bits = 1}, {bits = 140737488345672}}
arguments = 0x7fffffffd660
frame = 0x7ffff7e1f218
#25 0x00007ffff7a53fa0 in _PyFunction_Vectorcall (func=0x7ffff7144040, stack=0x7ffff66d0cb8, nargsf=9223372036854775809, kwnames=0x7ffff672d640) at /usr/src/debug/python3.14-3.14.0~b2-3.fc43.x86_64/Objects/call.c:413
f = 0x7ffff7144040
nargs = 1
tstate = <optimized out>
#26 _PyObject_VectorcallDictTstate (tstate=0x7ffff7da61f8 <_PyRuntime+315512>, callable=0x7ffff7144040, args=<optimized out>, nargsf=1, kwargs=<optimized out>) at /usr/src/debug/python3.14-3.14.0~b2-3.fc43.x86_64/Objects/call.c:146
kwnames = 0x7ffff672d640
newargs = 0x7ffff66d0cb8
nargs = <optimized out>
func = 0x7ffff799e120 <_PyFunction_Vectorcall>
res = <optimized out>
#27 0x00007ffff7aaee76 in _PyObject_Call_Prepend (tstate=0x7ffff7da61f8 <_PyRuntime+315512>, callable=0x7ffff7144040, obj=0x7ffff684ecf0, args=0x7ffff7d6f308 <_PyRuntime+90504>, kwargs=0x7ffff672e180) at /usr/src/debug/python3.14-3.14.0~b2-3.fc43.x86_64/Objects/call.c:504
small_stack = {0x7ffff684ecf0, 0x7fffffffda48, 0x7fffffffd7e0, 0x7ffff798d14e <_PyDict_FromItems.constprop.0+366>, 0x7fffffffd7d0}
stack = 0x7fffffffd780
argcount = 0
result = <optimized out>
#28 call_method (self=0x7ffff684ecf0, attr=<optimized out>, args=0x7ffff7d6f308 <_PyRuntime+90504>, kwds=0x7ffff672e180) at /usr/src/debug/python3.14-3.14.0~b2-3.fc43.x86_64/Objects/typeobject.c:2919
meth = 0x7ffff7144040
tstate = 0x7ffff7da61f8 <_PyRuntime+315512>
cref = <optimized out>
res = 0x0
unbound = <optimized out>
#29 slot_tp_call (self=0x7ffff684ecf0, args=0x7ffff7d6f308 <_PyRuntime+90504>, kwds=0x7ffff672e180) at /usr/src/debug/python3.14-3.14.0~b2-3.fc43.x86_64/Objects/typeobject.c:10181
No locals.
#30 0x00007ffff795447c in _PyObject_MakeTpCall (tstate=0x7ffff7da61f8 <_PyRuntime+315512>, callable=0x7ffff684ecf0, args=0x7fffffffda48, nargs=<optimized out>, keywords=<optimized out>) at /usr/src/debug/python3.14-3.14.0~b2-3.fc43.x86_64/Objects/call.c:242
call = <optimized out>
argstuple = <optimized out>
kwdict = <optimized out>
result = 0x0
#31 0x00007ffff797b194 in _PyEval_EvalFrameDefault (tstate=0x7ffff7da61f8 <_PyRuntime+315512>, frame=0x7ffff7e1f130, throwflag=-798002704) at /usr/src/debug/python3.14-3.14.0~b2-3.fc43.x86_64/Python/generated_cases.c.h:2959
callable_o = <optimized out>
total_args = -136907912
err = <optimized out>
arguments = 0x7fffd06f71f1
args_o_temp = {0x7ffff66dba60, 0x7ffff6841010, 0x7ffff75e4f40, 0x7ffff66f3080, 0x7ffff7d30200 <_Py_NoneStruct>, 0x7ffff7d30200 <_Py_NoneStruct>, 0x555555732f80, 0x7ffff7d256c0 <_Py_FalseStruct>, 0x7ffff71c9490, 0x7ffff75299b0, 0x0}
args_o = <optimized out>
arg = <optimized out>
op = <optimized out>
tracer = <optimized out>
tmp = {bits = 140736690352625}
_tmp_op_ptr = <optimized out>
data = <optimized out>
_i = <optimized out>
kwnames_o = <optimized out>
positional_args = -136998528
res_o = <optimized out>
_tmp_old_op = <optimized out>
dealloc = <optimized out>
callable = <optimized out>
self_or_null = <optimized out>
this_instr = 0x1
args = <optimized out>
kwnames = <optimized out>
res = <optimized out>
opcode = <optimized out>
oparg = 10
entry = {frame = {f_executable = {bits = 140737351188993}, previous = 0x0, f_funcobj = {bits = 140737488345824}, f_globals = 0x7ffff768dad8 <_int_free_create_chunk+136>, f_builtins = 0x7ffff7da61f8 <_PyRuntime+315512>, f_locals = 0x1fd, frame_obj = 0x7fffffffdb00,
instr_ptr = 0x7ffff7c1a202 <_Py_INTERPRETER_TRAMPOLINE_INSTRUCTIONS+2>, stackpointer = 0x7fffffffdaf8, return_offset = 0, owner = 3 '\003', visited = 0 '\000', localsplus = {{bits = 1}}}, stack = {{bits = 1}}}
next_instr = <optimized out>
stack_pointer = <optimized out>
exception_unwind = <optimized out>
enter_tier_two = <optimized out>
dying = <optimized out>
__func__ = "_PyEval_EvalFrameDefault"
opcode_targets = {...}
word = <optimized out>
word = <optimized out>
#32 0x00007ffff7968b85 in _PyEval_EvalFrame (tstate=0x7ffff7da61f8 <_PyRuntime+315512>, frame=0x7ffff7e1f020, throwflag=0) at /usr/src/debug/python3.14-3.14.0~b2-3.fc43.x86_64/Include/internal/pycore_ceval.h:119
No locals.
#33 _PyEval_Vector (tstate=0x7ffff7da61f8 <_PyRuntime+315512>, func=<optimized out>, locals=<optimized out>, args=<optimized out>, argcount=<optimized out>, kwnames=<optimized out>) at /usr/src/debug/python3.14-3.14.0~b2-3.fc43.x86_64/Python/ceval.c:1961
total_args = 0
stack_array = {{bits = 140737488346080}, {bits = 140737347104513}, {bits = 140737341557904}, {bits = 8091417940339733504}, {bits = 140737351398568}, {bits = 140737488346160}, {bits = 140737341701952}, {bits = 140737351672312}}
arguments = 0x7fffffffdba0
frame = 0x7ffff7e1f020
#34 0x00007ffff7a55f57 in PyEval_EvalCode (co=0x7ffff754d3b0, globals=<optimized out>, locals=0x7ffff7423f40) at /usr/src/debug/python3.14-3.14.0~b2-3.fc43.x86_64/Python/ceval.c:853
tstate = 0x7ffff7da61f8 <_PyRuntime+315512>
builtins = 0x7ffff75b1e80
desc = {fc_globals = 0x7ffff7423f40, fc_builtins = 0x7ffff75b1e80, fc_name = 0x7ffff7d61a20 <_PyRuntime+34976>, fc_qualname = 0x7ffff7d61a20 <_PyRuntime+34976>, fc_code = 0x7ffff754d3b0, fc_defaults = 0x0, fc_kwdefaults = 0x0, fc_closure = 0x0}
func = 0x7ffff741b3d0
res = <optimized out>
#35 0x00007ffff7a95867 in run_mod (mod=mod@entry=0x555555679980, filename=filename@entry=0x7ffff748edb0, globals=globals@entry=0x7ffff7423f40, locals=locals@entry=0x7ffff7423f40, flags=flags@entry=0x7fffffffde98, arena=arena@entry=0x7ffff752bc90, interactive_src=0x0,
generate_new_source=0) at /usr/src/debug/python3.14-3.14.0~b2-3.fc43.x86_64/Python/pythonrun.c:1436
tstate = 0x7ffff7da61f8 <_PyRuntime+315512>
interactive_filename = <optimized out>
co = 0x7ffff754d3b0
v = <optimized out>
#36 0x00007ffff7a9640a in pyrun_file (fp=fp@entry=0x5555555582e0, filename=filename@entry=0x7ffff748edb0, start=start@entry=257, globals=globals@entry=0x7ffff7423f40, locals=locals@entry=0x7ffff7423f40, closeit=closeit@entry=1, flags=0x7fffffffde98)
at /usr/src/debug/python3.14-3.14.0~b2-3.fc43.x86_64/Python/pythonrun.c:1293
arena = 0x7ffff752bc90
mod = <optimized out>
ret = <optimized out>
#37 0x00007ffff7a95244 in _PyRun_SimpleFileObject (fp=fp@entry=0x5555555582e0, filename=filename@entry=0x7ffff748edb0, closeit=closeit@entry=1, flags=flags@entry=0x7fffffffde98) at /usr/src/debug/python3.14-3.14.0~b2-3.fc43.x86_64/Python/pythonrun.c:521
ret = <optimized out>
main_module = 0x7ffff740e390
dict = 0x7ffff7423f40
set_file_name = 1
has_file = <optimized out>
pyc = <optimized out>
v = <optimized out>
#38 0x00007ffff7a95065 in _PyRun_AnyFileObject (fp=0x5555555582e0, filename=0x7ffff748edb0, closeit=1, flags=0x7fffffffde98) at /usr/src/debug/python3.14-3.14.0~b2-3.fc43.x86_64/Python/pythonrun.c:81
decref_filename = 0
res = <optimized out>
#39 0x00007ffff7a4ae60 in pymain_run_file_obj (program_name=0x7ffff748edf0, filename=0x7ffff748edb0, skip_source_first_line=0) at /usr/src/debug/python3.14-3.14.0~b2-3.fc43.x86_64/Modules/main.c:410
fp = <optimized out>
sb = {st_dev = 41, st_ino = 27308020, st_nlink = 1, st_mode = 33261, st_uid = 0, st_gid = 0, __pad0 = 0, st_rdev = 0, st_size = 225, st_blksize = 4096, st_blocks = 8, st_atim = {tv_sec = 1749685365, tv_nsec = 744935796}, st_mtim = {tv_sec = 1748822400, tv_nsec = 0},
st_ctim = {tv_sec = 1749685249, tv_nsec = 875740228}, __glibc_reserved = {0, 0, 0}}
cf = {cf_flags = 0, cf_feature_version = 14}
run = <optimized out>
#40 pymain_run_file (config=0x7ffff7d712c0 <_PyRuntime+98624>) at /usr/src/debug/python3.14-3.14.0~b2-3.fc43.x86_64/Modules/main.c:429
filename = 0x7ffff748edb0
program_name = 0x7ffff748edf0
res = <optimized out>
#41 pymain_run_python (exitcode=0x7fffffffde8c) at /usr/src/debug/python3.14-3.14.0~b2-3.fc43.x86_64/Modules/main.c:694
main_importer_path = <optimized out>
interp = 0x7ffff7d6f378 <_PyRuntime+90616>
config = 0x7ffff7d712c0 <_PyRuntime+98624>
path0 = 0x7ffff748e8b0
#42 Py_RunMain () at /usr/src/debug/python3.14-3.14.0~b2-3.fc43.x86_64/Modules/main.c:775
exitcode = 0
#43 0x00007ffff7a44e3b in Py_BytesMain (argc=<optimized out>, argv=<optimized out>) at /usr/src/debug/python3.14-3.14.0~b2-3.fc43.x86_64/Modules/main.c:829
args = {argc = 3, use_bytes_argv = 1, bytes_argv = 0x7fffffffe0f8, wchar_argv = 0x0}
#44 0x00007ffff76125b5 in __libc_start_call_main (main=main@entry=0x5555555544a0 <main>, argc=argc@entry=3, argv=argv@entry=0x7fffffffe0f8) at ../sysdeps/nptl/libc_start_call_main.h:58
self = <optimized out>
result = <optimized out>
unwind_buf = {cancel_jmp_buf = {{jmp_buf = {0, -3559646065537008828, 140737488347384, 3, 140737354125312, 93824992243056, -3559646066658985148, -3559662302490608828}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x7fffffffe0f8}, data = {prev = 0x0, cleanup = 0x0,
canceltype = 0}}}
not_first_call = <optimized out>
#45 0x00007ffff7612668 in __libc_start_main_impl (main=0x5555555544a0 <main>, argc=3, argv=0x7fffffffe0f8, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7fffffffe0e8) at ../csu/libc-start.c:360
No locals.
#46 0x00005555555543d5 in _start ()
No symbol table info available.
And valgrind also shows something interesting:
crick/tests/test_space_saving.py::test_weights ==33== Invalid write of size 8
==33== at 0x499CE91: UnknownInlinedFun (pycore_gc.h:247)
==33== by 0x499CE91: PyList_New (listobject.c:270)
==33== by 0x4AF267B: _PyType_GetSubclasses (typeobject.c:672)
==33== by 0x49B1CDC: _PyObject_VectorcallTstate.lto_priv.0 (pycore_call.h:169)
==33== by 0x4AC3789: PyObject_CallMethod (call.c:645)
==33== by 0x4AF235E: UnknownInlinedFun (_abc.c:804)
==33== by 0x4AF235E: _abc__abc_subclasscheck.lto_priv.0 (_abc.c.h:137)
==33== by 0x49CF80A: _PyEval_EvalFrameDefault (generated_cases.c.h:2263)
==33== by 0x49CAB84: UnknownInlinedFun (pycore_ceval.h:119)
==33== by 0x49CAB84: _PyEval_Vector (ceval.c:1961)
==33== by 0x4A44D5E: UnknownInlinedFun (call.c:413)
==33== by 0x4A44D5E: UnknownInlinedFun (pycore_call.h:169)
==33== by 0x4A44D5E: method_vectorcall.lto_priv.0 (classobject.c:64)
==33== by 0x4A0550E: UnknownInlinedFun (pycore_call.h:169)
==33== by 0x4A0550E: PyObject_CallOneArg (call.c:395)
==33== by 0x4A27D7C: object_issubclass.lto_priv.0 (abstract.c:2766)
==33== by 0x4AF23E1: UnknownInlinedFun (_abc.c:817)
==33== by 0x4AF23E1: _abc__abc_subclasscheck.lto_priv.0 (_abc.c.h:137)
==33== by 0x49CF80A: _PyEval_EvalFrameDefault (generated_cases.c.h:2263)
==33== Address 0x2e5ce62f is 1 bytes before a block of size 56 alloc'd
==33== at 0x4843B26: malloc (vg_replace_malloc.c:446)
==33== by 0x49A4E1D: UnknownInlinedFun (obmalloc.c:63)
==33== by 0x49A4E1D: UnknownInlinedFun (obmalloc.c:966)
==33== by 0x49A4E1D: UnknownInlinedFun (obmalloc.c:2234)
==33== by 0x49A4E1D: UnknownInlinedFun (obmalloc.c:1394)
==33== by 0x49A4E1D: UnknownInlinedFun (pycore_object_alloc.h:46)
==33== by 0x49A4E1D: _PyType_AllocNoTrack (typeobject.c:2347)
==33== by 0x4A3C2F6: UnknownInlinedFun (typeobject.c:2378)
==33== by 0x4A3C2F6: list_vectorcall.lto_priv.0 (listobject.c:3515)
==33== by 0x49D0E94: _PyEval_EvalFrameDefault (generated_cases.c.h:2150)
==33== by 0x49CAB84: UnknownInlinedFun (pycore_ceval.h:119)
==33== by 0x49CAB84: _PyEval_Vector (ceval.c:1961)
==33== by 0x4AB5F9F: UnknownInlinedFun (call.c:413)
==33== by 0x4AB5F9F: _PyObject_VectorcallDictTstate (call.c:146)
==33== by 0x4B10E75: UnknownInlinedFun (call.c:504)
==33== by 0x4B10E75: UnknownInlinedFun (typeobject.c:2919)
==33== by 0x4B10E75: slot_tp_call.lto_priv.0 (typeobject.c:10181)
==33== by 0x4AC9D39: _PyObject_Call (call.c:361)
==33== by 0x49D3F24: UnknownInlinedFun (call.c:373)
==33== by 0x49D3F24: UnknownInlinedFun (call.c:381)
==33== by 0x49D3F24: _PyEval_EvalFrameDefault (generated_cases.c.h:2654)
==33== by 0x49CAB84: UnknownInlinedFun (pycore_ceval.h:119)
==33== by 0x49CAB84: _PyEval_Vector (ceval.c:1961)
==33== by 0x4AB5F9F: UnknownInlinedFun (call.c:413)
==33== by 0x4AB5F9F: _PyObject_VectorcallDictTstate (call.c:146)
==33== by 0x4B10E75: UnknownInlinedFun (call.c:504)
==33== by 0x4B10E75: UnknownInlinedFun (typeobject.c:2919)
==33== by 0x4B10E75: slot_tp_call.lto_priv.0 (typeobject.c:10181)
==33==
==33== Invalid read of size 1
==33== at 0x49AF3B0: PyList_Append (listobject.c:534)
==33== by 0x4AF2712: _PyType_GetSubclasses (typeobject.c:693)
==33== by 0x49B1CDC: _PyObject_VectorcallTstate.lto_priv.0 (pycore_call.h:169)
==33== by 0x4AC3789: PyObject_CallMethod (call.c:645)
==33== by 0x4AF235E: UnknownInlinedFun (_abc.c:804)
==33== by 0x4AF235E: _abc__abc_subclasscheck.lto_priv.0 (_abc.c.h:137)
==33== by 0x49CF80A: _PyEval_EvalFrameDefault (generated_cases.c.h:2263)
==33== by 0x49CAB84: UnknownInlinedFun (pycore_ceval.h:119)
==33== by 0x49CAB84: _PyEval_Vector (ceval.c:1961)
==33== by 0x4A44D5E: UnknownInlinedFun (call.c:413)
==33== by 0x4A44D5E: UnknownInlinedFun (pycore_call.h:169)
==33== by 0x4A44D5E: method_vectorcall.lto_priv.0 (classobject.c:64)
==33== by 0x4A0550E: UnknownInlinedFun (pycore_call.h:169)
==33== by 0x4A0550E: PyObject_CallOneArg (call.c:395)
==33== by 0x4A27D7C: object_issubclass.lto_priv.0 (abstract.c:2766)
==33== by 0x4AF23E1: UnknownInlinedFun (_abc.c:817)
==33== by 0x4AF23E1: _abc__abc_subclasscheck.lto_priv.0 (_abc.c.h:137)
==33== by 0x49CF80A: _PyEval_EvalFrameDefault (generated_cases.c.h:2263)
==33== Address 0x4d8c8a0ab is not stack'd, malloc'd or (recently) free'd
==33==
I don't know if that is a Python bug, or Cython bug.
> I don't know if that is a Python bug, or Cython bug.
It's a memory corruption in __pyx_tp_dealloc_5crick_12space_saving_SpaceSaving() function: function generated by Cython. It's not a bug in Python.
I suppose that it's this code from crick/space_saving.pyx:
---
cdef class SpaceSaving:
...
def __dealloc__(self):
if self.summary != NULL:
if np.PyDataType_ISOBJECT(self.dtype):
spsv_object_free(<spsv_object_t *>self.summary)
else:
spsv_int64_free(<spsv_int64_t *>self.summary)
---
I suppose that it's a "use-after-free" bug. It's tedious to debug the bug, so it's hard to give more hints.
gdb traces:
---
Hardware watchpoint 6: *(void**)((PyThreadState *) 0xb2c6a8)->interp->object_state.freelists.floats.freelist
Old value = (void *) 0x0
New value = (void *) 0xffffffff
0x00007fedf648fa41 in __pyx_tp_dealloc_5crick_12space_saving_SpaceSaving ()
from /builddir/build/BUILD/python-crick-0.0.8-build/crick-0.0.8/crick/space_saving.cpython-314-x86_64-linux-gnu.so
---
I tried but failed to debug the Cython issue. What helped me is to replace these 4 lines in setup.py to get debug symbols:
---
if True: #"--debug" in sys.argv:
#sys.argv.remove("--debug")
compile_args["undef_macros"] = ["NDEBUG"]
compile_args["extra_compile_args"] = ["-O0", "-g"]
---
It's not trivial to install crick to run tests. I had to use the "hack" from the Fedora specfile:
---
$ cd crick
$ ln -s ../build/lib.linux-x86_64-cpython-314/crick/*so .
---
Otherwise, pytest doesn't find crick extensions such as crick.numpy_version.
Good spot; commenting out that whole `__dealloc__` does fix the crash, but then the ref count leak test fails (naturally).
I tried something like this, just in case `__dealloc__` was called twice, but that did not fix it:
diff --git a/crick/space_saving.pyx b/crick/space_saving.pyx
index 57d963a..83ef1fe 100644
--- a/crick/space_saving.pyx
+++ b/crick/space_saving.pyx
@@ -203,6 +203,7 @@ cdef class SpaceSaving:
spsv_object_free(<spsv_object_t *>self.summary)
else:
spsv_int64_free(<spsv_int64_t *>self.summary)
+ self.summary = NULL
def __repr__(self):
return ("SpaceSaving<capacity={0}, dtype={1}, "
I reproduced this in a virtualenv and reported it upstream as https://github.com/dask/crick/issues/65. Hello, Please note that this comment was generated automatically by https://pagure.io/releng/blob/main/f/scripts/ftbfs-fti/follow-policy.py If you feel that this output has mistakes, please open an issue at https://pagure.io/releng/ This package fails to install and maintainers are advised to take one of the following actions: - Fix this bug and close this bugzilla once the update makes it to the repository. (The same script that posted this comment will eventually close this bugzilla when the fixed package reaches the repository, so you don't have to worry about it.) or - Move this bug to ASSIGNED if you plan on fixing this, but simply haven't done so yet. or - Orphan the package if you no longer plan to maintain it. If you do not take one of these actions, the process at https://docs.fedoraproject.org/en-US/fesco/Fails_to_build_from_source_Fails_to_install/#_package_removal_for_long_standing_ftbfs_and_fti_bugs will continue. This package may be orphaned in 7+ weeks. This is the first reminder (step 3) from the policy. Don't hesitate to ask for help on https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/ if you are unsure how to fix this bug. It looks like a refcounting bug. This patch leads to a successful build. I'm not saying that it's the correct fix, mind you.
diff --git a/crick/space_saving.pyx b/crick/space_saving.pyx
index 57d963a..4bafbee 100644
--- a/crick/space_saving.pyx
+++ b/crick/space_saving.pyx
@@ -285,6 +285,7 @@ cdef class SpaceSaving:
count = np.asarray(count)
item = item.astype(self.dtype, casting='safe', copy=False)
+ Py_INCREF(<object>item)
count = count.astype(np.int64, casting='safe', copy=False)
if check_count and (count <= 0).any():
I submitted an upstream PR to address what I believe the issue to be (explanation in the PR): https://github.com/dask/crick/pull/69. Here is a PR for the Fedora package to add the patch, which leads to a successful Rawhide build: https://src.fedoraproject.org/rpms/python-crick/pull-request/3 Hello, Please note that this comment was generated automatically by https://pagure.io/releng/blob/main/f/scripts/ftbfs-fti/follow-policy.py If you feel that this output has mistakes, please open an issue at https://pagure.io/releng/ All subpackages of a package against which this bug was filled are now installable or removed from Fedora 43. Thanks for taking care of it! > I submitted an upstream PR to address what I believe the issue to be (explanation in the PR): https://github.com/dask/crick/pull/69.
Great!
|