[issue46070] _PyImport_FixupExtensionObject() regression causing a crash in subintepreters

2022-01-01 Thread Joel Uckelman


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

2017-02-01 Thread Joel Uckelman

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

2017-02-01 Thread Joel Uckelman

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

2017-02-01 Thread Joel Uckelman

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

2017-02-01 Thread Joel Uckelman

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

2017-02-07 Thread Joel Uckelman

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

2017-02-07 Thread Joel Uckelman

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