New submission from Matthias Bussonnier:

I've been able to reliably trigger dict.pop to raise a system error: 

See https://github.com/pytest-dev/pytest/issues/1925


I have issues getting a small test-case that triggers it, though by changing 
the pop method of dict to print the returned value:

PyObject *
_PyDict_Pop(PyDictObject *mp, PyObject *key, PyObject *deflt){
...
    printf("\nreturn End value %x\n", old_value );
    return old_value;

}

I've been able to see that the last return sometime return Null:

[snip]

return End value 0
Fatal Python error: a function returned NULL without setting an error
SystemError: <built-in method pop of dict object at 0x10473f238> returned NULL 
without setting an error

Current thread 0x00007fff77139300 (most recent call first):
  File "/usr/local/lib/python3.6/site-packages/_pytest/capture.py", line 83 in 
reset_capturings
  File "/usr/local/lib/python3.6/site-packages/_pytest/config.py", line 869 in 
_ensure_unconfigure
  File "/usr/local/lib/python3.6/site-packages/_pytest/main.py", line 121 in 
wrap_session
  File "/usr/local/lib/python3.6/site-packages/_pytest/main.py", line 125 in 
pytest_cmdline_main
  File 
"/usr/local/lib/python3.6/site-packages/_pytest/vendored_packages/pluggy.py", 
line 596 in execute
  File 
"/usr/local/lib/python3.6/site-packages/_pytest/vendored_packages/pluggy.py", 
line 333 in <lambda>
  File 
"/usr/local/lib/python3.6/site-packages/_pytest/vendored_packages/pluggy.py", 
line 338 in _hookexec
  File 
"/usr/local/lib/python3.6/site-packages/_pytest/vendored_packages/pluggy.py", 
line 724 in __call__
  File "/usr/local/lib/python3.6/site-packages/_pytest/config.py", line 57 in 
main
  File "/usr/local/lib/python3.6/site-packages/pytest.py", line 17 in <module>
  File "/Users/bussonniermatthias/dev/git-cpython/Lib/runpy.py", line 85 in 
_run_code
  File "/Users/bussonniermatthias/dev/git-cpython/Lib/runpy.py", line 193 in 
_run_module_as_main

Aborted

Which I suppose is not desirable.

I'm quite uncomfortable with C so I'm far from being able to propose a patch or 
describe why this would happen...

Victor Stinner seem to have made the last changes to these methods in 
http://bugs.python.org/issue27350 . Not sure if the etiquette is to add them to 
the nosy list in this case. 

Discovered because of nightly continuous integration with travis on 
github.com/xonsh/xonsh

----------
components: Interpreter Core
messages: 275283
nosy: mbussonn
priority: normal
severity: normal
status: open
title: compact dict : SystemError: returned NULL without setting an error.
versions: Python 3.6, Python 3.7

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue28040>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to