Commit Graph

66203 Commits

Author SHA1 Message Date
svcscm svcscm
022bc07457 Updating submodules
Summary:
GitHub commits:

46092c79a3
e05266aea8
32cdf0f431
57d7b1d7a3
a1362ba4fe
8d0c8bdbdd
6237d840bd
580cab4af4
7c60d96ce0
4619cccd1d

Reviewed By: yns88

fbshipit-source-id: fd4ab946e715c7c6737d9e6c60452bc7743cb9e1
2021-06-29 10:29:56 -07:00
Genevieve Helsel
58188931c3 file access logging in FileInode
Summary:
This is adds file access logging in the Inode layer of the code. We log the cause (channel, thrift, unknown) and the cause detail (which is the FUSE opcode for fuse, function name for thrift). We do the work on a worker thread since we need to traverse the inode map to translate an inode number to a file path. The workerthread in this code is largely based off of the one in the ProcessNameCache.

At this moment, I am not worrying about logging inode creation as a file access. The nice thing about putting this in FileInode is that it should be able to be used by NFS for free.

I've left a TODO in the code about not logging files that match gitignore patterns since its not a hard blocker for this to land.

Reviewed By: kmancini

Differential Revision: D29128258

fbshipit-source-id: 3e08a3567fed937a381b58847ea83569d70f0ea2
2021-06-29 09:45:47 -07:00
Genevieve Helsel
09a16a72aa store EdenServer* in HiveLogger
Reviewed By: xavierd

Differential Revision: D29234427

fbshipit-source-id: 711f5eda4a8df9be0f31bc330fcfc54520e25400
2021-06-29 09:45:46 -07:00
Genevieve Helsel
9b4909d022 create util EdenTaskQueue from NfsTaskQueue
Summary: NfsTaskQueue can be made more generic to be shared across the codebase, so this makes it its own target in `eden/fs/utils` w/ the name EdenTaskQueue.

Reviewed By: xavierd

Differential Revision: D29244762

fbshipit-source-id: 78348f2ff8fa66bc801aefe7d6b3905e0da278e8
2021-06-29 09:45:46 -07:00
Genevieve Helsel
1cd9f63916 rename EdenMount's getThreadPool to a more descriptive getServerThreadPool
Summary: Just to be more specific, lets be explicit about that this is the serverThreadPool that the mount is returning.

Reviewed By: xavierd

Differential Revision: D29244719

fbshipit-source-id: 015a2e8198c418c6fb5a89234274eefb329848fe
2021-06-29 09:45:46 -07:00
Genevieve Helsel
b6ac67eeae store ReloadableConfig pointer in HiveLogger
Summary: In order to access the kill switch for file access logging, we need to store a EdenConfig pointer in the HiveLogger.

Reviewed By: xavierd

Differential Revision: D29120227

fbshipit-source-id: c828bbbf551c7096877bfa763edc29ef133afb41
2021-06-29 09:45:46 -07:00
Genevieve Helsel
ce1cc3ea2b Create HiveLogger boilerplate and thread it through EdenFS to the ServerState
Summary: This creates a HiveLogger and threads it through to the ServerState.

Reviewed By: xavierd

Differential Revision: D29119501

fbshipit-source-id: d0b74733d8832d604f8f4cf0af28e767dbddeddf
2021-06-29 09:45:46 -07:00
svcscm svcscm
440375e25c Updating submodules
Summary:
GitHub commits:

c03e671e4b
89f66d4484

Reviewed By: yns88

fbshipit-source-id: ae075d06e3a60f5344f5fd5986bafe1924e3266a
2021-06-29 09:44:09 -07:00
svcscm svcscm
db66a5cb79 Updating submodules
Summary:
GitHub commits:

51e4ab0017
5ba3496699
642ad42ca7
337ba55982

Reviewed By: yns88

fbshipit-source-id: 3111da11d6cc2a0d0b119689948a1b2d0337075a
2021-06-29 04:13:40 -07:00
svcscm svcscm
1078265547 Updating submodules
Summary:
GitHub commits:

70da9b6bac

Reviewed By: yns88

fbshipit-source-id: 38395aa647b91c303cd848403a928a2622b8f318
2021-06-29 03:28:36 -07:00
svcscm svcscm
5b1bf7b145 Updating submodules
Summary:
GitHub commits:

38d23f9ad9
5df6f37401
22dfd9686d
c08cc89748

Reviewed By: yns88

fbshipit-source-id: 0a47558fb7844f24188b31d4492308342c94cab7
2021-06-29 01:28:09 -07:00
svcscm svcscm
b640dd6c8a Updating submodules
Summary:
GitHub commits:

bd5503c997

Reviewed By: yns88

fbshipit-source-id: 9d2501e0051e3d1b6dc15727d2e314d06b2ec635
2021-06-29 00:37:07 -07:00
svcscm svcscm
ae1d8bed1d Updating submodules
Summary:
GitHub commits:

9d82d26927
36fac8eb64
e4455a784a
5ddcbe43f3
66dfa8f55a

Reviewed By: yns88

fbshipit-source-id: 90ca2fd6489fc00365f0af93b598556d1ac72763
2021-06-28 22:19:20 -07:00
svcscm svcscm
0fa5741ae2 Updating submodules
Summary:
GitHub commits:

5976312dcc
721ac7f01a
da7fbbc05d

Reviewed By: yns88

fbshipit-source-id: 99d1a1614c4cd1a09b9307072d77bc411620edd5
2021-06-28 20:47:42 -07:00
Claire Alexandra Cate
17e02d6ca0 Add edenapi_retries to FileStore
Summary: Add edenapi_retries to FileStore

Reviewed By: kulshrax

Differential Revision: D29107328

fbshipit-source-id: 2e782648af811983f3fa359585311455970ed65b
2021-06-28 18:31:01 -07:00
Genevieve Helsel
19705d9e8a add getRepoName in EdenMount
Summary: This just adds a method to get the repoName out of the EdenMount for logging purposes.

Reviewed By: xavierd

Differential Revision: D29113121

fbshipit-source-id: 9ebb4ac588839a99f25f4e884a7a132f5793e49e
2021-06-28 18:19:05 -07:00
Carolyn Busch
0d91553914 tests: fix test-debugchangelog.t
Summary: Looks like another test needs updating after D29437983 (5b1b1febc1).

Reviewed By: quark-zju

Differential Revision: D29446063

fbshipit-source-id: c71684609830b6ec047a2efc615b806dd2a0066b
2021-06-28 17:46:06 -07:00
svcscm svcscm
edb275d694 Updating submodules
Summary:
GitHub commits:

3c3e9c1fb7
772a2033a0
93047f2e34
e7a74d4d7b

Reviewed By: yns88

fbshipit-source-id: fc78f52396e68959d81f97b8e8a5537c1406e0ee
2021-06-28 16:23:42 -07:00
svcscm svcscm
5b4327fc82 Updating submodules
Summary:
GitHub commits:

78a8de054c
f872e8e167
989002d767
c03a261f0f
6d24eea28d

Reviewed By: yns88

fbshipit-source-id: cef1ef9819a22329665f89a639b89ee6e1d91a12
2021-06-28 16:00:13 -07:00
svcscm svcscm
8f928f0344 Updating submodules
Summary:
GitHub commits:

dc5ce4e791
99afc0852b
8e0a3e7eb6
ba609a5ab2
1f97ba3767
44fb4dffae
8e38012ba2
1dad3dec68

Reviewed By: yns88

fbshipit-source-id: 69a27ca4cd9188b402c1b23def5fe33ae2435a6e
2021-06-28 15:13:09 -07:00
Jun Wu
e5fe117d81 pullcreatemarkers: do not use legacy commit scan with lazy pull fast path
Summary:
With lazy pull fast path, the legacy commit scan will trigger one-by-one id
resolution, which is terrible and defeat the purpose of laziness. Let's just
force graphql path instead.

Reviewed By: andll

Differential Revision: D29440142

fbshipit-source-id: 4b0d10e6f5a3eb0533b2d95b1889a1f1c1f281cb
2021-06-28 14:36:39 -07:00
Jun Wu
38f3ceafbc hgcommits: add a way to inject failure on resolving ids remotely
Summary:
Similar to D29404057 (cedddd1c8d), add a way to disable resolving IDs by setting
a limit using `EDENSCM_REMOTE_ID_THRESHOLD`.

Reviewed By: andll

Differential Revision: D29440143

fbshipit-source-id: 30409089493ae2cd5c189e37b0d4f88df9a6d8e8
2021-06-28 14:36:39 -07:00
Jun Wu
5b1b1febc1 nameset: do not resolve nullid remotely
Summary: The Rust NameSet does not have nullid. Do not bother resolving remotely.

Reviewed By: kulshrax

Differential Revision: D29437983

fbshipit-source-id: f1eb73e738281b3b5096fba22ba92833f5a4f3ee
2021-06-28 14:36:39 -07:00
svcscm svcscm
b10e2e8efa Updating submodules
Summary:
GitHub commits:

8ef908529a
291e513b8f
88be1a7bcc
5bd0efe252
373e3a154d
30b2294142
348eb060af
259b0f7bf9
7fa3a9fc8e
c607cb65cb

Reviewed By: yns88

fbshipit-source-id: 52b34660676402e37448e8e72e5ee19d81cc508f
2021-06-28 14:13:13 -07:00
Stanislau Hlebik
34e3181969 store: fix metadata importing
Summary:
See this graph - https://fburl.com/scuba/mononoke_blobstore_trace/77nyw174. It
shows that there was a huge jumps in the number of "hgmanifest" fetches from
scs that didn't exist in the manifold. This is not great for mononoke, because
it uses a significant chunk of our manifold qps capacity (~30K qps on average,
with spikes going up to 100K qps). The main suspect here is
repo_list_hg_manifest method, because few other scs methods (if any) fetch hg
data.

It correlates with the release of new eden version on June, 23, which added
getTreeBatch() method, and looks like it was passing manifest hash and eden id
in the wrong order. See https://fburl.com/code/tsjwss8a

```
proxyHash.revHash(), // this is really the manifest node
```

This is a comment in `getTree()` method which says that `proxyHash.revHash()`
is manifest id, which is exactly what we need to send to scs.

[ScsMetadataImport::getTreeMetadata](https://fburl.com/code/xammvq2k) suggests
that the second parameter should be manifestId (i.e. proxyHash.revHash()), but
we were passing them in the wrong order. Let's fix it.

Reviewed By: xavierd

Differential Revision: D29428581

fbshipit-source-id: d041008f00c7519504c6c67173ca85709e9dc415
2021-06-28 13:43:54 -07:00
Meyer Jacobs
d4fa04b2d8 scmstore: remove unused crate dependencies
Summary: Fix warning after removing old scmstore implementation.

Reviewed By: andll

Differential Revision: D29410137

fbshipit-source-id: bd56e1806ec451da290fa345fae0ecb19d10b849
2021-06-28 13:30:09 -07:00
Jun Wu
4ecb46990a pull: use heads(master_group) as the "old" master in fast path
Summary:
The remotenames information might be out of sync with the DAG.
Use the DAG's master group's head for the pull fast path "old" master so that
even if the remotenames is stale for some reason, the fast path still works.

Reviewed By: andll

Differential Revision: D29434719

fbshipit-source-id: 7bbd0757dc6a9428f86663ac4989f7c30b365b46
2021-06-28 12:50:26 -07:00
Jun Wu
a9e414b833 dag: add an API to obtain the master group
Summary: Will be used by the next change.

Reviewed By: andll

Differential Revision: D29434722

fbshipit-source-id: 74dbec506fb0985379480815380118cd41058aec
2021-06-28 12:50:26 -07:00
Jun Wu
0e125b2246 pull: add a test about a suboptimal case
Summary:
If a user Ctrl+C-ed (or something else interrupts) between flushing changelog
and flushing metalog (remotenames).  The pulled commits will exist in the local
graph and break the next time using the fast path.

Reviewed By: andll

Differential Revision: D29434720

fbshipit-source-id: e7ca7542691279644679effb06707a1d305541af
2021-06-28 12:50:26 -07:00
Jun Wu
285d8646ef pull: ui.debug => tracing.debug
Summary:
This is a better practice. It avoids debug messages from other places (ex.
discovery).

Reviewed By: andll

Differential Revision: D29434721

fbshipit-source-id: 5990f0174e9b61aed7d9d56252df63b571364070
2021-06-28 12:50:25 -07:00
Jun Wu
bb7914ab50 remotenames: skip pull for modern clone paths
Summary:
The remotenames has logic to work with legacy clones to write the remotenames
state. However, modern clone paths take care of remotenames directly so there
is no need to do an extra pull by remotenames.

Reviewed By: DurhamG

Differential Revision: D29428883

fbshipit-source-id: a73c0ee716b09f4e34d6fa30997f961284678d13
2021-06-28 12:25:17 -07:00
Jun Wu
4c51695bf3 clone: reload config after writing hgrc
Summary:
This makes it pick up some `%include` configs and can avoid some surprises.

Also remove the manual `paths.default` setconfig. That seems to cause
`destrepo.edenapi` being `None` and break lazy changelog clone paths.

Reviewed By: DurhamG

Differential Revision: D29428882

fbshipit-source-id: bafeb195a560e35be17355b793613b60d97fbecf
2021-06-28 12:25:17 -07:00
Jun Wu
e454f71fa9 localrepo: write .hg/reponame on repo creation
Summary: Make dynamicconfig pick up the repo name because hgrc gets written.

Reviewed By: DurhamG

Differential Revision: D29428878

fbshipit-source-id: fbf578cd7c770a4541fff3b85ff40c40cd5a6cc5
2021-06-28 12:25:17 -07:00
Jun Wu
8186a5400b dynamicconfig: read .hg/reponame as repo name fallback
Summary: This will be used by the next change.

Reviewed By: DurhamG

Differential Revision: D29428879

fbshipit-source-id: 69e0ffac12fb9c442488d59ea8faa0ea4b47a2c1
2021-06-28 12:25:17 -07:00
Jun Wu
a588c44c28 dynamicconfig: add a way to forbid empty repo name
Summary: This makes it easier to figure out a traceback using an empty repo name.

Reviewed By: DurhamG

Differential Revision: D29428881

fbshipit-source-id: 95a09c691e3d921ad4f960a39002f71ec879d927
2021-06-28 12:25:17 -07:00
Jun Wu
91f01464e6 dynamicconfig: include reponame and username in header comment
Summary:
This makes it easier to debug wrong reponame issues.

In theory those need to be checked and the config needs to be regenerated if
they are changed for correctness. Given that username and reponame are rarely
changed, I saved it for later.

Reviewed By: DurhamG

Differential Revision: D29428880

fbshipit-source-id: f996af6a7a1e329faaa8b0a53dac8621fa94dac8
2021-06-28 12:25:17 -07:00
Jun Wu
c8eda3883e mutationstore: fix tests
Summary: Left over of D29404901 (410769c529).

Reviewed By: DurhamG

Differential Revision: D29429146

fbshipit-source-id: b37c89745d924efc28110d8b96e9b51162b6570b
2021-06-28 12:21:26 -07:00
svcscm svcscm
2baabc2b0a Updating submodules
Summary:
GitHub commits:

3ede3face4
76c20793b7

Reviewed By: yns88

fbshipit-source-id: 4458a18a73b9bfae2d3f3cf78c716ca7aed9e8d4
2021-06-28 11:36:04 -07:00
Jun Wu
a26181e39e dirsync: skip metaedit commits
Summary: This avoids issues in assertions used by metadataonlyctx.

Reviewed By: DurhamG

Differential Revision: D29430672

fbshipit-source-id: 4de305d62f65a9d6c4fb2e3f375ef20d9d94d41c
2021-06-28 11:21:05 -07:00
Jun Wu
eead6bc10e tests: add a test to demonstrate metaedit+dirsync issue
Reviewed By: DurhamG

Differential Revision: D29430673

fbshipit-source-id: d17a25e892d20dc006ed97d60239b53fb4fbebcc
2021-06-28 11:21:05 -07:00
Jun Wu
d249a22fe7 helptext: update streampager related doc
Summary:
We do not respect `$PAGER`, and the default is the internal streampager.
Also document streampager config options.

Reviewed By: markbt

Differential Revision: D29412598

fbshipit-source-id: 706f09f8805e9067b46eec7d83c6742b61084b09
2021-06-28 07:43:20 -07:00
Jun Wu
219bbde735 pager: add a way to not separate stderr in a separate pane
Summary:
See also D29400532 (909411bb1c). It turns out that it might be more desirable to just mix
stdout and stderr streams in streampager. For example, having them mixed then
the graph log output can show what network fetches or calculations are done
before outputting the graph lines. This is also more consistent with the
vanilla terminal (no pager) behavior.

Reviewed By: markbt

Differential Revision: D29412531

fbshipit-source-id: c07f68b12498a7cee6152bbecbb58d5a7e64097a
2021-06-28 07:43:20 -07:00
Jan Mazur
76179e66aa remove ssh-related debugnetwork functionality
Summary: No longer used: https://fburl.com/scuba/ssh_prod_logs/n6hn2cg3

Reviewed By: DurhamG

Differential Revision: D29100680

fbshipit-source-id: 6ee154d9348cd5201780aba723ea1793a5132aee
2021-06-28 06:00:55 -07:00
Stanislau Hlebik
39e915d8d9 mononoke: allow creation of multiple symlinks that point to the same directory
Summary:
Previously it wasn't possible because symlink target was a key in the map that
mega_grepo_sync was sending to scs, and so we can't have two different symlink
for the same symlink target. However we actually need it - some of aosp repos
have symlink different sources that point to the same symlink target.

This diff fixes it by reverting the key and valud in the `linkfiles` map.

Differential Revision: D29359634

fbshipit-source-id: da74d6e934350822d82d2135ab06c754824525c9
2021-06-28 04:04:46 -07:00
svcscm svcscm
59a3a70919 Updating submodules
Summary:
GitHub commits:

94327baa18
4b3865cd03
0a88109208
85bfdf7540

Reviewed By: jurajh-fb

fbshipit-source-id: b53db76210fc4aab720623a6a942ee6d2a8b8b6c
2021-06-27 06:39:37 -07:00
svcscm svcscm
f1be45233b Updating submodules
Summary:
GitHub commits:

a3f64d9b5a
32036a5505
b7ccc0b150
5eda293e97
73d2ce95fb
a634be82c3

Reviewed By: jurajh-fb

fbshipit-source-id: 1c47ea00221bd82ec6812aa8df2da1ce8be6a761
2021-06-27 06:14:16 -07:00
svcscm svcscm
6c66bfdcbe Updating submodules
Summary:
GitHub commits:

3f24c4706c
de761ec418
c5b4362dfd
5d308f4298
acb170a102
edab4fbf0e
59d13fe72a
8a534c9ee6
25d6b6d2a2

Reviewed By: jurajh-fb

fbshipit-source-id: dd459d400da33efa95a954c0e139e840a831ccad
2021-06-27 05:52:16 -07:00
svcscm svcscm
1c9f461656 Updating submodules
Summary:
GitHub commits:

586b831b1e
8f5076843c
fea73e46dd
6299d9b851
d33e4c0607
cda9198a24
acc20c89bb
b786cc1f07
0714b87f89
757fd2030d
e06948db63

Reviewed By: jurajh-fb

fbshipit-source-id: 40e8b8b93d8a58c09bc70d063e89d40363a065ff
2021-06-27 05:26:04 -07:00
svcscm svcscm
c523b0eba3 Updating submodules
Summary:
GitHub commits:

42895733aa
f08870aa81
6bba39ee6c
f434460f8a
be66f51011
fd9f414620
dfce80b37a
eb83210914
14d7cece3e
c430ba0b95

Reviewed By: jurajh-fb

fbshipit-source-id: 585f5f2c80de0a56681c4d07b9fbc0d491459487
2021-06-27 04:58:47 -07:00
svcscm svcscm
d2b17c660c Updating submodules
Summary:
GitHub commits:

f602751782
a8f5d31826
9aab60f81d
fe953377ba
7d3b42946d
dfd3f4c846
28675f591b
be8199cdb9
f5848eb14d
2c7e6178d6
af6b390289
db4853866a
590e2a5079
1569c8fef3
80d9f5bddc
b7e389af82
db4121c5f6
b3cd901587
e76138a89d
1bad64bc0d
683604e999
c48eb39fdc

Reviewed By: jurajh-fb

fbshipit-source-id: c66e47f4b48668d854f1ed0e3d721834e2e5eccc
2021-06-27 04:34:31 -07:00