GeezerVisonThe World Wide Web, restored to 800 pixels of glory. |
| Home|About|Gaming cabinet|Archives|How it works|Starter sites |
GeezerVison is showing github.com — 3.15.0b2 test_shutil failure on FreeBSD in a "poudriere jail" mounted atop ZFS file system · Issue #150984 · python/cpython Open Labels OS-freebsdtestsTests in the Lib/test dirTests in the Lib/test dirtype-bugAn unexpected behavior, bug, or errorAn unexpected behavior, bug, or error DescriptionBug reportBug description:Greetings, building Python 3.15.0b2 (beta 2) on FreeBSD in a poudriere jail mounted atop a ZFS file system, where poudriere is the tool that FreeBSD uses for package building, and a jail is a stricter companion of a chroot, we get this It is not clear to me why a jail or how poudriere mounts the underlying filesystem would NOT support UF_OPAQUE because outside poudriere (albeit on a different minor version of the operating system), I don't get OSError [Errno 45] exceptions on the same test. As suggested in #150982, I am wondering whether it would be useful to map this particular errno ( This is the test with offending lines marked with python comments in three (3) places, def test_move_dir_permission_denied(self): # bpo-42782: shutil.move should not create destination directories # if the source directory cannot be removed. try: os.mkdir(TESTFN_SRC) os.lchflags(TESTFN_SRC, stat.SF_IMMUTABLE) # Testing on an empty immutable directory # TESTFN_DST should not exist if shutil.move failed self.assertRaises(PermissionError, shutil.move, TESTFN_SRC, TESTFN_DST) self.assertFalse(TESTFN_DST in os.listdir()) # Create a file and keep the directory immutable os.lchflags(TESTFN_SRC, stat.UF_OPAQUE) # <-- offender #1 os_helper.create_empty_file(os.path.join(TESTFN_SRC, 'child')) os.lchflags(TESTFN_SRC, stat.SF_IMMUTABLE) # Testing on a non-empty immutable directory # TESTFN_DST should not exist if shutil.move failed self.assertRaises(PermissionError, shutil.move, TESTFN_SRC, TESTFN_DST) self.assertFalse(TESTFN_DST in os.listdir()) finally: if os.path.exists(TESTFN_SRC): os.lchflags(TESTFN_SRC, stat.UF_OPAQUE) # <-- offender #2 os_helper.rmtree(TESTFN_SRC) if os.path.exists(TESTFN_DST): os.lchflags(TESTFN_DST, stat.UF_OPAQUE) # <-- not reached, but would be offender #3. os_helper.rmtree(TESTFN_DST) CPython versions tested on:3.15 Operating systems tested on:Other Activity
MetadataMetadataAssigneesLabelsOS-freebsdtestsTests in the Lib/test dirTests in the Lib/test dirtype-bugAn unexpected behavior, bug, or errorAn unexpected behavior, bug, or error ProjectsMilestoneRelationshipsDevelopmentIssue actions |
| You are visitor 01402503 — GeezerVison does not store the pages you look up. Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required. |