Commit Graph

61454 Commits

Author SHA1 Message Date
svcscm
2b2a926bdf Updating submodules
Summary:
GitHub commits:

7feb2d379c
e00bbf2781
15ea3a6c2d
d369779e78

Reviewed By: bigfootjon

fbshipit-source-id: 38d2b38410ab4ceca63e8d891dca389785996281
2020-11-02 13:52:37 -08:00
svcscm
c413bd735f Updating submodules
Summary:
GitHub commits:

7495b0756c
9cba659b24
dd7dd8e5ea

Reviewed By: bigfootjon

fbshipit-source-id: 79d8c4d43b85f5f2a29d925e5cb975e5c6fa3f99
2020-11-02 13:01:51 -08:00
Durham Goode
0830e9a481 Add --cfg=fb_buck_build to all builds
Summary:
In Mercurial we're finding use cases for conditioning on buck vs
non-buck builds. For instance, in some cases we specify #[link] directives for
non-buck builds, but don't need to for buck builds
(https://fb.workplace.com/groups/rust.language/permalink/4568487309866515/).  In
other cases we want to depend on internal buck libraries when building with
buck, and not otherwise.

Let's add a fb_buck_build cfg so other projects may distinguish the same.

Reviewed By: jsgf

Differential Revision: D24493974

fbshipit-source-id: 1d558cbe0ae01ab4a7b4b5d6d4be75bb8ab0f41a
2020-11-02 12:51:56 -08:00
svcscm
905f82067c Updating submodules
Summary:
GitHub commits:

67452dd026
79400acbd1
8782c59603
2834b6e45c
e19a792319
de1d04a918
2c2a6bd6a2
ae6c26e635
6cdb6922a1
3b1db55d76

Reviewed By: bigfootjon

fbshipit-source-id: e7836ad80e26ae7ceaf4be6bb65b9730eedc8875
2020-11-02 12:35:05 -08:00
Xavier Deguillard
a16e62b234 inodes: add missing override
Summary: This method is an override of its parent class, thus the need for the override.

Reviewed By: chadaustin

Differential Revision: D24657424

fbshipit-source-id: 5ce7200eeb4ef28fb51fabbe0ebb38ded51ae34e
2020-11-02 12:26:56 -08:00
Xavier Deguillard
d42a8c971d inodes: move path into the Dispatcher callbacks
Summary:
Dealing with non-owned path in futures is mind bending and can lead to use
after free fairly easily if not careful. It turns out that this code is
actually a bit buggy and in some cases will attempt to use a path that is
already freed. Since the callsite doesn't need to hold onto the paths, let's
just move them, which resolves the issuue.

Reviewed By: chadaustin

Differential Revision: D24657423

fbshipit-source-id: 47bbaccf18cd86e53860491e3cbfeadb4363499c
2020-11-02 12:26:56 -08:00
svcscm
a881d237da Updating submodules
Summary:
GitHub commits:

98625fc81a

Reviewed By: bigfootjon

fbshipit-source-id: cce239e1d97775206be80c86346818fe00458b01
2020-11-02 10:26:21 -08:00
Durham Goode
50304e4ed0 rage: hide dynamicconfigs from local config output
Summary:
The rage local config output was getting polluted by dynamic config.
Let's filter them out.

Reviewed By: farnz

Differential Revision: D24626564

fbshipit-source-id: df5ac04cd549595ecdccc0b2438d4e7c72b80e88
2020-11-02 10:24:53 -08:00
svcscm
e605f008d5 Updating submodules
Summary:
GitHub commits:

c75fef6d83
c380647a85
2dc6eccbee
62c2a7e656
d226a14112
67ed9874a4
5fb92845c2

Reviewed By: bigfootjon

fbshipit-source-id: dc7cbfaa4a94f109b403c19bd604e049d6d2a0f9
2020-11-02 10:24:52 -08:00
svcscm
3811ebf747 Updating submodules
Summary:
GitHub commits:

abeb13b706
df1adafb2b

Reviewed By: jurajh-fb

fbshipit-source-id: 614556f51924fd89f66a386cb379f49103d75568
2020-11-02 09:18:50 -08:00
svcscm
69957dcf50 Updating submodules
Summary:
GitHub commits:

8f67134516

Reviewed By: jurajh-fb

fbshipit-source-id: 867e6638302bf88c9c8363eff14831b78d66e3e3
2020-11-02 09:18:50 -08:00
svcscm
0a69e3e6f7 Updating submodules
Summary:
GitHub commits:

709728e7a2
6472768411
e9bff412e3
0c28b63bd6
0395fd00cc

Reviewed By: jurajh-fb

fbshipit-source-id: df941766bca3d92dbd696e9038d5f344a9ee5145
2020-11-01 16:24:29 -08:00
svcscm
ccbbae8993 Updating submodules
Summary:
GitHub commits:

78a2c5c083
3f0bdd47ae
bbfaab48bd

Reviewed By: jurajh-fb

fbshipit-source-id: 63f2b8612dc07ff37612099d60829c5c6eed25aa
2020-10-31 20:23:24 -07:00
svcscm
9a38673918 Updating submodules
Summary:
GitHub commits:

e8054eee7f

Reviewed By: jurajh-fb

fbshipit-source-id: ae24a78e451df557c743cda09a33aaf7e8dd1e87
2020-10-30 19:53:26 -07:00
Genevieve Helsel
c999fead34 unify uptime cli command
Summary: When I added `eden uptime`, I did not see that we already had `eden debug uptime`! Instead of having two, lets just use the one and remove it from debug. There seems to be a regression of the uptime I had implemented, so thats why I opted to use the implementation of the debug version.

Reviewed By: kmancini

Differential Revision: D24566844

fbshipit-source-id: d948a5303d475a543f51abbaea59f9c481dfeca2
2020-10-30 16:40:08 -07:00
svcscm
2016432f8b Updating submodules
Summary:
GitHub commits:

8dd5202b25
aa3d20dc28
1a8a4caa12

Reviewed By: jurajh-fb

fbshipit-source-id: f196492a5b4dd0302f468faeab024003e29e7d90
2020-10-30 16:40:08 -07:00
svcscm
da9d2a77a0 Updating submodules
Summary:
GitHub commits:

699fd4223f
e5676873ad
7bd9e0b144
a388c8cc6b
e8db1b917b
bd48e9822d
301a2e9430
d8e411c8f7
60a01ad62a

Reviewed By: jurajh-fb

fbshipit-source-id: b1b00f1c1b997219e3009492914b335342364454
2020-10-30 15:12:43 -07:00
Mateusz Kwapich
1021cd1238 py3: fix hanging read of SSH subprocesses
Summary:
Previously, reading from SSH subprocesses did’t return on Python 3.  bufsize=0
is default on Python 2, but not Python 3.

This is a backport of: 0fc8020ebe

Reviewed By: krallin

Differential Revision: D24652418

fbshipit-source-id: 1140c76b6f711bfe1726108bd4fe6948e6ee41a0
2020-10-30 13:11:03 -07:00
Xavier Deguillard
1aeb62309f inodes: remove one ifdef from processCheckoutEntry
Summary:
We don't need an ifdef here as folly::kIsWindows works just as well. The astute
reader will notice that we now call isInodeRemembered while we weren't before.
On Windows, this will pretty much always return false as this can only return
true if the fuse refcount is positive. Since we don't keep track of a fuse
refcount on Windows, this is OK to do.

Reviewed By: genevievehelsel

Differential Revision: D24636432

fbshipit-source-id: c6db7c66f7eb27894cdd276a9368149ec8056cf4
2020-10-30 12:34:46 -07:00
Xavier Deguillard
09276388bf cli: start edenfs without inheriting the console
Summary:
One of the unforseen effect of D24393690 (c5d631fd09) is that EdenFS was tied to the console
that ran `edenfsctl start`. As a result, killing that console would also kill
EdenFS, which is a bit unexpected.

Console in Windows are a bit complicated, and in theory, EdenFS could simply
call `FreeConsole` once it is started, but the side effect of this is that any
process started by EdenFS (say Mercurial), would create its own console as its
parent doesn't have one, specifying CREATE_NO_WINDOW when creating these would
lead to not having any output in the edenfs logs from Mercurial (D21820195 (223846d313))...
We could solve this if we could tell Windows to allocate a hidden console
window, but that API unfortunately doesn't exist.

So, the best we can do for now is to simply start EdenFS with the
CREATE_NO_WINDOW flag, this fixes the above issue, allows for the original
console to be killed without affecting EdenFS, but it brings another issue:
`eden start` no longer shows what is going on...

For now, this is the least worst solution, so we'll go with that. In the
future, we can imagine fixing EdenFS startup code to send its output to a pipe
that edenfsctl would read and print to its standard output.

Reviewed By: chadaustin

Differential Revision: D24607540

fbshipit-source-id: c18590052a96b7dd2938b589e92e808f38b5ef59
2020-10-30 12:32:50 -07:00
Simon Farnsworth
fb9283c378 Remove old-style futures from cmdlib::args and fix up build failures
Summary: The more we remove, the easier it'll be to remove the last few problem cases.

Reviewed By: StanislavGlebik

Differential Revision: D24592052

fbshipit-source-id: de6371305991d54bf2802fd904850b49aeb11bbd
2020-10-30 11:55:15 -07:00
svcscm
016e204451 Updating submodules
Summary:
GitHub commits:

bd529c4cca
5a9ab46ab9
a93c52f9ed
96fb566b49
6c7b76181b
26562502e6
7d936f884b

Reviewed By: jurajh-fb

fbshipit-source-id: 582780bf43bb18c4f85e6340fb794e00bab47bbf
2020-10-30 11:24:24 -07:00
Stanislau Hlebik
4b734eaa1d mononoke: return an error if a parent hasn't been remapped
Summary:
This didn't matter much in practice because we've never pushrebased a rewritten
commit where one of the parents rewrites to nothing. Nevertheless I think it's
cleaner to return an error in this case

Reviewed By: ikostia

Differential Revision: D24621105

fbshipit-source-id: 8cf62efd28e0c9aed945f727b1872db6922cfeb3
2020-10-30 10:26:45 -07:00
Stanislau Hlebik
cda77b42c4 mononoke: add unsafe_sync_commit_with_expected_version
Summary:
This stack has a goal of cleaning up how commits with no parents and
consequently merges are treated in CommitSyncer. At the moment it always uses current version
to rewrite them, and this is incorrect. See example below (here N means "new
commits" i.e. commits that weren't remapped yet but we need to remap them now)

```
large repo

O <- uses current version
|
O
|
O  N
|/ |
O  | <-  uses old version
|  N
|  |
O  N <- this commit should be rewritten with old version!
```

With current logic all N commits will use current version for remapping, but
this is incorrect, and instead "old version" should be used. The goal is to fix
it and make it so that backsyncer and x-repo sync job pick the correct version
to use for remapping.

-----

As it was noted in the previous diff we need a function that overrides a
version for a commit with no parents. We need this function because for a
commit with no parents CommitSyncer can't decide which mapping version to use
because, well, there are no parents which could have hinted about the version.

So let's add this function and cleanup unsafe_sync_commit_impl function to
apply version override only to a commit with no parents. If commit has parents then we'd verify that the version from parents matches the expected version.

In the next diffs I'll make it so that if a version for commit with no parents is not specified then
unsafe_sync_commit_impl fails rather than uses current version.

Reviewed By: ikostia

Differential Revision: D24617953

fbshipit-source-id: a68f837da9d90bb18034f628b7880482a2e548b7
2020-10-30 10:26:45 -07:00
svcscm
126e5bff30 Updating submodules
Summary:
GitHub commits:

42f7077c7e
039792039c

Reviewed By: jurajh-fb

fbshipit-source-id: b6f1b104a735f0a97b7695a8292cf8c7485cf675
2020-10-30 09:34:08 -07:00
Kostia Balytskyi
608bd5a40f remove redundant clones
Reviewed By: farnz

Differential Revision: D24647186

fbshipit-source-id: 91d888bbc706886e011d04c9fa2758794f5f7cfa
2020-10-30 05:56:40 -07:00
Kostia Balytskyi
8540105a10 cross_repo_sync: log commit syncs
Summary:
This adds some basic Scuba logging to commit sync logic in Mononoke. This can be disabled via a tunable.

Note: of course, the wrapping of logging functions would have been pretty cool to do in a macro, but I don't have time atm to figure it out, so have just code.

Reviewed By: StanislavGlebik

Differential Revision: D24571702

fbshipit-source-id: f8830fc675a2a62d2204671e86ab2c819372c5cc
2020-10-30 05:56:40 -07:00
Kostia Balytskyi
9d09b815c1 CommitSyncer: add wiring for Scuba reporing support
Summary: This adds a `ScubaSampleBuilder` field to the `CommitSyncer` and ensures this field is instantiated with correct values (real vs discarding sample) depending on circumstances.

Reviewed By: StanislavGlebik

Differential Revision: D24539732

fbshipit-source-id: 37aedcff9aefcfcd6b740a0491ab35f9e5ce7c77
2020-10-30 05:56:40 -07:00
Stanislau Hlebik
80b25797d8 mononoke: remove test_unsafe_sync_commit function
Summary:
Functionality of this function can be replaced with
unsafe_always_rewrite_sync_commit, so let's do that.

However in the next diff we'll need a function similar to
test_unsafe_sync_commit but with a slightly different semantics - instead of
forcing override for every commit we'll just force it for a commit with no
parents. Because of that let's not remove unsafe_sync_commit_impl function.

Reviewed By: ikostia

Differential Revision: D24616824

fbshipit-source-id: 6969145d98cd23604920a6b490bf7ffe47938c08
2020-10-30 04:06:47 -07:00
Stanislau Hlebik
c61617d505 mononoke: use correct verssion name in integration tests
Summary:
Our integration tests do not have "test_version" version, they have only
"TEST_VERSION_NAME". This didn't make any difference because x-repo sync job
was always use the current version, but this is going to change soon. So let's
update the tests first

Reviewed By: krallin

Differential Revision: D24620364

fbshipit-source-id: 19416f6d6aba2d9c426efa545d18d4be458d3272
2020-10-30 03:15:34 -07:00
Lukas Piatkowski
c70fe5dcf3 mononoke/GitHub workflows: remove beta and nightly testing from GitHub Actions
Summary: Those tests weren't really actionable, no one was paying attention to them and they recently started to report the whole job as failed even though the continue-on-error option was true. Just remove them.

Reviewed By: krallin

Differential Revision: D24645209

fbshipit-source-id: b21503a43db2afc82cccddc7fe6dd1daca2028dd
2020-10-30 03:10:19 -07:00
Stefan Filip
60d59253b1 tests: fix test-cmd-segmented-chagnelog-tailer.t
Summary:
Fixing test. I updated the serialization format in another stack and didn not
update the hash before I landed.

Reviewed By: lukaspiatkowski

Differential Revision: D24643831

fbshipit-source-id: 3ec888d99cbee0aa6d804740bebaf032dd28e2c9
2020-10-30 01:17:38 -07:00
svcscm
bde60f9222 Updating submodules
Summary:
GitHub commits:

505affdcff

Reviewed By: jurajh-fb

fbshipit-source-id: ad2c3f44d92d400074fdffdd639d71902b573b3a
2020-10-30 01:17:38 -07:00
svcscm
f478255ef8 Updating submodules
Summary:
GitHub commits:

cdff380794
6d799fafcb

Reviewed By: jurajh-fb

fbshipit-source-id: b756c9fa4c601b92277c6f658bd746bcfeef5fae
2020-10-29 18:47:12 -07:00
Stefan Filip
18a6d2aef3 segmented_changelog: update sql query for last idmap entry
Summary:
MySQL doesn't like that the idmap table is renamed to `inner`. For good reason,
inner is a keyword, best to rename it.

Reviewed By: ahornby

Differential Revision: D24568914

fbshipit-source-id: 7a3790e835931b29658c7652cc89069c6b9b5bab
2020-10-29 17:40:19 -07:00
Stefan Filip
1089012b05 segmented_changelog: add SegmentedChangelogBuilder::with_blobrepo
Summary:
I avoided this function because it interacts in a weird ways with dependencies.
At this point I am no longer concerned about that and it can help us simplify
some code.
Looking ahead I think that we will refactor things into having fewer
dependencies.

Reviewed By: krallin

Differential Revision: D24555935

fbshipit-source-id: 994b25d90da491bb5cc593b6c33085790c4fb322
2020-10-29 17:40:19 -07:00
Stefan Filip
2391173a3f segmented_changelog: add segmented changelog tailer command
Summary:
The command reads the last SegmentedChangelog that was saved for a repository
and updates head to match a given bookmark (master).

Right now this is just a command that works on one repository. Follow up
changes will look at deployment options and handling multiple repositories.

Reviewed By: krallin

Differential Revision: D24516438

fbshipit-source-id: 8f04f9426c2f2d7748c5363d2dbdf9f3acb79ddd
2020-10-29 17:40:19 -07:00
Stefan Filip
07200876bb segmented_changelog: account for iddag lag in incremental build
Summary:
I initially saw the incremental build as something that would be run in places
that had IdMap and IdDag stored side by side in process. I am reconsidering
to use incremental build in the tailing process to keeps Segmented Changelog
artifacts up to date.

Since we update the IdMap before we update the IdDag, it is likely that we
will have runs that only update the IdMap and fail to update IdDags. This diff
adds a mechanism for the IdDag to catch up.

Reviewed By: krallin

Differential Revision: D24516440

fbshipit-source-id: 3a99248451d806ae20a0ba96199a34a8a35edaa4
2020-10-29 17:40:19 -07:00
Stefan Filip
a30217fe1b segmented_changelog: context and debug derives for easier debugging
Summary:
Nice to have things for debugging.

This isn't an exhaustive list of places that we could add context too. I'll
probably look to complete the list after the current changes are done.

Reviewed By: krallin

Differential Revision: D24516437

fbshipit-source-id: 7f29e7afde5a5918aea419181d786f48da9b8b14
2020-10-29 17:40:19 -07:00
Stefan Filip
7f274cf1ff segmented_changelog: style updates to segmented changelog seeder
Summary: Style.

Reviewed By: krallin

Differential Revision: D24516439

fbshipit-source-id: 11582b25e86b20c3e27a4ac4c299119f0b3c72a0
2020-10-29 17:40:19 -07:00
Stefan Filip
d1229b7fad segmented_changelog: update iddag store key to blake2
Summary:
The general goal is to allign segmented changelog blobstore usage with the
general pattern in Mononoke.

Reviewed By: quark-zju

Differential Revision: D24605796

fbshipit-source-id: 808985609f74ebc45f3fcc57583e55f3af9bce1d
2020-10-29 17:40:18 -07:00
svcscm
48e03982d0 Updating submodules
Summary:
GitHub commits:

1aa48620fd

Reviewed By: jurajh-fb

fbshipit-source-id: 0136e2f9b449b3af04ca7dc7b359f06f93f97100
2020-10-29 17:40:18 -07:00
svcscm
74d4373a34 Updating submodules
Summary:
GitHub commits:

a696f9fb5b
6773901f76
8166a20d3d
5f73c430a2

Reviewed By: jurajh-fb

fbshipit-source-id: 58c518f265174295cc2baabf89e579d668367f4b
2020-10-29 16:26:07 -07:00
Alex Hornby
511530d030 mononoke: change the default blobstore put behaviour to IfAbsent
Summary: Change the default blobstore put behaviour to IfAbsent, so that all binaries apart from admin tools using MononokeApp::special_put_behaviour() pick up the change.

Reviewed By: farnz

Differential Revision: D24619663

fbshipit-source-id: 98439513b985d2cde88ef99e5eb177974e9db5c9
2020-10-29 16:07:22 -07:00
Alex Hornby
89ace3790f mononoke: extend MononokeApp so admin apps can have a special default put behaviour
Summary:
Extend MononokeApp so admin apps can have a special default put behaviour (typically
 overwrite) vs the soon to be new default of IfAbsent

Use it from the admin tools.

Reviewed By: farnz

Differential Revision: D24623094

fbshipit-source-id: 5709c68429f8e1de0535eec132998d20411fc0e6
2020-10-29 16:07:22 -07:00
svcscm
97269ed0b5 Updating submodules
Summary:
GitHub commits:

f3c188bfd3
2109302cb4
f6eac3215c
787c88e484
88f69f2e97
51245fa528
d2a56d33e0

Reviewed By: jurajh-fb

fbshipit-source-id: e1c8f980458809f7884ce699e7e18f1a946c1b43
2020-10-29 15:58:11 -07:00
Simon Farnsworth
900b2a6982 mercurial: use repository.scm_name instead of arcanist_project_name
Summary:
mitrandir77 pointed me to this field which is exactly what I want.

Leave alias handling in place for configerator, which has a different name.

Reviewed By: mitrandir77

Differential Revision: D24628323

fbshipit-source-id: ccd01e6314feefd8ab75e8052a0a8a98b3119691
2020-10-29 14:40:38 -07:00
svcscm
505ff1977a Updating submodules
Summary:
GitHub commits:

97ec1db2fd
d9ba66ad3b
5f03d8b038
7eb2824e3f
a92fdc71e3
205dacb931
d540e0b41c

Reviewed By: jurajh-fb

fbshipit-source-id: 6c51f9adc610619e7aa411153e3b7101f3b73407
2020-10-29 14:40:38 -07:00
svcscm
114a927b14 Updating submodules
Summary:
GitHub commits:

43a46f0d77

Reviewed By: jurajh-fb

fbshipit-source-id: a387dc8456b38702009deab206f85c0f563c40fb
2020-10-29 13:42:36 -07:00
Katie Mancini
b13c5255eb Allow specifying and picking commits in prefetch_profile fetch CLI
Summary:
We want to be able to prefetch profiles on pull. That means we will need
to pick commits that will be good to prefetch for. This adds a flag --commits
that allows specifiying commits explicitly (mostly for testing), and a
flag `--predict-commits` which will pick good commits to prefetch for.

Reviewed By: genevievehelsel

Differential Revision: D23889882

fbshipit-source-id: 74e61c0c9d443ca396f326b0d547b9fc21a6364b
2020-10-29 13:34:06 -07:00