python / python/cpython

3.15.0b2, openSUSE/Factory, i586: failing test: test_c_stack_unwind (specifically test_manual_unwind_finds_expected_frames)

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

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

tests type-bug
主要言語
Python
スター
77.2k
フォーク
35.9k
PR マージ指標
PR 指標を取得中

説明

Bug report

Bug description:

As a followup to https://github.com/python/cpython/issues/151040 I am creating this separate ticket for i586. The traceback is exactly the same:

[ 3208s]   test_manual_unwind_finds_expected_frames (test.test_c_stack_unwind.ManualStackUnwindTests.test_manual_unwind_finds_expected_frames) (env={'PYTHON_JIT': '0'}) ... FAIL
[ 3208s] 
[ 3208s] ======================================================================
[ 3208s] FAIL: test_manual_unwind_finds_expected_frames (test.test_c_stack_unwind.ManualStackUnwindTests.test_manual_unwind_finds_expected_frames) (env={'PYTHON_JIT': '0'})
[ 3208s] ----------------------------------------------------------------------
[ 3208s] Traceback (most recent call last):
[ 3208s]   File "/home/abuild/rpmbuild/BUILD/python315-3.15.0_b2-build/Python-3.15.0b2/Lib/test/test_c_stack_unwind.py", line 285, in test_manual_unwind_finds_expected_frames
[ 3208s]     self.assertGreaterEqual(
[ 3208s]     ~~~~~~~~~~~~~~~~~~~~~~~^
[ 3208s]         python_frames,
[ 3208s]         ^^^^^^^^^^^^^^
[ 3208s]         STACK_DEPTH,
[ 3208s]         ^^^^^^^^^^^^
[ 3208s]         f"expected to find Python frames on {self.machine} with env {env}",
[ 3208s]         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[ 3208s]     )
[ 3208s]     ^
[ 3208s] AssertionError: 1 not greater than or equal to 10 : expected to find Python frames on i686 with env {'PYTHON_JIT': '0'}
[ 3208s] 
[ 3208s] ----------------------------------------------------------------------
[ 3208s] Ran 1 test in 0.276s
[ 3208s] 
[ 3208s] FAILED (failures=1)

Build log shows all used packages and steps required to be taken. The repository with the package source is https://src.opensuse.org/python-interpreters/python315

@vstinner on the other ticket commented:

That's a different architecture. If you care, you should open a separated issue for i586. You pass explicitly -fomit-frame-pointer which goes against PEP 831 (approved in Python 3.15).

Yes, we have -fomit-frame-pointer specifically for i586 architecture.

CPython versions tested on:

3.15

Operating systems tested on:

Linux

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

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

はじめの一歩

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

調査の方向性

Lib/test/test_c_stack_unwind.pyから始め、特に285行目付近のManualStackUnwindTests.test_manual_unwind_finds_expected_framesに注目し、openSUSE python315 package buildを使ってi586上で失敗を再現してください。PEP 831との関連で、ビルドログと明示的な-fomit-frame-pointer設定を調査してください。i586上で失敗しているテストが安定して成功するか、またはプラットフォームの制限が適切なテスト結果とともに文書化されれば完了です。

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

評価

技術スタック
linux, python
領域
operating-systems, testing-qa
issue の種類
バグ
難易度
4/5
見積もり時間
3〜5日
活発さ
静か
明瞭さ
説明が足りない
初心者へのやさしさ
45/100

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

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