Commit Graph

60444 Commits

Author SHA1 Message Date
Jun Wu
2abf0ada42 version: print EdenSCM instead of Mercurial
Summary: Per team discussion.

Reviewed By: singhsrb

Differential Revision: D23719401

fbshipit-source-id: a1e9a1e9a10369c307413354054a65e6520d13e5
2020-09-15 21:03:59 -07:00
Chad Austin
ecf88cd4a2 Back out "indicate to coreutils that edenfs is a remote filesystem"
Summary:
Original commit changeset: f4816b303e19

The newer version of Watchman that understands the new mount type name
won't release in time, so back this out for now.

Reviewed By: fanzeyi

Differential Revision: D23720167

fbshipit-source-id: 588541e1d9093533611d1f32b319d2562318506a
2020-09-15 20:57:15 -07:00
svcscm
1fc071cb4e Updating submodules
Summary:
GitHub commits:

f60082c890
fb2bf6242a
ceea6275c7
44f6bb75cd
9d3b2db9b5
1da66ea851
8e34d8d0e5
f1c0ab05ee
d4f0fd257b
25c3eed444
ecf657b96c
d09b4f5658
773e3336fc

Reviewed By: yns88

fbshipit-source-id: 26d5946a448240d185219fc4282e7c3d0d68553e
2020-09-15 20:54:11 -07:00
Xavier Deguillard
3ac8b21b2e tests: make test-fb-hgext-remotefilelog-ruststores-lfs.t reliable
Summary:
This test is flaky due to `hg up` not always reading data from the stores, and
thus not always failing to reading the LFS blob. A better way to force read
from the store is to simply use `hg log -p` to read from the stores.

Reviewed By: DurhamG, singhsrb

Differential Revision: D23718823

fbshipit-source-id: 98bc37a76e93a67d031ba7bfa124b1db816983a1
2020-09-15 18:57:58 -07:00
svcscm
1d6b75dc69 Updating submodules
Summary:
GitHub commits:

381d011f8a
fe26272729
8c43be38d0
383456d7db
130efc1b33
8df3cb082e
bf1aeebb6c
a32cdd3835
85a24062aa
e143b6303b
3bf335d4c6
453b189068
be0cc53d52
3fe6c4a07d
c41755d7b3

Reviewed By: yns88

fbshipit-source-id: 25d72d39cdff0c1c42521b8276305d2a80704cef
2020-09-15 18:16:06 -07:00
Luca Niccolini
41989fdcd4 only install googletest 1.8 when building tests
Summary: no need to install when not building tests

Reviewed By: wez

Differential Revision: D23714375

fbshipit-source-id: 6f34ab59ed2155df5646ad279d1347e904f393c4
2020-09-15 17:37:50 -07:00
Jun Wu
22d38872fb setup: skip Py3 only thrift files for Py2 build
Summary: The files use Python 3 only syntax and is not really used. Skip them so Python 2 build won't hit invalid syntax issues.

Reviewed By: chadaustin

Differential Revision: D23717662

fbshipit-source-id: f911a83937be9ccc40194f321e3b41625a68e703
2020-09-15 17:37:50 -07:00
Jun Wu
3095de7357 Back out "use python 3 for the eden_scm getdeps build"
Summary:
Running `setup.py` with Python 3 for Python 2 build will cause issues as
`setup.py` writes `.pyc` files in Python 3 format.

Reviewed By: chadaustin

Differential Revision: D23717661

fbshipit-source-id: 38cfabdfdf20424a21f8a5bdaf826e74da2304ac
2020-09-15 17:37:50 -07:00
Chad Austin
55f9f07c7d increase timeout in graceful restart tests
Summary:
tpx doesn't support heavyweight tags or rate limiting, and integration
tests regularly fail with timeouts on my devbig, so bump the process
start and process stop timeouts.

Reviewed By: genevievehelsel

Differential Revision: D23553924

fbshipit-source-id: fa9b8710395d61b087963d18718137e4525ae03d
2020-09-15 17:37:50 -07:00
Chad Austin
a303d6a399 increase shutdown timeout in integration tests and avoid EPERM when started with sudo
Summary:
30 seconds is not enough time on heavily contented systems, including
CI. Bump the shutdown timeout to 120.

Also, correctly send SIGKILL to the daemon process when it's been
started with sudo.

Reviewed By: simpkins

Differential Revision: D22422784

fbshipit-source-id: dc7be0962705f1feb9643990309f570e352b68a0
2020-09-15 17:37:50 -07:00
Chad Austin
62f06c645a introduce a py3 client
Summary: Introduce a py3 replacement for EdenClient.

Reviewed By: wez

Differential Revision: D22060644

fbshipit-source-id: 535a1f1addf3ac79de0471a688cef55567802d26
2020-09-15 17:37:50 -07:00
Stanislau Hlebik
80e710e70d mononoke: add wait_for_latest_log_id_to_be_synced function to hg sync helper
Summary:
This is the function that was used in repo_import tool to wait until hg sync
has processed all of the entries in the queue. Let's move it to the hg sync
helper lib so that it can be used in other places. E.g. I'd like to use it in
the next diffs in mononoke_x_repo_sync_job.

Reviewed By: krallin

Differential Revision: D23708280

fbshipit-source-id: ea846081d89b55b0d2f5407c971e13869cedfd8b
2020-09-15 17:37:50 -07:00
Katie Mancini
903532758e teach eden to resolve THRIFT_TLS_CL_CERT_PATH in configs
Summary:
This stack updates eden to be able to check all of the locations that able
users certificate may reside.

THRIFT_TLS_CL_CERT_PATH is usally set with the location for the users x509
certs. So it seems best to check this location. In order to be able to check
this location, we need to be able to resolve the enviroment variable in our
parsing.

Reviewed By: wez, genevievehelsel

Differential Revision: D23359815

fbshipit-source-id: 2008cc52ab64d23dbcfda41292a60a4bf77a80df
2020-09-15 10:28:38 -07:00
Johan Schuijt-Li
deb57a25ed mononoke: deprecate preamble in favor of metadata
Summary:
In preparation of moving away from SSH as an intermediate entry point for
Mononoke, let Mononoke work with newly introduced Metadata. This removes any
assumptions we now make about how certain data is presented to us, making the
current "ssh preamble" no longer central.

Metadata is primarily based around identities and provides some
backwards-compatible entry points to make sure we can satisfy downstream
consumers of commits like hooks and logs.

Simarly we now do our own reverse DNS resolving instead of relying on what's
been provided by the client. This is done in an async matter and we don't rely
on the result, so Mononoke can keep functioning in case DNS is offline.

Reviewed By: farnz

Differential Revision: D23596262

fbshipit-source-id: 3a4e97a429b13bae76ae1cdf428de0246e684a27
2020-09-15 10:28:38 -07:00
Zeyi (Rice) Fan
7f6479f790 fix eden redirect fixup properly now
Summary:
ghostbooleans

Apparently I didn't test for the positive case in my previous diff that introduces this check :(

Reviewed By: xavierd

Differential Revision: D23698179

fbshipit-source-id: 95a28cc13bff5e325214b6a398e19c821b5ae17f
2020-09-15 10:28:38 -07:00
Genevieve Helsel
d1601bdd86 ensure we only record files while recording fetches
Summary: We only care about the files we need when recording prefetch profiles (since we don't want to fetch top level directories). So let's skip recording `Tree` object types.

Reviewed By: kmancini

Differential Revision: D23693533

fbshipit-source-id: 9af5437ff6571a34597425ca5f657e7126671ba9
2020-09-15 10:28:38 -07:00
Pavel Aslanov
92b09459f0 support for multiple heads in BonsaiDerived::find_all_underived_ancestors
Summary: Support for multiple heads in `BonsaiDerived::find_all_underived_ancestors`. This change will be needed to remove manual step of fetching of all changesets in `backfill_derived_data` utilty.

Reviewed By: StanislavGlebik

Differential Revision: D23705295

fbshipit-source-id: 32aa97a77f0a4461cbe4bf1864477e3e121e1879
2020-09-15 09:21:12 -07:00
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