Title: Crash in _elementtree.c after #24061 · Issue #100689 · python/cpython · GitHub
Open Graph Title: Crash in _elementtree.c after #24061 · Issue #100689 · python/cpython
X Title: Crash in _elementtree.c after #24061 · Issue #100689 · python/cpython
Description: Crash report Tell us what happened, ideally including a minimal, reproducible example (https://stackoverflow.com/help/minimal-reproducible-example). Since updating LibreELEC master from Python 3.9.15 to 3.11/3.11.1 there are several repo...
Open Graph Description: Crash report Tell us what happened, ideally including a minimal, reproducible example (https://stackoverflow.com/help/minimal-reproducible-example). Since updating LibreELEC master from Python 3.9....
X Description: Crash report Tell us what happened, ideally including a minimal, reproducible example (https://stackoverflow.com/help/minimal-reproducible-example). Since updating LibreELEC master from Python 3.9....
Opengraph URL: https://github.com/python/cpython/issues/100689
X: @github
Domain: github.com
{"@context":"https://schema.org","@type":"DiscussionForumPosting","headline":"Crash in _elementtree.c after #24061","articleBody":"\u003c!--\r\n Use this template for hard crashes of the interpreter, segmentation faults, failed C-level assertions, and similar.\r\n Do not submit this form if you encounter an exception being unexpectedly raised from a Python function.\r\n Most of the time, these should be filed as bugs, rather than crashes.\r\n\r\n The CPython interpreter is itself written in a different programming language, C.\r\n For CPython, a \"crash\" is when Python itself fails, leading to a traceback in the C stack.\r\n--\u003e\r\n\r\n# Crash report\r\n\r\nTell us what happened, ideally including a minimal, reproducible example (https://stackoverflow.com/help/minimal-reproducible-example).\r\n\r\nSince updating LibreELEC master from Python 3.9.15 to 3.11/3.11.1 there are several reports of crashes in _elementtree module, see https://github.com/xbmc/xbmc/issues/22344.\r\n\r\nIt is hard to reproduce, you have to set up a minimal kodi addon like:\r\n```\r\nimport xbmcaddon\r\nimport xbmcgui\r\nimport xbmc\r\nimport xbmcvfs\r\nimport xml.etree.ElementTree as ET\r\n\r\naddon = xbmcaddon.Addon()\r\naddonname = addon.getAddonInfo('name')\r\n\r\ngpath = xbmcvfs.translatePath(\"special://profile/guisettings.xml\")\r\n\r\ntree = ET.parse(gpath)\r\nroot = tree.getroot()\r\nl = root.find('.//setting[@id=\"locale.language\"]').text\r\n```\r\n... and start it a few hundred to thousand times. \r\n\r\n# Error messages\r\n\r\nEnter any relevant error message caused by the crash, including a core dump if there is one.\r\n\r\nTypical stack trace is:\r\n```\r\nCore was generated by `/usr/lib/kodi/kodi.bin --standalone -fs'.\r\nProgram terminated with signal SIGSEGV, Segmentation fault.\r\n#0 0x0000000000000000 in ?? ()\r\n[Current thread is 1 (Thread 0x7f13220136c0 (LWP 58189))]\r\n[...]\r\n\r\nThread 1 (Thread 0x7f13220136c0 (LWP 58189)):\r\n#0 0x0000000000000000 in ?? ()\r\nNo symbol table info available.\r\n#1 0x00007f13505150d6 in _elementtree_XMLParser___init___impl (self=self@entry=0x7f13242102b0, target=target@entry=0x1e1e4e0 \u003c_Py_NoneStruct\u003e, encoding=encoding@entry=0x0) at /home/docker/LibreELEC.tv/build.LibreELEC-x11.x86_64-11.0-devel-mg-debug/build/Python3-3.11.1/Modules/_elementtree.c:3647\r\nNo locals.\r\n#2 0x00007f1350515555 in _elementtree_XMLParser___init__ (self=0x7f13242102b0, args=\u003coptimized out\u003e, kwargs=\u003coptimized out\u003e) at /home/docker/LibreELEC.tv/build.LibreELEC-x11.x86_64-11.0-devel-mg-debug/build/Python3-3.11.1/Modules/clinic/_elementtree.c.h:845\r\n return_value = -1\r\n _keywords = {0x7f135051a238 \"target\", 0x7f135051a23f \"encoding\", 0x0}\r\n _parser = {format = 0x0, keywords = 0x7f135051dd10 \u003c_keywords.23\u003e, fname = 0x7f1350519fc6 \"XMLParser\", custom_msg = 0x0, pos = 0, min = 0, max = 0, kwtuple = 0x0, next = 0x0}\r\n argsbuf = {0x7f13241557b8, 0x7f135051ede0 \u003cXMLParser_Type\u003e}\r\n fastargs = \u003coptimized out\u003e\r\n nargs = \u003coptimized out\u003e\r\n noptargs = \u003coptimized out\u003e\r\n target = 0x1e1e4e0 \u003c_Py_NoneStruct\u003e\r\n encoding = 0x0\r\n#3 0x00007f1381ed8afa in type_call (type=\u003coptimized out\u003e, args=0x7f138223c2d8 \u003c_PyRuntime+58904\u003e, kwds=0x0) at /home/docker/LibreELEC.tv/build.LibreELEC-x11.x86_64-11.0-devel-mg-debug/build/Python3-3.11.1/Objects/typeobject.c:1112\r\n res = \u003coptimized out\u003e\r\n obj = 0x7f13242102b0\r\n tstate = \u003coptimized out\u003e\r\n#4 0x00007f1381e8e304 in _PyObject_MakeTpCall (tstate=tstate@entry=0x7f1324146e40, callable=callable@entry=0x7f135051ede0 \u003cXMLParser_Type\u003e, args=args@entry=0x7f13241557b8, nargs=\u003coptimized out\u003e, keywords=0x0) at /home/docker/LibreELEC.tv/build.LibreELEC-x11.x86_64-11.0-devel-mg-debug/build/Python3-3.11.1/Objects/call.c:214\r\n call = 0x7f1381ed8a70 \u003ctype_call\u003e\r\n argstuple = 0x7f138223c2d8 \u003c_PyRuntime+58904\u003e\r\n kwdict = 0x0\r\n result = 0x0\r\n#5 0x00007f1381e8e3bd in _PyObject_VectorcallTstate (tstate=0x7f1324146e40, callable=callable@entry=0x7f135051ede0 \u003cXMLParser_Type\u003e, args=args@entry=0x7f13241557b8, nargsf=\u003coptimized out\u003e, kwnames=kwnames@entry=0x0) at /home/docker/LibreELEC.tv/build.LibreELEC-x11.x86_64-11.0-devel-mg-debug/build/Python3-3.11.1/Include/internal/pycore_call.h:90\r\n nargs = \u003coptimized out\u003e\r\n func = \u003coptimized out\u003e\r\n res = \u003coptimized out\u003e\r\n#6 0x00007f1381e8e422 in PyObject_Vectorcall (callable=callable@entry=0x7f135051ede0 \u003cXMLParser_Type\u003e, args=args@entry=0x7f13241557b8, nargsf=\u003coptimized out\u003e, kwnames=kwnames@entry=0x0) at /home/docker/LibreELEC.tv/build.LibreELEC-x11.x86_64-11.0-devel-mg-debug/build/Python3-3.11.1/Objects/call.c:299\r\n tstate = \u003coptimized out\u003e\r\n#7 0x00007f1381f3d170 in _PyEval_EvalFrameDefault (tstate=0x7f1324146e40, frame=0x7f1324155738, throwflag=\u003coptimized out\u003e) at /home/docker/LibreELEC.tv/build.LibreELEC-x11.x86_64-11.0-devel-mg-debug/build/Python3-3.11.1/Python/ceval.c:4772\r\n is_meth = 0\r\n total_args = 0\r\n function = 0x7f135051ede0 \u003cXMLParser_Type\u003e\r\n positional_args = \u003coptimized out\u003e\r\n res = \u003coptimized out\u003e\r\n __func__ = \"_PyEval_EvalFrameDefault\"\r\n opcode = \u003coptimized out\u003e\r\n oparg = 0\r\n eval_breaker = 0x7f132412cb24\r\n cframe = {use_tracing = 0 '\\000', current_frame = 0x7f1324155738, previous = 0x7f1324146f90}\r\n call_shape = \u003coptimized out\u003e\r\n prev_cframe = \u003coptimized out\u003e\r\n names = 0x7f132426a5b0\r\n consts = 0x7f13240351b0\r\n first_instr = 0x7f132426a898\r\n next_instr = 0x7f132426a8fa\r\n stack_pointer = 0x7f13241557b8\r\n exception_unwind = \u003coptimized out\u003e\r\n dying = \u003coptimized out\u003e\r\n#8 0x00007f1381f3f624 in _PyEval_EvalFrame (tstate=tstate@entry=0x7f1324146e40, frame=frame@entry=0x7f1324155650, throwflag=throwflag@entry=0) at /home/docker/LibreELEC.tv/build.LibreELEC-x11.x86_64-11.0-devel-mg-debug/build/Python3-3.11.1/Include/internal/pycore_ceval.h:73\r\nNo locals.\r\n#9 0x00007f1381f3f6ff in _PyEval_Vector (tstate=tstate@entry=0x7f1324146e40, func=func@entry=0x7f13240f8d00, locals=locals@entry=0x7f132403ffb0, args=args@entry=0x0, argcount=argcount@entry=0, kwnames=kwnames@entry=0x0) at /home/docker/LibreELEC.tv/build.LibreELEC-x11.x86_64-11.0-devel-mg-debug/build/Python3-3.11.1/Python/ceval.c:6435\r\n frame = 0x7f1324155650\r\n retval = \u003coptimized out\u003e\r\n#10 0x00007f1381f3f7c3 in PyEval_EvalCode (co=co@entry=0x7f13240a2f00, globals=globals@entry=0x7f132403ffb0, locals=locals@entry=0x7f132403ffb0) at /home/docker/LibreELEC.tv/build.LibreELEC-x11.x86_64-11.0-devel-mg-debug/build/Python3-3.11.1/Python/ceval.c:1154\r\n tstate = 0x7f1324146e40\r\n builtins = 0x7f1324126100\r\n desc = {fc_globals = 0x7f132403ffb0, fc_builtins = 0x7f1324126100, fc_name = 0x7f1382233150 \u003c_PyRuntime+21648\u003e, fc_qualname = 0x7f1382233150 \u003c_PyRuntime+21648\u003e, fc_code = 0x7f13240a2f00, fc_defaults = 0x0, fc_kwdefaults = 0x0, fc_closure = 0x0}\r\n func = 0x7f13240f8d00\r\n res = \u003coptimized out\u003e\r\n#11 0x00007f1381f772f7 in run_eval_code_obj (tstate=tstate@entry=0x7f1324146e40, co=co@entry=0x7f13240a2f00, globals=globals@entry=0x7f132403ffb0, locals=locals@entry=0x7f132403ffb0) at /home/docker/LibreELEC.tv/build.LibreELEC-x11.x86_64-11.0-devel-mg-debug/build/Python3-3.11.1/Python/pythonrun.c:1714\r\n v = \u003coptimized out\u003e\r\n#12 0x00007f1381f773bd in run_mod (mod=mod@entry=0x7f132427ebb8, filename=filename@entry=0x7f1324197350, globals=globals@entry=0x7f132403ffb0, locals=locals@entry=0x7f132403ffb0, flags=flags@entry=0x0, arena=arena@entry=0x7f1324032d00) at /home/docker/LibreELEC.tv/build.LibreELEC-x11.x86_64-11.0-devel-mg-debug/build/Python3-3.11.1/Python/pythonrun.c:1735\r\n tstate = 0x7f1324146e40\r\n co = 0x7f13240a2f00\r\n v = \u003coptimized out\u003e\r\n#13 0x00007f1381f7746d in pyrun_file (fp=fp@entry=0x7f13240a2f00, filename=filename@entry=0x7f1324197350, start=start@entry=257, globals=globals@entry=0x7f132403ffb0, locals=locals@entry=0x7f132403ffb0, closeit=closeit@entry=1, flags=0x0) at /home/docker/LibreELEC.tv/build.LibreELEC-x11.x86_64-11.0-devel-mg-debug/build/Python3-3.11.1/Python/pythonrun.c:1630\r\n arena = 0x7f1324032d00\r\n mod = 0x7f132427ebb8\r\n ret = \u003coptimized out\u003e\r\n#14 0x00007f1381f79f73 in PyRun_FileExFlags (fp=0x7f13240a2f00, filename=\u003coptimized out\u003e, start=257, globals=0x7f132403ffb0, locals=0x7f132403ffb0, closeit=1, flags=0x0) at /home/docker/LibreELEC.tv/build.LibreELEC-x11.x86_64-11.0-devel-mg-debug/build/Python3-3.11.1/Python/pythonrun.c:1650\r\n filename_obj = 0x7f1324197350\r\n res = \u003coptimized out\u003e\r\n#15 0x0000000000d5ac60 in CPythonInvoker::executeScript (this=\u003coptimized out\u003e, fp=\u003coptimized out\u003e, script=..., moduleDict=\u003coptimized out\u003e) at /home/docker/LibreELEC.tv/build.LibreELEC-x11.x86_64-11.0-devel-mg-debug/build/kodi-20.0rc2-Nexus/xbmc/interfaces/python/PythonInvoker.cpp:428\r\n m_Py_file_input = 257\r\n#16 0x0000000000d5bfb0 in CPythonInvoker::execute (this=this@entry=0x3bf31e0, script=..., arguments=...) at /home/docker/LibreELEC.tv/build.LibreELEC-x11.x86_64-11.0-devel-mg-debug/build/kodi-20.0rc2-Nexus/xbmc/interfaces/python/PythonInvoker.cpp:319\r\n f = 0x7f1324197280\r\n pycontext = \u003coptimized out\u003e\r\n pyRealFilename = \u003coptimized out\u003e\r\n fp = 0x7f13240a2f00\r\n pythonPath = {_M_t = {_M_impl = {\u003cstd::allocator\u003cstd::_Rb_tree_node\u003cstd::__cxx11::basic_string\u003cchar, std::char_traits\u003cchar\u003e, std::allocator\u003cchar\u003e \u003e \u003e \u003e\u003e = {\u003cstd::__new_allocator\u003cstd::_Rb_tree_node\u003cstd::__cxx11::basic_string\u003cchar, std::char_traits\u003cchar\u003e, std::allocator\u003cchar\u003e \u003e \u003e \u003e\u003e = {\u003cNo data fields\u003e}, \u003cNo data fields\u003e}, \u003cstd::_Rb_tree_key_compare\u003cstd::less\u003cstd::__cxx11::basic_string\u003cchar, std::char_traits\u003cchar\u003e, std::allocator\u003cchar\u003e \u003e \u003e \u003e\u003e = {_M_key_compare = {\u003cstd::binary_function\u003cstd::__cxx11::basic_string\u003cchar, std::char_traits\u003cchar\u003e, std::allocator\u003cchar\u003e \u003e, std::__cxx11::basic_string\u003cchar, std::char_traits\u003cchar\u003e, std::allocator\u003cchar\u003e \u003e, bool\u003e\u003e = {\u003cNo data fields\u003e}, \u003cNo data fields\u003e}}, \u003cstd::_Rb_tree_header\u003e = {_M_header = {_M_color = std::_S_red, _M_parent = 0x7f1324197f80, _M_left = 0x7f1324197f80, _M_right = 0x7f1324197f80}, _M_node_count = 1}, \u003cNo data fields\u003e}}}\r\n realFilename = {static npos = 18446744073709551615, _M_dataplus = {\u003cstd::allocator\u003cchar\u003e\u003e = {\u003cstd::__new_allocator\u003cchar\u003e\u003e = {\u003cNo data fields\u003e}, \u003cNo data fields\u003e}, _M_p = 0x7f13242769f0 \"/storage/.kodi/addons/script.hello.world/addon.py\"}, _M_string_length = 49, {_M_local_buf = \"1\\000\\000\\000\\000\\000\\000\\000\\374d\\033\\177\\023\\177\\000\", _M_allocated_capacity = 49}}\r\n scriptDir = {static npos = 18446744073709551615, _M_dataplus = {\u003cstd::allocator\u003cchar\u003e\u003e = {\u003cstd::__new_allocator\u003cchar\u003e\u003e = {\u003cNo data fields\u003e}, \u003cNo data fields\u003e}, _M_p = 0x7f1324100e70 \"/storage/.kodi/addons/script.hello.world\"}, _M_string_length = 40, {_M_local_buf = \")\\000\\000\\000\\000\\000\\000\\000P\\250\\233\\003\\000\\000\\000\", _M_allocated_capacity = 41}}\r\n l_threadState = \u003coptimized out\u003e\r\n newInterp = \u003coptimized out\u003e\r\n sysArgv = \u003coptimized out\u003e\r\n module = \u003coptimized out\u003e\r\n moduleDict = 0x7f132403ffb0\r\n stopping = false\r\n failed = false\r\n exceptionType = {static npos = 18446744073709551615, _M_dataplus = {\u003cstd::allocator\u003cchar\u003e\u003e = {\u003cstd::__new_allocator\u003cchar\u003e\u003e = {\u003cNo data fields\u003e}, \u003cNo data fields\u003e}, _M_p = 0x7f13220125b0 \"\"}, _M_string_length = 0, {_M_local_buf = \"\\000(\\001\\\"\\023\\177\\000\\000\\b\\000\\000\\000\\000\\000\\000\", _M_allocated_capacity = 139720151607296}}\r\n exceptionValue = {static npos = 18446744073709551615, _M_dataplus = {\u003cstd::allocator\u003cchar\u003e\u003e = {\u003cstd::__new_allocator\u003cchar\u003e\u003e = {\u003cNo data fields\u003e}, \u003cNo data fields\u003e}, _M_p = 0x7f1322012590 \"\"}, _M_string_length = 0, {_M_local_buf = \"\\000\\263\\233\\003\\000\\000\\000\\000$\\000\\000\\000\\000\\000\\000\", _M_allocated_capacity = 60535552}}\r\n exceptionTraceback = {static npos = 18446744073709551615, _M_dataplus = {\u003cstd::allocator\u003cchar\u003e\u003e = {\u003cstd::__new_allocator\u003cchar\u003e\u003e = {\u003cNo data fields\u003e}, \u003cNo data fields\u003e}, _M_p = 0x7f1322012570 \"\"}, _M_string_length = 0, {_M_local_buf = \"\\000\\000\\000$\\023\\177\\000\\000X\\264\\233\\003\\000\\000\\000\", _M_allocated_capacity = 139720185085952}}\r\n stateToSet = \u003coptimized out\u003e\r\n lock = {_M_device = 0x0, _M_owns = 146}\r\n __PRETTY_FUNCTION__ = \"bool CPythonInvoker::execute(const std::string\u0026, std::vector\u003cstd::__cxx11::basic_string\u003cwchar_t\u003e \u003e\u0026)\"\r\n#17 0x0000000000d5c64b in CPythonInvoker::execute (this=0x3bf31e0, script=..., arguments=...) at /home/docker/LibreELEC.tv/build.LibreELEC-x11.x86_64-11.0-devel-mg-debug/build/kodi-20.0rc2-Nexus/xbmc/interfaces/python/PythonInvoker.cpp:140\r\n w_arguments = {\u003cstd::_Vector_base\u003cstd::__cxx11::basic_string\u003cwchar_t, std::char_traits\u003cwchar_t\u003e, std::allocator\u003cwchar_t\u003e \u003e, std::allocator\u003cstd::__cxx11::basic_string\u003cwchar_t, std::char_traits\u003cwchar_t\u003e, std::allocator\u003cwchar_t\u003e \u003e \u003e \u003e\u003e = {_M_impl = {\u003cstd::allocator\u003cstd::__cxx11::basic_string\u003cwchar_t, std::char_traits\u003cwchar_t\u003e, std::allocator\u003cwchar_t\u003e \u003e \u003e\u003e = {\u003cstd::__new_allocator\u003cstd::__cxx11::basic_string\u003cwchar_t, std::char_traits\u003cwchar_t\u003e, std::allocator\u003cwchar_t\u003e \u003e \u003e\u003e = {\u003cNo data fields\u003e}, \u003cNo data fields\u003e}, \u003cstd::_Vector_base\u003cstd::__cxx11::basic_string\u003cwchar_t, std::char_traits\u003cwchar_t\u003e, std::allocator\u003cwchar_t\u003e \u003e, std::allocator\u003cstd::__cxx11::basic_string\u003cwchar_t, std::char_traits\u003cwchar_t\u003e, std::allocator\u003cwchar_t\u003e \u003e \u003e \u003e::_Vector_impl_data\u003e = {_M_start = 0x7f1324047810, _M_finish = 0x7f1324047830, _M_end_of_storage = 0x7f1324047830}, \u003cNo data fields\u003e}}, \u003cNo data fields\u003e}\r\n#18 0x00000000015aedf4 in ILanguageInvoker::Execute (this=this@entry=0x3bf31e0, script=..., arguments=...) at /home/docker/LibreELEC.tv/build.LibreELEC-x11.x86_64-11.0-devel-mg-debug/build/kodi-20.0rc2-Nexus/xbmc/interfaces/generic/ILanguageInvoker.cpp:29\r\nNo locals.\r\n#19 0x0000000000d5ca9b in CPythonInvoker::Execute (this=0x3bf31e0, script=..., arguments=...) at /home/docker/LibreELEC.tv/build.LibreELEC-x11.x86_64-11.0-devel-mg-debug/build/kodi-20.0rc2-Nexus/xbmc/interfaces/python/PythonInvoker.cpp:128\r\nNo locals.\r\n#20 0x00000000015af31c in CLanguageInvokerThread::Process (this=0x3ba5c10) at /home/docker/LibreELEC.tv/build.LibreELEC-x11.x86_64-11.0-devel-mg-debug/build/kodi-20.0rc2-Nexus/xbmc/interfaces/generic/LanguageInvokerThread.cpp:107\r\n lckdl = {_M_device = 0x3ba5e70, _M_owns = true}\r\n#21 0x000000000101d4ec in CThread::Action (this=this@entry=0x3ba5c38) at /home/docker/LibreELEC.tv/build.LibreELEC-x11.x86_64-11.0-devel-mg-debug/build/kodi-20.0rc2-Nexus/xbmc/threads/Thread.cpp:267\r\nNo locals.\r\n#22 0x000000000101d807 in operator() (__closure=\u003coptimized out\u003e, pThread=0x3ba5c38, promise=...) at /home/docker/LibreELEC.tv/build.LibreELEC-x11.x86_64-11.0-devel-mg-debug/build/kodi-20.0rc2-Nexus/xbmc/threads/Thread.cpp:138\r\n name = {static npos = 18446744073709551615, _M_dataplus = {\u003cstd::allocator\u003cchar\u003e\u003e = {\u003cstd::__new_allocator\u003cchar\u003e\u003e = {\u003cNo data fields\u003e}, \u003cNo data fields\u003e}, _M_p = 0x7f13220129d0 \"LanguageInvoker\"}, _M_string_length = 15, {_M_local_buf = \"LanguageInvoker\", _M_allocated_capacity = 7306916077306274124}}\r\n autodelete = false\r\n ss = \u003cincomplete type\u003e\r\n id = {static npos = 18446744073709551615, _M_dataplus = {\u003cstd::allocator\u003cchar\u003e\u003e = {\u003cstd::__new_allocator\u003cchar\u003e\u003e = {\u003cNo data fields\u003e}, \u003cNo data fields\u003e}, _M_p = 0x7f13220129f0 \"139720151611072\"}, _M_string_length = 15, {_M_local_buf = \"139720151611072\", _M_allocated_capacity = 3832897750101996337}}\r\n __FUNCTION__ = \"operator()\"\r\n#23 0x000000000101d9f4 in std::__invoke_impl\u003cvoid, CThread::Create(bool)::\u003clambda(CThread*, std::promise\u003cbool\u003e)\u003e, CThread*, std::promise\u003cbool\u003e \u003e(std::__invoke_other, struct {...} \u0026\u0026) (__f=...) at /home/docker/LibreELEC.tv/build.LibreELEC-x11.x86_64-11.0-devel-mg-debug/toolchain/x86_64-libreelec-linux-gnu/include/c++/12.2.0/bits/invoke.h:61\r\nNo locals.\r\n#24 0x000000000101da2d in std::__invoke\u003cCThread::Create(bool)::\u003clambda(CThread*, std::promise\u003cbool\u003e)\u003e, CThread*, std::promise\u003cbool\u003e \u003e (__fn=...) at /home/docker/LibreELEC.tv/build.LibreELEC-x11.x86_64-11.0-devel-mg-debug/toolchain/x86_64-libreelec-linux-gnu/include/c++/12.2.0/bits/invoke.h:96\r\nNo locals.\r\n#25 std::thread::_Invoker\u003cstd::tuple\u003cCThread::Create(bool)::\u003clambda(CThread*, std::promise\u003cbool\u003e)\u003e, CThread*, std::promise\u003cbool\u003e \u003e \u003e::_M_invoke\u003c0, 1, 2\u003e (this=\u003coptimized out\u003e) at /home/docker/LibreELEC.tv/build.LibreELEC-x11.x86_64-11.0-devel-mg-debug/toolchain/x86_64-libreelec-linux-gnu/include/c++/12.2.0/bits/std_thread.h:252\r\nNo locals.\r\n#26 std::thread::_Invoker\u003cstd::tuple\u003cCThread::Create(bool)::\u003clambda(CThread*, std::promise\u003cbool\u003e)\u003e, CThread*, std::promise\u003cbool\u003e \u003e \u003e::operator() (this=\u003coptimized out\u003e) at /home/docker/LibreELEC.tv/build.LibreELEC-x11.x86_64-11.0-devel-mg-debug/toolchain/x86_64-libreelec-linux-gnu/include/c++/12.2.0/bits/std_thread.h:259\r\nNo locals.\r\n#27 std::thread::_State_impl\u003cstd::thread::_Invoker\u003cstd::tuple\u003cCThread::Create(bool)::\u003clambda(CThread*, std::promise\u003cbool\u003e)\u003e, CThread*, std::promise\u003cbool\u003e \u003e \u003e \u003e::_M_run(void) (this=\u003coptimized out\u003e) at /home/docker/LibreELEC.tv/build.LibreELEC-x11.x86_64-11.0-devel-mg-debug/toolchain/x86_64-libreelec-linux-gnu/include/c++/12.2.0/bits/std_thread.h:210\r\nNo locals.\r\n#28 0x00007f137f1e1403 in ?? () from /usr/lib/libstdc++.so.6\r\nNo symbol table info available.\r\n#29 0x00007f137f3a92c0 in ?? () from /usr/lib/libc.so.6\r\nNo symbol table info available.\r\n#30 0x00007f137f4227cc in ?? () from /usr/lib/libc.so.6\r\nNo symbol table info available.\r\nrax 0x7f13242a8110 139720187871504\r\nrbx 0x7f13242102b0 139720187249328\r\nrcx 0x0 0\r\nrdx 0x7f1350519f5a 139720928632666\r\nrsi 0x7f135051edc0 139720928652736\r\nrdi 0x0 0\r\nrbp 0x1e1e4e0 0x1e1e4e0 \u003c_Py_NoneStruct\u003e\r\nrsp 0x7f1322012108 0x7f1322012108\r\nr8 0x0 0\r\nr9 0x7f13242ac260 139720187888224\r\nr10 0x200f422ed6206fb3 2310137902792732595\r\nr11 0x202 514\r\nr12 0x0 0\r\nr13 0x0 0\r\nr14 0x0 0\r\nr15 0x7f1381ed8a70 139721760934512\r\nrip 0x0 0x0\r\neflags 0x10202 [ IF RF ]\r\ncs 0x33 51\r\nss 0x2b 43\r\nds 0x0 0\r\nes 0x0 0\r\nfs 0x0 0\r\ngs 0x0 0\r\n```\r\n\r\n# Your environment\r\n\r\n\u003c!-- Include as many relevant details as possible about the environment you experienced the bug in --\u003e\r\n\r\n- CPython versions tested on: 3.11.1\r\n- Operating system and architecture: LibreELEC 11 nightly x86_64\r\n\u003c!--\r\nYou can freely edit this text. Remove any lines you believe are unnecessary.\r\n--\u003e\r\n\r\n# Conclusion\r\n\r\nWith #24061 the expat_CAPI is allocated on the heap but _elementtree.c is still using a [static reference](https://github.com/python/cpython/blob/v3.11.1/Modules/_elementtree.c#L3039) to a may be already freed structure.\r\n\r\nReverting #24061 solves the issue for me. A true fix from someone with more cpython experience should move `*expat_capi` to the heap too.\r\n\r\n\u003c!-- gh-linked-prs --\u003e\r\n### Linked PRs\r\n* gh-100745\r\n* gh-100846\r\n* gh-100847\r\n\u003c!-- /gh-linked-prs --\u003e\r\n","author":{"url":"https://github.com/mglae","@type":"Person","name":"mglae"},"datePublished":"2023-01-02T14:58:44.000Z","interactionStatistic":{"@type":"InteractionCounter","interactionType":"https://schema.org/CommentAction","userInteractionCount":7},"url":"https://github.com/100689/cpython/issues/100689"}
| route-pattern | /_view_fragments/issues/show/:user_id/:repository/:id/issue_layout(.:format) |
| route-controller | voltron_issues_fragments |
| route-action | issue_layout |
| fetch-nonce | v2:403ec312-7367-c192-ea4f-2d5332ae15df |
| current-catalog-service-hash | 81bb79d38c15960b92d99bca9288a9108c7a47b18f2423d0f6438c5b7bcd2114 |
| request-id | DB08:27E9DD:1CDA3F6:2876CB2:696A5662 |
| html-safe-nonce | 65840ac9753dd85ec680743307da3ac7795e19c014b613154f33177fd23e1e03 |
| visitor-payload | eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJEQjA4OjI3RTlERDoxQ0RBM0Y2OjI4NzZDQjI6Njk2QTU2NjIiLCJ2aXNpdG9yX2lkIjoiNDIyMzI5MjEyNjM1NjAwNDgyIiwicmVnaW9uX2VkZ2UiOiJpYWQiLCJyZWdpb25fcmVuZGVyIjoiaWFkIn0= |
| visitor-hmac | d8cb8ce70685794d50eb2fcf7e6bea4376d091a2b90d804324ba69e6ef19008a |
| hovercard-subject-tag | issue:1516480035 |
| github-keyboard-shortcuts | repository,issues,copilot |
| google-site-verification | Apib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I |
| octolytics-url | https://collector.github.com/github/collect |
| analytics-location | / |
| fb:app_id | 1401488693436528 |
| apple-itunes-app | app-id=1477376905, app-argument=https://github.com/_view_fragments/issues/show/python/cpython/100689/issue_layout |
| twitter:image | https://opengraph.githubassets.com/38f78df08c18d5dadabf23b76914b5c70e4a426bcb3de2b8ce4045b3ae4b0cc6/python/cpython/issues/100689 |
| twitter:card | summary_large_image |
| og:image | https://opengraph.githubassets.com/38f78df08c18d5dadabf23b76914b5c70e4a426bcb3de2b8ce4045b3ae4b0cc6/python/cpython/issues/100689 |
| og:image:alt | Crash report Tell us what happened, ideally including a minimal, reproducible example (https://stackoverflow.com/help/minimal-reproducible-example). Since updating LibreELEC master from Python 3.9.... |
| og:image:width | 1200 |
| og:image:height | 600 |
| og:site_name | GitHub |
| og:type | object |
| og:author:username | mglae |
| hostname | github.com |
| expected-hostname | github.com |
| None | 3f871c8e07f0ae1886fa8dac284166d28b09ad5bada6476fc10b674e489788ef |
| turbo-cache-control | no-preview |
| go-import | github.com/python/cpython git https://github.com/python/cpython.git |
| octolytics-dimension-user_id | 1525981 |
| octolytics-dimension-user_login | python |
| octolytics-dimension-repository_id | 81598961 |
| octolytics-dimension-repository_nwo | python/cpython |
| octolytics-dimension-repository_public | true |
| octolytics-dimension-repository_is_fork | false |
| octolytics-dimension-repository_network_root_id | 81598961 |
| octolytics-dimension-repository_network_root_nwo | python/cpython |
| turbo-body-classes | logged-out env-production page-responsive |
| disable-turbo | false |
| browser-stats-url | https://api.github.com/_private/browser/stats |
| browser-errors-url | https://api.github.com/_private/browser/errors |
| release | 63c426b30d262aba269ef14c40e3c817b384cd61 |
| ui-target | full |
| theme-color | #1e2327 |
| color-scheme | light dark |
Links:
Viewport: width=device-width