Commit Graph

60455 Commits

Author SHA1 Message Date
Carolyn Busch
97edbc3bc9 setup: convert buildinfosrc to bytes
Reviewed By: singhsrb

Differential Revision: D23719096

fbshipit-source-id: e60522245476dac301e8449743bfd1756cfe3fbc
2020-09-16 09:30:39 -07:00
Durham Goode
420dcf9c63 py3: fix copy tracing
Summary: filter returns a generator in Python 3, but we need a list.

Reviewed By: singhsrb

Differential Revision: D23720661

fbshipit-source-id: 8de3f5844bfe8b85b37c44423733fd2a09967397
2020-09-16 09:27:36 -07:00
Durham Goode
5c5f355ffd py3: fix chistedit
Summary: This was horribly broken, and we have no tests.

Reviewed By: singhsrb

Differential Revision: D23720984

fbshipit-source-id: 4ad47c767b0d18f700c855a7bb43f38f5c5ef317
2020-09-16 09:22:18 -07:00
Durham Goode
9f80bd1d6f py3: fix unicode characters in patches
Summary:
When I added the surrogateescape patch for the email parser decoder
used during patches, I incorrectly added a corresponding encoder on the other
end when we get the data out of the parser. It turns out the parser is
smart/dumb. When using get_payload() it attempts a few different decodings of
the data and ends up replacing all the non-ascii characters with replacement
bits (question marks). Instead we should use get_payload(decode=True), which
bizarrely actually encodes the data into bytes, correctly detecting the presence
of surrogates and using the correct ascii+surrogateescape encoding.

Reviewed By: singhsrb

Differential Revision: D23720111

fbshipit-source-id: ed40a15056c39730c91067b830f194fbe41e5788
2020-09-16 09:21:20 -07:00
Stanislau Hlebik
f2e0da3af5 mononoke: use wait_for_latest_log_id_to_be_synced in x_repo_sync_job
Summary:
Previously we were able to add a backpressure to the x-repo-sync job that waits
until backsync queue gets empty. However it's also useful to wait until hg sync
queue drains for the large repo. This diff makes it possible to do so.

Reviewed By: aslpavel

Differential Revision: D23728201

fbshipit-source-id: 6b198c8d9c35179169a46f2b804f83838edeff1e
2020-09-16 09:17:42 -07:00
svcscm
166e54e0c8 Updating submodules
Summary:
GitHub commits:

1e44f24c51

Reviewed By: yns88

fbshipit-source-id: daf76a159a78964083e20405d78bda1ff7c1d05a
2020-09-16 09:17:41 -07:00
svcscm
5deab7d5be Updating submodules
Summary:
GitHub commits:

592d9544ca

Reviewed By: yns88

fbshipit-source-id: a25f86fd2a09c32f4b96a067c7aa61b17420376c
2020-09-16 02:13:45 -07:00
Alex Hornby
632dad2690 mononoke: order fsnode children in walker to reduce queue depth
Summary: For fsnodes output the filecontent child nodes first as they can be drained without expanding to more nodes.

Reviewed By: farnz

Differential Revision: D23702268

fbshipit-source-id: 26aeca20d47030dbb9145d406db885fe0fce932c
2020-09-16 02:11:39 -07:00
Alex Hornby
b89dcb9094 mononoke: use sorted vector map to speed up fsnode construction
Summary: Use sorted_vector_map when parsing fsnodes, as inputs are stored sorted, which can result in high cost of BTree insertion when traversing large repos.

Reviewed By: aslpavel

Differential Revision: D23691500

fbshipit-source-id: 1f7a5faf2ef3cb4a72a635d0d8e89037bf4d96b3
2020-09-16 02:11:39 -07:00
Alex Hornby
4203aca84b mononoke: include the causes in the log to mononoke_blobstore_trace
Summary:
We are currently logging only the outermost underlying error or context, not any of the lower level causes. This makes mononoke_blobstore_trace less useful!

This changes to use anyhow's alternate format that includes causes

Reviewed By: krallin

Differential Revision: D23708577

fbshipit-source-id: fa2e71734841e2b75d824c456dccf61c1fb13fd2
2020-09-16 02:02:56 -07:00
Stanislau Hlebik
f5d36089b0 mononoke: move a bookmark instead of force set
Summary:
Instead of using force_set and force_delete let's use create() update() and
delete() calls.

Reviewed By: ikostia

Differential Revision: D23704245

fbshipit-source-id: 40bcfd906c4f61a860e5ec8312cddc0d80ea94ae
2020-09-16 00:10:44 -07:00
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