sapling/eden/integration/snapshot
Wez Furlong 3bee7ea2cc fixup root cause of ESTALE
Summary:
Thanks to some bpf tracing by strager, we traced the ESTALE response to
`d_splice_alias` and noted this comment above the implementation in the kernel:

> If a non-IS_ROOT directory is found, the filesystem is corrupt, and
> we should error out: directories can't have multiple aliases.

Well, our magic `.eden` directory is a directory with aliases and we were
seeing the error trigger on that dir.  So, this diff replaces hardlinking
directories into each tree with a hardlink to a symlink in each tree!

At mount time we create `.eden/this-dir` as a symlink to `/abs/path/to/mount/.eden`
so that `readlink("/abs/path/to/mount/sub/dir/.eden/socket")` still
resolves as it did prior to this diff.

Reviewed By: strager

Differential Revision: D12954819

fbshipit-source-id: 7f3b1b53f2bd5b9c51e64055fc34110657a19110
2018-11-07 15:20:58 -08:00
..
types fixup root cause of ESTALE 2018-11-07 15:20:58 -08:00
gen_snapshot.py update gen_snapshot to use xz compression by default 2018-10-11 19:03:35 -07:00
snapshot.py add code to test saved snapshots 2018-10-31 12:10:27 -07:00
test_snapshots.py add code to test saved snapshots 2018-10-31 12:10:27 -07:00
verify.py add code to test saved snapshots 2018-10-31 12:10:27 -07:00