Repository navigation
Open
Labels
OS-windowstestsTests in the Lib/test dirTests in the Lib/test dirtype-bugAn unexpected behavior, bug, or errorAn unexpected behavior, bug, or error
Description
Bug report
Bug description:
./python -m test -v test_os
======================================================================
FAIL: test_attributes (test.test_os.TestScandir.test_attributes)
----------------------------------------------------------------------
Traceback (most recent call last):
File "C:\Users\eclips4\programming\cpython\Lib\test\test_os.py", line 5040, in test_attributes
self.check_entry(entry, 'dir', True, False, False)
~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\eclips4\programming\cpython\Lib\test\test_os.py", line 5008, in check_entry
self.assert_stat_equal(entry.stat(),
~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^
entry_stat,
^^^^^^^^^^^
os.name == 'nt' and not is_symlink)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\eclips4\programming\cpython\Lib\test\test_os.py", line 4967, in assert_stat_equal
self.assertEqual(getattr(stat1, attr),
~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^
getattr(stat2, attr),
^^^^^^^^^^^^^^^^^^^^^
(stat1, stat2, attr))
^^^^^^^^^^^^^^^^^^^^^
AssertionError: 16 != 268435472 : (os.stat_result(st_mode=16895, st_ino=0, st_dev=0, st_nlink=0, st_uid=0, st_gid=0, st_size=0, st_atime=1730398311, st_mtime=1730398311, st_ctime=1730398311), os.stat_result(st_mode=16895, st_ino=5066549580979864, st_dev=2642700522657803134, st_nlink=1, st_uid=0, st_gid=0, st_size=0, st_atime=1730398311, st_mtime=1730398311, st_ctime=1730398311), 'st_file_attributes')
----------------------------------------------------------------------
Ran 367 tests in 16.254s
FAILED (failures=1, skipped=146)
test test_os failed
test_os failed (1 failure)
== Tests result: FAILURE ==
1 test failed:
test_os
Total duration: 21.1 sec
Total tests: run=367 failures=1 skipped=146
Total test files: run=1/1 failed=1
Result: FAILURECPython versions tested on:
CPython main branch
Operating systems tested on:
Windows
Linked PRs
Metadata
Metadata
Assignees
Labels
OS-windowstestsTests in the Lib/test dirTests in the Lib/test dirtype-bugAn unexpected behavior, bug, or errorAn unexpected behavior, bug, or error
Activity
zooba commentedon Oct 31, 2024
What's your exact OS build number? This function will have been affected by more recent Windows updates, though I've never seen this behaviour before.
Eclips4 commentedon Nov 1, 2024
Not that familiar with Windows so not sure what do you mean
FWIW, this is a Windows 11 which I downloaded two days ago. So, yes, this build should be pretty new.
zooba commentedon Nov 11, 2024
Okay, so I have the same build and it doesn't repro here, but I noticed that
268435472=0x10000010which is 16 plus an invalid bit. So my guess is that the API underlying the regularstat()call is not filtering out unknown bits and your file system is somehow deciding to return one.Not sure what the best approach here would be. There's a
FILE_ATTRIBUTE_VALID_FLAGSconstant but it changes with our build settings. Masking insidestatwould clear out the extra bit, but if it ever became meaningful then we'd need to update Python to see it. We can probably filter the test quite reasonably to mask with0x0000FFFFfirst (any actual use of this field should be checking for certain bits, so the extra one isn't an issue), so maybe that's good enough here?vstinner commentedon Mar 24, 2026
I can reproduce the issue on Windows 11 version 24H2 (
Windows-11-10.0.26100-SP0says theplatformmodule) on a NTFS filesystem.Example:
Output:
Or test_os failure:
[-]``test_os`` fails on Windows[/-][+]``test_os.test_attributes()`` fails on Windows[/+]vstinner commentedon Mar 24, 2026
I found multiple articles saying that
0x10000000means "directory" in "(DOS) file attribute" of NTFS:But this constant is not listed in File Attribute Constants documentation.
pythongh-126253: Add a Tests NEWS entry
Merge branch 'main' into pythongh-126253-test-os-file-attributes
hugovk commentedon Nov 4, 2026
This is now showing up on this tier 1 worker after a reboot:
(cc @zware)
There's a pending PR at #156305.