[issue46070] _PyImport_FixupExtensionObject() regression causing a crash in subintepreters
Joel Uckelman added the comment: I have this happening on Linux with a Flask app after upgrading from Fedora 34 to 35. libpython keeps crashing httpd. I see this from journalctl: #0 0x7fd899baa801 PyObject_Malloc (libpython3.10.so.1.0 + 0xf7801) #1 0x7fd899baab47 PyUnicode_New (libpython3.10.so.1.0 + 0xf7b47) #2 0x7fd899bb9aae _PyUnicode_FromUCS1 (libpython3.10.so.1.0 + 0x106aae) #3 0x7fd899bb9323 r_object (libpython3.10.so.1.0 + 0x106323) #4 0x7fd899bb8d46 r_object (libpython3.10.so.1.0 + 0x105d46) #5 0x7fd899bb90b4 r_object (libpython3.10.so.1.0 + 0x1060b4) #6 0x7fd899bb8d65 r_object (libpython3.10.so.1.0 + 0x105d65) #7 0x7fd899bb9088 r_object (libpython3.10.so.1.0 + 0x106088) #8 0x7fd899bb8e33 r_object (libpython3.10.so.1.0 + 0x105e33) #9 0x7fd899bb9088 r_object (libpython3.10.so.1.0 + 0x106088) #10 0x7fd899c35c28 read_object (libpython3.10.so.1.0 + 0x182c28) #11 0x7fd899c48f56 marshal_loads (libpython3.10.so.1.0 + 0x195f56) #12 0x7fd899bc88d7 cfunction_vectorcall_O (libpython3.10.so.1.0 + 0x1158d7) #13 0x7fd899bc0c80 _PyEval_EvalFrameDefault (libpython3.10.so.1.0 + 0x10dc80) #14 0x7fd899bba984 _PyEval_Vector (libpython3.10.so.1.0 + 0x107984) #15 0x7fd899bbccba _PyEval_EvalFrameDefault (libpython3.10.so.1.0 + 0x109cba) #16 0x7fd899bba984 _PyEval_Vector (libpython3.10.so.1.0 + 0x107984) #17 0x7fd899bbbd6d _PyEval_EvalFrameDefault (libpython3.10.so.1.0 + 0x108d6d) #18 0x7fd899bba984 _PyEval_Vector (libpython3.10.so.1.0 + 0x107984) #19 0x7fd899bbbd6d _PyEval_EvalFrameDefault (libpython3.10.so.1.0 + 0x108d6d) #20 0x7fd899bba984 _PyEval_Vector (libpython3.10.so.1.0 + 0x107984) #21 0x7fd899bbbac2 _PyEval_EvalFrameDefault (libpython3.10.so.1.0 + 0x108ac2) #22 0x7fd899bba984 _PyEval_Vector (libpython3.10.so.1.0 + 0x107984) #23 0x7fd899bbbac2 _PyEval_EvalFrameDefault (libpython3.10.so.1.0 + 0x108ac2) #24 0x7fd899bba984 _PyEval_Vector (libpython3.10.so.1.0 + 0x107984) #25 0x7fd899bc8a9e object_vacall (libpython3.10.so.1.0 + 0x115a9e) #26 0x7fd899bd247c _PyObject_CallMethodIdObjArgs (libpython3.10.so.1.0 + 0x11f47c) #27 0x7fd899bd21d7 PyImport_ImportModuleLevelObject (libpython3.10.so.1.0 + 0x11f1d7) #28 0x7fd899bbfc8e _PyEval_EvalFrameDefault (libpython3.10.so.1.0 + 0x10cc8e) #29 0x7fd899bba984 _PyEval_Vector (libpython3.10.so.1.0 + 0x107984) #30 0x7fd899c360d4 PyEval_EvalCode (libpython3.10.so.1.0 + 0x1830d4) #31 0x7fd899c3d091 builtin_exec (libpython3.10.so.1.0 + 0x18a091) #32 0x7fd899bc94b0 cfunction_vectorcall_FASTCALL (libpython3.10.so.1.0 + 0x1164b0) #33 0x7fd899bc2209 _PyEval_EvalFrameDefault (libpython3.10.so.1.0 + 0x10f209) #34 0x7fd899bba984 _PyEval_Vector (libpython3.10.so.1.0 + 0x107984) #35 0x7fd899bc0c80 _PyEval_EvalFrameDefault (libpython3.10.so.1.0 + 0x10dc80) #36 0x7fd899bba984 _PyEval_Vector (libpython3.10.so.1.0 + 0x107984) #37 0x7fd899bbbd6d _PyEval_EvalFrameDefault (libpython3.10.so.1.0 + 0x108d6d) #38 0x7fd899bba984 _PyEval_Vector (libpython3.10.so.1.0 + 0x107984) #39 0x7fd899bbbac2 _PyEval_EvalFrameDefault (libpython3.10.so.1.0 + 0x108ac2) #40 0x7fd899bba984 _PyEval_Vector (libpython3.10.so.1.0 + 0x107984) #41 0x7fd899bbbac2 _PyEval_EvalFrameDefault (libpython3.10.so.1.0 + 0x108ac2) #42 0x7fd899bba984 _PyEval_Vector (libpython3.10.so.1.0 + 0x107984) #43 0x7fd899bc8a9e object_vacall (libpython3.10.so.1.0 + 0x115a9e) #44 0x7fd899bd247c _PyObject_CallMethodIdObjArgs (libpython3.10.so.1.0 + 0x11f47c) #45 0x7fd899bd21d7 PyImport_ImportModuleLevelObject (libpython3.10.so.1.0 + 0x11f1d7) #46 0x7fd899bbfc8e _PyEval_EvalFrameDefault (libpython3.10.so.1.0 + 0x10cc8e) #47 0x7fd899bba984 _PyEval_Vector (libpython3.10.so.1.0 + 0x107984) #48 0x7fd899c360d4 PyEval_EvalCode (libpython3.10.so.1.0 + 0x1830d4) #49 0x7fd899c36006 exec_code_in_module (libpython3.10.so.1.0 + 0x183006) #50 0x7fd899ba33e7 PyImport_ExecCodeModuleObject (libpython3.10.so.1.0 + 0xf03e7) #51 0x7fd899ba3482 PyImport_ExecCodeModuleWithPathnames (libpython3.10.so.1.0 + 0xf0482) #52 0x7fd899e0f542 wsgi_load_source.lto_priv.0 (mod_wsgi_python3.so + 0x17542) #53 0x7fd899e107ed wsgi_execute_script.lto_priv.0 (mod_wsgi_python3.so + 0x187ed) #54 0x7fd899e1b0f6 wsgi_daemon_thread (mod_wsgi_python3.so + 0x230f6) #55 0x7fd89ab52a87 start_thread (libc.so.6 + 0x8da87) #56 0x7fd89abd7640 __clone3 (libc.so.6 + 0x112640) I see this in /var/log/httpd/ssl_error_log: [Sat Jan 01 05:17:21.248640 2022] [wsgi:error] [pid 257749:tid 257758] Exception
[issue29412] IndexError thrown on email.message.M
New submission from Joel Uckelman: Test case: import email import email.policy txt = '''From: juckel...@strozfriedberg.co.uk To: (Recipient list suppressed) Date: Thu, 22 Aug 2013 04:13:02 + Subject: ADSF-1082 Hey! ''' msg = email.message_from_string(txt) msg.get('to') msg = email.message_from_string(txt, policy=email.policy.default) msg.get('to') The second msg.get() throws an IndexError: Traceback (most recent call last): File "test.py", line 16, in print(msg.get('to'))# throws IndexError File "/usr/lib64/python3.5/email/message.py", line 472, in get return self.policy.header_fetch_parse(k, v) File "/usr/lib64/python3.5/email/policy.py", line 153, in header_fetch_parse return self.header_factory(name, ''.join(value.splitlines())) File "/usr/lib64/python3.5/email/headerregistry.py", line 586, in __call__ return self[name](name, value) File "/usr/lib64/python3.5/email/headerregistry.py", line 197, in __new__ cls.parse(value, kwds) File "/usr/lib64/python3.5/email/headerregistry.py", line 337, in parse kwds['parse_tree'] = address_list = cls.value_parser(value) File "/usr/lib64/python3.5/email/headerregistry.py", line 328, in value_parser address_list, value = parser.get_address_list(value) File "/usr/lib64/python3.5/email/_header_value_parser.py", line 2336, in get_address_list token, value = get_address(value) File "/usr/lib64/python3.5/email/_header_value_parser.py", line 2313, in get_address token, value = get_group(value) File "/usr/lib64/python3.5/email/_header_value_parser.py", line 2269, in get_group token, value = get_display_name(value) File "/usr/lib64/python3.5/email/_header_value_parser.py", line 2095, in get_display_name token, value = get_phrase(value) File "/usr/lib64/python3.5/email/_header_value_parser.py", line 1770, in get_phrase token, value = get_word(value) File "/usr/lib64/python3.5/email/_header_value_parser.py", line 1745, in get_word if value[0]=='"': IndexError: string index out of range The docs say that email.policy.default has raise_on_defect set to False, hence parse errors ought to be reported via EmailMessage.defects, not by throwing an exception. -- components: email messages: 286631 nosy: barry, r.david.murray, uckelman priority: normal severity: normal status: open title: IndexError thrown on email.message.M type: behavior versions: Python 3.5 ___ Python tracker <http://bugs.python.org/issue29412> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue29412] IndexError thrown on email.message.EmailMessage.get
Changes by Joel Uckelman : -- title: IndexError thrown on email.message.M -> IndexError thrown on email.message.EmailMessage.get ___ Python tracker <http://bugs.python.org/issue29412> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue29412] IndexError thrown on email.message.EmailMessage.get
Joel Uckelman added the comment: No dice. I get the same exception with issue27931_v2.patch. I briefly looked at the other two, and don't expect those will help, either. -- ___ Python tracker <http://bugs.python.org/issue29412> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue29412] IndexError thrown on email.message.Message.get
Changes by Joel Uckelman : -- title: IndexError thrown on email.message.EmailMessage.get -> IndexError thrown on email.message.Message.get ___ Python tracker <http://bugs.python.org/issue29412> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue29412] IndexError thrown on email.message.Message.get
Joel Uckelman added the comment: I'm working on a patch now. -- ___ Python tracker <http://bugs.python.org/issue29412> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue29412] IndexError thrown on email.message.Message.get
Joel Uckelman added the comment: Here's a patch, complete with tests. If the value is all CFWS, then get_cfws(value)[1], which is what's left after the CFWS is extracted, is the empty string---which is why value[0] throws in this case. -- keywords: +patch Added file: http://bugs.python.org/file46562/29412.patch ___ Python tracker <http://bugs.python.org/issue29412> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com