python / python/mypy

`_PyType_Lookup: Assertion `!PyErr_Occurred()' failed.` in two `mypyc/test/test_run.py` tests

オープン
#16,043 コメント 1 件 リアクション 1 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

crash good-second-issue topic-mypyc
主要言語
Python
スター
20.6k
フォーク
3.3k
PR マージ指標
PR 指標を取得中

説明

Crash Report

When running the mypy test suite while CPython is built --with-assertions, the two following tests fail due to crashes inside the tests.

Traceback

============================================================== FAILURES ===============================================================
__________________________________________________ testI64GlueMethodsAndInheritance ___________________________________________________
[gw4] linux -- Python 3.11.5 /tmp/mypy/.tox/py311/bin/python
data: /tmp/mypy/mypyc/test-data/run-i64.test:1340:
Failed: Invalid output (/tmp/mypy/mypyc/test-data/run-i64.test, line 1340)
-------------------------------------------------------- Captured stdout call ---------------------------------------------------------

*** Exit status: -6
-------------------------------------------------------- Captured stderr call ---------------------------------------------------------
Expected:
Actual:
  python: Objects/typeobject.c:3823: _PyType_Lookup: Assertion `!PyErr_Occurred()' failed. (diff)

---------------------------------------------------------- Captured log call ----------------------------------------------------------
INFO     root:dist.py:985 running build_ext
INFO     root:build_ext.py:521 building 'native' extension
INFO     root:dir_util.py:71 creating build/temp.linux-x86_64-cpython-311
INFO     root:dir_util.py:71 creating build/temp.linux-x86_64-cpython-311/build
INFO     root:spawn.py:38 x86_64-pc-linux-gnu-gcc -Wsign-compare -fPIC -I/tmp/mypy/mypyc/lib-rt -I/tmp/mypy/.tox/py311/include -I/usr/include/python3.11 -c build/__native.c -o build/temp.linux-x86_64-cpython-311/build/__native.o -O0 -g1 -Werror -Wno-unused-function -Wno-unused-label -Wno-unreachable-code -Wno-unused-variable -Wno-unused-command-line-argument -Wno-unknown-warning-option -Wno-unused-but-set-variable -Wno-ignored-optimization-argument -Wno-cpp
INFO     root:dir_util.py:71 creating build/lib.linux-x86_64-cpython-311
INFO     root:spawn.py:38 x86_64-pc-linux-gnu-gcc -shared build/temp.linux-x86_64-cpython-311/build/__native.o -L/usr/lib64 -o build/lib.linux-x86_64-cpython-311/native.cpython-311-x86_64-linux-gnu.so
INFO     root:file_util.py:137 copying build/lib.linux-x86_64-cpython-311/native.cpython-311-x86_64-linux-gnu.so ->
____________________________________________________________ testFloatOps _____________________________________________________________
[gw4] linux -- Python 3.11.5 /tmp/mypy/.tox/py311/bin/python
data: /tmp/mypy/mypyc/test-data/run-floats.test:3:
Failed: Invalid output (/tmp/mypy/mypyc/test-data/run-floats.test, line 3)
-------------------------------------------------------- Captured stdout call ---------------------------------------------------------

*** Exit status: -6
-------------------------------------------------------- Captured stderr call ---------------------------------------------------------
Expected:
Actual:
  python: Objects/typeobject.c:3823: _PyType_Lookup: Assertion `!PyErr_Occurred()' failed. (diff)

---------------------------------------------------------- Captured log call ----------------------------------------------------------
INFO     root:dist.py:985 running build_ext
INFO     root:build_ext.py:521 building 'native' extension
INFO     root:dir_util.py:71 creating build/temp.linux-x86_64-cpython-311
INFO     root:dir_util.py:71 creating build/temp.linux-x86_64-cpython-311/build
INFO     root:spawn.py:38 x86_64-pc-linux-gnu-gcc -Wsign-compare -fPIC -I/tmp/mypy/mypyc/lib-rt -I/tmp/mypy/.tox/py311/include -I/usr/include/python3.11 -c build/__native.c -o build/temp.linux-x86_64-cpython-311/build/__native.o -O0 -g1 -Werror -Wno-unused-function -Wno-unused-label -Wno-unreachable-code -Wno-unused-variable -Wno-unused-command-line-argument -Wno-unknown-warning-option -Wno-unused-but-set-variable -Wno-ignored-optimization-argument -Wno-cpp
INFO     root:dir_util.py:71 creating build/lib.linux-x86_64-cpython-311
INFO     root:spawn.py:38 x86_64-pc-linux-gnu-gcc -shared build/temp.linux-x86_64-cpython-311/build/__native.o -L/usr/lib64 -o build/lib.linux-x86_64-cpython-311/native.cpython-311-x86_64-linux-gnu.so
INFO     root:file_util.py:137 copying build/lib.linux-x86_64-cpython-311/native.cpython-311-x86_64-linux-gnu.so ->
======================================================= short test summary info =======================================================
FAILED mypyc/test/test_run.py::TestRun::run-i64.test::testI64GlueMethodsAndInheritance
FAILED mypyc/test/test_run.py::TestRun::run-floats.test::testFloatOps
======================================== 2 failed, 376 passed, 2 xfailed in 164.00s (0:02:44) =========================================

To Reproduce

Build CPython with --with-assertions. Then run the test suite, e.g. via tox:

tox -e py311 -- mypyc/test/test_run.py

Your Environment

  • Mypy version used: 1.5.1; also reproduced with 4496a005a84f7daedc1ef2e801583127f5995f75
  • Python version used: 3.11.5; also reproduced with 3.10.13 and 3.12.0rc1
  • Operating system and version: Gentoo Linux amd64

コントリビューションガイド

コントリビューションガイドを開く

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

調査の方向性

mypyc/test/test_run.py と、mypyc/test-data/run-i64.test および run-floats.test の失敗するケースから始めます。--with-assertions を付けてビルドした CPython で tox -e py311 -- mypyc/test/test_run.py を実行して再現し、その後、クラッシュに関係する生成されたネイティブ拡張を追跡します。両方のテストが _PyType_Lookup assertion failure なしでパスすれば完了です。

索引モデルが issue の本文から書いたものです。

評価

技術スタック
c, python
領域
compilers, testing-qa
issue の種類
バグ
難易度
3/5
見積もり時間
1〜2日
活発さ
静か
明瞭さ
おおむね明確
初心者へのやさしさ
45/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。