mirror of
https://github.com/facebook/sapling.git
synced 2024-10-10 00:45:18 +03:00
053d17f877
Summary: Somehow, rmtree can fail to open the file being removed, in which case the function is `os.open` that requires a flag on top of the path. When that happens a `TypeError` will be raised: ``` ✗ Fail: eden/integration:integration - test_eden_start_fails_if_edenfs_fails_during_startup (eden.integration.start_test.StartFakeEdenFSTestSystemdEdenCLI) (4.363) Test output: > TypeError: open() missing required argument 'flags' (pos 2) File "/usr/local/fbcode/platform009/lib/python3.8/unittest/case.py", line 60, in testPartExecutor yield File "/usr/local/fbcode/platform009/lib/python3.8/unittest/case.py", line 717, in doCleanups self._callCleanup(function, *args, **kwargs) File "/usr/local/fbcode/platform009/lib/python3.8/unittest/async_case.py", line 72, in _callCleanup self._callMaybeAsync(function, *args, **kwargs) File "/usr/local/fbcode/platform009/lib/python3.8/unittest/async_case.py", line 84, in _callMaybeAsync ret = func(*args, **kwargs) File "/usr/local/fbcode/platform009/lib/python3.8/contextlib.py", line 533, in close self.__exit__(None, None, None) File "/usr/local/fbcode/platform009/lib/python3.8/contextlib.py", line 525, in __exit__ raise exc_details[1] File "/usr/local/fbcode/platform009/lib/python3.8/contextlib.py", line 510, in __exit__ if cb(*exc_details): File "/data/users/xavierd/fbsource/fbcode/buck-out/dev/gen/aab7ed39/eden/integration/integration#binary,link-tree/eden/test_support/temporary_directory.py", line 104, in __exit__ self.cleanup(exc_type is not None) File "/data/users/xavierd/fbsource/fbcode/buck-out/dev/gen/aab7ed39/eden/integration/integration#binary,link-tree/eden/test_support/temporary_directory.py", line 117, in cleanup cleanup_tmp_dir(temp_dir) File "/data/users/xavierd/fbsource/fbcode/buck-out/dev/gen/aab7ed39/eden/integration/integration#binary,link-tree/eden/test_support/temporary_directory.py", line 71, in cleanup_tmp_dir shutil.rmtree(tmp_dir, onerror=_remove_readonly) File "/usr/local/fbcode/platform009/lib/python3.8/shutil.py", line 715, in rmtree _rmtree_safe_fd(fd, path, onerror) File "/usr/local/fbcode/platform009/lib/python3.8/shutil.py", line 652, in _rmtree_safe_fd _rmtree_safe_fd(dirfd, fullname, onerror) File "/usr/local/fbcode/platform009/lib/python3.8/shutil.py", line 652, in _rmtree_safe_fd _rmtree_safe_fd(dirfd, fullname, onerror) File "/usr/local/fbcode/platform009/lib/python3.8/shutil.py", line 652, in _rmtree_safe_fd _rmtree_safe_fd(dirfd, fullname, onerror) File "/usr/local/fbcode/platform009/lib/python3.8/shutil.py", line 648, in _rmtree_safe_fd onerror(os.open, fullname, sys.exc_info()) File "/data/users/xavierd/fbsource/fbcode/buck-out/dev/gen/aab7ed39/eden/integration/integration#binary,link-tree/eden/test_support/temporary_directory.py", line 66, in _remove_readonly func(path) ``` To bypass this, let's simply test if the function is os.unlink or os.rmdir first. Reviewed By: chadaustin Differential Revision: D27654126 fbshipit-source-id: 318c547f363c020e98e21d5f07a9c7a9b2e5102d |
||
---|---|---|
.. | ||
async_case_backport.py | ||
CMakeLists.txt | ||
environment_variable.py | ||
temporary_directory.py | ||
testcase.py |