mirror of
https://github.com/facebook/sapling.git
synced 2024-10-10 00:45:18 +03:00
526088ef62
Summary: Implement the repair() logic for InodeDataError, MissingMaterializedInode, and OrphanInode. The most common errors we see after an unclean system reboot is an inode file not being present at all (`MissingMaterializedInode`), or it being present but empty (`InodeDataError`). When either of these errors occurs for a directory it also produces `OrphanInode` errors, as all of the children entries in the directory are no longer part of the directory hierarchy. This implements repair logic for these three error types. The repair behavior is largely similar to the Python version in `eden/cli/fsck.py`, with some minor changes to the output paths in the `lost+found/` repair directory. This also includes more unit test to better exercise handling when `InodeDataError` and `MissingMaterializedInode` errors occur inside an orphan subdirectory that needs to be extracted to `lost+found` Reviewed By: strager Differential Revision: D16577696 fbshipit-source-id: 948158c5a0c32b31574d93011281c42051645ad9 |
||
---|---|---|
.. | ||
test | ||
CMakeLists.txt | ||
eden_fsck.cpp | ||
FsOverlay.cpp | ||
FsOverlay.h | ||
overlay.thrift | ||
OverlayChecker.cpp | ||
OverlayChecker.h |