Commit Graph

65315 Commits

Author SHA1 Message Date
CodemodService Bot
0462f803c0 Daily arc lint --take BLACK
Reviewed By: zertosh

Differential Revision: D28282435

fbshipit-source-id: 26037c582a35a958702b5d9f5c371e19664ba3c6
2021-05-07 05:16:05 -07:00
Thomas Orozco
87ae27b91b mononoke/segmented_changelog_tailer: add scuba args
Summary: This wants to use Scuba so it needs this.

Reviewed By: StanislavGlebik

Differential Revision: D28282511

fbshipit-source-id: 6d3a2b6316084f7e16f5a2f92cfae1d101a9c2d3
2021-05-07 02:07:09 -07:00
svcscm svcscm
abe679917a Updating submodules
Summary:
GitHub commits:

1a6d4312bb
61d256d723
6121fcff36
e0a05a4660

Reviewed By: 2d2d2d2d2d

fbshipit-source-id: dc7cf0966dbc9d10bb38c04622aeec41a4b0f0f1
2021-05-07 01:52:02 -07:00
Jun Wu
9013d18a71 edenapi: debug log registered builder function
Summary:
This makes it easier to see what builder functions were registered:

  % EDENSCM_LOG=edenapi=debug lhg log -r .
  May 06 16:40:29.355 DEBUG edenapi::builder: registered eagerepo::api::edenapi_from_config to edenapi Builder

Reviewed By: DurhamG

Differential Revision: D28271366

fbshipit-source-id: f6c7c3aa9f29c3e47c2449e3d5fc16474aa338b0
2021-05-07 01:00:56 -07:00
svcscm svcscm
83c6164621 Updating submodules
Summary:
GitHub commits:

64ea8b8d9d
ad31a07e39
ea6c2ac185
f59e6d8ef1
53266d1b61
f8aecdf95e

Reviewed By: 2d2d2d2d2d

fbshipit-source-id: 8d87f6f8c7359397896ea61378aafdd0e7ec88b5
2021-05-07 00:59:26 -07:00
svcscm svcscm
b228f978a5 Updating submodules
Summary:
GitHub commits:

54a106252d
4aa85dbbac
41529c712a
a9a0e90ed2
1d3984e378
3a076b8fae
9d8927477d
131099f9a2
2fb4ab1ce1

Reviewed By: 2d2d2d2d2d

fbshipit-source-id: 30632833ab178169af68c4b99fa63a79861e0eff
2021-05-07 00:21:00 -07:00
svcscm svcscm
68895995ce Updating submodules
Summary:
GitHub commits:

262c893ac1
7ed7af7b79
7c11d587d9
946e640114
83922c9258
29a94da71a
b017bdba2c
aac708e2f9
b568a55016
d9909c2037
6d01bb113f
9b7957648e

Reviewed By: 2d2d2d2d2d

fbshipit-source-id: 03973f2316750d8e5bd3060c5efbd00b90bbd9db
2021-05-06 23:57:40 -07:00
Marc Fisher
9bdd73be2c Add stables template keyword to hg.
Summary:
Adding support for the stables template keyword in stablerev extension.

This keyword calls out to a script specified in the config stablerev.stables_cmd to get a list of stable aliases for a given revision.

Reviewed By: quark-zju

Differential Revision: D28204529

fbshipit-source-id: 3c5b21846ce6f686afddd00d3326a54b85be87dd
2021-05-06 23:52:32 -07:00
svcscm svcscm
a71bb9dd8e Updating submodules
Summary:
GitHub commits:

af6f64e3bb
97e3d72b72

Reviewed By: 2d2d2d2d2d

fbshipit-source-id: 0fb7007226ff128719f528b8ca7f190786a7d3ba
2021-05-06 23:20:14 -07:00
svcscm svcscm
1005062d9a Updating submodules
Summary:
GitHub commits:

1405f8f716
e58aee0906
0bbc5fb6f9
734dbbe19b
19924f55cc
7c08cc58e5

Reviewed By: 2d2d2d2d2d

fbshipit-source-id: 157d355eed7b48b17a1832b0d88eab1491a801c6
2021-05-06 22:09:23 -07:00
Jun Wu
647ee078d0 dag: actually test server1 in test_sparse_dag
Summary:
The server1 was not used after D27629318 (ba7e1c6952) while the test intentionally wants to
exercise graph isomorphism. So let's revive server1 in the test.

Reviewed By: andll

Differential Revision: D28269926

fbshipit-source-id: 0a04031415f559f8a6eb81f1e2f2530329a2a3bc
2021-05-06 21:15:22 -07:00
svcscm svcscm
eb98496061 Updating submodules
Summary:
GitHub commits:

f672e8573a
da8f6d4b03
c4d396c0b7
38ae24c0fe
ca8b179826
63133caba5

Reviewed By: 2d2d2d2d2d

fbshipit-source-id: 5d35f32a9b7094377ddec69fcb28760503419f8e
2021-05-06 21:04:50 -07:00
svcscm svcscm
56dd3f87cc Updating submodules
Summary:
GitHub commits:

1a194847bc
77878ce87a
813ebf03d5
d7ef2c767c
7e75be839b
efd9efe7f1
4c143166a0
96b2adc006
ae5d097bb0

Reviewed By: 2d2d2d2d2d

fbshipit-source-id: 68bca441781b627ed54183a21a8b284f6b8c7361
2021-05-06 20:30:31 -07:00
svcscm svcscm
9da508cd8b Updating submodules
Summary:
GitHub commits:

0958548427
cd774ba1e3
4827dd0bed
a6b76608a8
9d469baa22
a171727933
74d237eb8c
33b359d307
ebe54cd320
2e0eef5886
30b90dea65

Reviewed By: 2d2d2d2d2d

fbshipit-source-id: 9ed7dae602b5db1e73abca6dd5ff334d89982c62
2021-05-06 19:55:05 -07:00
svcscm svcscm
fc065d47ec Updating submodules
Summary:
GitHub commits:

e151dd72e4
09ccc85fb9
5150091faf
aa7f74aaf6
3b64321569
0e8e1a86ef
42088184fd
de7cb43fa1
b286305968

Reviewed By: 2d2d2d2d2d

fbshipit-source-id: 694dcdabbf842b502011aa6ea335f19d3076753b
2021-05-06 19:23:43 -07:00
svcscm svcscm
2f1cbb77e8 Updating submodules
Summary:
GitHub commits:

6d8b0ea3bc
83dd4ec888
f0a780d409
3afb5d7590
b2e1c28c2b
f6624f9900

Reviewed By: 2d2d2d2d2d

fbshipit-source-id: f21edde2a54006b4bb66cb4f972b9c95563e26fc
2021-05-06 18:13:34 -07:00
svcscm svcscm
057cb937ed Updating submodules
Summary:
GitHub commits:

aea7ffe693
4d94ff3661
3c537172f9
69303e55c2
29fc40d6a5
26bd4d95cc
f8be6efee4
8ca2723c44
c36186e39e

Reviewed By: 2d2d2d2d2d

fbshipit-source-id: 6943dc849c58fbebfb9ef80ab5c3129826c4c79c
2021-05-06 17:37:07 -07:00
svcscm svcscm
5b9bb6e371 Updating submodules
Summary:
GitHub commits:

f00dad6d24
a08e4523ed
cebc80bec9
6ee7cddaf3
31404ba0cb
ecd63b9262
828b80cf96
01c102d340
f935ca4048
41567cc168
5d529427bd
0eb303b655
8bb3f12627

Reviewed By: 2d2d2d2d2d

fbshipit-source-id: 2ae0e4231ca0ac053cf7c0ec7351d91eaf45b13f
2021-05-06 17:02:11 -07:00
svcscm svcscm
e3da7931e1 Updating submodules
Summary:
GitHub commits:

a3239716fb
844583588d
868a856cc9
808c260098
6f0b09513c
f5a4c06426
40a738b14a

Reviewed By: 2d2d2d2d2d

fbshipit-source-id: ddf06814ebac557c39a3cf612a37bd3cd8a900c9
2021-05-06 16:17:31 -07:00
svcscm svcscm
88afa41dd4 Updating submodules
Summary:
GitHub commits:

3cdbb74625
0ed7989c76
baa1378c55
177d8b8a42
fadab1c950
f577e7ddeb
73fd377429
12d1b9a689
5498b1a74a

Reviewed By: 2d2d2d2d2d

fbshipit-source-id: d35fec998fc21e53a235bd14034874156f4d81a7
2021-05-06 15:43:36 -07:00
svcscm svcscm
deacf66836 Updating submodules
Summary:
GitHub commits:

c328b701bf
6a095a3bb2
e03a0aa2dc
d7b8931153
cafc37c7df
7e417910d1
0679a435e5
7d6f8f8e67
b0034e7571
5ec39f3917
9987d67205

Reviewed By: 2d2d2d2d2d

fbshipit-source-id: db0a7b427eac103c13e54a2ae6d9234efc4d831c
2021-05-06 15:16:38 -07:00
svcscm svcscm
659247f7b9 Updating submodules
Summary:
GitHub commits:

64b4695593
111732b46c
f0cac480a2
72bbd4c130
cc27f7b393
bc9f0a42fd
9356cc7d6f
baf40fb110

Reviewed By: 2d2d2d2d2d

fbshipit-source-id: 6f7cb65950774f1740007f27e691443eae586168
2021-05-06 14:43:19 -07:00
svcscm svcscm
aa13330609 Updating submodules
Summary:
GitHub commits:

ce24d3b2cd
f0caeac175
f9d1e29f12
0fb0daeee8
7c19de9c29
2a64a73109
580bbd5c58
cade78e115
0638c5cc08
e82f86e06a

Reviewed By: 2d2d2d2d2d

fbshipit-source-id: b279563b3bcab36542f52aa62c404383cf40a376
2021-05-06 14:16:23 -07:00
Alex Hornby
64f9a49751 mononoke: log repo name to the packinfo logs
Summary: This makes filtering and grouping easier

Differential Revision: D28258074

fbshipit-source-id: ef828852094544a1f0b5b56c0c3f54c6b3d6beb5
2021-05-06 13:58:30 -07:00
Alex Hornby
f8311f2887 mononoke: stop double wrapping blobstores in blobstore factory
Summary:
In blobstore factory we can end up with duplicate layers of wrapper blobstores like ReadOnlyBlobstore.

For the multiplex, its inner stores get throttling, readonly etc wrappers, and it itself only writes to its queue if an inner store succeeds, which it can't when inner store has ReadOnlyBlobstore wrapper.

Differential Revision: D28250832

fbshipit-source-id: 5a3f85584b9cce17ca7ce4b83cdb2117644850db
2021-05-06 13:58:30 -07:00
Alex Hornby
e5b76645df mononoke: log multiplex blobstore component types
Summary: Add support for logging the inner parts of a multiplex blobstore stack.  This helps understand what wrappers have been applied.

Differential Revision: D28230927

fbshipit-source-id: 873ee30ec00fdc2dfc79b47e5831231c51e2ce0d
2021-05-06 13:58:30 -07:00
Alex Hornby
8579f85892 mononoke: load bulkops in large fetch size from walker
Summary:
Fixing the bulkops fetch size to MAX_FETCH_STEP means we can use the chunk size option to control how many changesets are walked together without affecting query performance.

This will allow more accurate first referencing commit time lookup for files and manifests, as all commits in a chunk could possibly discover them,  with smaller chunks the discovered mtime becomes less approximate, at the possible cost of some walk rate performance if one was to run with very small chunk sizes.

Differential Revision: D28120030

fbshipit-source-id: 0010d0672288c6cc4e19f5e51fd8b543a087a74a
2021-05-06 13:58:30 -07:00
Alex Hornby
6b108df9ed mononoke: return id from bulkops fetch_ids
Summary: Knowing the numeric changeset id is useful in next diff when chunking in walker is loading from bulkops in large chunks, but then walking commits in smaller chunks.

Differential Revision: D28127581

fbshipit-source-id: c5b3e6c2a94e33833d701540428e1ff4f8898225
2021-05-06 13:58:30 -07:00
Alex Hornby
5b3dfbb59b mononoke: log which blobstore stack walker is sampling from
Summary: Found this useful while debugging the pack sampling

Differential Revision: D28118243

fbshipit-source-id: d94b0b87125a9863f56f72029c484909a3696329
2021-05-06 13:58:30 -07:00
Thomas Orozco
ea8332c47d mononokepeer: increment mononoke_read_bytes on read()
Summary:
We were only incrementing this on `readline`, which resulted in very low
numbers. While in there, I also removed `self._totalbytes` as that was unused.

Reviewed By: johansglock

Differential Revision: D28260141

fbshipit-source-id: 6d9008f9342adaf75eecc8ed8c872f64212cd1f7
2021-05-06 13:41:52 -07:00
Xavier Deguillard
c79ff7602a checkout: keep InodeNumber constant during checkout
Summary:
In an NFS mount, the InodeNumber are sent to the client as the unique
identifier for a file. For caching purposes, the client will issue a GETATTR
call on that InodeNumber prior to opening it, to see if the file changed and
thus whether its cache needs to be invalidated.

In EdenFS, the checkout process does unfortunately replace file inodes
entirely, causing new InodeNumber to be created, and thus after an update, an
NFS client would not realize that the content changed, and would thus return
the old content to the application. To solve this, we could approach it in 2
different ways:
 - Build a different kind of handle to hand over to the NFS client
 - Keep InodeNumber constant during checkout.

After trying the first option, it became clear that this would effectively need
to duplicate a lot of functionality from the InodeMap, but with added memory
consumption. This diff attempts to do the second one.

Reviewed By: chadaustin

Differential Revision: D28132721

fbshipit-source-id: 94d470e33174bb9ffd7db00e1b37924096aac8e9
2021-05-06 13:28:44 -07:00
svcscm svcscm
8e66e91f9f Updating submodules
Summary:
GitHub commits:

3553035b28
20a5ab5985
98b2196f37
505eab36f1
d2cc90c4bd
cd1f48cedf
057cf6d339
8805fc4061
b091e36591
f1799fb8b9
76d8999de6
4b94b51606

Reviewed By: 2d2d2d2d2d

fbshipit-source-id: bd96466613c0fdb3b7767271ab74f8f7ffdc1d83
2021-05-06 13:15:23 -07:00
svcscm svcscm
ff6ed04f0e Updating submodules
Summary:
GitHub commits:

83e5f8f8b7
a423360968
fa183963d4
3b0e443c55
9c2ac993a8
c55f6e790b
a81234b213
c43c39e740
86a4c28cff
ac28a1ea83
ef4da7bc65
580d6371fb

Reviewed By: 2d2d2d2d2d

fbshipit-source-id: 8792b66c989ca73a2c29be47939f5ed436c4d132
2021-05-06 12:44:03 -07:00
Jun Wu
f36574ef0f test-eager-exchange: test treemanifest reading
Summary:
Add a subtree to exercise treemanifest logic. Blobs in EagerRepo are verified
so we need to disable flatcompat.

Reviewed By: DurhamG

Differential Revision: D28006550

fbshipit-source-id: ac7157a9c01ed99f703601613fb3cf06add69003
2021-05-06 12:13:17 -07:00
Jun Wu
b6d24fc969 eagerepo: support "test:name" repo URLs
Summary: This makes it easier to use it in tests.

Reviewed By: DurhamG

Differential Revision: D28006549

fbshipit-source-id: 90e29b220453a3d7a260d0a62d697d64363d9a6c
2021-05-06 12:13:17 -07:00
Jun Wu
f23f112dc8 test-eager-exchange: add test showing file content can be read after clone
Summary:
With remotefilelog force enabled, it's now possible to read the file content after
clone. Add a test for it.

Reviewed By: DurhamG

Differential Revision: D28006547

fbshipit-source-id: 5be93e162f352b1264a6c52852c2230726652f9d
2021-05-06 12:13:17 -07:00
Jun Wu
d9b901b22c extensions: always enable remotefilelog
Summary:
This makes it easier to get rid of revlog stores.

`debugindexdot` is no longer supported since it reads revlogs.
Two tests use flat manifest bundles. They are no longer supported
due to remotefilelog today has some assumptions that treemanifest
extension is also being used.

Reviewed By: DurhamG

Differential Revision: D27971126

fbshipit-source-id: fdb992a8d72bbcf562b5cb95b3f29051dd1c9464
2021-05-06 12:13:17 -07:00
Jun Wu
05ae4dd6f8 tests: stop disabling treemanifest for some tests
Summary:
Disabling treemanifest is a tech debt that causes problems, especially when
enabling remotefilelog.

Reviewed By: andll

Differential Revision: D27971120

fbshipit-source-id: 1a50acc23564c2d6bad79a2e99469850b5a7d1f9
2021-05-06 12:13:17 -07:00
Jun Wu
4c214bca8c dag: move some tracing logs from dag::namedag to dag::protocol
Summary:
This makes it easier to filter logs related to remote fetching.

The `DEBUG dag::protocol: resolve ids [0] remotely` means the lazy hash resolution is working.

Reviewed By: kulshrax

Differential Revision: D27971117

fbshipit-source-id: f2492204c70d793997d0c3865e500bbad56b1953
2021-05-06 12:13:17 -07:00
Jun Wu
e0b6773019 eagerepo: write commits to master group
Summary:
Write commit to master group. This provides proper "CloneData" and allows us to
actually test lazy commit hash backend (since only commits in the master group
can have lazy hashes).

Reviewed By: DurhamG

Differential Revision: D27971123

fbshipit-source-id: 4e19486007ddc89de7468be65445559f34d796f5
2021-05-06 12:13:17 -07:00
Jun Wu
6763719506 eagerpeer: add clone support
Summary:
Add clone endpoint so we can clone from an eager test repo.

Note: the master group is empty and "cloneata" does not quite work yet due to
EagerRepo not writing to the master group. It will be fixed later.

Reviewed By: DurhamG

Differential Revision: D27971121

fbshipit-source-id: 0cc35136c6987673c2c4fbbd892c344c3586fcb7
2021-05-06 12:13:17 -07:00
Stefan Filip
5b2ee8ccbf segmented_changelog: update version logging to obey context discard
Summary: This update makes it so that we don't log versions to scuba from tests.

Reviewed By: krallin

Differential Revision: D27449808

fbshipit-source-id: 9c79e83fbfdf3d9a02c2cfc8b6a8255edb4241fe
2021-05-06 11:40:09 -07:00
Stefan Filip
2a088f664d repo_factory: update the CoreContext used for segmented changelog
Summary: This enables scuba logging for segmented changelog background updates.

Reviewed By: quark-zju

Differential Revision: D28210010

fbshipit-source-id: aa485e4416a70540df0facc2290ebbb95aed6b9b
2021-05-06 11:40:08 -07:00
Stefan Filip
ea5251e0db cmdlib: add scuba sample builder to environment
Summary:
This is going to enable the background update in SegmentedChangelog to log
entries to Scuba.

The scuba sample builder is not fundamentally different than other elements of
the environment. It is used slightly differently to, for example, Logger,
because it has to cloned in all places that want to log rows but otherwise it
has the same characteristics.

Reviewed By: krallin

Differential Revision: D28210008

fbshipit-source-id: 68468868d13f29dddf21095bd7526cb4ff690786
2021-05-06 11:40:08 -07:00
Kostia Balytskyi
390605bf1e megarepo: intial impl of async requests table
Summary:
This is where async requests are logged to be processed, and from where they
are polled later.

It will acquire more functionality when the actual request processing business
logic is implemented.

Reviewed By: StanislavGlebik

Differential Revision: D28092910

fbshipit-source-id: 00e45229aa2db73fa0ae5a1cf99b8f2d3a162006
2021-05-06 11:33:39 -07:00
Xavier Deguillard
b7ab05edc5 utils: add an ImmediateFuture type
Summary:
In very hot code path, EdenFS is spending a very large amount of time creating
and destroying folly::Future objects. This is due to the required memory
allocation, as well as the handful of atomics that are happening at creation
time, and these are showing up in EdenFS profiles.

In the steady state, EdenFS actually doesn't need futures, as it often times is
able to service requests from its in-memory caches, in which case we should
ideally just return the value itself and not wrap it in a folly::Future. The
added ImmediateFuture is a step in this direction, as it can hold either an
immediate value, or a folly::SemiFuture, and allow the same API to be used
transparently between these 2.

Reviewed By: genevievehelsel

Differential Revision: D28006802

fbshipit-source-id: 89eaa32e7fa82c44844c4b23c4cb30dbeea46ca8
2021-05-06 10:54:03 -07:00
svcscm svcscm
346c986f20 Updating submodules
Summary:
GitHub commits:

b250dfed8b
bafae7add5
4a865538de
3625f4fa84
8d018aef2a
7b19819a13
c2edbafba2
fd860ef57f
009ccae883
fab4d78c60
3b3e13004e
caa0eecb40

Reviewed By: 2d2d2d2d2d

fbshipit-source-id: e79efbc0e71e4ac2dc3811026ce4f45ba093d523
2021-05-06 10:50:52 -07:00
Alex Hornby
41b069036e mononoke: log sizing metadata to walker pack info logs
Summary:
Log the sizing metadata about keys that scrub has seen to the pack info logs.

This uses the sampling blobstore to see all blobstore gets and captures info from them.

Also updates relatedness_key fieldname to mtime as that way its less easily confused with similarity_key

Differential Revision: D28115620

fbshipit-source-id: 666a444c2d91b0ca5bb225cea971f9b183e6a48d
2021-05-06 10:22:23 -07:00
Alex Hornby
46bd65e89b mononoke: update SamplingHandler::sample_get to take BlobstoreGetData
Summary:
Pass BlobstoreGetData to the sampler so that it has a chance to sample the BlobstoreMetadata as well as the BlobstoreBytes.

This is used in the next diff for sampling the sizing information.

Reviewed By: markbt

Differential Revision: D28115619

fbshipit-source-id: 7a79d482c9ba1ed8b08afab5f1c1b8fe7c4f257a
2021-05-06 10:22:23 -07:00
Alex Hornby
6dd1bd8ecc mononoke: add metadata about compressed blob sizes
Summary: When reading from packblob we'd like to see metadata about sizes so that can log it for the packer later in this stack.

Reviewed By: markbt

Differential Revision: D28101971

fbshipit-source-id: 96dd0d5497c2bb5c27231709dbd19d00168e1a77
2021-05-06 10:22:22 -07:00