Commit Graph

57519 Commits

Author SHA1 Message Date
svcscm
e1758e6868 Updating submodules
Summary:
GitHub commits:

d7d48e4762
ef6bc9338b
8912f0385a
680c416348
d83d7f3024
b7716f3b23

Reviewed By: jurajh-fb

fbshipit-source-id: 2f68cd7ab7c415b3d0bca21d71e0da7ca58dc708
2020-05-04 15:16:41 -07:00
Chad Austin
65d278cc55 move docs/ into eden/fs/
Summary: These docs are all EdenFS specific so move them into the fs/ directory.

Reviewed By: genevievehelsel

Differential Revision: D21329620

fbshipit-source-id: 4090ed4ca371d01ea98e06ad6ce8f434c0660962
2020-05-04 12:34:47 -07:00
Xavier Deguillard
84b25c7abb eden: fix Windows build
Summary:
The MSVC compiler complains that it doesn't have the full definition of
PrivHelper, causing the build to fail. Include the right header to fix this.

Reviewed By: genevievehelsel

Differential Revision: D21381946

fbshipit-source-id: 0d0389ee8db44a36786973404c38487a94e8c4df
2020-05-04 11:53:33 -07:00
Adam Simpkins
c0fb9cea2d enable all integration test sources in CMake builds
Summary:
Previously we only included `basic_test.py` and `hg/status_test.py` in the
integration tests during CMake-based builds.  This updates the code to now
include all of the test files, with just a few exclusions based on platform
type and what dependencies were available at build time.

Reviewed By: wez

Differential Revision: D21239912

fbshipit-source-id: b8826d249a6323ac3bcc555c9ceba54a4cbcfde9
2020-05-04 11:46:09 -07:00
Adam Simpkins
a755d9e979 blacklist some integration tests on non-RedHat Linux distributions
Summary:
10 of the integration tests fail on Ubuntu.  For now simply blacklist them
from running on non-RedHat-based distributions.

Reviewed By: wez

Differential Revision: D21332629

fbshipit-source-id: 3fadb74bb31e89092177afaa01ddc7f6bcd0f9de
2020-05-04 11:46:09 -07:00
Adam Simpkins
ea7460f2d3 apply the integration test case blacklist to some more tests
Summary:
Add a new IntegrationTestCase base class that checks the test blacklist during
`setUp()`, and update a few remaining test classes that did not derive from
`EdenTestCase` to derive from this.

Also drop the method name argument from the `skip_test_if_blacklisted()`
function, since we can get this from the existing test case argument.

Reviewed By: genevievehelsel

Differential Revision: D21340539

fbshipit-source-id: d4fc125f119d74ab923c2cc3c9070b86c582c87e
2020-05-04 11:46:09 -07:00
Adam Simpkins
f390948707 fix the UserInfoTest on Ubuntu
Summary:
Run `env` as `/usr/bin/env` instead of `/bin/env`
This command is typically installed in `/usr/bin`.  Recent RedHat releases
replaced `/bin/ with a symlink to `/usr/bin`, allowing this command to work
when invoked as `/bin/env`, but this isn't true on all distributions, such as
Ubuntu.

Reviewed By: chadaustin

Differential Revision: D21340540

fbshipit-source-id: d7588f8c90e9a86a0cb31fd3ab3a9067aa6e79ea
2020-05-04 11:46:08 -07:00
Chad Austin
63158b56f6 move third-party/ into eden/fs/
Summary: These third-party includes are edenfs-specific, so move them into eden/fs/

Reviewed By: simpkins

Differential Revision: D21314642

fbshipit-source-id: c52b0a00d5080934e1f07e4cd55373602f2f6b0a
2020-05-04 11:33:12 -07:00
Chad Austin
bb7005d60e move benchmarks/ into eden/fs/
Summary: These benchmarks are edenfs-specific, so move them into /eden/fs/

Reviewed By: genevievehelsel

Differential Revision: D21314464

fbshipit-source-id: 1dcf6adfbdea1394f222de4d462397ea531ced00
2020-05-04 11:33:12 -07:00
svcscm
faf7d23534 Updating submodules
Summary:
GitHub commits:

613e4a315f
1ed4765e85
8316ff391f
61c5215f84

Reviewed By: jurajh-fb

fbshipit-source-id: efc13fd712fd33fd1b451693ffbf50212edeb34d
2020-05-04 10:50:59 -07:00
Thomas Orozco
6df567f7ca mononoke/repo_client: log when hooks finished (and how many were rejected)
Summary:
This updates repo_client to log when hooks finished, and how many were rejecte,
if any. This required a bit of refactoring to avoid iterating twice over
whether hooks are rejected or not (and instead just filter-maps outcomes to a
rejection), but it's probably for the better since it removes a bit of
un-necessary cloning (notably of the hook name).

Reviewed By: farnz

Differential Revision: D21379690

fbshipit-source-id: 53c8368d3871620ec61db76dc35b47dd17276ac4
2020-05-04 09:54:59 -07:00
Genevieve Helsel
367db1d20a shorten recovery wait timeout and increase restarter restart timeout
Reviewed By: wez

Differential Revision: D21333897

fbshipit-source-id: ba2b9aa375bfa91693c8985ff4cb57e944b04eff
2020-05-04 09:22:24 -07:00
Thomas Orozco
cfde4afe90 mononoke/gitimport: support read-only mode
Summary:
This adds support for running Gitimport with `--readonly-storage`. The way we
do this is by masking the various storages we use (blobstore, changesets,
bonsai).

Reviewed By: markbt

Differential Revision: D21347939

fbshipit-source-id: 68084ba0d812dc200776c761afdfe41bab9a6d82
2020-05-04 07:18:02 -07:00
Thomas Orozco
28eee11931 mononoke/gitimport: improve concurrency
Summary:
The original gitimport wasn't really designed for concurrency, since it did
commits one by one. With this update, we can now derive Bonsais from multiple
commits in parallel, and use multiple threads to communicate with the Git
repository (which is actually somewhat expensive when that's all we do).

We also store Bonsais iteratively. There is a bit of extra work that could be
done also here by saving Bonsais asynchronously to the Blobstore, and inserting
a single batch in Changesets once we're finished.

Reviewed By: farnz

Differential Revision: D21347941

fbshipit-source-id: e0ea86bf4d164599df1370844d3f0301d1031801
2020-05-04 07:18:02 -07:00
Thomas Orozco
bc7e31cdd1 mononoke/gitimport: allow deriving a range of commits
Summary:
This adds support for deriving commits within a range in gitimport, which gets
us one step closer to resumable gitimport. The primary goal of this is to
evaluate whether using Gitimport for Configerator might be suitable.

Differential Revision: D21347942

fbshipit-source-id: aa3177466e389ceb675328999ccf836f29912698
2020-05-04 07:18:01 -07:00
Thomas Orozco
57ccda8e9c mononoke/gitimport: add derive hg functionality
Summary:
This adds some basic functionality for deriving hg manifests in gitimport. I'd
like to add this to do some correctness testing on importing Git manifests from
Configerator.

Differential Revision: D21347940

fbshipit-source-id: 6f819fa8a62b3088fb163138fc23910b8f2ff3ce
2020-05-04 07:18:01 -07:00
Thomas Orozco
310781b4f5 mononoke/unbundle: make pushrebase logs more consistent + more complete
Summary:
- Use the same case consistently
- Log even when pushrebase fails

Reviewed By: farnz

Differential Revision: D21378033

fbshipit-source-id: 062e986151086476db9100e3d9c71aa702661032
2020-05-04 07:13:48 -07:00
Stanislau Hlebik
3c6179ac99 mononoke: update comment in warm bookmark cache
Reviewed By: mitrandir77

Differential Revision: D21378890

fbshipit-source-id: ecb58d35a0ef5ab54c45173fdbfba561c8dfc6fe
2020-05-04 05:05:05 -07:00
Stanislau Hlebik
6914d544d9 mononoke: read list of derived data to derive from the config
Summary:
Currently we need to specify which derived data we need to derive, however they
are already specified in the configerator configs. Let's just read it from
there.

That means that we no longer need to update tw spec to add new derived data types - we'll just need to add them to configerator and restart the backfiller.

Reviewed By: krallin

Differential Revision: D21378640

fbshipit-source-id: f97c3f0b8bb6dbd23d5a50f479ecfccbebd33897
2020-05-04 04:52:26 -07:00
Lukas Piatkowski
5aea06ca2a mononoke/load_limiter: use trait objects to represent load_limiter
Summary: Making a trait out of LoadLimiter will help with providing different implementations of load limiting for OSS and FB.

Reviewed By: farnz

Differential Revision: D21302819

fbshipit-source-id: 1b982a367aa7126ca5d7772e4a2406dabbe9e13b
2020-05-04 04:36:03 -07:00
Kostia Balytskyi
01310a4b70 config: sync from configerator
Summary: A result of `configerator-thrift-updater scm/mononoke/repos/repos.thrift`

Reviewed By: farnz

Differential Revision: D21350982

fbshipit-source-id: b3344c99c6f53c727ea16ebc0f81f90527de103d
2020-05-04 04:13:45 -07:00
svcscm
ea6490063c Updating submodules
Summary:
GitHub commits:

adc6e75705

Reviewed By: yns88

fbshipit-source-id: beb89e5127c1ecdc7e08b780736eb1c397b8312c
2020-05-04 03:24:30 -07:00
svcscm
4ef0800822 Updating submodules
Summary:
GitHub commits:

95e8b8f31b
0580a039d7
7f9294015c
efd513c0f5
09d0aec9f2
83d98acd03
91f87afd70
689facf2b8
9c0e731f65
8038d05e74

Reviewed By: yns88

fbshipit-source-id: 8757fb3c1d5303094bd02632de5e0a8392ed9eed
2020-05-04 03:24:29 -07:00
svcscm
73730d6d4c Updating submodules
Summary:
GitHub commits:

c518e9eccf

Reviewed By: yns88

fbshipit-source-id: c8553c86fbac2538155bdb7f69b8f560fa788a1b
2020-05-03 18:33:17 -07:00
Shannon Zhu
0b93429dc1 Convert type check targets in eden to use configuration
Summary:
D21316793 is blocked from landing because there are a few targets in eden that are running pyre via buck targets integration.

We can't do custom version overrides for projects that are using a mix of local configurations and buck integration, because buck doesn't provide an interface for setting the equivalent pyre version override.

We're moving away from buck targets integration for pyre across the board, and I've run a codemod over the project to clean up all of the buck typing integration (including some residual mypy) as well as updated type ignores / fixmes accordingly.

Let me know if you have any concerns; upon skimming it looks like most changes are either converting `type: ignore`s into fixmes, or removing `type: ignores`.

Reviewed By: dkgi

Differential Revision: D21343093

fbshipit-source-id: 5ee1436377eb526c0a679fb821c42e07cbca52a5
2020-05-02 21:16:55 -07:00
svcscm
533605c017 Updating submodules
Summary:
GitHub commits:

ecef50e946
c7b3288dff

Reviewed By: yns88

fbshipit-source-id: d8eeea1aae0589ac5a471ca6ae3fdf4afe26d53f
2020-05-02 21:16:54 -07:00
svcscm
c9b0f44e11 Updating submodules
Summary:
GitHub commits:

a17dbae5c9
ca2ec4f682
dc3aebd961
b7d7b13ebe
9cd90d3b3b
ddbb420f52

Reviewed By: yns88

fbshipit-source-id: de39b297d9b74b0c4ef0588e2ad002ac21fea375
2020-05-02 15:11:41 -07:00
Puneet Kaushik
9e23152da8 Add CREATE_NO_WINDOW to CreateProcess to suppress console window.
Summary:
When running Eden as a service, CreateProcess will pop up a console window for every new console based process. Eden fs spawns hg import helper process which will create console windows.  It doesn't impact the functionality but is a bad user experience.

Passing the CREATE_NO_WINDOW flag to CreatePeocess will suppress the console Window.

Reviewed By: wez

Differential Revision: D21361412

fbshipit-source-id: 96ecfa2d9ca811287cdc60ba1c4632f16f38340e
2020-05-01 20:00:08 -07:00
Puneet Kaushik
f8c57fca03 Add the --foreground flag to run the edenfs as a console application.
Summary: This enables the Edenfs to run as a console application.

Reviewed By: wez

Differential Revision: D21241794

fbshipit-source-id: 704e8488b680ac90f11e9eabef704879a395d7e0
2020-05-01 20:00:07 -07:00
Puneet Kaushik
f1fb15677b Run Eden as a Windows service
Summary: By default the Eden on Windows will run as a service. It should be installed as a Windows service by the installer to work properly.

Reviewed By: wez

Differential Revision: D21241597

fbshipit-source-id: 2bcbd518d274d829bee5616d266c542f3fcc4b16
2020-05-01 20:00:07 -07:00
svcscm
b3e00d0fe3 Updating submodules
Summary:
GitHub commits:

b6dda66386
094f932779

Reviewed By: yns88

fbshipit-source-id: 4c3badd4af6ece45cdd3f06fe3fbca71f660e16b
2020-05-01 20:00:06 -07:00
svcscm
dc5e180b39 Updating submodules
Summary:
GitHub commits:

f9f0f138c4
af4d41c481
5b7f096980
70a1e73eff
a20ed3f2c2
43d0e4e89c
126f25bd8e
e378c28486
061ca36e2d

Reviewed By: yns88

fbshipit-source-id: 4362d2f913c5f2ec4e91ed10735168ee7c72a2cb
2020-05-01 15:14:21 -07:00
Jun Wu
6438f28e99 color: detect ConEmu and limit colors to 16
Summary:
ConEmu tries to normalize 256 colors to 16 colors but its normalization logic
is buggy. For example, color196 gets normalized to green instead of red. See
the attached picture of ConEmu and its debug real console.

{F235735030}

Reviewed By: markbt, ikostia

Differential Revision: D21311443

fbshipit-source-id: cb6db07d6b10a7365e33f4aa8f5f3f61f90c8e69
2020-05-01 14:51:51 -07:00
Jun Wu
5b881f086f pyzstore: further reduce cpython_ext::Bytes usage
Summary: This avoids data copies.

Reviewed By: DurhamG

Differential Revision: D21213075

fbshipit-source-id: 9575173f163d71543affabd9861931c11086f40a
2020-05-01 14:24:52 -07:00
Jun Wu
73ff6559e6 zstore: add simple caching
Summary: Add simple caching so zstore can avoid some zstd calculation.

Reviewed By: DurhamG

Differential Revision: D21213076

fbshipit-source-id: 5e3152949cf4e6d6193c3ef3401f24e2efac5620
2020-05-01 14:24:52 -07:00
svcscm
c273e891d2 Updating submodules
Summary:
GitHub commits:

7e50497ecd
5a965509c8
f2bb67b35e
98419a685b
c915fec339
8a433489a1
070902ae31
c1ff43c814
aaad412cde
b9c0014bc4
8178d4bfbc

Reviewed By: yns88

fbshipit-source-id: dd2c5451b22a7a1bd378cbd57a0b7210554d31f0
2020-05-01 14:05:47 -07:00
Adam Simpkins
129d87fe23 use the normal PrivHelper.h header file on Windows
Summary:
While EdenFS does not use a separate privhelper process on Windows, it still
defines a stub PrivHelper class.  However, this class was previously defined
in a separate win/utils/Stub.h header file, which led to awkward `#ifdef`s to
include the correct platform-specific header file.

This diff moves the definition of the dummy PrivHelper class in Windows into
the same `PrivHelper.h` header file used on POSIX platforms.  This results in
a few more `ifdef`s in the PrivHelper files, but fewer `ifdef`s in the calling
code, and will make it easier to start unifying more of the `EdenMain` logic
on Windows and non-Windows platforms.

Reviewed By: xavierd

Differential Revision: D21332568

fbshipit-source-id: c63bf2b4a8b7e767d7db7dcda28675f735c23bf8
2020-05-01 14:01:40 -07:00
Chad Austin
9626ab1b64 enable FUSE_HANDLE_KILLPRIV
Summary:
The kernel has some legacy logic to attempt to clear the setuid and
setgid mode bits upon writes, but it is racy and disabled by default
in libfuse3. Now that we don't support setgid and setuid bits at all,
opt out of the legacy kernel behavior.

Reviewed By: wez

Differential Revision: D21334075

fbshipit-source-id: bdef12c1958a5e9bd2649c2bcb54975b0b4e78d6
2020-05-01 13:50:53 -07:00
Durham Goode
3ac2be361a configs: move fbrules to a Facebook only part of the crate
Summary:
We'll be adding a bunch of Facebook specific configuration and values
here. Let's move it to someplace not open source.

Reviewed By: quark-zju

Differential Revision: D21241038

fbshipit-source-id: 2ac9cdce40b1b46f15f171d9d1f6b6692dcd29bf
2020-05-01 13:17:21 -07:00
Durham Goode
b1a2785a19 configparser: add ensure_location_supersets function
Summary:
Implements an ensure_location_supersets function who's goal is to
verify that a given config location specifies the exact same configs as a given
set of other locations. Any inconsistencies are removed from the config and
reported to the caller.

This will be used to ensure our dynamic configs match our existing rc file
configs exactly, before we delete the file configs.

Reviewed By: quark-zju

Differential Revision: D21240837

fbshipit-source-id: e2c8ec054a3696d2cf02e65c212ad886c5117253
2020-05-01 13:17:21 -07:00
Mark Thomas
ed49d36d41 templatekw: parents template should not return null p2
Summary:
The `parents` template currently returns "meaningfulparents".  This sometimes
returns the null revision as the second parent, making templates think this is a
merge commit when it is not.  Make sure we filter this out.

Reviewed By: quark-zju

Differential Revision: D21347776

fbshipit-source-id: af83fd5cff381850ac39d97b5b2f4c77033fe2fb
2020-05-01 12:49:37 -07:00
Simon Farnsworth
fafe8802b4 Clean up Lua-only hook config requirements
Summary:
Make all the things that only Lua hooks needed (hook type etc) optional.

With this done, configs can be cleaned up to not contain redundant data.

Reviewed By: ikostia

Differential Revision: D21349614

fbshipit-source-id: 1c72c2082b8c002e3feb41d1d720a41d21afaae5
2020-05-01 12:13:07 -07:00
Wez Furlong
5537225a02 eden: enable rocksdb in the windows build
Summary:
In the initial stages of the windows port we had
problems building rocksdb on windows, so we disabled it.

These days we're able to build it and detect it--we even
require it in the cmake code, but hadn't gotten around
to telling the rest of the code that we can use it.

This commit re-enables it in the build but leaves sqlite
as the default engine until we're able to perform some
benchmarking.

Rocksdb itself has some build issues on Windows; it doesn't
use cmake to locate dependencies, so even though we built
snappy it doesn't know how to find it without modifying the
source:
https://github.com/facebook/rocksdb/blob/master/thirdparty.inc#L4

For that reason, we disable the use of Snappy in the Windows build.
However, in the version of rocksdb that we were using, it would
default to trying to use Snappy even though it wasn't compiled in
and throw an exception.

I've upgraded to a newer version of rocksdb that will simply not
use compression if no compression was enabled at build time.

Given that we mostly store relatively small objects, I'm assuming
that the lack of compression is fine for now.

Reviewed By: xavierd

Differential Revision: D21319896

fbshipit-source-id: 2a2d06d4bd5382706e9220f9b4a2de99dc18311d
2020-05-01 10:33:32 -07:00
Jason White
d5b2fb798e Fix outdated Cargo.toml files
Summary: `cargo autocargo` should normally produce no changes on `master`. The features of the `log` crate was updated in D21303891 without re-running autocargo. This fixes it.

Reviewed By: dtolnay

Differential Revision: D21349799

fbshipit-source-id: ce487bc5989e179673297350249593103b4d34dd
2020-05-01 10:29:33 -07:00
svcscm
ee57fdd996 Updating submodules
Summary:
GitHub commits:

e141d0c936

Reviewed By: yns88

fbshipit-source-id: 77e99d5002cc5a482142ecddaedacfd336e92854
2020-05-01 08:08:46 -07:00
Stanislau Hlebik
bec619bc5e remotefilelog: print the progress when downloading files
Summary:
Now we download files in 200K chunks, and it might be confusing - it's unclear
whether hg is making any progress or not.
This diff makes it clearer.

Note I'm not printing progress before first fetch to avoid breaking the tests

Reviewed By: farnz

Differential Revision: D21348756

fbshipit-source-id: 05e5169114adf2b99a74b37d933755a644214a42
2020-05-01 07:56:26 -07:00
Kostia Balytskyi
b17df254d7 infinitepush: do not record crossbackendsync bundles
Summary: Mercurial Infinitepush normally records received bundles into the `forwardfillerqueue`, which is later tailed by the commit cloud `forwardfiller` in order be replayed onto Mononoke. Now I am adding a reverse filler, which means that we will have two such queues and sync in two directions. Therefore, in order to avoid infinite loops we need to distinguish cross-backend bundle replay from genuine pushes. I propose to use `crossbackendsync` bundle2 param to indicate that no recording is needed.

Reviewed By: krallin

Differential Revision: D21255446

fbshipit-source-id: 70f6efe1331bd3c7fd3aca61d486d350d93086dc
2020-05-01 06:46:50 -07:00
Stanislau Hlebik
03023aa095 commit cloud: fix hg cloud --help
Summary:
Previously we weren't showing help at all when running "hg cloud --help". This
diff should fix it

Reviewed By: ikostia

Differential Revision: D21347825

fbshipit-source-id: 1d9d11e2f9fe18a03b5d2cd8bd316fe9a218347c
2020-05-01 06:08:14 -07:00
Stanislau Hlebik
c71469dc1c mononoke: add tunable for warm bookmark config
Summary: Let's make it tunable, more context in D21300885

Reviewed By: ikostia, krallin

Differential Revision: D21347636

fbshipit-source-id: 4bc91effdd212a3f5c4a0c3d4952f52a1cf417d7
2020-05-01 04:04:51 -07:00
Thomas Orozco
5c254250be mononoke: make path elements longer than 255 bytes illegal
Summary:
Path elements longer than 255 bytes cannot be materialized on most filesystems,
so allowing them isn't very useful.

We can't normally receive a push for this (because the client would have to
have the file on their isk), but they could get created through a
specially-crafted bundle or accidentally through a Thrift API (e.g. create
commit in SCS).

Reviewed By: farnz

Differential Revision: D21328145

fbshipit-source-id: cb32d6df0aa60863665a651f1a33c69c75c6a880
2020-05-01 01:59:13 -07:00