Title: A fatal error in test_dictviews
Type: crash Stage: resolved
Components: Interpreter Core Versions: Python 3.9
Status: closed Resolution: fixed
Dependencies: Superseder:
Assigned To: Nosy List: ZackerySpytz, corona10, rhettinger, serhiy.storchaka
Priority: normal Keywords: patch

Created on 2019-09-17 19:27 by ZackerySpytz, last changed 2019-10-13 11:52 by serhiy.storchaka. This issue is now closed.

Pull Requests
URL Status Linked Edit
PR 16241 merged ZackerySpytz, 2019-09-17 19:29
Messages (3)
msg352658 - (view) Author: Zackery Spytz (ZackerySpytz) * (Python triager) Date: 2019-09-17 19:27
When running test_dictviews, I sometimes encounter a fatal error.

./python -m test test_dictviews
Run tests sequentially
0:00:00 load avg: 0.36 [1/1] test_dictviews
python: Objects/typeobject.c:3125: _PyType_Lookup: Assertion `!PyErr_Occurred()' failed.
Fatal Python error: Aborted

Current thread 0x00007fd5506de140 (most recent call first):
  File "/home/lubuntu2/cpython/Lib/test/", line 166 in test_items_set_operations
  File "/home/lubuntu2/cpython/Lib/unittest/", line 617 in _callTestMethod
  File "/home/lubuntu2/cpython/Lib/unittest/", line 663 in run
  File "/home/lubuntu2/cpython/Lib/unittest/", line 725 in __call__
  File "/home/lubuntu2/cpython/Lib/unittest/", line 122 in run
  File "/home/lubuntu2/cpython/Lib/unittest/", line 84 in __call__
  File "/home/lubuntu2/cpython/Lib/unittest/", line 122 in run
  File "/home/lubuntu2/cpython/Lib/unittest/", line 84 in __call__
  File "/home/lubuntu2/cpython/Lib/unittest/", line 122 in run
  File "/home/lubuntu2/cpython/Lib/unittest/", line 84 in __call__
  File "/home/lubuntu2/cpython/Lib/test/support/", line 162 in run
  File "/home/lubuntu2/cpython/Lib/test/support/", line 1996 in _run_suite
  File "/home/lubuntu2/cpython/Lib/test/support/", line 2092 in run_unittest
  File "/home/lubuntu2/cpython/Lib/test/libregrtest/", line 209 in _test_module
  File "/home/lubuntu2/cpython/Lib/test/libregrtest/", line 234 in _runtest_inner2
  File "/home/lubuntu2/cpython/Lib/test/libregrtest/", line 270 in _runtest_inner
  File "/home/lubuntu2/cpython/Lib/test/libregrtest/", line 153 in _runtest
  File "/home/lubuntu2/cpython/Lib/test/libregrtest/", line 193 in runtest
  File "/home/lubuntu2/cpython/Lib/test/libregrtest/", line 409 in run_tests_sequential
  File "/home/lubuntu2/cpython/Lib/test/libregrtest/", line 507 in run_tests
  File "/home/lubuntu2/cpython/Lib/test/libregrtest/", line 674 in _main
  File "/home/lubuntu2/cpython/Lib/test/libregrtest/", line 628 in main
  File "/home/lubuntu2/cpython/Lib/test/libregrtest/", line 695 in main
  File "/home/lubuntu2/cpython/Lib/test/", line 2 in <module>
  File "/home/lubuntu2/cpython/Lib/", line 85 in _run_code
  File "/home/lubuntu2/cpython/Lib/", line 192 in _run_module_as_main
Aborted (core dumped)

It seems that this is because the PyObject_GetIter() call in _PyDictView_Intersect() is not checked for failure.
msg354216 - (view) Author: Dong-hee Na (corona10) * (Python committer) Date: 2019-10-08 14:53
Can you finalize the PR 16241 by adding the unit test which @serhiy.storchaka suggested?
msg354575 - (view) Author: Serhiy Storchaka (serhiy.storchaka) * (Python committer) Date: 2019-10-13 11:49
New changeset b16e382c446d76ede22780b15c75f43c5f132e25 by Serhiy Storchaka (Zackery Spytz) in branch 'master':
bpo-38202: Fix a crash in dict_view & non-itearble. (GH-16241)
Date User Action Args
2019-10-13 11:52:55serhiy.storchakasetstatus: open -> closed
resolution: fixed
stage: patch review -> resolved
2019-10-13 11:49:08serhiy.storchakasetnosy: + serhiy.storchaka
messages: + msg354575
2019-10-08 14:53:47corona10setnosy: + corona10
messages: + msg354216
2019-09-17 19:29:33ZackerySpytzsetkeywords: + patch
stage: patch review
pull_requests: + pull_request15838
2019-09-17 19:27:01ZackerySpytzcreate