Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

JIT CI is broken due to test_pathlib and test_posixpath #118246

Closed
savannahostrowski opened this issue Apr 24, 2024 · 11 comments
Closed

JIT CI is broken due to test_pathlib and test_posixpath #118246

savannahostrowski opened this issue Apr 24, 2024 · 11 comments

Comments

@savannahostrowski
Copy link
Member

savannahostrowski commented Apr 24, 2024

Looks like something in emulation/QEMU changed and now test_pathlib and test_posixpath are causing the GHA workflow to fail for Linux Arm.

Linked PRs

@nineteendo
Copy link
Contributor

Can it not be fixed? Or can we skip certain tests?

@barneygale
Copy link
Contributor

Could you share a link to a failing GHA workflow please?

@brandtbucher
Copy link
Member

brandtbucher commented Apr 24, 2024

Can it not be fixed? Or can we skip certain tests?

Yeah, we could probably use the --ignorefile option and maintain a text file with a list of individual failures under emulation... any volunteers?

The current PR is a good stopgap though, just to get things passing on PRs (we already skip a bunch of tests, so adding these isn't a huge change).

@savannahostrowski
Copy link
Member Author

Yes, definitely - https://github.com/python/cpython/actions/runs/8820363755/job/24213816403

I'd like to spend time digging into the emulation failures but this is intended to provide fix in the meantime.

@nineteendo
Copy link
Contributor

======================================================================
FAIL: test_ismount (test.test_posixpath.PosixPathTest.test_ismount)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/runner/work/cpython/cpython/Lib/test/test_posixpath.py", line 215, in test_ismount
    self.assertIs(posixpath.ismount("/"), True)
    ~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AssertionError: False is not True

======================================================================
FAIL: test_is_mount_root (test.test_pathlib.test_pathlib.PathSubclassTest.test_is_mount_root)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/runner/work/cpython/cpython/Lib/test/test_pathlib/test_pathlib.py", line 1121, in test_is_mount_root
    self.assertTrue(R.is_mount())
    ~~~~~~~~~~~~~~~^^^^^^^^^^^^^^
AssertionError: False is not true

======================================================================
FAIL: test_is_mount_root (test.test_pathlib.test_pathlib.PathTest.test_is_mount_root)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/runner/work/cpython/cpython/Lib/test/test_pathlib/test_pathlib.py", line 1121, in test_is_mount_root
    self.assertTrue(R.is_mount())
    ~~~~~~~~~~~~~~~^^^^^^^^^^^^^^
AssertionError: False is not true

======================================================================
FAIL: test_is_mount_root (test.test_pathlib.test_pathlib.PosixPathTest.test_is_mount_root)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/runner/work/cpython/cpython/Lib/test/test_pathlib/test_pathlib.py", line 1121, in test_is_mount_root
    self.assertTrue(R.is_mount())
    ~~~~~~~~~~~~~~~^^^^^^^^^^^^^^
AssertionError: False is not true

@barneygale
Copy link
Contributor

Thanks for the link! It might have been aggravated by #117447 - perhaps under emulation, lstat('/') and lstat('/..') are returning different st_inos for some reason.

@brandtbucher
Copy link
Member

Ah, I missed that change. Thanks for digging into it.

@brandtbucher
Copy link
Member

Yeah, we could probably use the --ignorefile option and maintain a text file with a list of individual failures under emulation... any volunteers?

GH-118251

@brandtbucher
Copy link
Member

brandtbucher commented Apr 24, 2024

@barneygale, is this something that you think is worth fixing in os.path.ismount? I don't think Python technically supports emulated environments, so it's not worth reverting any speed improvement or whatever.

@barneygale
Copy link
Contributor

barneygale commented Apr 24, 2024

POSIX says:

The special filename dot-dot shall refer to the parent directory of its predecessor directory. As a special case, in the root directory, dot-dot may refer to the root directory itself.

I think / and /.. always refer to the same directory in practice, and os.path.ismount() uses that fact to detect the root directory. In all other cases, joining .. onto a path and calling lstat() will produce a different stat result. This all seems quite reasonable to me -- I'm not sure if there's anything to fix in ismount().

@brandtbucher
Copy link
Member

This is done, then!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants