Kodi crashes during database indexing

Bug #1975401 reported by Oded Arbel
28
This bug affects 6 people
Affects Status Importance Assigned to Milestone
Kodi
Unknown
Unknown
Python3
Fix Released
Unknown
kodi (Ubuntu)
Confirmed
Undecided
Unassigned

Bug Description

Kodi 19.4 in Jammy crashes after starting (within a few minutes) while finishing the database indexing.

The Kodi crash log report is attached below, but the relevant stack trace from that is the following:

----8<----
Core was generated by `/usr/lib/x86_64-linux-gnu/kodi/kodi.bin'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0 0x00007f64e23fbaa0 in _PyObject_GC_UNTRACK (op=0x7f63fb2f1900) at ../Include/internal/pycore_object.h:124
[Current thread is 1 (Thread 0x7f63fe701640 (LWP 16978))]

Thread 1 (Thread 0x7f63fe701640 (LWP 16978)):
#0 0x00007f64e23fbaa0 in _PyObject_GC_UNTRACK (op=0x7f63fb2f1900) at ../Include/internal/pycore_object.h:124
#1 func_dealloc (op=0x7f63fb2f1900) at ../Objects/funcobject.c:641
#2 0x00007f64e2412635 in _Py_DECREF (op=<optimized out>) at ../Include/object.h:500
#3 _Py_XDECREF (op=<optimized out>) at ../Include/object.h:567
#4 insertdict (mp=0x7f6401ddb2c0, key=key@entry=0x7f64024a3c80, hash=-2282383986726133295, value=value@entry=0x7f63fb4223b0) at ../Objects/dictobject.c:1145
#5 0x00007f64e2412a5e in PyDict_SetItem (op=<optimized out>, key=key@entry=0x7f64024a3c80, value=value@entry=0x7f63fb4223b0) at ../Objects/dictobject.c:1623
#6 0x00007f647ae59cab in pysqlite_microprotocols_add (cast=0x7f63fb4223b0, proto=<optimized out>, type=<optimized out>) at ./Modules/_sqlite/microprotocols.c:68
#7 pysqlite_register_adapter_impl (module=<optimized out>, caster=0x7f63fb4223b0, type=<optimized out>) at ./Modules/_sqlite/module.c:175
#8 pysqlite_register_adapter (module=<optimized out>, args=<optimized out>, nargs=<optimized out>) at ./Modules/_sqlite/clinic/module.c.h:114
#9 0x00007f64e2426653 in cfunction_vectorcall_FASTCALL (func=0x7f6401c28040, args=0x7f64026f72b8, nargsf=<optimized out>, kwnames=<optimized out>) at ../Objects/methodobject.c:430
#10 0x00007f64e236e62e in _PyObject_VectorcallTstate (kwnames=0x0, nargsf=<optimized out>, args=0x7f64026f72b8, callable=0x7f6401c28040, tstate=0x7f64ac032960) at ../Include/cpython/abstract.h:114
#11 PyObject_Vectorcall (kwnames=0x0, nargsf=<optimized out>, args=0x7f64026f72b8, callable=0x7f6401c28040) at ../Include/cpython/abstract.h:123
#12 call_function (kwnames=0x0, oparg=<optimized out>, pp_stack=<synthetic pointer>, trace_info=0x7f63fe6fb0e0, tstate=0x7f64ac032960) at ../Python/ceval.c:5867
#13 _PyEval_EvalFrameDefault (tstate=<optimized out>, f=<optimized out>, throwflag=<optimized out>) at ../Python/ceval.c:4213
#14 0x00007f64e24bc1ff in _PyEval_EvalFrame (throwflag=0, f=0x7f64026f7130, tstate=0x7f64ac032960) at ../Include/internal/pycore_ceval.h:46
#15 _PyEval_Vector (tstate=0x7f64ac032960, con=0x7f63fb422180, locals=<optimized out>, args=<optimized out>, argcount=0, kwnames=0x0) at ../Python/ceval.c:5065
#16 0x00007f64e236e62e in _PyObject_VectorcallTstate (kwnames=0x0, nargsf=<optimized out>, args=0x7f64ac2f94d8, callable=0x7f63fb422170, tstate=0x7f64ac032960) at ../Include/cpython/abstract.h:114
#17 PyObject_Vectorcall (kwnames=0x0, nargsf=<optimized out>, args=0x7f64ac2f94d8, callable=0x7f63fb422170) at ../Include/cpython/abstract.h:123
#18 call_function (kwnames=0x0, oparg=<optimized out>, pp_stack=<synthetic pointer>, trace_info=0x7f63fe6fb320, tstate=0x7f64ac032960) at ../Python/ceval.c:5867
#19 _PyEval_EvalFrameDefault (tstate=<optimized out>, f=<optimized out>, throwflag=<optimized out>) at ../Python/ceval.c:4213
#20 0x00007f64e24bc1ff in _PyEval_EvalFrame (throwflag=0, f=0x7f64ac2f9370, tstate=0x7f64ac032960) at ../Include/internal/pycore_ceval.h:46
#21 _PyEval_Vector (tstate=0x7f64ac032960, con=0x7f63fe6fb450, locals=<optimized out>, args=<optimized out>, argcount=0, kwnames=0x0) at ../Python/ceval.c:5065
#22 0x00007f64e24b71ae in PyEval_EvalCode (co=co@entry=0x7f63fb340ea0, globals=globals@entry=0x7f64022f2d40, locals=locals@entry=0x7f64022f2d40) at ../Python/ceval.c:1134
#23 0x00007f64e24b773d in builtin_exec_impl (module=<optimized out>, locals=0x7f64022f2d40, globals=0x7f64022f2d40, source=0x7f63fb340ea0) at ../Python/bltinmodule.c:1056
#24 builtin_exec (module=<optimized out>, args=<optimized out>, nargs=<optimized out>) at ../Python/clinic/bltinmodule.c.h:371
#25 0x00007f64e2426653 in cfunction_vectorcall_FASTCALL (func=0x7f6402e9c3b0, args=0x7f6402527fd8, nargsf=<optimized out>, kwnames=<optimized out>) at ../Objects/methodobject.c:430
#26 0x00007f64e236c766 in do_call_core (kwdict=0x7f64022f3740, callargs=0x7f6402527fc0, func=0x7f6402e9c3b0, trace_info=0x7f63fe6fb640, tstate=0x7f64ac032960) at ../Python/ceval.c:5919
#27 _PyEval_EvalFrameDefault (tstate=<optimized out>, f=<optimized out>, throwflag=<optimized out>) at ../Python/ceval.c:4277
#28 0x00007f64e24bc1ff in _PyEval_EvalFrame (throwflag=0, f=0x7f63ff1957e0, tstate=0x7f64ac032960) at ../Include/internal/pycore_ceval.h:46
#29 _PyEval_Vector (tstate=0x7f64ac032960, con=0x7f640b9a5d90, locals=<optimized out>, args=<optimized out>, argcount=3, kwnames=0x0) at ../Python/ceval.c:5065
#30 0x00007f64e23719b8 in _PyObject_VectorcallTstate (kwnames=0x0, nargsf=<optimized out>, args=0x7f63fde51188, callable=0x7f640b9a5d80, tstate=0x7f64ac032960) at ../Include/cpython/abstract.h:114
#31 PyObject_Vectorcall (kwnames=0x0, nargsf=<optimized out>, args=0x7f63fde51188, callable=0x7f640b9a5d80) at ../Include/cpython/abstract.h:123
#32 call_function (kwnames=0x0, oparg=<optimized out>, pp_stack=<synthetic pointer>, trace_info=0x7f63fe6fb880, tstate=0x7f64ac032960) at ../Python/ceval.c:5867
#33 _PyEval_EvalFrameDefault (tstate=<optimized out>, f=<optimized out>, throwflag=<optimized out>) at ../Python/ceval.c:4181
#34 0x00007f64e24bc1ff in _PyEval_EvalFrame (throwflag=0, f=0x7f63fde51000, tstate=0x7f64ac032960) at ../Include/internal/pycore_ceval.h:46
#35 _PyEval_Vector (tstate=0x7f64ac032960, con=0x7f6401d83920, locals=<optimized out>, args=<optimized out>, argcount=2, kwnames=0x0) at ../Python/ceval.c:5065
#36 0x00007f64e236feee in _PyObject_VectorcallTstate (kwnames=0x0, nargsf=<optimized out>, args=0x7f640bfc81c0, callable=0x7f6401d83910, tstate=0x7f64ac032960) at ../Include/cpython/abstract.h:114
#37 PyObject_Vectorcall (kwnames=0x0, nargsf=<optimized out>, args=0x7f640bfc81c0, callable=0x7f6401d83910) at ../Include/cpython/abstract.h:123
#38 call_function (kwnames=0x0, oparg=<optimized out>, pp_stack=<synthetic pointer>, trace_info=0x7f63fe6fbac0, tstate=0x7f64ac032960) at ../Python/ceval.c:5867
#39 _PyEval_EvalFrameDefault (tstate=<optimized out>, f=<optimized out>, throwflag=<optimized out>) at ../Python/ceval.c:4198
#40 0x00007f64e24bc1ff in _PyEval_EvalFrame (throwflag=0, f=0x7f640bfc8040, tstate=0x7f64ac032960) at ../Include/internal/pycore_ceval.h:46
#41 _PyEval_Vector (tstate=0x7f64ac032960, con=0x7f6402ca4a70, locals=<optimized out>, args=<optimized out>, argcount=1, kwnames=0x0) at ../Python/ceval.c:5065
#42 0x00007f64e236e62e in _PyObject_VectorcallTstate (kwnames=0x0, nargsf=<optimized out>, args=0x7f640083fbf0, callable=0x7f6402ca4a60, tstate=0x7f64ac032960) at ../Include/cpython/abstract.h:114
#43 PyObject_Vectorcall (kwnames=0x0, nargsf=<optimized out>, args=0x7f640083fbf0, callable=0x7f6402ca4a60) at ../Include/cpython/abstract.h:123
#44 call_function (kwnames=0x0, oparg=<optimized out>, pp_stack=<synthetic pointer>, trace_info=0x7f63fe6fbd00, tstate=0x7f64ac032960) at ../Python/ceval.c:5867
#45 _PyEval_EvalFrameDefault (tstate=<optimized out>, f=<optimized out>, throwflag=<optimized out>) at ../Python/ceval.c:4213
#46 0x00007f64e24bc1ff in _PyEval_EvalFrame (throwflag=0, f=0x7f640083fa40, tstate=0x7f64ac032960) at ../Include/internal/pycore_ceval.h:46
#47 _PyEval_Vector (tstate=0x7f64ac032960, con=0x7f6400770b00, locals=<optimized out>, args=<optimized out>, argcount=2, kwnames=0x0) at ../Python/ceval.c:5065
#48 0x00007f64e236e62e in _PyObject_VectorcallTstate (kwnames=0x0, nargsf=<optimized out>, args=0x7f63fb66c990, callable=0x7f6400770af0, tstate=0x7f64ac032960) at ../Include/cpython/abstract.h:114
#49 PyObject_Vectorcall (kwnames=0x0, nargsf=<optimized out>, args=0x7f63fb66c990, callable=0x7f6400770af0) at ../Include/cpython/abstract.h:123
#50 call_function (kwnames=0x0, oparg=<optimized out>, pp_stack=<synthetic pointer>, trace_info=0x7f63fe6fbf40, tstate=0x7f64ac032960) at ../Python/ceval.c:5867
#51 _PyEval_EvalFrameDefault (tstate=<optimized out>, f=<optimized out>, throwflag=<optimized out>) at ../Python/ceval.c:4213
#52 0x00007f64e24bc1ff in _PyEval_EvalFrame (throwflag=0, f=0x7f63fb66c800, tstate=0x7f64ac032960) at ../Include/internal/pycore_ceval.h:46
#53 _PyEval_Vector (tstate=0x7f64ac032960, con=0x7f6400770b90, locals=<optimized out>, args=<optimized out>, argcount=2, kwnames=0x0) at ../Python/ceval.c:5065
#54 0x00007f64e23dc054 in _PyObject_VectorcallTstate (kwnames=0x0, nargsf=2, args=0x7f63fe6fc0a0, callable=0x7f6400770b80, tstate=0x7f64ac032960) at ../Include/cpython/abstract.h:114
#55 object_vacall (tstate=tstate@entry=0x7f64ac032960, base=base@entry=0x0, callable=0x7f6400770b80, vargs=vargs@entry=0x7f63fe6fc130) at ../Objects/call.c:734
#56 0x00007f64e23dc3bf in _PyObject_CallMethodIdObjArgs (obj=0x0, name=<optimized out>) at ../Objects/call.c:825
#57 0x00007f64e24e4d64 in import_find_and_load (abs_name=0x7f6402243db0, tstate=0x7f64ac032960) at ../Python/import.c:1521
#58 PyImport_ImportModuleLevelObject (name=0x7f6402243db0, globals=<optimized out>, locals=<optimized out>, fromlist=0x7f63fef98490, level=0) at ../Python/import.c:1622
#59 0x00007f64e2370705 in import_name (level=0x7f640116e5d0, fromlist=0x7f63fef98490, name=0x7f6402243db0, f=0x7f647a364c40, tstate=0x7f64ac032960) at ../Python/ceval.c:5992
#60 _PyEval_EvalFrameDefault (tstate=<optimized out>, f=<optimized out>, throwflag=<optimized out>) at ../Python/ceval.c:3695
#61 0x00007f64e24bc1ff in _PyEval_EvalFrame (throwflag=0, f=0x7f647a364c40, tstate=0x7f64ac032960) at ../Include/internal/pycore_ceval.h:46
#62 _PyEval_Vector (tstate=0x7f64ac032960, con=0x7f63fe6fc4f0, locals=<optimized out>, args=<optimized out>, argcount=0, kwnames=0x0) at ../Python/ceval.c:5065
#63 0x00007f64e24b71ae in PyEval_EvalCode (co=co@entry=0x7f63fb3679f0, globals=globals@entry=0x7f64022f0dc0, locals=locals@entry=0x7f64022f0dc0) at ../Python/ceval.c:1134
#64 0x00007f64e24b773d in builtin_exec_impl (module=<optimized out>, locals=0x7f64022f0dc0, globals=0x7f64022f0dc0, source=0x7f63fb3679f0) at ../Python/bltinmodule.c:1056
#65 builtin_exec (module=<optimized out>, args=<optimized out>, nargs=<optimized out>) at ../Python/clinic/bltinmodule.c.h:371
#66 0x00007f64e2426653 in cfunction_vectorcall_FASTCALL (func=0x7f6402e9c3b0, args=0x7f63fdae9d98, nargsf=<optimized out>, kwnames=<optimized out>) at ../Objects/methodobject.c:430
#67 0x00007f64e236c766 in do_call_core (kwdict=0x7f64022f16c0, callargs=0x7f63fdae9d80, func=0x7f6402e9c3b0, trace_info=0x7f63fe6fc6e0, tstate=0x7f64ac032960) at ../Python/ceval.c:5919
#68 _PyEval_EvalFrameDefault (tstate=<optimized out>, f=<optimized out>, throwflag=<optimized out>) at ../Python/ceval.c:4277
#69 0x00007f64e24bc1ff in _PyEval_EvalFrame (throwflag=0, f=0x7f640148e840, tstate=0x7f64ac032960) at ../Include/internal/pycore_ceval.h:46
#70 _PyEval_Vector (tstate=0x7f64ac032960, con=0x7f640b9a5d90, locals=<optimized out>, args=<optimized out>, argcount=3, kwnames=0x0) at ../Python/ceval.c:5065
#71 0x00007f64e23719b8 in _PyObject_VectorcallTstate (kwnames=0x0, nargsf=<optimized out>, args=0x7f63ff2bebc8, callable=0x7f640b9a5d80, tstate=0x7f64ac032960) at ../Include/cpython/abstract.h:114
#72 PyObject_Vectorcall (kwnames=0x0, nargsf=<optimized out>, args=0x7f63ff2bebc8, callable=0x7f640b9a5d80) at ../Include/cpython/abstract.h:123
#73 call_function (kwnames=0x0, oparg=<optimized out>, pp_stack=<synthetic pointer>, trace_info=0x7f63fe6fc920, tstate=0x7f64ac032960) at ../Python/ceval.c:5867
#74 _PyEval_EvalFrameDefault (tstate=<optimized out>, f=<optimized out>, throwflag=<optimized out>) at ../Python/ceval.c:4181
#75 0x00007f64e24bc1ff in _PyEval_EvalFrame (throwflag=0, f=0x7f63ff2bea40, tstate=0x7f64ac032960) at ../Include/internal/pycore_ceval.h:46
#76 _PyEval_Vector (tstate=0x7f64ac032960, con=0x7f6401d83920, locals=<optimized out>, args=<optimized out>, argcount=2, kwnames=0x0) at ../Python/ceval.c:5065
#77 0x00007f64e236feee in _PyObject_VectorcallTstate (kwnames=0x0, nargsf=<optimized out>, args=0x7f645f7a5900, callable=0x7f6401d83910, tstate=0x7f64ac032960) at ../Include/cpython/abstract.h:114
#78 PyObject_Vectorcall (kwnames=0x0, nargsf=<optimized out>, args=0x7f645f7a5900, callable=0x7f6401d83910) at ../Include/cpython/abstract.h:123
#79 call_function (kwnames=0x0, oparg=<optimized out>, pp_stack=<synthetic pointer>, trace_info=0x7f63fe6fcb60, tstate=0x7f64ac032960) at ../Python/ceval.c:5867
#80 _PyEval_EvalFrameDefault (tstate=<optimized out>, f=<optimized out>, throwflag=<optimized out>) at ../Python/ceval.c:4198
#81 0x00007f64e24bc1ff in _PyEval_EvalFrame (throwflag=0, f=0x7f645f7a5780, tstate=0x7f64ac032960) at ../Include/internal/pycore_ceval.h:46
#82 _PyEval_Vector (tstate=0x7f64ac032960, con=0x7f6402ca4a70, locals=<optimized out>, args=<optimized out>, argcount=1, kwnames=0x0) at ../Python/ceval.c:5065
#83 0x00007f64e236e62e in _PyObject_VectorcallTstate (kwnames=0x0, nargsf=<optimized out>, args=0x7f640141ddf0, callable=0x7f6402ca4a60, tstate=0x7f64ac032960) at ../Include/cpython/abstract.h:114
#84 PyObject_Vectorcall (kwnames=0x0, nargsf=<optimized out>, args=0x7f640141ddf0, callable=0x7f6402ca4a60) at ../Include/cpython/abstract.h:123
#85 call_function (kwnames=0x0, oparg=<optimized out>, pp_stack=<synthetic pointer>, trace_info=0x7f63fe6fcda0, tstate=0x7f64ac032960) at ../Python/ceval.c:5867
#86 _PyEval_EvalFrameDefault (tstate=<optimized out>, f=<optimized out>, throwflag=<optimized out>) at ../Python/ceval.c:4213
#87 0x00007f64e24bc1ff in _PyEval_EvalFrame (throwflag=0, f=0x7f640141dc40, tstate=0x7f64ac032960) at ../Include/internal/pycore_ceval.h:46
#88 _PyEval_Vector (tstate=0x7f64ac032960, con=0x7f6400770b00, locals=<optimized out>, args=<optimized out>, argcount=2, kwnames=0x0) at ../Python/ceval.c:5065
#89 0x00007f64e236e62e in _PyObject_VectorcallTstate (kwnames=0x0, nargsf=<optimized out>, args=0x7f63ff1b25d0, callable=0x7f6400770af0, tstate=0x7f64ac032960) at ../Include/cpython/abstract.h:114
#90 PyObject_Vectorcall (kwnames=0x0, nargsf=<optimized out>, args=0x7f63ff1b25d0, callable=0x7f6400770af0) at ../Include/cpython/abstract.h:123
#91 call_function (kwnames=0x0, oparg=<optimized out>, pp_stack=<synthetic pointer>, trace_info=0x7f63fe6fcfe0, tstate=0x7f64ac032960) at ../Python/ceval.c:5867
#92 _PyEval_EvalFrameDefault (tstate=<optimized out>, f=<optimized out>, throwflag=<optimized out>) at ../Python/ceval.c:4213
#93 0x00007f64e24bc1ff in _PyEval_EvalFrame (throwflag=0, f=0x7f63ff1b2440, tstate=0x7f64ac032960) at ../Include/internal/pycore_ceval.h:46
#94 _PyEval_Vector (tstate=0x7f64ac032960, con=0x7f6400770b90, locals=<optimized out>, args=<optimized out>, argcount=2, kwnames=0x0) at ../Python/ceval.c:5065
#95 0x00007f64e23dc054 in _PyObject_VectorcallTstate (kwnames=0x0, nargsf=2, args=0x7f63fe6fd140, callable=0x7f6400770b80, tstate=0x7f64ac032960) at ../Include/cpython/abstract.h:114
#96 object_vacall (tstate=tstate@entry=0x7f64ac032960, base=base@entry=0x0, callable=0x7f6400770b80, vargs=vargs@entry=0x7f63fe6fd1d0) at ../Objects/call.c:734
#97 0x00007f64e23dc3bf in _PyObject_CallMethodIdObjArgs (obj=0x0, name=<optimized out>) at ../Objects/call.c:825
#98 0x00007f64e24e4d64 in import_find_and_load (abs_name=0x7f64027f0130, tstate=0x7f64ac032960) at ../Python/import.c:1521
#99 PyImport_ImportModuleLevelObject (name=0x7f64027f0130, globals=<optimized out>, locals=<optimized out>, fromlist=0x7f64e285c5a0 <_Py_NoneStruct>, level=0) at ../Python/import.c:1622
#100 0x00007f64e2370705 in import_name (level=0x7f640116e5d0, fromlist=0x7f64e285c5a0 <_Py_NoneStruct>, name=0x7f64027f0130, f=0x7f647a364a40, tstate=0x7f64ac032960) at ../Python/ceval.c:5992
#101 _PyEval_EvalFrameDefault (tstate=<optimized out>, f=<optimized out>, throwflag=<optimized out>) at ../Python/ceval.c:3695
#102 0x00007f64e24bc1ff in _PyEval_EvalFrame (throwflag=0, f=0x7f647a364a40, tstate=0x7f64ac032960) at ../Include/internal/pycore_ceval.h:46
#103 _PyEval_Vector (tstate=0x7f64ac032960, con=0x7f63fe6fd590, locals=<optimized out>, args=<optimized out>, argcount=0, kwnames=0x0) at ../Python/ceval.c:5065
#104 0x00007f64e24b71ae in PyEval_EvalCode (co=co@entry=0x7f63fb365580, globals=globals@entry=0x7f63fd95fac0, locals=locals@entry=0x7f63fd95fac0) at ../Python/ceval.c:1134
#105 0x00007f64e24b773d in builtin_exec_impl (module=<optimized out>, locals=0x7f63fd95fac0, globals=0x7f63fd95fac0, source=0x7f63fb365580) at ../Python/bltinmodule.c:1056
#106 builtin_exec (module=<optimized out>, args=<optimized out>, nargs=<optimized out>) at ../Python/clinic/bltinmodule.c.h:371
#107 0x00007f64e2426653 in cfunction_vectorcall_FASTCALL (func=0x7f6402e9c3b0, args=0x7f63fdbc7d58, nargsf=<optimized out>, kwnames=<optimized out>) at ../Objects/methodobject.c:430
#108 0x00007f64e236c766 in do_call_core (kwdict=0x7f6401d06100, callargs=0x7f63fdbc7d40, func=0x7f6402e9c3b0, trace_info=0x7f63fe6fd780, tstate=0x7f64ac032960) at ../Python/ceval.c:5919
#109 _PyEval_EvalFrameDefault (tstate=<optimized out>, f=<optimized out>, throwflag=<optimized out>) at ../Python/ceval.c:4277
#110 0x00007f64e24bc1ff in _PyEval_EvalFrame (throwflag=0, f=0x7f64026f77f0, tstate=0x7f64ac032960) at ../Include/internal/pycore_ceval.h:46
#111 _PyEval_Vector (tstate=0x7f64ac032960, con=0x7f640b9a5d90, locals=<optimized out>, args=<optimized out>, argcount=3, kwnames=0x0) at ../Python/ceval.c:5065
#112 0x00007f64e23719b8 in _PyObject_VectorcallTstate (kwnames=0x0, nargsf=<optimized out>, args=0x7f63fb6cabc8, callable=0x7f640b9a5d80, tstate=0x7f64ac032960) at ../Include/cpython/abstract.h:114
#113 PyObject_Vectorcall (kwnames=0x0, nargsf=<optimized out>, args=0x7f63fb6cabc8, callable=0x7f640b9a5d80) at ../Include/cpython/abstract.h:123
#114 call_function (kwnames=0x0, oparg=<optimized out>, pp_stack=<synthetic pointer>, trace_info=0x7f63fe6fd9c0, tstate=0x7f64ac032960) at ../Python/ceval.c:5867
#115 _PyEval_EvalFrameDefault (tstate=<optimized out>, f=<optimized out>, throwflag=<optimized out>) at ../Python/ceval.c:4181
#116 0x00007f64e24bc1ff in _PyEval_EvalFrame (throwflag=0, f=0x7f63fb6caa40, tstate=0x7f64ac032960) at ../Include/internal/pycore_ceval.h:46
#117 _PyEval_Vector (tstate=0x7f64ac032960, con=0x7f6401d83920, locals=<optimized out>, args=<optimized out>, argcount=2, kwnames=0x0) at ../Python/ceval.c:5065
#118 0x00007f64e236feee in _PyObject_VectorcallTstate (kwnames=0x0, nargsf=<optimized out>, args=0x7f64015aee50, callable=0x7f6401d83910, tstate=0x7f64ac032960) at ../Include/cpython/abstract.h:114
#119 PyObject_Vectorcall (kwnames=0x0, nargsf=<optimized out>, args=0x7f64015aee50, callable=0x7f6401d83910) at ../Include/cpython/abstract.h:123
#120 call_function (kwnames=0x0, oparg=<optimized out>, pp_stack=<synthetic pointer>, trace_info=0x7f63fe6fdc00, tstate=0x7f64ac032960) at ../Python/ceval.c:5867
#121 _PyEval_EvalFrameDefault (tstate=<optimized out>, f=<optimized out>, throwflag=<optimized out>) at ../Python/ceval.c:4198
#122 0x00007f64e24bc1ff in _PyEval_EvalFrame (throwflag=0, f=0x7f64015aecd0, tstate=0x7f64ac032960) at ../Include/internal/pycore_ceval.h:46
#123 _PyEval_Vector (tstate=0x7f64ac032960, con=0x7f6402ca4a70, locals=<optimized out>, args=<optimized out>, argcount=1, kwnames=0x0) at ../Python/ceval.c:5065
#124 0x00007f64e236e62e in _PyObject_VectorcallTstate (kwnames=0x0, nargsf=<optimized out>, args=0x7f640083dbf0, callable=0x7f6402ca4a60, tstate=0x7f64ac032960) at ../Include/cpython/abstract.h:114
#125 PyObject_Vectorcall (kwnames=0x0, nargsf=<optimized out>, args=0x7f640083dbf0, callable=0x7f6402ca4a60) at ../Include/cpython/abstract.h:123
#126 call_function (kwnames=0x0, oparg=<optimized out>, pp_stack=<synthetic pointer>, trace_info=0x7f63fe6fde40, tstate=0x7f64ac032960) at ../Python/ceval.c:5867
#127 _PyEval_EvalFrameDefault (tstate=<optimized out>, f=<optimized out>, throwflag=<optimized out>) at ../Python/ceval.c:4213
#128 0x00007f64e24bc1ff in _PyEval_EvalFrame (throwflag=0, f=0x7f640083da40, tstate=0x7f64ac032960) at ../Include/internal/pycore_ceval.h:46
#129 _PyEval_Vector (tstate=0x7f64ac032960, con=0x7f6400770b00, locals=<optimized out>, args=<optimized out>, argcount=2, kwnames=0x0) at ../Python/ceval.c:5065
#130 0x00007f64e236e62e in _PyObject_VectorcallTstate (kwnames=0x0, nargsf=<optimized out>, args=0x7f6400ae5670, callable=0x7f6400770af0, tstate=0x7f64ac032960) at ../Include/cpython/abstract.h:114
#131 PyObject_Vectorcall (kwnames=0x0, nargsf=<optimized out>, args=0x7f6400ae5670, callable=0x7f6400770af0) at ../Include/cpython/abstract.h:123
#132 call_function (kwnames=0x0, oparg=<optimized out>, pp_stack=<synthetic pointer>, trace_info=0x7f63fe6fe080, tstate=0x7f64ac032960) at ../Python/ceval.c:5867
#133 _PyEval_EvalFrameDefault (tstate=<optimized out>, f=<optimized out>, throwflag=<optimized out>) at ../Python/ceval.c:4213
#134 0x00007f64e24bc1ff in _PyEval_EvalFrame (throwflag=0, f=0x7f6400ae54e0, tstate=0x7f64ac032960) at ../Include/internal/pycore_ceval.h:46
#135 _PyEval_Vector (tstate=0x7f64ac032960, con=0x7f6400770b90, locals=<optimized out>, args=<optimized out>, argcount=2, kwnames=0x0) at ../Python/ceval.c:5065
#136 0x00007f64e23dc054 in _PyObject_VectorcallTstate (kwnames=0x0, nargsf=2, args=0x7f63fe6fe1e0, callable=0x7f6400770b80, tstate=0x7f64ac032960) at ../Include/cpython/abstract.h:114
#137 object_vacall (tstate=tstate@entry=0x7f64ac032960, base=base@entry=0x0, callable=0x7f6400770b80, vargs=vargs@entry=0x7f63fe6fe270) at ../Objects/call.c:734
#138 0x00007f64e23dc3bf in _PyObject_CallMethodIdObjArgs (obj=0x0, name=<optimized out>) at ../Objects/call.c:825
#139 0x00007f64e24e4d64 in import_find_and_load (abs_name=0x7f6402f7bcf0, tstate=0x7f64ac032960) at ../Python/import.c:1521
#140 PyImport_ImportModuleLevelObject (name=0x7f6402f7bcf0, globals=<optimized out>, locals=<optimized out>, fromlist=0x7f64e285c5a0 <_Py_NoneStruct>, level=0) at ../Python/import.c:1622
#141 0x00007f64e2370705 in import_name (level=0x7f640116e5d0, fromlist=0x7f64e285c5a0 <_Py_NoneStruct>, name=0x7f6402f7bcf0, f=0x7f63ff197b50, tstate=0x7f64ac032960) at ../Python/ceval.c:5992
#142 _PyEval_EvalFrameDefault (tstate=<optimized out>, f=<optimized out>, throwflag=<optimized out>) at ../Python/ceval.c:3695
#143 0x00007f64e24bc1ff in _PyEval_EvalFrame (throwflag=0, f=0x7f63ff197b50, tstate=0x7f64ac032960) at ../Include/internal/pycore_ceval.h:46
#144 _PyEval_Vector (tstate=0x7f64ac032960, con=0x7f63fe6fe630, locals=<optimized out>, args=<optimized out>, argcount=0, kwnames=0x0) at ../Python/ceval.c:5065
#145 0x00007f64e24b71ae in PyEval_EvalCode (co=co@entry=0x7f6401cd9d10, globals=globals@entry=0x7f63ff2a0940, locals=locals@entry=0x7f63ff2a0940) at ../Python/ceval.c:1134
#146 0x00007f64e24b773d in builtin_exec_impl (module=<optimized out>, locals=0x7f63ff2a0940, globals=0x7f63ff2a0940, source=0x7f6401cd9d10) at ../Python/bltinmodule.c:1056
#147 builtin_exec (module=<optimized out>, args=<optimized out>, nargs=<optimized out>) at ../Python/clinic/bltinmodule.c.h:371
#148 0x00007f64e2426653 in cfunction_vectorcall_FASTCALL (func=0x7f6402e9c3b0, args=0x7f64003d2ed8, nargsf=<optimized out>, kwnames=<optimized out>) at ../Objects/methodobject.c:430
#149 0x00007f64e236c766 in do_call_core (kwdict=0x7f63fb36ffc0, callargs=0x7f64003d2ec0, func=0x7f6402e9c3b0, trace_info=0x7f63fe6fe820, tstate=0x7f64ac032960) at ../Python/ceval.c:5919
#150 _PyEval_EvalFrameDefault (tstate=<optimized out>, f=<optimized out>, throwflag=<optimized out>) at ../Python/ceval.c:4277
#151 0x00007f64e24bc1ff in _PyEval_EvalFrame (throwflag=0, f=0x7f640b9328c0, tstate=0x7f64ac032960) at ../Include/internal/pycore_ceval.h:46
#152 _PyEval_Vector (tstate=0x7f64ac032960, con=0x7f640b9a5d90, locals=<optimized out>, args=<optimized out>, argcount=3, kwnames=0x0) at ../Python/ceval.c:5065
#153 0x00007f64e23719b8 in _PyObject_VectorcallTstate (kwnames=0x0, nargsf=<optimized out>, args=0x7f63fde508c8, callable=0x7f640b9a5d80, tstate=0x7f64ac032960) at ../Include/cpython/abstract.h:114
#154 PyObject_Vectorcall (kwnames=0x0, nargsf=<optimized out>, args=0x7f63fde508c8, callable=0x7f640b9a5d80) at ../Include/cpython/abstract.h:123
#155 call_function (kwnames=0x0, oparg=<optimized out>, pp_stack=<synthetic pointer>, trace_info=0x7f63fe6fea60, tstate=0x7f64ac032960) at ../Python/ceval.c:5867
#156 _PyEval_EvalFrameDefault (tstate=<optimized out>, f=<optimized out>, throwflag=<optimized out>) at ../Python/ceval.c:4181
#157 0x00007f64e24bc1ff in _PyEval_EvalFrame (throwflag=0, f=0x7f63fde50740, tstate=0x7f64ac032960) at ../Include/internal/pycore_ceval.h:46
#158 _PyEval_Vector (tstate=0x7f64ac032960, con=0x7f6401d83920, locals=<optimized out>, args=<optimized out>, argcount=2, kwnames=0x0) at ../Python/ceval.c:5065
#159 0x00007f64e236feee in _PyObject_VectorcallTstate (kwnames=0x0, nargsf=<optimized out>, args=0x7f6400f90f50, callable=0x7f6401d83910, tstate=0x7f64ac032960) at ../Include/cpython/abstract.h:114
#160 PyObject_Vectorcall (kwnames=0x0, nargsf=<optimized out>, args=0x7f6400f90f50, callable=0x7f6401d83910) at ../Include/cpython/abstract.h:123
#161 call_function (kwnames=0x0, oparg=<optimized out>, pp_stack=<synthetic pointer>, trace_info=0x7f63fe6feca0, tstate=0x7f64ac032960) at ../Python/ceval.c:5867
#162 _PyEval_EvalFrameDefault (tstate=<optimized out>, f=<optimized out>, throwflag=<optimized out>) at ../Python/ceval.c:4198
#163 0x00007f64e24bc1ff in _PyEval_EvalFrame (throwflag=0, f=0x7f6400f90dd0, tstate=0x7f64ac032960) at ../Include/internal/pycore_ceval.h:46
#164 _PyEval_Vector (tstate=0x7f64ac032960, con=0x7f6402ca4a70, locals=<optimized out>, args=<optimized out>, argcount=1, kwnames=0x0) at ../Python/ceval.c:5065
#165 0x00007f64e236e62e in _PyObject_VectorcallTstate (kwnames=0x0, nargsf=<optimized out>, args=0x7f647a364ff0, callable=0x7f6402ca4a60, tstate=0x7f64ac032960) at ../Include/cpython/abstract.h:114
#166 PyObject_Vectorcall (kwnames=0x0, nargsf=<optimized out>, args=0x7f647a364ff0, callable=0x7f6402ca4a60) at ../Include/cpython/abstract.h:123
#167 call_function (kwnames=0x0, oparg=<optimized out>, pp_stack=<synthetic pointer>, trace_info=0x7f63fe6feee0, tstate=0x7f64ac032960) at ../Python/ceval.c:5867
#168 _PyEval_EvalFrameDefault (tstate=<optimized out>, f=<optimized out>, throwflag=<optimized out>) at ../Python/ceval.c:4213
#169 0x00007f64e24bc1ff in _PyEval_EvalFrame (throwflag=0, f=0x7f647a364e40, tstate=0x7f64ac032960) at ../Include/internal/pycore_ceval.h:46
#170 _PyEval_Vector (tstate=0x7f64ac032960, con=0x7f6400770b00, locals=<optimized out>, args=<optimized out>, argcount=2, kwnames=0x0) at ../Python/ceval.c:5065
#171 0x00007f64e236e62e in _PyObject_VectorcallTstate (kwnames=0x0, nargsf=<optimized out>, args=0x7f6401c78770, callable=0x7f6400770af0, tstate=0x7f64ac032960) at ../Include/cpython/abstract.h:114
#172 PyObject_Vectorcall (kwnames=0x0, nargsf=<optimized out>, args=0x7f6401c78770, callable=0x7f6400770af0) at ../Include/cpython/abstract.h:123
#173 call_function (kwnames=0x0, oparg=<optimized out>, pp_stack=<synthetic pointer>, trace_info=0x7f63fe6ff120, tstate=0x7f64ac032960) at ../Python/ceval.c:5867
#174 _PyEval_EvalFrameDefault (tstate=<optimized out>, f=<optimized out>, throwflag=<optimized out>) at ../Python/ceval.c:4213
#175 0x00007f64e24bc1ff in _PyEval_EvalFrame (throwflag=0, f=0x7f6401c785e0, tstate=0x7f64ac032960) at ../Include/internal/pycore_ceval.h:46
#176 _PyEval_Vector (tstate=0x7f64ac032960, con=0x7f6400770b90, locals=<optimized out>, args=<optimized out>, argcount=2, kwnames=0x0) at ../Python/ceval.c:5065
#177 0x00007f64e23dc054 in _PyObject_VectorcallTstate (kwnames=0x0, nargsf=2, args=0x7f63fe6ff280, callable=0x7f6400770b80, tstate=0x7f64ac032960) at ../Include/cpython/abstract.h:114
#178 object_vacall (tstate=tstate@entry=0x7f64ac032960, base=base@entry=0x0, callable=0x7f6400770b80, vargs=vargs@entry=0x7f63fe6ff310) at ../Objects/call.c:734
#179 0x00007f64e23dc3bf in _PyObject_CallMethodIdObjArgs (obj=0x0, name=<optimized out>) at ../Objects/call.c:825
#180 0x00007f64e24e4d64 in import_find_and_load (abs_name=0x7f6403513370, tstate=0x7f64ac032960) at ../Python/import.c:1521
#181 PyImport_ImportModuleLevelObject (name=0x7f6403513370, globals=<optimized out>, locals=<optimized out>, fromlist=0x7f6402345360, level=0) at ../Python/import.c:1622
#182 0x00007f64e2370705 in import_name (level=0x7f640116e5d0, fromlist=0x7f6402345360, name=0x7f6403513370, f=0x7f640176e200, tstate=0x7f64ac032960) at ../Python/ceval.c:5992
#183 _PyEval_EvalFrameDefault (tstate=<optimized out>, f=<optimized out>, throwflag=<optimized out>) at ../Python/ceval.c:3695
#184 0x00007f64e24bc1ff in _PyEval_EvalFrame (throwflag=0, f=0x7f640176e200, tstate=0x7f64ac032960) at ../Include/internal/pycore_ceval.h:46
#185 _PyEval_Vector (tstate=0x7f64ac032960, con=0x7f63fe6ff6d0, locals=<optimized out>, args=<optimized out>, argcount=0, kwnames=0x0) at ../Python/ceval.c:5065
#186 0x00007f64e24b71ae in PyEval_EvalCode (co=0x7f645f769bb0, globals=0x7f63fb36ce00, locals=0x7f63fb36ce00) at ../Python/ceval.c:1134
#187 0x00007f64e2505cfd in run_eval_code_obj (locals=0x7f63fb36ce00, globals=0x7f63fb36ce00, co=0x7f645f769bb0, tstate=0x7f64ac032960) at ../Python/pythonrun.c:1291
#188 run_mod (mod=mod@entry=0x7f64ac0d46a0, filename=filename@entry=0x7f640053a170, globals=globals@entry=0x7f63fb36ce00, locals=locals@entry=0x7f63fb36ce00, flags=flags@entry=0x0, arena=arena@entry=0x7f63f931b610) at ../Python/pythonrun.c:1312
#189 0x00007f64e2506ec8 in pyrun_file (flags=0x0, closeit=1, locals=0x7f63fb36ce00, globals=0x7f63fb36ce00, start=<optimized out>, filename=0x7f640053a170, fp=0x7f64ac0d2020) at ../Python/pythonrun.c:1208
#190 PyRun_FileExFlags (fp=0x7f64ac0d2020, filename=<optimized out>, start=<optimized out>, globals=0x7f63fb36ce00, locals=0x7f63fb36ce00, closeit=1, flags=0x0) at ../Python/pythonrun.c:1228
#191 0x000055a6f30d3b17 in CPythonInvoker::executeScript(_IO_FILE*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, _object*) ()
#192 0x000055a6f30e6e2e in CPythonInvoker::execute(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::vector<std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >, std::allocator<std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > > > const&) ()
#193 0x000055a6f30e8017 in CPythonInvoker::execute(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&) ()
#194 0x000055a6f3af284b in CLanguageInvokerThread::Process() ()
#195 0x000055a6f34567f8 in CThread::Action() ()
#196 0x000055a6f3cc9093 in ?? ()
#197 0x000055a6f344bb3d in ?? ()
#198 0x00007f64dea882c3 in ?? () from /lib/x86_64-linux-gnu/libstdc++.so.6
#199 0x00007f64dec6cb43 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:442
#200 0x00007f64decfea00 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81

----8<----

This reproduces all the time - making Kodi useless on my system.

ProblemType: Bug
DistroRelease: Ubuntu 22.04
Package: kodi 2:19.4+dfsg1-2
ProcVersionSignature: Ubuntu 5.15.0-30.31-generic 5.15.30
Uname: Linux 5.15.0-30-generic x86_64
ApportVersion: 2.20.11-0ubuntu82.1
Architecture: amd64
CasperMD5CheckResult: unknown
Date: Sun May 22 09:53:08 2022
InstallationDate: Installed on 2017-10-04 (1690 days ago)
InstallationMedia: Kubuntu 17.10 "Artful Aardvark" - Alpha amd64 (20170725)
SourcePackage: kodi
UpgradeStatus: Upgraded to jammy on 2022-05-02 (19 days ago)

Revision history for this message
Oded Arbel (oded-geek) wrote :
Revision history for this message
Oded Arbel (oded-geek) wrote :

This appears to be related to an unpatched bug in 22.04's Python 3.10.4 and its affect on Kodi plugins using the SQLite module.

The issue should be fixed once Python 3.10.5 is made available in 22.04 (which it still isn't - almost two month after the upstream release)

See here for the bug report in Kodi's bug tracker: https://github.com/xbmc/xbmc/issues/21438
See here for the root cause bug in Python's bug tracker: https://github.com/python/cpython/issues/92036

Revision history for this message
RevAngel (revangel) wrote :

I am affected by this issue as well, after updating from ubuntu 20.04 to 22.04. Crashes occur when using python using addons (which are all of my addons it seems). So absolutely no function for my Kodi from the point on using ubuntu 22.04. I really should have waited with the update - hindsight...

Revision history for this message
Launchpad Janitor (janitor) wrote :

Status changed to 'Confirmed' because the bug affects multiple users.

Changed in kodi (Ubuntu):
status: New → Confirmed
Revision history for this message
enzymes (enzymes) wrote :

Please push the latest version of Python to Jammy Jellyfish.

It seems this was a bug recognised around May / June 2022 and the Python devs have fixed it their end.

Revision history for this message
RevAngel (revangel) wrote :

I could not use Kodi since my update to ubuntu 22.04. Personally I find it very sad to see that seemingly nothing is happening to find a solution to this problem. And I rather doubt the users who wrote here are the only ones who are affected by it. Is it really that hard to get the newer and working Python version into the release/upstream? Or are the people involved in these things still in the /ignore or /shifttheblame stat? I don't know. But I will be wary every time I hear about an OS update in the future, however it is promoted and I won't give a flying ***t about that/if such bug reports help the community in the future, if I see that nothing happens for such a timespan after a really solid report was given (thank you Oded Arbel). The POV on open source shifted quite a bit for me, since it seems there is already solutions there, and the people responsible sit on their hands just because users can "downgrade"? Wow. Have that for a nice "open source experience"...

Revision history for this message
Oded Arbel (oded-geek) wrote :

In Debian they already has python 3.10.6 ( https://packages.debian.org/sid/python/python3 ).

Revision history for this message
Oded Arbel (oded-geek) wrote :

Kinetic now has Python 3.10.6 ( http://changelogs.ubuntu.com/changelogs/pool/main/p/python3.10/python3.10_3.10.6-1/changelog ), where interestingly the changelog says that 3.10.5 (the first Python release with the aforementioned bug fixed) was supposedly released on June 8th (the timestamp on the 3.10.5 changelog file in changelogs.ubuntu.com supports that).

Regardless, you can now build and install Python 3.10.6 on your jammy (22.04 LTS) installation by following these instructions:

1. Create a new file `/etc/apt/sources.list.d/kinetic-sources.list' to contain just the following line:
deb-src http://archive.ubuntu.com/ubuntu kinetic main restricted
2. Install the following packages: build-essential fakeroot dpkg-dev
3. The rest of the commands assume you opened a terminal, created a new directory somewhere and cd into it.
4. sudo apt update
5. apt-get source python3.10
6. sudo apt-get build-dep python3.10
7. dpkg-source -x python3.10_3.10.6-1.dsc
8. cd python3.10-3.10.6/
9. dpkg-buildpackage --no-sign -rfakeroot -b
10. ...wait until the build completes - it could take an hour or more...
11. cd ..
12. dpkg -i python3.10_3.10.6-1_amd64.deb python3.10-minimal_3.10.6-1_amd64.deb libpython3.10_3.10.6-1_amd64.deb libpython3.10-stdlib_3.10.6-1_amd64.deb libpython3.10-minimal_3.10.6-1_amd64.deb

After which Kodi should start properly and should have no problem running plugins that use sqlite.

Revision history for this message
RevAngel (revangel) wrote :

I really, really appreciate that you are trying to help me here, Oded Arbel. And honestly, I also appreciate you took the time to write this tutorial.

I am even considering doing this build from scratch. Despite the time it takes and the lack of my knowledge how to uninstall this and revert to the official releases, if / when they arrive in the (far-far) future.

Revision history for this message
RevAngel (revangel) wrote :

Bloody 8ell, it works! Thank you very much!

Do I have to know something about deinstallation / removal of this, if / when the official newer version comes out?

Revision history for this message
Oded Arbel (oded-geek) wrote :

TL;DR - don't worry about it, you can just forget that you did something manual.

You don't need to worry about what to do when Canonical releases a Python 3 update - this build is more or less identical to a Python 3.10.6 official build for jammy (just without all the QA that should go into updates on LTS).

It will also not update itself with new kinetic releases - for a new kinetic update you'd need to manually download a new source and build it again. OTOH, if Canonical releases Python 3.10.7 or later, it will just automatically update away from the custom build to the official.

Revision history for this message
RevAngel (revangel) wrote :

Then I thank you again and I am very grateful for your help! In my eyes you earned some positive reputation by doing this, and I can give you none except this "thank you" comment and me remembering this. Thank you!

Revision history for this message
atomicecho (atomicecho) wrote :

Same from Orded - thanks so much for taking the time to give those instructions - it has worked perfectly for me.

Revision history for this message
RevAngel (revangel) wrote :

One comment to this type of installation tho: do NOT use apt-get or apt autoremove, since my ubuntu "thinks" it has to remove the software packages related to the older version of python. My guess is that some dependencies are garbled up. On my system that would remove:
castxml
catch2
g++9
labad9361-0
libboost-*
libcppunit*
libeigen3-dev
libfmt-dev
libglfw3
libgmp-dev
libgmpxx4ldbl
libgnuradio-*
libgsm1-dev
libiio0
liblbfgsb0
libopenblas-*
libqwt-qt5-6
libspdlog-dev
libstdc++-9-dev
and many more packages...

So DO NOT use autoremove on any package manager until, yeah well, until this bug is solved.

Revision history for this message
Oded Arbel (oded-geek) wrote :

Thanks for the note, RevAngel.

This issue could be caused by a package that you have installed (likely libboost-python*-dev) that requires python3-dev, which in turns requires libpython3.10-dev and python3.10-dev - which I did not list to install in my instructions above.

Because the dev packages for 3.10.6 aren't manually installed, when apt needs to install something that requires python3.10-dev (or when verifying the coherency of the installed set of packages), it can't see the uninstalled local package files and so tries to resolve the problem using the apt repository - which only has 3.10.4. It can't install the 3.10.4 dev packages, as these require specific python3.10 versions which are no longer available and that installing will required downgrading your python - so it goes for the other alternative: removing software that depends on the dev packages.

The solution is pretty simple: go to where you built the 3.10.6 packages and run `sudo dpkg -i libpython3.10-dev_3.10.6-1_amd64.deb python3.10-dev_3.10.6-1_amd64.deb` and that should be that.

If you still get problems with "things that need to be removed by apt", see if your system needs maybe more of the 16 packages that were built, as I only instructed to install the minimum required number of packages, because I didn't want to force installation of packages that weren't installed before.

Revision history for this message
Oded Arbel (oded-geek) wrote :

BTW, there are a bunch of `python3-something` packages that do not come from the `python3.10` source package and so were not built in the instructions I provided - these come from the kind-a-meta-package `python3` whose sole purpose is to make sure you have the correct Python minor version release, but this should not be a problem and need not be upgraded, as they use am "at least minimal version" dependency, which is set to >= 3.10.4 and would work well when you install 3.10.6.

Revision history for this message
RevAngel (revangel) wrote :

Thank you again for the insight (I am learning something through this) and the help! It was only a minor issue to be true. After installing the two files you suggested it stays (visually) the same in synaptic. But again, it is only a minor issue.

Revision history for this message
RevAngel (revangel) wrote :

Are there any updates around this issue?

Revision history for this message
Oded Arbel (oded-geek) wrote :

Jammy (updates) already has Python 3.10.6 (which is also the current version for kinetic) - according to the changelog it was submitted to "proposed" on August 18th, though it is unclear when was it graduated to "updates" - it wasn't in the beginning of September (when we had the discussion of building the kinetic package for jammy).

So this issue should already be resolved, though I am no longer running Kodi on a jammy installation, so I cannot verify. It does work well on kinetic.

Revision history for this message
RevAngel (revangel) wrote :

Hello Oded, and thank you again for your quick answer.
I still have to avoid -autoremove on my packet managers, to prevent de-installation of the many packages, we talked about earlier (after the manual built and install). Is there an easy way to resolve these dependency errors?

Revision history for this message
Oded Arbel (oded-geek) wrote :

I'm not sure what you mean - if you removed packages during replacing the old python packages with new python packages, and didn't re-install them, then you probably don't need them or their dependencies. The dependencies for the replaced python packages have not changed - you downloaded them from Canonical servers and there should be no reason to worry about that.

That being said, to solve your "autoremove wants to remove packages" issues, you can do one (or more) of the following:

- after deleting the `kinetic-sources.list` file you created as part of the forced update process, and running `apt update`, you can do `apt install --reinstall python3`. This will replace your local python3 build with the new 3.10.6-1 build from Canonical. If you still get the "autoremove" issue - see the other options.
- review the packages that autoremove wants to remove, and run `apt install <package-name>` for each of the packages *you* *know* you want to keep.
- just run autoremove and let it remove whatever it wants - you likely do not need them, and if you find out later that you do, you can re-install just the ones that you need.

Revision history for this message
RevAngel (revangel) wrote :

Thank you for your help again, Oded Arbel! I did the recommended steps and it worked. It's good to have someone with you knowledge to help me, thank you again for this!

Changed in python3:
status: Unknown → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.