python / python/cpython

`test_compileall` failed in 2038 on 3.12 and 3.13

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

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

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

説明

Bug report

Bug description:

While working on reproducible builds for openSUSE (sponsored by the NLnet NGI0 fund), I found that
our python312 package fails to build when the build runs in a VM with
qemu-kvm -rtc base=2038-01-20T00:00:00

# Add a code block here, if required
 ======================================================================
 FAIL: test_import (test.test_compileall.HardlinkDedupTestsNoSourceEpoch.test_import)
 ----------------------------------------------------------------------
 Traceback (most recent call last):
   File "/home/abuild/rpmbuild/BUILD/Python-3.12.6/Lib/test/test_py_compile.py", line 22, in wrapper 
     return fxn(*args, **kwargs)
            ^^^^^^^^^^^^^^^^^^^^
   File "/home/abuild/rpmbuild/BUILD/Python-3.12.6/Lib/test/test_compileall.py", line 1114, in test_import
     self.assertFalse(is_hardlink(pycs[1], pycs[2]))
 AssertionError: True is not false

3.13 seems to not be affected by the issue in test_compileall.

The full log is at https://rb.zq1.de/other/python312-ftbfs2038.log.txt
(there are also some expiring SSL certs)

CPython versions tested on:

3.12

Operating systems tested on:

Linux

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

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

はじめの一歩

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

調査の方向性

Lib/test/test_compileall.py の 1114 行目付近にある test_import から始め、レポートに記載されている 2038 VM クロックを使って失敗を再現します。3.12 と 3.13 の動作を比較し、リンク先の build log を調べて hardlink の結果を確認します。報告された環境で影響を受ける compileall テストが通れば完了です。

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

評価

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

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

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