Commit Graph

60427 Commits

Author SHA1 Message Date
Thomas Orozco
d7081f6aba lfs: add client support for received compressed responses
Summary:
As it says in the title, this adds support for receiving compressed responses
in the revisionstore LFS client. This is controlled by a flag, which I'll
roll out through dynamicconfig.

The hope is that this should greatly improve our throughput to corp, where
our bandwidth is fairly scarce.

Reviewed By: StanislavGlebik

Differential Revision: D23652306

fbshipit-source-id: 53bf86d194657564bc3bd532e1a62208d39666df
2020-09-15 07:59:53 -07:00
Thomas Orozco
acc0d428cc mononoke/lfs_server: add support for response compression
Summary:
This adds support for compressing responses in the LFS Server, based on what
the client sent in `Accept-Encoding`. The compression changes are fairly
simple. Most of the codes changes are around the fact that when we compress,
we don't send a Content-Length (because we don't know how long the content will
be).

Note that this is largely implemented in StreamBody. This means it can be used
for free by the EdenAPI server as well. The reason it's in there is because we
need to avoid setting the Content-Length when compression is going to be used
(`StreamBody` is what takes charge for doing this). This also exposes a
callback to get access to the stream post-compression, which also needs to be
exposed in `StreamBody`, since that's where compression happens.

Reviewed By: aslpavel

Differential Revision: D23652334

fbshipit-source-id: 8f462d69139991c3e1d37f392d448904206ec0d2
2020-09-15 07:59:53 -07:00
Thomas Orozco
21290702e1 third-party/rust: import async-compression + update zstd
Summary:
This imports the async-compression crate. We have an equivalent-ish in
common/rust, but it targets Tokio 0.1, whereas this community-supported crate
targets Tokio 0.2 (it offers a richer API, notably in the sense that we
can use it for Streams, whereas the async-compression crate we have is only for
AsyncWrite).

In the immediate term, I'd like to use this for transfer compression in
Mononoke's LFS Server. In the future, we might also use it in Mononoke where we
currently use our own async compression crate when all that stuff moves to
Tokio 0.2.

Finally, this also updates zstd: the version we link to from tp2 is actually
zstd 1.4.5, so it's a good idea to just get the same version of the zstd crate.

The zstd crate doesn't keep a great changelog, so it's hard to tell what has changed.
At a glance, it looks like the answer is not much, but I'm going to look to Sandcastle
to root out potential issues here.

Reviewed By: StanislavGlebik

Differential Revision: D23652335

fbshipit-source-id: e250cef7a52d640bbbcccd72448fd2d4f548a48a
2020-09-15 07:59:53 -07:00
svcscm
d4ae4f2952 Updating submodules
Summary:
GitHub commits:

53c2e134db
892e559904

Reviewed By: yns88

fbshipit-source-id: 64f9596a60dc8d40dd1773f5871262db86333d7c
2020-09-15 07:24:50 -07:00
Stanislau Hlebik
d0c212f0b1 clienttelemetry: allow logging arbitrary config values
Summary: That might be used to pass more data to the server

Reviewed By: markbt

Differential Revision: D23704722

fbshipit-source-id: a6e41d615f6548f2f8fd036814c59573a45f93bc
2020-09-15 06:48:28 -07:00
Pavel Aslanov
add34a48f2 remove uneeded locks
Summary: New type async/await can mutate variables, we no longer need synchronization for this counters

Reviewed By: ikostia

Differential Revision: D23704765

fbshipit-source-id: eb2341cb0c82b8a49c28ad3c8fd811ed3af73436
2020-09-15 06:35:58 -07:00
Stanislau Hlebik
cb0b332622 mononoke: add bookmark regex to mononoke_x_repo_sync_job
Summary:
This would let us allow only a certain bookmarks to be remapped from a small
repo to a large repo.

Reviewed By: krallin

Differential Revision: D23701341

fbshipit-source-id: cf17a1a21b7594a94c5fb117065f7d9298c8d1af
2020-09-15 04:23:05 -07:00
Stanislau Hlebik
eebebcbe83 mononoke: use correct repo in manual_sync_commit
Summary:
Previously we used target repo for a commit from a source repo. This diff fixes
it.

Reviewed By: krallin

Differential Revision: D23685171

fbshipit-source-id: 4aa105aec244ebcff92b7b71a6cb22dd8a10d2e5
2020-09-15 03:45:48 -07:00
Alex Hornby
8d5855a2aa mononoke: add a test for MPathElement size
Summary: Add a test to detect any unexpected changes in MPatheElements size

Reviewed By: farnz

Differential Revision: D23703345

fbshipit-source-id: 74354f0861b048ee4611304fc99f0289bce4a7a5
2020-09-15 03:42:43 -07:00
Alex Hornby
dfb8a524bf mononoke: add a MPath::get_path_hash test
Summary: Add tests for get_path_hash as there weren't any.

Reviewed By: farnz

Differential Revision: D23703343

fbshipit-source-id: 99f7056d71d01a9ecdf6526f6aed2e27cd4834a0
2020-09-15 03:42:43 -07:00
svcscm
a7290beb3a Updating submodules
Summary:
GitHub commits:

e31f63b0e4
e5491d6701
e8f084cb63
c8c0c0bc7c
c884af5a7f
afe7982e0a
2f2e8a8212
4f5c49ca63
7e021728a0
83db5f031f
a1d05ee617

Reviewed By: yns88

fbshipit-source-id: f357db1e806d8bdec6082f83c77c30a745cd6220
2020-09-15 02:42:20 -07:00
Stanislau Hlebik
bfc3410fdd mononoke: allow syncing XRepoSync bookmarks
Summary:
Facebook
We need them since we are going to sync ovrsource commits into fbsource

Reviewed By: krallin

Differential Revision: D23701667

fbshipit-source-id: 61db00c7205d5d4047a4040992e7195f769005d3
2020-09-15 02:28:35 -07:00
svcscm
0b031454f3 Updating submodules
Summary:
GitHub commits:

d127906722
e8c4c4da12
45f24ee9f8
841d5087ed
1de10dc4b9
e645243f68
bacb876d84
d6d7fc6655
5419274a99
aa416f5bc9
ac33c9e7d3
2a641ffb87

Reviewed By: yns88

fbshipit-source-id: 31a63366b3023d6adf832541c9cd61cd120e1a1d
2020-09-15 01:41:11 -07:00
Alex Hornby
7316eeac75 rust: vendor dashmap 3.11.10
Summary: Noticed there had been an upstream 3.11.10 release with a fix for a performance regression in 3.11.9, PR was https://github.com/xacrimon/dashmap/issues/100

Reviewed By: krallin

Differential Revision: D23690797

fbshipit-source-id: aff3951e5b7dbb7c21d6259e357d06654c6a6923
2020-09-15 00:59:33 -07:00
Luca Niccolini
55bf30a475 googletest 1.8.0
Summary: required. not installed with CMake ExternalProject anymore

Reviewed By: xttjsn

Differential Revision: D23700095

fbshipit-source-id: 807105a1e3d4bd837a35e39c6dced53744edd8de
2020-09-14 23:59:08 -07:00
Stanislau Hlebik
8a37cd4b07 mononoke: extend pre merge delete command to delete only files not found in
Reviewed By: aslpavel

Differential Revision: D23679215

fbshipit-source-id: 1942886ad0c1ebe0a27dd6b1a2535405d4ca3dac
2020-09-14 23:26:16 -07:00
svcscm
a1bfe1b8f5 Updating submodules
Summary:
GitHub commits:

bf36711a52
da6a69cf51
c03eee7a2c
c31646684d
fb9a6f78b3
22b436ce4f
87255c07c8
32ca7c945a
9523d58a01
5988548bcc
2e91a6066d

Reviewed By: bigfootjon

fbshipit-source-id: 53696e1d4f1ef0722b6946748453c8e3301c9ece
2020-09-14 23:26:16 -07:00
svcscm
b85498b200 Updating submodules
Summary:
GitHub commits:

d38be9a7e8
373dd9a8a6
737a25d853
9f72af220e
d801d46ed2
f4a5463c77
842ace10fa
3860269f50
b252589967
f3a4f8fa61
1aec6b57f0
a265a2f68c

Reviewed By: bigfootjon

fbshipit-source-id: 61786dbcde33db86ced3c1284f4402c87264cea5
2020-09-14 22:58:42 -07:00
Luca Niccolini
f451d8f2e3 enable tests in getdeps
Summary:
in getdeps we currently don't build and run the tests
There are a few issues:
  1. we need to also build tests for fizz, wangle, mvfst since proxygen tests include headers only exported if building tests in dependencies
  2. we use `ExternalProject_add` for gtest/gmock. but doesn't seem to be playing nicely with getdeps

Reviewed By: dddmello, mjoras

Differential Revision: D16934955

fbshipit-source-id: fb1c52237f9f0c71da86643409972c94d16e6a71
2020-09-14 22:04:49 -07:00
Luca Niccolini
ec10abc583 enable tests in getdeps
Summary: properly find the required GMock version (1.8.0) and allow building tests in getdeps

Reviewed By: mjoras

Differential Revision: D16935741

fbshipit-source-id: 46f62511e2feaf553d028e286a862aa5b30393c6
2020-09-14 22:04:49 -07:00
Luca Niccolini
2c773cc515 enable tests in getdeps
Summary: also always install fizz test headers for mvfst and proxygen tests to consume without needing to build fizz tests

Reviewed By: yfeldblum

Differential Revision: D23676344

fbshipit-source-id: 7ae78c81c2d67bb8da135fcd69d4be119b50a27e
2020-09-14 22:04:48 -07:00
Luca Niccolini
49e3719cd0 fizz, mvfst, wangle, proxygen: add gmock as fbcode_build dependency
Summary: they were all transitively pulling it from folly

Reviewed By: mjoras

Differential Revision: D23683292

fbshipit-source-id: 2085a580584891b3fd0960c14505c0f675a11bd5
2020-09-14 22:04:48 -07:00
Chad Austin
dca9f7bbfb use python 3 for the eden_scm getdeps build
Summary:
EdenFS is adding a Python 3 Thrift client intended for use by other
projects, and the Mercurial Python 2 build doesn't understand Python 3
syntax files, so switch the default getdeps build to Python 3.

Reviewed By: quark-zju

Differential Revision: D23587932

fbshipit-source-id: 6f47f1605987f9b37f888d29b49a848370d2eb0e
2020-09-14 21:39:51 -07:00
Xavier Deguillard
7d230956b7 win: remove unecessary headers from Stub.h
Summary: These headers aren't needed, and are slowing compile time at best, remove them.

Reviewed By: chadaustin

Differential Revision: D23693491

fbshipit-source-id: 4aebdfbbe56897623f62017bd498dc5c90ea6532
2020-09-14 19:25:49 -07:00
Xavier Deguillard
f95066e4ca win: remove FuseChannelData from Stub.h
Summary:
This was only used in EdenMount.h, to declare a method that was not compiled on
Windows, let's ifdef that method instead.

Reviewed By: chadaustin

Differential Revision: D23693494

fbshipit-source-id: 1eda62f2ae3a38a30aa0b517911635ef3d3896c2
2020-09-14 19:25:49 -07:00
Xavier Deguillard
601eab97f8 win: remove SerializedFileHandleMap and unlink from Stub.h
Summary: These 2 are unused, remove them.

Reviewed By: chadaustin

Differential Revision: D23693495

fbshipit-source-id: 9835de857d103c7079eda53d7e5f1914ad025fca
2020-09-14 19:25:48 -07:00
Xavier Deguillard
88c748e3b9 win: remove ProcessNameCache from Stub.h
Summary:
The ProcessNameCache code is compiled on Windows now, this definiton could
cause issues with different cpp files compiling different version of the
ProcessNameCache. To avoid this, let's remove it from Stub.h, this also removes
a bunch of #ifdef.

Reviewed By: chadaustin

Differential Revision: D23693490

fbshipit-source-id: 8f3f7b1128235b9a60f850e688b9e98910c202fc
2020-09-14 19:25:48 -07:00
Xavier Deguillard
8498760bf0 win: remove fuse_in_header from Stub.h
Summary: This is not needed, remove it.

Reviewed By: chadaustin

Differential Revision: D23693489

fbshipit-source-id: 0d7674f3001410b2d9ff02ef95049c5391d8528c
2020-09-14 19:25:48 -07:00
svcscm
0b94e6bbd9 Updating submodules
Summary:
GitHub commits:

a84a214ddf
587ad0d62e
02f127e417
25e3fd32e2
efa1624780
64aed325fe
c5b7753876
7d472accdc
ca2dfd0389
abf9c2d768
f7f8a03e9e
05c6c0a084
15b3f0599a
8a98805d70
e70bbceef5

Reviewed By: bigfootjon

fbshipit-source-id: 50b8b9cd03cb30e6696f0448d9306106f22c1c1a
2020-09-14 18:06:26 -07:00
Xavier Deguillard
38bc544f7e win: remove win/service/main.cpp
Summary: This code is the same as the service/oss/main.cpp, no need to keep this one around.

Reviewed By: chadaustin

Differential Revision: D23689607

fbshipit-source-id: bb72a0623dcdb36beca40c3766e8d6817b99dea2
2020-09-14 18:03:07 -07:00
Katie Mancini
9c0be6c7c8 teach eden to parse arrays in configs
Summary:
This stack updates eden to be able to check all of the locations that able
users certificate may reside.

There can be multiple places where a cert may reside (we cant always
definitively choose one place to look based on the platform). Thus we
need to be able to configure multiple locations for certs in our eden
config.

Thus we need to be able to parse a list of options for a key in our config
parsing.

**Disclaimer this is really icky**

Our `FieldConverter` interface takes a string to parse. So this means
that after parsing the config file for each value we have to re-serialize it
into a string to pass it in here. Previously we only supported string and
bool values so this re-serialization was not too terrible. Now that we want
to support arrays this re-serialization is extra gross. To minimize the grossness,
I am reusing cpptoml for serializing / deserializing around the `FieldConverter`
interface.

Long term it would be better if FieldConverter took a cpptoml::base or
something more generic instead of a string so we dont have to do this.
But that will be a big refactor, and I don't currently have bandwidth for it :(

Reviewed By: wez

Differential Revision: D23359928

fbshipit-source-id: 7c89de485706dd13a05adf19df28425d2c1756a8
2020-09-14 17:40:13 -07:00
generatedunixname89002005307016
827498fc82 suppress errors in eden - batch 1
Differential Revision: D23685952

fbshipit-source-id: e545fd2625c36a8f811179091b3043c95281ff7a
2020-09-14 15:56:35 -07:00
Chad Austin
5f8fde4570 remove an irredeemably flaky test
Summary:
This test can't be non-flaky, because it relies on the kernel deciding
when to drop inodes from cache, and we've investigated it multiple
times. Given it tests a rarely-used function that would be better
expressed as a unit test in C++, just remove it for now.

Reviewed By: wez

Differential Revision: D23665455

fbshipit-source-id: 522e47113857eff399be4f2bb60e26e801d61e9a
2020-09-14 14:57:44 -07:00
svcscm
5392ec81ea Updating submodules
Summary:
GitHub commits:

b3eb120290
e675c45208
91c6fbeda2
8f60f63386
5529a44fe1
627ddba89a
6b72342a12
9fa11fdfad
09fb719da1
8e9abfac46
98b23a143f
89430b8528
a92dfc18eb
1d710393d5
38a46d3302

Reviewed By: bigfootjon

fbshipit-source-id: 341b1ff882dc4b96dc7b57ee534c6624d2894f9e
2020-09-14 13:56:54 -07:00
Genevieve Helsel
2965c5f74c remove extra printed lines and sort result in prefetch profile finish
Summary: For ease of consumption, remove the descriptive line and the extra newline at the bottom of the generated prefetch profile. Also, sort the files for smaller generated diffs upon iteration.

Reviewed By: kmancini

Differential Revision: D23683153

fbshipit-source-id: e2bd510d5fbd7095f199e70b2556b84e0984a914
2020-09-14 12:59:28 -07:00
Durham Goode
a674b25157 hgcache: add config driven cache nuking
Summary:
We've often had cases where we need to nuke peoples caches for various
reasons. It's a hug pain since we haven't a way to communicate with all hg
clients. Now that we have configerator dynamicconfigs, we can use that to reach
all clients.

This diff adds support for configs like:
```
[hgcache-purge]
foo=2020-08-20
```
The key, 'foo' in this case, is an identifier used to only run this purge once.
The value is a date after which this purge will no longer run. This is useful
for bounding the damager from forgetting about a purge and having it delete caches
over and over in the future for new repos or repos where the run once marker
file is deleted for some reason.

Reviewed By: quark-zju

Differential Revision: D23044205

fbshipit-source-id: 8394fcf9ba6df09f391b5317bad134f369e9b416
2020-09-14 11:01:02 -07:00
Luca Niccolini
b259a5c949 add gtest version 1.8
Summary:
needed by a few projects [wangle, mvfst, proxygen]

it's already in lfs
https://www.internalfb.com/intern/diffusion/FBS/browse/master/fbcode/tools/lfs/.lfs-pointers?lines=41

Reviewed By: mzlee

Differential Revision: D23676343

fbshipit-source-id: 0fa04d4224f27e756f683924af0c21ea63a90647
2020-09-14 10:17:01 -07:00
svcscm
75055110f0 Updating submodules
Summary:
GitHub commits:

3e27ae81b8

Reviewed By: wittgenst

fbshipit-source-id: a727e58e2bed1ba36487f3699e08e8d10d3f736c
2020-09-14 10:17:01 -07:00
svcscm
7a4ea426c4 Updating submodules
Summary:
GitHub commits:

5763a8f730

Reviewed By: wittgenst

fbshipit-source-id: 02d3f73f16f30149786e7c24d4f82a1d27b55434
2020-09-14 03:23:55 -07:00
svcscm
6dda6270a1 Updating submodules
Summary:
GitHub commits:

4c78848f6e
aed460488f
700ca5e928
36cc983c50
0dc4481126
e26d854953
3071547c10
2ead19c9ff
094614e514
23a4418f0f

Reviewed By: wittgenst

fbshipit-source-id: 292c4cf82192e60b99ee55266932cc24738374bd
2020-09-14 03:23:55 -07:00
svcscm
89aae4a7bf Updating submodules
Summary:
GitHub commits:

269c5931d1
007ab0fe3c
368e68bb7c
1011548320
a8580c6bab
edec931a53
6c13933d30
c27436c106
664219226e

Reviewed By: wittgenst

fbshipit-source-id: fe5e049e3581b89fb3a9a057c93fe7dbfa9290c4
2020-09-13 12:38:54 -07:00
Chad Austin
d58f0d9451 prevent spurious configuration reloads when a config file doesn't exist
Summary:
getConfigStat had a bug where it, instead of clearing the bits of
*configStat, cleared the bits of the pointer itself. This caused the
stat struct for missing files to be uninitialized memory, causing
configs to reload. Write a test and fix the bug.

Reviewed By: xavierd

Differential Revision: D23645087

fbshipit-source-id: ad42f7ec1b313f668604e3a7f6c8200f6b94b23d
2020-09-13 01:37:14 -07:00
Chad Austin
be7a6b5cb3 introduce an assertZeroBits function to double-check the compiler
Summary:
While hacking on some code, I ran into a situation where some
zero-initialized stat structs weren't actually being zeroed. This was
either a compiler bug or a situation where the build system was not
correctly rebuilding everything after my changes, and I did not have
enough disassembly available to investigate.

Either way, since this code assumes zero bits in some nonobvious ways,
explicitly assert they are.

Reviewed By: xavierd

Differential Revision: D23644819

fbshipit-source-id: eb6bff9ff997379113db1e1bf9d6a0a538f10f0b
2020-09-13 01:37:14 -07:00
svcscm
d0628d0f39 Updating submodules
Summary:
GitHub commits:

c2cdb9b805

Reviewed By: wittgenst

fbshipit-source-id: 10fbb44ddc52ac098050d1ed7d3282d1e2debdf8
2020-09-13 01:37:14 -07:00
svcscm
4e2760f001 Updating submodules
Summary:
GitHub commits:

b404e15981
c33144a817
03e6927e45

Reviewed By: wittgenst

fbshipit-source-id: e3544f652effe3253fdefd715ed1048ba816c710
2020-09-12 21:24:32 -07:00
svcscm
55438142ca Updating submodules
Summary:
GitHub commits:

77f7fbdf15
b004397720
881677eef5

Reviewed By: wittgenst

fbshipit-source-id: bd535f381f81da88bb5dad8e3a2e4a39b1349467
2020-09-11 20:07:27 -07:00
svcscm
86964210e0 Updating submodules
Summary:
GitHub commits:

8c0bd81893
5f813e67c0
205e577694
327af996e2
caaeb874b5
0725301da5

Reviewed By: wittgenst

fbshipit-source-id: 5526e384cade32c48b2b9a92fa75f0c3cbf738fa
2020-09-11 20:07:27 -07:00
svcscm
ee5c83ada8 Updating submodules
Summary:
GitHub commits:

2d8dccaa95
7a818548f1
8d571f23f0

Reviewed By: wittgenst

fbshipit-source-id: 09c6144ac11f908c2dd18ac281e48c1a67397897
2020-09-11 17:35:00 -07:00
Kostia Balytskyi
7f504c741b impl LCAHint for Arc<impl LCAHint>
Summary:
This just makes it more convenient to use in circumstances when fns expects
`impl LCAHint` and we have `Arc<dyn LCAHint`.

Reviewed By: farnz

Differential Revision: D23650380

fbshipit-source-id: dacbfcafe6f3806317a81ed4677af190027f010b
2020-09-11 16:56:13 -07:00
svcscm
1f87ed9a25 Updating submodules
Summary:
GitHub commits:

35ea7a00ed
7c0a56baec
e66c32d29c
423425040c
3afa07d4dd
08292ca2da
50b941a43e
65cb59cd9b
60053cbcd4
d5c8669813
689cdcc943
465262d45e

Reviewed By: wittgenst

fbshipit-source-id: 232dbc697c622a8401ed6c4cde74dc004e8142eb
2020-09-11 16:53:50 -07:00