Commit Graph

67030 Commits

Author SHA1 Message Date
svcscm svcscm
92edce61fd Updating submodules
Summary:
GitHub commits:

d5ca2b74cf
847753dc60
985b76f6d6
dd0e33ba7d

Reviewed By: yns88

fbshipit-source-id: 77a934c0d86eae2c208251aa2d283b98c974bdea
2021-07-27 00:39:44 -07:00
svcscm svcscm
cc5d94445e Updating submodules
Summary:
GitHub commits:

56a0fb11cc
bc3560be40

Reviewed By: yns88

fbshipit-source-id: dc4ddf3bfcb5903e5fcc206f306c45bde611740b
2021-07-27 00:12:22 -07:00
svcscm svcscm
944f3a1a90 Updating submodules
Summary:
GitHub commits:

027b87bbb8
2015a1ad0a
bf50555417
19335a99bc

Reviewed By: yns88

fbshipit-source-id: f10ac443cfcc7bf20ef132ba70be7ef033b908a1
2021-07-26 21:36:39 -07:00
svcscm svcscm
023a353093 Updating submodules
Summary:
GitHub commits:

bd413314c8
7c79000b9e
f53215180e
3728ccbb98
bbbe57e9ec
b5c323cbdf

Reviewed By: yns88

fbshipit-source-id: 9d0d003fb5751a787a5f295ae3c41b8418b06400
2021-07-26 20:51:32 -07:00
Genevieve Helsel
5a34dd506f perserve missing env var edenfs environment
Reviewed By: kmancini

Differential Revision: D29802351

fbshipit-source-id: 861a2a160721e4ded01dc120c9f42bccdd839fb8
2021-07-26 20:39:28 -07:00
svcscm svcscm
ef57584f12 Updating submodules
Summary:
GitHub commits:

ff539ea515
18fc2162de
83d9b5c5a1
99decc39f6
e3064e213b
c327423342
178a0d6606
82c9b0fa55
711844b0f9

Reviewed By: yns88

fbshipit-source-id: dcec4baa3c8fce4ea7cc7c09f184d5d3a17ec7b9
2021-07-26 20:15:20 -07:00
Xavier Deguillard
dd29533b60 test: verify that EdenFS can be started in the fsck tests
Summary:
If for some reason EdenFS cannot be started, we shouldn't attempt to run the
fsck tests as these would always fail.

Reviewed By: genevievehelsel

Differential Revision: D29918436

fbshipit-source-id: 6e4a01a747157427e5c1028084e32cef8066c96a
2021-07-26 20:07:19 -07:00
svcscm svcscm
5ee3b31948 Updating submodules
Summary:
GitHub commits:

b7b9e3a826
e638beedc4
6db5af8e01
c4c26a22db
d7440b680b
3b522eb714
b22a1bd7fb
ce5a4ca493
11a49cf846
41da7acc06

Reviewed By: yns88

fbshipit-source-id: 5c8f47a48a5cc331d82cd521ca1fb14be398c2dd
2021-07-26 19:36:43 -07:00
Zhengchao Liu
fbe154d28e report fsck progress correctly
Summary: This affects all platforms but more noticeable on Mac that tons of 100% printed (e.g. P409794954), probably due to some weirdness with cursor.

Reviewed By: fanzeyi

Differential Revision: D29922276

fbshipit-source-id: 987f6b9ef5a8a4ab738aa6edbd617184bbcb2d1c
2021-07-26 19:25:05 -07:00
svcscm svcscm
bf4d3fc6b1 Updating submodules
Summary:
GitHub commits:

c17ed20519

Reviewed By: yns88

fbshipit-source-id: 756d9fcffaf141c8a2c5453b1641c6184adbcb19
2021-07-26 19:11:21 -07:00
svcscm svcscm
d6e7f46dbd Updating submodules
Summary:
GitHub commits:

7726597410
30a2a6e14c
9ddb55a8f6
dfaea40f8f
5cb6471472

Reviewed By: yns88

fbshipit-source-id: 8407a2124aa827eeeea6fe0212323db84ccfb6ca
2021-07-26 18:03:59 -07:00
svcscm svcscm
b0a4acf436 Updating submodules
Summary:
GitHub commits:

c683eca140
66bb3778a6
2d3f37e47f
632f586698
69e3272f72
40d5b78d17

Reviewed By: yns88

fbshipit-source-id: cecdf19d86a99d8a6c884462d0db0f1bbc0a81f1
2021-07-26 17:43:17 -07:00
svcscm svcscm
d232733737 Updating submodules
Summary:
GitHub commits:

8bb53a149a
3a147a59a3
fc98b0c98e
3ee8d094dd
6d425a5ee7
568a6d4dfd
0c3131f471
2e1bbbcd9b
568d3ace37
2da6f25456

Reviewed By: yns88

fbshipit-source-id: 0c3a8368ebfc09d5d7538e02016a377d34fdfc67
2021-07-26 17:11:47 -07:00
svcscm svcscm
efa38a9f2f Updating submodules
Summary:
GitHub commits:

8ba3877c5c
37e3199a33
01dfd7b968
84153ceabe
7d4e338491
81b7ef67fd
cab7956eb1
8cda0a5f40
e7ae8fc192
4f47ecf162

Reviewed By: yns88

fbshipit-source-id: bfbe94330f27f1e4fc3630ad162d368754831843
2021-07-26 16:26:47 -07:00
Zhengchao Liu
b51e5d07f8 introduce NfsRequsetContext
Summary: As title. `RequsetContext` allows us to track metrics such as latency and count.

Reviewed By: genevievehelsel

Differential Revision: D29835813

fbshipit-source-id: 6b85fc8f11923f530fce6d871fa2253db21bfa98
2021-07-26 16:04:03 -07:00
svcscm svcscm
772b7b9a4f Updating submodules
Summary:
GitHub commits:

b9176fc5bb

Reviewed By: yns88

fbshipit-source-id: 5d9bfadaa6be45bba7f7be26960d4e9f0246694b
2021-07-26 15:57:28 -07:00
Jun Wu
0ef56b6554 dag: respect missing cache on vertex_id_batch
Summary:
Previously the missing vertex cache was ignored by vertex_id_batch.
Respecting it can help reduce remote lookups.

Reviewed By: andll

Differential Revision: D29889457

fbshipit-source-id: 0469b1e61c42ad31e0dd486ab7c752bf4aeeba5c
2021-07-26 15:23:40 -07:00
Jun Wu
606e07e9f7 dag: reuse caches if dag does not change on disk
Summary:
This will help remove some unnecessary cache invalidations, and help avoid
remote lookups.

Reviewed By: andll

Differential Revision: D29889458

fbshipit-source-id: e9a36b227c3b2c7f6b9830a8b27f5a16e363c94e
2021-07-26 15:23:40 -07:00
Jun Wu
e0d9c0e457 dag: add some tracing logs
Summary: Added some dag::cache tracing logs to check cache status.

Reviewed By: andll

Differential Revision: D29889459

fbshipit-source-id: 41a4af1ad5d187164d954f1602b8c7a2d3bacaf8
2021-07-26 15:23:39 -07:00
Jun Wu
64c0d7e986 dag: expose version in namedag states
Summary:
This will be used to detect if the NameDag was changed between reloads,
and decide whether we need to invalidate caches or not.

Reviewed By: andll

Differential Revision: D29888938

fbshipit-source-id: 377879bd8d28c92feca80c025613a65139ccb866
2021-07-26 15:23:39 -07:00
Jun Wu
1c4cf6a5ec indexedlog: introduce version concept to MultiLog
Summary:
The version gets bumped on writing to disk.

This makes it easier for callsites to detect whether there are changes to the
MultiLog. It will be used by the upcoming changes.

Reviewed By: andll

Differential Revision: D29888939

fbshipit-source-id: 278887cd59c85e49f606334529a27557a4bc1dc5
2021-07-26 15:23:39 -07:00
Jun Wu
08c596b72e hgcommands: setup fail points
Summary: Setup fail points so `FAILPOINTS` can work.

Reviewed By: andll

Differential Revision: D29888940

fbshipit-source-id: 4e6f98ed0a1c1410d6992f92ff810b5ef64ba76e
2021-07-26 15:23:39 -07:00
Jun Wu
8cb3d3dd75 dag: add fail points on opening namedag
Summary:
It turns out that the namedag was opened multiple times. Add a fail point to
help figure out the callsite.

The `fail` crate allows something like:

  FAILPOINTS="dag-namedag-open=1*sleep(1)->return"
  FAILPOINTS="dag-namedag-open=1*sleep(1)->panic"

Meaning that the first open causes 1ms sleep, and the second
causes an error (turns into a Python backtrace), or a panic (turns into a Rust
backtrace with RUST_BACKTRACE=1).

Reviewed By: andll

Differential Revision: D29888937

fbshipit-source-id: b1644d7196f68262523ab9a5fc4fb110a4cc0062
2021-07-26 15:23:39 -07:00
Jun Wu
1dc90d221e changelog2: do not check tip remotely on add
Summary:
Previously it checks whether the new hash exists remotely, which makes offline
commit impossible.

`tip` is not that important. Just do a local check instead.

Reviewed By: andll

Differential Revision: D29834904

fbshipit-source-id: 94924591a5827942f428b74231b4494999856361
2021-07-26 15:23:39 -07:00
Jun Wu
6eb00586c8 test-eager-exchange: show remote lookups for commit or amend
Summary: Show that lazy changelog makes it impossible to commit or amend offline.

Reviewed By: andll

Differential Revision: D29834907

fbshipit-source-id: a268be05947cbf215cff1471a25dba72447bafec
2021-07-26 15:23:39 -07:00
Jun Wu
99c4b3b47d hgcommits: add a way to inject failure on resolving names remotely
Summary:
Similar to D29440143 (38f3ceafbc), add a way to disable resolving names by setting
a limit using `EDENSCM_REMOTE_NAME_THRESHOLD`.

This is useful to figure out callsite that tries to resolve names that
are previously unknwon, ex. newly generated commit hashes.

Reviewed By: andll

Differential Revision: D29834906

fbshipit-source-id: 9b6161bd62a026fa5a37e1cda9912bcb8bca6971
2021-07-26 15:23:39 -07:00
svcscm svcscm
8e0d2fd29b Updating submodules
Summary:
GitHub commits:

3294275215

Reviewed By: yns88

fbshipit-source-id: e120ef29d8236811bbe5f20dcc9049ea401c7917
2021-07-26 15:20:18 -07:00
Arun Kulshreshtha
14d8c051c1 third-party/rust: remove patch from curl and curl-sys
Summary:
The patches to these crates have been upstreamed.

allow-large-files

Reviewed By: jsgf

Differential Revision: D29891894

fbshipit-source-id: a9f2ee0744752b689992b770fc66b6e66b3eda2b
2021-07-26 15:00:16 -07:00
svcscm svcscm
8eda1c92a1 Updating submodules
Summary:
GitHub commits:

803789d26a
7d164ab272
f15796f701
c9ad71bd3c

Reviewed By: yns88

fbshipit-source-id: 5be1f6c0f807cdb77f4238c9ae7bf17055982ea6
2021-07-26 14:22:52 -07:00
Xavier Deguillard
2afd2b223e inodes: use getUnsafePath on checkout conflicts
Summary:
On Windows, there a commonly occuring issue where a checkout operation would
crash EdenFS as a conflict is being added for an unlinked inode, thus
triggering the XCHECK in the addConflict method.

From looking at the code, the comment that claims that inodes cannot be
unlinked during checkout isn't entirely accurate: EdenFS will unlink inodes
during checkout when their content changed. The code itself should properly
remove the unlinked inode from its parent TreeInode and thus I haven't fully
figured out the exact series of event that leads to a conflict being added for
an unlinked inode. Since the asumption from the comment is invalid, it should
be safe to not assert that the inode shouldn't be unlinked and use
InodeBase::getUnsafePath instead of InodeBase::getPath

Reviewed By: kmancini

Differential Revision: D29241901

fbshipit-source-id: 4239df576b3cbf716fb336fd4d6542939337a297
2021-07-26 14:14:57 -07:00
Xavier Deguillard
ca62644013 inodes: add InodeBase::getUnsafePath
Summary:
In some cases, the code needs to have access to the path for an inode even if
that inode is unlinked. In such situation, neither getPath nor getLogPath are
suitable, thus let's introduce a getUnsafePath, which is intended for these
handful of places.

The only known use case for such method is when adding conflicts during checkouts.

Reviewed By: genevievehelsel

Differential Revision: D29241902

fbshipit-source-id: 7756a95813d6fd5e471538cf82d29604dd5b8e5e
2021-07-26 14:14:57 -07:00
svcscm svcscm
8c75534e10 Updating submodules
Summary:
GitHub commits:

d4153a5975

Reviewed By: yns88

fbshipit-source-id: 1c13481813bd8be71041a61f0106f25d18da39cd
2021-07-26 13:56:56 -07:00
svcscm svcscm
23fe7b1c91 Updating submodules
Summary:
GitHub commits:

96dd93827a
118ae21504
dfe8f21457
fb6b1abd24
6e0bfcc38c

Reviewed By: yns88

fbshipit-source-id: 8fcbfd8a8e9fa5dd8bb6732fd1ceaecd59c5b676
2021-07-26 13:16:49 -07:00
svcscm svcscm
4b357abb64 Updating submodules
Summary:
GitHub commits:

0bed4bfcc1
99a1c5a2e9
f96199bd64
a08d2e44e1
4361d6d163
38c1cf1419
4ad73e9d80

Reviewed By: yns88

fbshipit-source-id: f019d12cb784d8837611864968b63e68ab4b4c6f
2021-07-26 12:29:30 -07:00
svcscm svcscm
c0544c7865 Updating submodules
Summary:
GitHub commits:

d494546857
a07078cc6c
206f3704c3
4bffeb311a
15ef6e5cd5
16a37e2405
0ad0913950
96b1708e14
b0937f8f76
b52dcbd281
58f8421f1c

Reviewed By: yns88

fbshipit-source-id: 70f1ae46626af7b23f801f967f4b59ae9adf50f9
2021-07-26 12:07:41 -07:00
svcscm svcscm
073ffc3397 Updating submodules
Summary:
GitHub commits:

1099ad60e1
8c7b33a03e
77f150ac6c
02e5b0244e
d83d99e7eb
936fc84c3c
ed5d16ccd5
07b496660c
ba96e3fc25
f1006d2ad1

Reviewed By: yns88

fbshipit-source-id: 2a6dd8469bf60be4c729013b017e7e75a9c6892f
2021-07-26 10:53:47 -07:00
svcscm svcscm
9a62bb3c78 Updating submodules
Summary:
GitHub commits:

8067a25696

Reviewed By: yns88

fbshipit-source-id: 7622aab0432bcf94d30852c71f05802c5f522d57
2021-07-26 10:00:46 -07:00
svcscm svcscm
d22857bdac Updating submodules
Summary:
GitHub commits:

a7562c2189
05f0b142de
e908002526
37b138646e
6c6ccd275f

Reviewed By: wittgenst

fbshipit-source-id: f5e8452519f32a0da1ecf5df89924aa41c70d295
2021-07-26 08:43:11 -07:00
svcscm svcscm
52065b77c5 Updating submodules
Summary:
GitHub commits:

f361cb0b0e

Reviewed By: wittgenst

fbshipit-source-id: c87e7793431297e155c747c471e1715e628d7dfa
2021-07-26 08:17:01 -07:00
Mark Juggurnauth-Thomas
c8b33fd580 blame: enable batch derivation of blame_v2
Summary:
Implement batch derivation of blame V2.

Blame derivations are independent so long as the two commits do not change or
delete any of the same files.  We can re-use the existing batching code so long
as we change it to split the stacks on *any* change (not just a
change-vs-delete conflict).

Reviewed By: StanislavGlebik

Differential Revision: D29776514

fbshipit-source-id: b06289467c9ec502170c2f851b07569214b6ff0a
2021-07-26 07:09:35 -07:00
svcscm svcscm
e98aec54df Updating submodules
Summary:
GitHub commits:

3cc6ffdaf9

Reviewed By: wittgenst

fbshipit-source-id: cfda1914919d7b3d326330b3c9802201ae998bd7
2021-07-25 09:30:49 -07:00
Stanislau Hlebik
116a51bd40 ConfigHandle: use fbthrift deserialization config reading
Summary:
I noticed that reading one of the mononoke configs was failing with

```
invalid type: string \"YnrbN4fJXYGlR1EzoxLRvVbibyUiRM/HZThRJnKBThA\", expected
a sequence at line 2587 column 61)\x18ninvalid type: string
\"YnrbN4fJXYGlR1EzoxLRvVbibyUiRM/HZThRJnKBThA\", expected a sequence at line
2587 column 61
```

The problem is coming from the fact that configerator configs use thrift simple
json encoding, which is different from normal json encoding. At the very least
the difference is in how binary fields are encoded - thrift simple json
encoding uses base64 to encode them. [1]

Because of this encoding difference reading the configs with binary fields in
them fails.

This diff fixes it by using simple_json deserialization for
get_config_handle()... but the existing callers used the old broken
`get_config_handle()` which is
incompatible with the new one. Old `get_config_handle()` relied on the fact
that serde::Deserializer can be used to deserialize the config, while thrift
simple json doesn't implement serde::Deserializer.

As a first step I migrated existing callers to use old deprecated method, and
we can migrate them to the new one as needed.

[1] It was a bit hard to figure out for sure what kind of encoding is used, but
discussion in
https://fb.workplace.com/groups/configerator.users/posts/3062233117342191
suggests that it's thrift simple json encoding after all

Reviewed By: farnz

Differential Revision: D29815932

fbshipit-source-id: 6a823d0e01abe641e0e924a1b2a4dc174687c0b4
2021-07-25 08:53:08 -07:00
svcscm svcscm
e3bfb380cc Updating submodules
Summary:
GitHub commits:

85e116f765
bd9c9d4e2a
0cf3f8650d
16a2941b12

Reviewed By: wittgenst

fbshipit-source-id: facc7e1d982f1cb73c6ac6e7c901bfffb925844c
2021-07-24 05:07:33 -07:00
svcscm svcscm
e4146ba2d3 Updating submodules
Summary:
GitHub commits:

774312cb3e

Reviewed By: wittgenst

fbshipit-source-id: 0da04e2e65c88fc56e146e9399c1272349860dbd
2021-07-24 04:36:07 -07:00
Stanislau Hlebik
5afc48a292 mononoke: move bookmark in change_target_config conditionally
Summary:
Do a similar change to change_target_config as we've done for add_sync_target
in D29848378. Move bookmark only if it points to an expected commit. That would
prevent make it safer to deal with cases where the same change_target_config
was executing twice.

Reviewed By: mojsarn

Differential Revision: D29874803

fbshipit-source-id: d21a3029ee58e2a8acc41e37284d0dd03d2803a3
2021-07-24 03:55:08 -07:00
Stanislau Hlebik
4f632c4e8b mononoke: create bookmark in add_sync_target
Summary:
This is the first diff that tries to make megarepo asynchronous methods
idempotent - replaying the same reqeust twice shouldn't cause corruption on the
server. At the moment this is not the case - if we have a runaway
add_sync_target call, then in the end it moves a bookmark to a random place,
even if there was another same successful add_sync_target call and a few others on
top.

add_sync_target should create a new bookmark, and if a bookmark already exists
it's better to not move it to a random place.

This diff does it, however it creates another problem - if a request was successful on mononoke side, but we failed to deliver the successful result to the client (e.g. network issues), then retrying this request would fail because bookmark already exists. This problem will be addressed in the next diff.

Reviewed By: mojsarn

Differential Revision: D29848378

fbshipit-source-id: 8a58e35c26b989a7cbd4d4ac4cbae1691f6e9246
2021-07-24 03:55:08 -07:00
svcscm svcscm
449767e158 Updating submodules
Summary:
GitHub commits:

f7c3f9bf22
be47015d89
cf6d5f609e
2606199449

Reviewed By: wittgenst

fbshipit-source-id: a526cc249d8d1b7b7d03e3e0c74d21c68236c690
2021-07-23 18:16:58 -07:00
svcscm svcscm
353c561137 Updating submodules
Summary:
GitHub commits:

c6186307d3
8a5cda0044
fd84fe7029
88ebd1a8c7
fb5ebe9f38
ad2d79a86b

Reviewed By: wittgenst

fbshipit-source-id: cc29b85cf5e7357126505f67cf5c1a01155ef82e
2021-07-23 17:40:01 -07:00
svcscm svcscm
b105d99d3b Updating submodules
Summary:
GitHub commits:

b817e87f84
4c4141bc68
19f6310814
6b865b2807
6b17743d39
e85da1e44a
815e9a105d
395a70f2d2
7171bb3f19

Reviewed By: wittgenst

fbshipit-source-id: 710fc621a60a5df050424e1935328c37653f4d2c
2021-07-23 17:17:54 -07:00
svcscm svcscm
0971fd3985 Updating submodules
Summary:
GitHub commits:

435c22fdb5
9846d41e1a
03d1b05874
e00ad88e37
9552323b6b
039276f563
906f60a40e
83c39e100d
6338d48da6
ff07f79840
22b998d90b

Reviewed By: wittgenst

fbshipit-source-id: 3044b25019c9e96d1d38870bd724bd2750db2530
2021-07-23 16:49:54 -07:00