Summary:
We want to introduce two debug commands to record perf profiles such as files read. This can later be integrated to CI so that we can have this data for troubleshooting perf issues.
* `eden debug start_recording` starts recording perf metrics such as files read/written and fetch counts/latency for a given mount.
* `eden debug end_recording` stops recording and dumps the recorded profile to a local file.
This diff adds the boilerplate `ActivityRecorder` (borrowed heavily from `HiveLogger`'s implementation). The start command would create an instance of the recorder; the end command would destroy the recorder. The recording and dumping are handled by the implementing class.
Reviewed By: genevievehelsel
Differential Revision: D29506895
fbshipit-source-id: a927a363942a041d5ae54186a265576325dfeed5
Summary: These are needed for mercurial in the test cases, we set this in the testharness C++ repo as well
Differential Revision: D29868460
fbshipit-source-id: e11cf41823ee073e3863fb5a38ecbf1146073ff5
Summary: This test reads files one by one and measures latency of reads
Reviewed By: kulshrax
Differential Revision: D29824745
fbshipit-source-id: abf73d4c279c184c2e76f2052304ea13c40e86b4
Summary:
Clean Up: remove old snapshots extension.
This extension is unused and its name clashes with the new Snapshots project which offers a different implementation.
As discussed with markbt and yancouto, we should unfortunately delete this code.
Reviewed By: markbt
Differential Revision: D29875074
fbshipit-source-id: 2bcd835e58fc50c5aad94a184a4d2ecb6be79c9c
Summary:
Add support for issue CAT commit cloud tokens on corp Macs.
This is needed to support enabling Scm Daemon for all mac users **automatically**.
The tool `corp_clicat` is probably not yet deployed everywhere but it will work once deployed.
The current manual way will remain working as well.
The current way is manual:
* obtaining OAuth token from https://our.intern.facebook.com/intern/oauth/184975892288525
* running `hg cloud auth -t <token>` (the command stores the token into Mac keychain, Scm Daemon fetches from it).
The problem with the manual way is that users are not aware about scm daemon and the features it provides. The manual way worked fine when the tokens were also used for hg commit cloud extension as well but now they are not used.
Reviewed By: markbt
Differential Revision: D29791737
fbshipit-source-id: 2391a196167e1f17d53a3231dbf58f7cb2bcd39a
Summary: This utility will be used to measure latency and throughput of EdenFS
Reviewed By: kulshrax
Differential Revision: D29824747
fbshipit-source-id: f5298125bdaa16ccd52cb00a6bc3cd544c0967b7
Summary: It's nice to be able to keep track of what's going on
Reviewed By: mwdevine
Differential Revision: D29790543
fbshipit-source-id: b855d72efe8826a99b3a6a562722e299e9cbfece
Summary:
Added an optional argument to `/upload/file`, that allows specifying a bubble id, which will be used to upload the file into the ephemeral blobstore instead of the main one.
This is necessary in order to create a snapshot, as all files must be in the ephemeral blobstore.
Reviewed By: liubov-dmitrieva
Differential Revision: D29734333
fbshipit-source-id: c1dcf8d5a78819925f8defbfbd7d06b0f6a9e973
Summary: Insert id's are always positive, so let's use `NonZeroU64` instead of `u64`. This is more restricted, which is good, but also has the added benefit that `Option<NonZeroU64>` doesn't use any additional space, because of compiler optimizations.
Reviewed By: StanislavGlebik
Differential Revision: D29733877
fbshipit-source-id: 8a0e1a1bd84bcedbba51840f1da8f8cac79bca42
Summary: Ephemeral handle is a blobstore that's built from a bubble and a "main blobstore", which first attempts to read from the ephemeral blobstore, but falls back to the main one. Will be used to read/write stuff in snapshots.
Reviewed By: liubov-dmitrieva
Differential Revision: D29733408
fbshipit-source-id: f15ae9d3009632cd71fafa88eac09986e0b958e7
Summary:
Move EdenApi Uploads code from commit cloud extension to core
So this can be later used for pushes as well. The code is not commit cloud specific.
The function takes revs and returns uploaded, failed lists that are also revs.
Reviewed By: yancouto
Differential Revision: D29846299
fbshipit-source-id: e3a7fbc56f0b651c738dc06da7fdb7cde4feedf7
Summary: This test is overly reliant on exact logging output, and the output has changed. Update the test for the new output, and make it a bit more lenient in the process.
Reviewed By: StanislavGlebik
Differential Revision: D29787827
fbshipit-source-id: 3e8aa77d2edcf3d0ca95c0d17d0b4e3845b78ae3
Summary:
Improve integration tests coverage for `hg cloud upload` and `hg cloud sync` with enabled upload.
This includes end2end tests for uploading mutation information, pulling commits from another repo,
generally how uploads behaves after a rebase, after file moves, after editing a commit message, how copy_from data has been preserved.
Reviewed By: markbt
Differential Revision: D29816436
fbshipit-source-id: 2aa421c8479683721984e13d537c34df8b1ca2d1
Summary: update test certificates for another 10 years rather than the default 1 year
Reviewed By: markbt
Differential Revision: D29846930
fbshipit-source-id: 98bc139c21e4d9e4cb5bab46485d849345bcc43d
Summary:
Move commitcloud to use TLS auth settings provided already for the default path.
I think it is a right approach to clean up separate configuration given that the certs for the default path has been supported for all platforms now and we have fully migrated to http/TLS.
Tested the token mode as well. Keep it fully supported for now.
This change will also allow on Demand to remove their custom commit cloud configuration.
Reviewed By: mzr
Differential Revision: D29764745
fbshipit-source-id: bc5681a919dfa6ec79ea3b832c9f4b98551278de
Summary:
It's useful to be able to overwrite or inject http headers without changing client's source code. I needed that when I was proxying client requests through ncat running locally on my machine - I had to set Host header.
Moreover, if it's part of the config, we'll be able to distribute it quickly with dynamicconfig to do some things.
Also, we have http.verbose that's being used by rust http client but it's not respected by mononokepeer in python. I'm adding that here as well. Not full blown verbose mode because it's not necessary - we're only upgrading to websocket.
Reviewed By: farnz
Differential Revision: D29792386
fbshipit-source-id: 51b7f3cf07a870636ac6aa126f0efb45e979ef30
Summary:
Add methods to easily determine whether a tree exists, or whether anything
(either a file or a tree) exists at a particular path.
Reviewed By: StanislavGlebik
Differential Revision: D29815982
fbshipit-source-id: f3fb1919545bdcb46ed663a0a514338dc137abee
Summary: This adds counters for memory and disk counts in addition to import count so that we can understand cache hit rates during local investigation or output this in ActivityRecorder.
Reviewed By: genevievehelsel
Differential Revision: D29805637
fbshipit-source-id: 34261f91c33d6bd4bcb4b85b17d2e68360410896