Skip to content

gh-148074: Fix typeobject.c missing error return#148075

Merged
kumaraditya303 merged 1 commit intopython:mainfrom
Wulian233:type
Apr 4, 2026
Merged

gh-148074: Fix typeobject.c missing error return#148075
kumaraditya303 merged 1 commit intopython:mainfrom
Wulian233:type

Conversation

@Wulian233
Copy link
Copy Markdown
Contributor

@Wulian233 Wulian233 commented Apr 4, 2026

At line 9314-9320, PyErr_Format sets a SystemError for invalid tp_dictoffset but falls through to return 0 (success). Type finishes initialization with invalid offset and pending exception. Requires C extension to trigger.

I think we can skip-news

@kumaraditya303 kumaraditya303 merged commit c398490 into python:main Apr 4, 2026
59 checks passed
@kumaraditya303 kumaraditya303 added the needs backport to 3.14 bugs and security fixes label Apr 4, 2026
@miss-islington-app
Copy link
Copy Markdown

Thanks @Wulian233 for the PR, and @kumaraditya303 for merging it 🌮🎉.. I'm working now to backport this PR to: 3.14.
🐍🍒⛏🤖

miss-islington pushed a commit to miss-islington/cpython that referenced this pull request Apr 4, 2026
…8075)

(cherry picked from commit c398490)

Co-authored-by: Wulian233 <1055917385@qq.com>
@bedevere-app
Copy link
Copy Markdown

bedevere-app bot commented Apr 4, 2026

GH-148095 is a backport of this pull request to the 3.14 branch.

@bedevere-app bedevere-app bot removed the needs backport to 3.14 bugs and security fixes label Apr 4, 2026
@bedevere-bot
Copy link
Copy Markdown

⚠️⚠️⚠️ Buildbot failure ⚠️⚠️⚠️

Hi! The buildbot AMD64 Debian root 3.x (tier-1) has failed when building commit c398490.

What do you need to do:

  1. Don't panic.
  2. Check the buildbot page in the devguide if you don't know what the buildbots are or how they work.
  3. Go to the page of the buildbot that failed (https://buildbot.python.org/#/builders/345/builds/13847) and take a look at the build logs.
  4. Check if the failure is related to this commit (c398490) or if it is a false positive.
  5. If the failure is related to this commit, please, reflect that on the issue and make a new Pull Request with a fix.

You can take a look at the buildbot page here:

https://buildbot.python.org/#/builders/345/builds/13847

Failed tests:

  • test_zipimport

Failed subtests:

  • testBoth - test.test_zipimport.UncompressedZipImportTestCase.testBoth
  • testGetCompiledSource - test.test_zipimport.UncompressedZipImportTestCase.testGetCompiledSource
  • testBoth - test.test_zipimport.DeflateCompressedZipImportTestCase.testBoth
  • testGetCompiledSource - test.test_zipimport.DeflateCompressedZipImportTestCase.testGetCompiledSource

Summary of the results of the build (if available):

==

Click to see traceback logs
Traceback (test.test_zipimport.UncompressedZipImportTestCase.testTraceback) ... ok


Traceback (most recent call last):
  File "/root/buildarea/3.x.angelico-debian-amd64/build/Lib/test/test_zipimport.py", line 801, in testGetCompiledSource
    self.doTest(pyc_ext, files, TESTMOD, call=self.assertModuleSource)
    ~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/root/buildarea/3.x.angelico-debian-amd64/build/Lib/test/test_zipimport.py", line 159, in doTest
    self.doTestWithPreBuiltZip(expected_ext, *modules, **kw)
    ~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/root/buildarea/3.x.angelico-debian-amd64/build/Lib/test/test_zipimport.py", line 173, in doTestWithPreBuiltZip
    self.assertEqual(file, os.path.join(zip_path,
    ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
                         *modules) + expected_ext)
                         ^^^^^^^^^^^^^^^^^^^^^^^^^
AssertionError: '/roo[47 chars]ld/test_python_761360æ/junk95142.zip/pre/fix/ziptestmodule.py' != '/roo[47 chars]ld/test_python_761360æ/junk95142.zip/pre/fix/ziptestmodule.pyc'
- /root/buildarea/3.x.angelico-debian-amd64/build/build/test_python_761360æ/junk95142.zip/pre/fix/ziptestmodule.py
+ /root/buildarea/3.x.angelico-debian-amd64/build/build/test_python_761360æ/junk95142.zip/pre/fix/ziptestmodule.pyc
?                                                                                                                 +


Traceback (test.test_zipimport.DeflateCompressedZipImportTestCase.testTraceback) ... ok


Traceback (test.test_zipimport.ZStdCompressedZipImportTestCase.testTraceback) ... skipped 'requires zstd'


Traceback (most recent call last):
  File "/root/buildarea/3.x.angelico-debian-amd64/build/Lib/test/test_zipimport.py", line 801, in testGetCompiledSource
    self.doTest(pyc_ext, files, TESTMOD, call=self.assertModuleSource)
    ~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/root/buildarea/3.x.angelico-debian-amd64/build/Lib/test/test_zipimport.py", line 159, in doTest
    self.doTestWithPreBuiltZip(expected_ext, *modules, **kw)
    ~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/root/buildarea/3.x.angelico-debian-amd64/build/Lib/test/test_zipimport.py", line 173, in doTestWithPreBuiltZip
    self.assertEqual(file, os.path.join(zip_path,
    ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
                         *modules) + expected_ext)
                         ^^^^^^^^^^^^^^^^^^^^^^^^^
AssertionError: '/roo[47 chars]ld/test_python_765254æ/junk95142.zip/pre/fix/ziptestmodule.py' != '/roo[47 chars]ld/test_python_765254æ/junk95142.zip/pre/fix/ziptestmodule.pyc'
- /root/buildarea/3.x.angelico-debian-amd64/build/build/test_python_765254æ/junk95142.zip/pre/fix/ziptestmodule.py
+ /root/buildarea/3.x.angelico-debian-amd64/build/build/test_python_765254æ/junk95142.zip/pre/fix/ziptestmodule.pyc
?                                                                                                                 +


Traceback (most recent call last):
  File "/root/buildarea/3.x.angelico-debian-amd64/build/Lib/test/test_zipimport.py", line 239, in testBoth
    self.doTest(pyc_ext, files, TESTMOD)
    ~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/root/buildarea/3.x.angelico-debian-amd64/build/Lib/test/test_zipimport.py", line 159, in doTest
    self.doTestWithPreBuiltZip(expected_ext, *modules, **kw)
    ~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/root/buildarea/3.x.angelico-debian-amd64/build/Lib/test/test_zipimport.py", line 173, in doTestWithPreBuiltZip
    self.assertEqual(file, os.path.join(zip_path,
    ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
                         *modules) + expected_ext)
                         ^^^^^^^^^^^^^^^^^^^^^^^^^
AssertionError: '/roo[47 chars]ld/test_python_765254æ/junk95142.zip/pre/fix/ziptestmodule.py' != '/roo[47 chars]ld/test_python_765254æ/junk95142.zip/pre/fix/ziptestmodule.pyc'
- /root/buildarea/3.x.angelico-debian-amd64/build/build/test_python_765254æ/junk95142.zip/pre/fix/ziptestmodule.py
+ /root/buildarea/3.x.angelico-debian-amd64/build/build/test_python_765254æ/junk95142.zip/pre/fix/ziptestmodule.pyc
?                                                                                                                 +


Traceback (most recent call last):
  File "/root/buildarea/3.x.angelico-debian-amd64/build/Lib/test/test_zipimport.py", line 239, in testBoth
    self.doTest(pyc_ext, files, TESTMOD)
    ~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/root/buildarea/3.x.angelico-debian-amd64/build/Lib/test/test_zipimport.py", line 159, in doTest
    self.doTestWithPreBuiltZip(expected_ext, *modules, **kw)
    ~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/root/buildarea/3.x.angelico-debian-amd64/build/Lib/test/test_zipimport.py", line 173, in doTestWithPreBuiltZip
    self.assertEqual(file, os.path.join(zip_path,
    ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
                         *modules) + expected_ext)
                         ^^^^^^^^^^^^^^^^^^^^^^^^^
AssertionError: '/roo[47 chars]ld/test_python_761360æ/junk95142.zip/pre/fix/ziptestmodule.py' != '/roo[47 chars]ld/test_python_761360æ/junk95142.zip/pre/fix/ziptestmodule.pyc'
- /root/buildarea/3.x.angelico-debian-amd64/build/build/test_python_761360æ/junk95142.zip/pre/fix/ziptestmodule.py
+ /root/buildarea/3.x.angelico-debian-amd64/build/build/test_python_761360æ/junk95142.zip/pre/fix/ziptestmodule.pyc
?                                                                                                                 +

kumaraditya303 pushed a commit that referenced this pull request Apr 4, 2026
…#148095)

gh-148074: Fix `typeobject.c` missing error return (GH-148075)
(cherry picked from commit c398490)

Co-authored-by: Wulian233 <1055917385@qq.com>
@Wulian233 Wulian233 deleted the type branch April 4, 2026 20:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants