Commit Graph

72557 Commits

Author SHA1 Message Date
Xavier Deguillard
fe7cc8b0a9 pathfuncs: remove boost::filesystem exported dependency
Summary:
The PathFuncs.h header is included pretty much everywhere in EdenFS, and thus
its compile speed affects the entirety of EdenFS. Unfortunately, the
boost::filesystem dependency is pretty large and is thus slowing down the
compilation.

Since the few methods that rely on Boost are only used in one place, let's
instead inline the use of Boost in these places.

Reviewed By: chadaustin, fanzeyi

Differential Revision: D35058316

fbshipit-source-id: b80a39f1575acc0fa4b9e64eb5375b95b4b421da
2022-03-22 15:48:40 -07:00
svcscm svcscm
72828e023b Updating submodules
Summary:
GitHub commits:

d49da94051
f2d248280a
3c8d51437b
d789423885
0b17457616
f532f99d7d
eeac439d71
a08e3b2e3c
662d0dc585
5dc3980585

Reviewed By: yns88

fbshipit-source-id: c8edb07ada8bddd8049ea87d21e6a540ed372935
2022-03-22 15:28:21 -07:00
Simon Farnsworth
b74765ed8c Add an integration test for mutable renames admin
Summary: Untested code breaks silently. Tested code also breaks, but we get to know exactly when it happens.

Reviewed By: yancouto

Differential Revision: D34899023

fbshipit-source-id: b50fd4ff1c75853bdd3dae443160d8f630fdb5be
2022-03-22 15:06:31 -07:00
Simon Farnsworth
0252fc6140 Teach testtool drawdag to create copy information
Summary: For mutable renames tests, I'll need copy-from commits. Make drawdag generate them, because it's awesome to not have to run a sequence of Mercurial commands

Reviewed By: Croohand

Differential Revision: D34898156

fbshipit-source-id: f5e73fca63ae391d934b73da6cd3680179b4cd34
2022-03-22 15:06:31 -07:00
Simon Farnsworth
256b17e84f Mutable renames admin should pick up immutable renames automatically
Summary: When you add a new mutable renames entry to a commit, we should copy over immutable renames automatically, then override with the newly added one.

Reviewed By: Croohand

Differential Revision: D34893586

fbshipit-source-id: cde687a1e84979f2a57ced4d9e57f0de918d30cc
2022-03-22 15:06:31 -07:00
Simon Farnsworth
cac93c89e6 Mutable renames admin tool copy_immutable information
Summary:
For commits using mutable renames, we don't inspect immutable renames.

Make it possible to copy immutable renames to mutable renames, overwriting any overlapping mutable renames

Reviewed By: Croohand

Differential Revision: D34893588

fbshipit-source-id: 8fde522852b9390be7593ec8f29c36357bcf34de
2022-03-22 15:06:31 -07:00
Simon Farnsworth
56417247f1 Mutable renames admin tool add operation
Summary: Make it easy to add mutable renames by admin intervention. This does recursion into subdirectories automatically, so that one command can be used to add mutable renames markers for an entire directory tree.

Reviewed By: Croohand

Differential Revision: D34893587

fbshipit-source-id: e126bbcc507ec0bdb366f6b9caa90fdff64c602d
2022-03-22 15:06:31 -07:00
svcscm svcscm
45b68b8281 Updating submodules
Summary:
GitHub commits:

83159cb300
bc517573ca
7956daeeec
5f3d5b8e83

Reviewed By: yns88

fbshipit-source-id: c206542d859936d5b7a08c184d45de8c13018601
2022-03-22 14:47:53 -07:00
svcscm svcscm
a467d3bdc3 Updating submodules
Summary:
GitHub commits:

9bc30a1c3b
ccc54977df
49f5f8e79d
85b7f6ff2e
048817c25a
ad591775f8

Reviewed By: yns88

fbshipit-source-id: 237012c8877fb23d38ede1ad4c0d346b1c8f936e
2022-03-22 14:09:05 -07:00
svcscm svcscm
3804437ab7 Updating submodules
Summary:
GitHub commits:

e15277b855
89094b4d91
8ffd5cf0ad
ed22837770
572d4c3f01
4322b381bb

Reviewed By: yns88

fbshipit-source-id: d4e29e69764d7784ed6b18141d5389ef48dc3bc0
2022-03-22 13:29:59 -07:00
Durham Goode
21a3444dbf backingstore: add option to disable retries
Summary:
EdenFS doesn't want to use retries while it has the hg import
fallback. Let's allow disabling them. Once there is a config that controls the hg
import fallback, we can enable retries when the fallback is disabled.

Reviewed By: xavierd

Differential Revision: D35020586

fbshipit-source-id: d51d7fb70d2627e55c1170f130c548d7b14a8e6e
2022-03-22 13:23:44 -07:00
Rajiv Sharma
6cbc0b6a9a Fix for enumeration faults in Prefix and Manifold Blobstore
Summary:
The diff includes the following key changes:
- Bounded the range of keys for enumeration in `PrefixBlobstore` by prepending the `prefix` for both empty and non-empty keys.
- In case of empty `end` keys, added `prefix + ascii_end_character` for limiting the search results to the prefixed namespace.
- Fixed enumeration in `ManifoldBlobstore` by expanding the struct definition to include a user-specified `directory`. In case of `None`, the `flat` directory (i.e. no directory) is used.
- The input keys for `get`, `put`, `is_present`, `copy` and `unlink` are now first qualified with the directory path before being used for the relevant operations in Manifold and ThriftManifold blobstores.
- Updated `ManifoldBlobstore` and `ThriftManifoldBlobstore` creation sites to explicitly pass the directory or `None`.

Reviewed By: farnz

Differential Revision: D34996443

fbshipit-source-id: d7b7a7d034b3cce15f64472a08f415494fda2746
2022-03-22 13:14:02 -07:00
svcscm svcscm
0ec1f97599 Updating submodules
Summary:
GitHub commits:

77d8c5205e
5b80d6569a
22e46204f6
d23feb3118
577d312a3e
182c38f7b2
bf65d0c3a0
3887a2ab12
f5906c46c9

Reviewed By: yns88

fbshipit-source-id: 08a73d77ea5bf2f4141a3b5d2a43b33942fbe907
2022-03-22 12:49:45 -07:00
svcscm svcscm
37d65e7cf0 Updating submodules
Summary:
GitHub commits:

1a9deb2cfe
d37ecbc7af
a209abf3ab
2d395aa9ce
63a284a6ad
d1649dec3c
a43cbb61a1
9659d22cf3
0d482aba5f
ccfd1c050f
bea0b7f7c7
ab15218801
ccf2ff238c
a13a4e90f3

Reviewed By: yns88

fbshipit-source-id: 82ef6824b59adc3d98fee0e86302df43ae54a565
2022-03-22 12:03:37 -07:00
CodemodService Bot
80ad557049 Daily common/rust/cargo_from_buck/bin/autocargo
Reviewed By: farnz

Differential Revision: D34985268

fbshipit-source-id: 6fb2bff9117b08600c09f5bf1b5c846459d9ea23
2022-03-22 10:44:48 -07:00
Harvey Hunt
eae6286b34 mononoke: tests: Fix flaky LFS server test
Summary:
I got a task about a flaky LFS server test being disabled. The failure
was easy to reproduce when running 10 concurrent tests in opt mode.

The test was verifying that the LFS server will fetch content from its own
internal store if the upstream server (in this case netcat that sleeps for a
second) is slow to respond.

The flakiness was because sometimes the upstream server was quicker to respond
than checking our own internal store.

After some debugging, I found that this was because the server was failing to
lookup the name of the upstream. This meant that the test was comparing whether
it was faster to fail a DNS lookup compared to checking internal storage for
content.

```
+  V0322 12:39:45.061522 2262733 [tk] eden/mononoke/lfs_server/src/batch.rs:151] upstream_objects, request_id: 5afbf
+  V0322 12:39:45.061622 2262733 [tk] eden/mononoke/lfs_server/src/batch.rs:161] upstream_objects pre res, request_id: 5afbf
+  V0322 12:39:45.061681 2262733 [tk] eden/mononoke/lfs_server/src/lfs_server_context.rs:378] upstream: http://:48155/objects/batch, request_id: 5afbf
+  V0322 12:39:45.061839 2262733 [tk] eden/mononoke/lfs_server/src/batch.rs:301] internal_objects, request_id: 5afbf
+  V0322 12:39:45.062321 2262733 [tk] eden/mononoke/lfs_server/src/batch.rs:571] batch: internal ready, request_id: 5afbf
+  V0322 12:39:45.062728 2262733 [tk] eden/mononoke/lfs_server/src/batch.rs:163] upstream_objects: res: Err(UpstreamBatchNoResponse(An error occurred forwarding the request to upstream
+
+  Caused by:
+      0: error trying to connect: dns error: failed to lookup address information: Name or service not known
+      1: dns error: failed to lookup address information: Name or service not known
+      2: failed to lookup address information: Name or service not known)), request_id: 5afbf
+  V0322 12:39:45.062896 2262733 [tk] eden/mononoke/lfs_server/src/batch.rs:589] batch: upstream ready, request_id: 5afbf
```

This change was introduced in D34923381 (acb8e3725a), which updated `${LOCALIP}` to
`${mononoke_host}`. However, `LOCALIP` is a variable name whilst
`mononoke_host` is a function name. Update the syntax to reflect this.

Reviewed By: mzr

Differential Revision: D35046184

fbshipit-source-id: 5ec9c29e2e9e8658ddabe29c755debdfb3a49938
2022-03-22 10:29:14 -07:00
Xavier Deguillard
791417c61a prjfs: remove the dependency on RCU
Summary:
Our use of RCU is fundamentally incompatible with N4895 since it allows a read
section to be entered in one thread and closed in another one. We use this
feature in Prjfs to prevent a mount to be unmounted while requests are ongoing
on it.

Let's instead make use of a folly::AtomicReadMostlyMainPtr which is equivalent
to a folly::Synchronized<std::shared_ptr<>> without requiring as many atomics
in the read path.

Reviewed By: Decave

Differential Revision: D34982722

fbshipit-source-id: 299f25fc8c8aa72fb89cc9fc880860780ea0517d
2022-03-22 10:08:32 -07:00
Javier Honduvilla Coto
5fc08c4048 Bump nix crate from 0.22 => 0.23
Summary:
Updating to be able to use  `pwritev` and `preadv`.

- Followed [the documentation on how to update crates](https://www.internalfb.com/intern/wiki/Rust-at-facebook/Managing_fbsource_third-party_with_Reindeer/).
- These are all the changes between our current version and the updated one: https://github.com/nix-rust/nix/compare/v0.22.0..v0.23.1. See `CHANGELOG.md` for the most significant changes in this version.

Let me know if I missed anything, this is my first crate upgrade!

Reviewed By: jsgf

Differential Revision: D34820818

fbshipit-source-id: 89f59a759bf042112e7d48612a345a8164dc7176
2022-03-22 09:26:52 -07:00
Daniel Rolf
36d2db21dc migrate blobstore_healer to new CLI framework
Summary: Migrate blobstore_healer tool (which we use to continuously verify if all our underlying storages agree about contents of blobs and fix any discrepancies) to new framework.

Reviewed By: mitrandir77

Differential Revision: D34859855

fbshipit-source-id: 5814fd275f22113689afe25b55c28a9d5b062551
2022-03-22 05:15:27 -07:00
svcscm svcscm
42722fef1f Updating submodules
Summary:
GitHub commits:

e66a3bda56
e8fd5a0d2a
d4d3027579
df1a1d83ca

Reviewed By: yns88

fbshipit-source-id: 3d552f048f844db4355d3db1fcbdb695ee746097
2022-03-22 03:31:06 -07:00
svcscm svcscm
46a7c5be8e Updating submodules
Summary:
GitHub commits:

dd8a1a7c21

Reviewed By: yns88

fbshipit-source-id: 77869c34a31be3aa3213b176aff6f5dab3488318
2022-03-22 03:00:49 -07:00
svcscm svcscm
cf2e9b854a Updating submodules
Summary:
GitHub commits:

0300175721
18425e2201
2725de0e8a
e16c563027

Reviewed By: yns88

fbshipit-source-id: f135de93e2cdf0b6b21fee3576d1e8b33fb511f0
2022-03-22 02:00:08 -07:00
svcscm svcscm
0f571bcc53 Updating submodules
Summary:
GitHub commits:

b0be9e634c
ce3479355b
812f8e4eb9
94b9ac4c59
00b38f7532

Reviewed By: yns88

fbshipit-source-id: d09fb1d8cc8b6a6f8e07d9f7b7663d1565c42cd9
2022-03-22 01:30:37 -07:00
svcscm svcscm
7203ecb9d1 Updating submodules
Summary:
GitHub commits:

2f5cec2c2e
11f2930e67
7f7d58e777
a704306742
28c1d8e672
513741544f
4b94717391

Reviewed By: yns88

fbshipit-source-id: ed7bbe5b4d3b33bb1388f93d8cde66660980093a
2022-03-22 01:02:10 -07:00
svcscm svcscm
40717b35a0 Updating submodules
Summary:
GitHub commits:

0b0c0584b4
296079e332
ee78413a12
ad1537d343
ef7249113e
075a8f4f56
ccfeb9cb5f
539613ced2
c4d1c43f59

Reviewed By: yns88

fbshipit-source-id: 3a92ea56b604b6725756c40424ac699c6772a1cb
2022-03-22 00:01:04 -07:00
svcscm svcscm
f9f06f0324 Updating submodules
Summary:
GitHub commits:

c239e16c5a
c912d04fc1
f3931ba994
dea7eeee58
1b842617f5
9208564aa1
e296c44352
df83c2ddae
dd1fc50a8d
8dc0366b02
69b7e34715

Reviewed By: yns88

fbshipit-source-id: 804eda6866e2913ea61d4c1010255a0cf0d4d302
2022-03-21 23:29:55 -07:00
svcscm svcscm
304f1c1014 Updating submodules
Summary:
GitHub commits:

5878e18f9b
f15d9b9960
d7ab85cc91
f374628301
0f2b64b713
43aeab0936
a27e4c0a96
1e45f4334a

Reviewed By: yns88

fbshipit-source-id: 39256a64c412867a86794ebb441cafe11d278784
2022-03-21 23:09:01 -07:00
svcscm svcscm
98a1f15fab Updating submodules
Summary:
GitHub commits:

050daa144b

Reviewed By: yns88

fbshipit-source-id: a3686e02796a06f2d73a406d687e92a4540a1a9e
2022-03-21 21:49:46 -07:00
svcscm svcscm
fc28571e30 Updating submodules
Summary:
GitHub commits:

20b9ffbdbb
13b542f2fa
f738a01e41
861feb35fd

Reviewed By: yns88

fbshipit-source-id: a529081d987b62a3b757e1af66c2bcf3663fce1b
2022-03-21 21:18:31 -07:00
svcscm svcscm
317a2901a0 Updating submodules
Summary:
GitHub commits:

79bf952d71
b360d25deb
8752205fb3
b12fc25ea1

Reviewed By: yns88

fbshipit-source-id: a33d52c128816667987d5cf12b8608c07b8666f6
2022-03-21 20:47:11 -07:00
svcscm svcscm
2a32b0544d Updating submodules
Summary:
GitHub commits:

a1c190a3fb
1838cd33e9
1ca1562e35
759b674f1d
e78cd0061f

Reviewed By: yns88

fbshipit-source-id: 1f22ef0c9a2fb6c41d3166b6aeff6ea5254aad51
2022-03-21 18:15:19 -07:00
svcscm svcscm
546ea9fe0f Updating submodules
Summary:
GitHub commits:

516092619e
c65ab540b0
4fb791e2d7
b906190576
0b4861ceaa
00334903fd

Reviewed By: yns88

fbshipit-source-id: 0db903496b80622a0501c8d5a4f19a2e537b1c2d
2022-03-21 17:46:06 -07:00
svcscm svcscm
5214a0181f Updating submodules
Summary:
GitHub commits:

498fa9bd7a
7177e9601d
598dc25074
cb4d188a34
d34babbfe0
591eca9e38
859b848351

Reviewed By: yns88

fbshipit-source-id: a05680d6905d901efd11527c5e8ee3374cfa9218
2022-03-21 16:57:04 -07:00
Xavier Deguillard
0ba73261e2 checkout: move TreeInode deletion to the parent
Summary:
On Windows, some users have experienced hangs during checkout, and their
backtraces points to a directory invalidation being run in the server state
thread pool. Most of these have been moved to a background thread in D33773892 (67e6d48b0d)
but one was missed: when removing an empty directory, a directory invalidation
is done in a blocking manner.

To fix this, this diff moves the location of where this removal is happening,
from the post checkout step, to the parent inode. This avoids having to make
the removal method async.

Reviewed By: fanzeyi

Differential Revision: D34930808

fbshipit-source-id: 76762dab5a8143ef37ca49cb6386e6df73e47d9f
2022-03-21 16:52:11 -07:00
Lei Shi
25f5149661 Version changes required for adding solana-client crate
Summary:
In order to add solana-client = "1.9.5" to third-party crates in fbcode, we need to update the versions of following crates.

- sha2
- zstd related including zstd, zstd-sys, zstd-safe

Next step is to add solana-client.

Reviewed By: wqfish

Differential Revision: D34648217

fbshipit-source-id: 719e499d9fbb4fd35624f3b9c46ffc6dfc94576d
2022-03-21 15:58:16 -07:00
Mateusz Kwapich
cbedcb5ddd add config-driven announcements visible during pull
Summary:
Sometimes we need to make a loud announcement to all users of a given repo.
(For example to tell them that their repo will go away soon). This allows us to
do it without further code changes.

Reviewed By: farnz

Differential Revision: D34934883

fbshipit-source-id: 771ee0c32d3435650a872efb7191350fdb40d12d
2022-03-21 15:55:49 -07:00
svcscm svcscm
6e6255535d Updating submodules
Summary:
GitHub commits:

a08d54320b

Reviewed By: yns88

fbshipit-source-id: fe66ea84dd88e7d99933b3df03783ff35efa0dd0
2022-03-21 15:47:31 -07:00
Rajiv Sharma
06ebc4e017 Added DeletionMode + Ephemeral Store NewAdmin command outline
Summary:
Key changes in this diff include:
- Introduced the `ephemeral_store` new admin command for working with data stored within bubbles (snapshots for now).
- Implemented the outline for `list`, `cleanup` and `info` subcommands within `ephemeral_store`.
- Added deletion checks based on `BubbleDeletionMode` configuration flag within `ephemeral_store`.

Reviewed By: yancouto

Differential Revision: D34936192

fbshipit-source-id: 4f0b1f759112585ad165332e141687be0c39cedd
2022-03-21 15:37:30 -07:00
svcscm svcscm
d7b25216ee Updating submodules
Summary:
GitHub commits:

a938f40702
69b0a45614
7574d6871e
5e1869e309

Reviewed By: yns88

fbshipit-source-id: 86960a218ff2b03ecb7964cb5d9e0cd2e0d50ec0
2022-03-21 15:19:19 -07:00
svcscm svcscm
2c17eeef15 Updating submodules
Summary:
GitHub commits:

18ee2e73ea
ec1f75e255
d46eefdf79
a3976995ba
870d5ef900

Reviewed By: yns88

fbshipit-source-id: 828a76b50401f3867fe844a4e4a2fce77214b4ef
2022-03-21 14:47:11 -07:00
svcscm svcscm
10019ba167 Updating submodules
Summary:
GitHub commits:

fb80ee8d0b

Reviewed By: yns88

fbshipit-source-id: 31344c1249ca59286d917ee2a298e1cbcebe86d8
2022-03-21 14:07:57 -07:00
Muir Manders
db16c4c6f9 rust: fix a couple warnings
Summary: Fix an unused import and an unused arg warning.

Reviewed By: quark-zju

Differential Revision: D35011289

fbshipit-source-id: adc33c5019943d5ef70f95b1c7e6f285f301231a
2022-03-21 14:07:12 -07:00
Muir Manders
0b3cab0312 edenapi: add url to HttpError info
Summary: Add the requested URL to the HttpError details. This makes it clear what was being requested when we got an unexpected HTTP response.

Reviewed By: DurhamG

Differential Revision: D34907302

fbshipit-source-id: 18a7da77038b6c8acd1933465a31f5744ed4d8fc
2022-03-21 14:05:26 -07:00
svcscm svcscm
c509b217a5 Updating submodules
Summary:
GitHub commits:

7ec52c681b
895106a6d3
02ffad8daa
4e49d63b07
b5c0e483f2

Reviewed By: yns88

fbshipit-source-id: b694954655309bfb4125660b76792eb0fb6d2840
2022-03-21 13:34:36 -07:00
Geoff Oakham
691c52d3db x2p get_env return an enum in rust
Summary: Enums in rust are one of the ways the Rust compiler checks for edge cases, so I'd love to use them in my code.

Reviewed By: dalyadickstein

Differential Revision: D34932071

fbshipit-source-id: 4e5fd23d34e462f9e5a533c917704ace1afe99e1
2022-03-21 13:28:39 -07:00
svcscm svcscm
9ae1c7fedc Updating submodules
Summary:
GitHub commits:

93a292ddcd
bd8bb8edcc
cbe303c19b
6bdfc24aab
a0096fd843
01d19ccf2e
3e93225c92
4d4c909f50

Reviewed By: yns88

fbshipit-source-id: f6708ac7be3439b3fd9e5b66fb808c968e8d8109
2022-03-21 13:01:27 -07:00
Katie Mancini
ee29930b55 log parsing errors more clearly
Summary:
A EdenFS messenger dogfooder on macOS is hitting our check here that file
handles be a certain size.

This likely indicates that we have a big somewhere in parsing that is causing
us to parse something that is not a file handle as a file handle. Its also
possible this request could be malformed.

Eventually we should not trust clients enough to allow them to crash eden with
a malformed request, but the first step to fixing this bug is understanding
wether the request that crashes us is malformed or not.

So first I am adding some extra logging info to this xcheck so that we can
determine the cause. I will follow up with a solution to prevent clients
from crashing EdenFS.

Reviewed By: xavierd

Differential Revision: D34969740

fbshipit-source-id: 783ca1147f6c9d9c86996836d14263a0a79d6b7d
2022-03-21 11:54:16 -07:00
Mark Juggurnauth-Thomas
cff34fbbab mercurial_derived_data: make MappedHgChangesetId inner value private
Summary:
Tuple structs as part of public interfaces are hard to modify, and result in
`.0` appearing all over the code.  Make the field private and add well-defined
methods with appropriate visibility.

Reviewed By: farnz

Differential Revision: D34971449

fbshipit-source-id: 3078469527e4021dceef5dcb6a5f5f2f980d836a
2022-03-21 10:58:18 -07:00
Mark Juggurnauth-Thomas
4f3de524a6 tools/testtool: port admin create-bonsai to the test tool
Summary:
`mononoke_admin create-bonsai` is a dangerous command as it does not check the
bonsai is valid.  It is used in tests to test Mononoke correctly handles
invalid bonsai changesets.

Move it to the test tool so it is clear that it is only for use in tests.

Reviewed By: farnz

Differential Revision: D34892793

fbshipit-source-id: dd11b9e33920d06883258c1051eadc98e9ea3d81
2022-03-21 10:58:18 -07:00
Mark Juggurnauth-Thomas
5a6398c2aa tools/admin: port split-commit command from old admin
Summary: Port the split-commit command to the new admin tool (as `newadmin commit split`).

Reviewed By: yancouto

Differential Revision: D34864663

fbshipit-source-id: 303b1ef568a903f38d8eff33924c5d8a750ee48a
2022-03-21 10:58:18 -07:00