Commit Graph

61492 Commits

Author SHA1 Message Date
Lukas Piatkowski
948f671e6b mononoke/unbundle changegroup module: use quickcheck_async for testing async code
Reviewed By: farnz

Differential Revision: D24724933

fbshipit-source-id: 82c8ae73fdf59dcab9e86a9360bc809c71fb4c91
2020-11-04 05:29:08 -08:00
Egor Tkachenko
a4d5c2c172 Remove old future from bonsai_generation
Summary: Into the bright new future

Reviewed By: farnz

Differential Revision: D24715795

fbshipit-source-id: 8e0b9df136373c99de77809db31f3e6847507704
2020-11-04 05:20:38 -08:00
Simon Farnsworth
1daa1d80cf Switch tests_utils to only use new futures
Summary: We're retiring the old ones, forever!

Reviewed By: ahornby

Differential Revision: D24706191

fbshipit-source-id: 96e4aff5461d9aab8f7e68d46aff23331c09442e
2020-11-04 03:11:59 -08:00
Kostia Balytskyi
ab76c9d22a infinitepush: add more measurements to infinitepush bundles
Summary:
The goal of this diff is to provide more visibility into how long the client
takes to create/upload an infinitepush bundle. This is done in two ways:
- by adding more `perftrace` calls (useful when invistigating individual slow
  pushes)
- by adding `ui.timesection` scopes (useful for aggregation purposes)

Two main things that are measured:
- creation of the bundle purely on the client
- sending of the bundle over the wire

In addition, in the perftrace recording, this measures how long it takes to
process the reply handlers, how much bytes are sent over the wire, what are the
part names and sizes (when available). These changes mostly do not distinguish
whether the code is infinitepush push or not, but they are always related to
some sort of a wireproto scenario, which means that the performance impact is
negligible (writing things to thread-local storage is *much* cheaper than
sending them over the network).

Reviewed By: DurhamG

Differential Revision: D24683484

fbshipit-source-id: 53fdfb63dcdfcf38924237c59a1e8f5e24ff96c0
2020-11-04 02:12:00 -08:00
Simon Farnsworth
93c92dae38 Remove old futures from test fixtures
Summary: We're getting rid of old futures - remove them as a dep here

Reviewed By: StanislavGlebik

Differential Revision: D24705787

fbshipit-source-id: 83ae938be0c9f7f485c74d3e26d041e844e94a43
2020-11-04 02:05:52 -08:00
Egor Tkachenko
f44014de6f Add new command create bonsai
Summary:
We can have different bonsai changesets hash for the same hg changeset. Consider situation - we have hg repo:
```
  o  B (Add file "b")
  │
  o  A (Add file "a")
```
The correct bonsai changeset for B will have only entry `(<Path_to_b>,Some(<hash_b>))` in `file_changes`. But we can also have bonsai changeset for B with 2 entries `(<Path_to_b>,Some(<hash_b>)), (<Path_to_a>,Some(<hash_a>))`. This diff provides the functionality to manually create such situation. And later it will be used for verification blobimport backups

Reviewed By: StanislavGlebik

Differential Revision: D24589387

fbshipit-source-id: 89c56fca935dffe3cbfb282995efb287726a3ca9
2020-11-04 01:29:42 -08:00
svcscm
424f9d5214 Updating submodules
Summary:
GitHub commits:

0074f270a0
69f99a1eb9

Reviewed By: bigfootjon

fbshipit-source-id: 3da546559e5f64b9d9341c6c497ae43654191fb1
2020-11-04 01:20:50 -08:00
Lukas Piatkowski
e8a550cabf mononoke/unbundle changegroup module: replace 0.1 future_ext::BoxStream usage with 0.3
Reviewed By: farnz

Differential Revision: D24706575

fbshipit-source-id: ea2b7eb28b1dbf8f79f2a25de9a130c044dcd6bc
2020-11-04 01:16:30 -08:00
Durham Goode
5cec109afd pullcreatemarkers: don't mark reverts as landed
Summary: We were incorrectly marking reverts as landed during pullcreatemarkers.

Reviewed By: quark-zju

Differential Revision: D24608217

fbshipit-source-id: f919f49469d6933c17894b3b0926ba2430a5947a
2020-11-03 20:03:26 -08:00
svcscm
96fdbb0827 Updating submodules
Summary:
GitHub commits:

ec1ebaf825

Reviewed By: bigfootjon

fbshipit-source-id: 9310f29e099c417a3bd251dd1ded7f167bb0d628
2020-11-03 18:00:52 -08:00
Durham Goode
d2e3736f67 procinfo: fix buck build on OSX
Summary:
As part of getting buck build to work on OSX, we need procinfo to
include it's OSX specific library.

Reviewed By: sfilipco

Differential Revision: D24513234

fbshipit-source-id: 69d8dd546e28b4403718351ff7984ee6b2ed3d1d
2020-11-03 17:40:19 -08:00
svcscm
014db196ff Updating submodules
Summary:
GitHub commits:

a3f57dc70c
fd76e5fd88
026e35c7f5
4206c44d57

Reviewed By: bigfootjon

fbshipit-source-id: b022dd5b74875dc886676163f60b522bf8856dfe
2020-11-03 17:40:19 -08:00
svcscm
7a1675e6b1 Updating submodules
Summary:
GitHub commits:

06a92fcf5c
8608ae2f1f
bf2a9f0398

Reviewed By: bigfootjon

fbshipit-source-id: 46a79c9982c3eeb08ef82d094a693d271f37f9d6
2020-11-03 14:52:06 -08:00
Lukas Piatkowski
e0c7333e94 mononoke/unbundle resolver module: replace 0.1 future_ext::BoxStream usage with 0.3
Reviewed By: farnz

Differential Revision: D24706576

fbshipit-source-id: 3f6438961f52810b4ef59aba3c4dabb753ffb50b
2020-11-03 13:38:09 -08:00
Liubov Dmitrieva
719b637925 improve ux for setting a token
Summary:
Improve ux for setting the token.

This extra bits would help to figure out prompt issues on Windows

Reviewed By: markbt

Differential Revision: D24706085

fbshipit-source-id: 6101b8d7b90aad2d687465a09cc69670ca4a46f6
2020-11-03 12:31:51 -08:00
svcscm
e795ffd05a Updating submodules
Summary:
GitHub commits:

08de9558ef
964b2fb371
e2a348b2a2
3cdd018ff6

Reviewed By: bigfootjon

fbshipit-source-id: 6380a91475d8e9e51462c0b62e0e4deec826ba1a
2020-11-03 12:31:51 -08:00
svcscm
d5df6e5c7b Updating submodules
Summary:
GitHub commits:

6d0e4a2d03
da9ba7bd99
ba258f59e0
3181213fb2
04e3f3dc96
0b94468bba
30f6c27940
57e0360cf2
ca95e4bbb0
5ff22386c1
f925b352b1

Reviewed By: bigfootjon

fbshipit-source-id: 9f9edb31d337c04a2548aae47492dd1b285d75d1
2020-11-03 11:53:41 -08:00
Katie Mancini
de729d337c Avoid overfetching in checkout
Summary:
Eden can often overfetch files during checkout. There may be multiple things
going on here, but at least one of them is tied to aux data prefetching.

Responding to a FUSE request for aux data will result in the inode for that
file being loaded. During checkout if we don't short circuit the checkout
then we will create a CheckoutAction for each loaded inode. And previously
CheckoutActions will always load their inodes contents.

To fix this we have two options
1. avoid creating the CheckoutAction in the first place.
2. Avoid downloading in CheckoutAction.

1 Turns out to be more difficult. I did some thinking through this here if
you want to see: https://fb.quip.com/LeqSAb3OlpWb

2 We don't actually need to be downloading blob data here, we only really
need the eden hash and content sha1 of the blob in this code path (this is
all that is used to compare the old and new file). So we should really only
be fetching the metadata (which should be avaiable locally since the inode
was loaded unless the caches have been cleared).

This implements fix 2.

I think there is likely still over fetching having to do with trees in checkout.
And potentially we can avoid looking at metadata at all in some cases.
I will look at this next.

Reviewed By: chadaustin

Differential Revision: D23432810

fbshipit-source-id: 17c0503bf95eb360de902a370948338bf04c1887
2020-11-03 10:58:22 -08:00
Mark Juggurnauth-Thomas
6b8a832433 derived_data: change BonsaiDerivedMapping to use new futures
Summary:
This changes the methods from ones that return old `BoxFuture`s to an async method
using `async_trait`.

Reviewed By: krallin

Differential Revision: D24689506

fbshipit-source-id: 7b13010924369f81681e6590898af703c5423385
2020-11-03 09:15:18 -08:00
Mark Juggurnauth-Thomas
6a12bcc562 derived_data: change BonsaiDerived::derive_from_parents to use new futures
Summary:
This changes the trait method from one that returns an old `BoxFuture` to an async
method using `async_trait`.

Reviewed By: krallin

Differential Revision: D24686888

fbshipit-source-id: 0ac231cdbb60d256b6d5ad5aafbe8779b96905f3
2020-11-03 09:15:18 -08:00
svcscm
54fe3f8c65 Updating submodules
Summary:
GitHub commits:

8c47cb6fa1

Reviewed By: bigfootjon

fbshipit-source-id: cdf4228a461e865280ca930ccba7becd3d1134a6
2020-11-03 05:34:38 -08:00
Kostia Balytskyi
6f9d9c5c91 cross_repo_sync reporting: start passing contexts to sync fns
Summary: This is to be able to see in Scuba why a given sync function was called.

Reviewed By: StanislavGlebik

Differential Revision: D24689366

fbshipit-source-id: f868fc1b6fcbf6c692e1373cbe8da8cd4a230780
2020-11-03 05:18:38 -08:00
svcscm
afc8719766 Updating submodules
Summary:
GitHub commits:

c102d3fbe9

Reviewed By: bigfootjon

fbshipit-source-id: 0267f02b69015b2b2cfdbb626b2ff748094a7cbc
2020-11-03 03:57:11 -08:00
Lukas Piatkowski
2a779e82d8 mononoke/mercurial_bundles: use futures 0.3 in Bundle2Item
Summary: This is a step towards modernizing unbundle crate to use futures 0.3.

Reviewed By: farnz

Differential Revision: D24682963

fbshipit-source-id: 55c17fd699846a24647a23ea1c22888407643dfd
2020-11-03 00:12:21 -08:00
Xavier Deguillard
1ed7eeef95 inodes: unload inodes before checkout on Windows
Summary:
On Windows, we never unload any inodes until EdenFS is restarted, thus,
checkout times go up over time as more and more inodes are being loaded. While
on Windows we don't keep track of what is referenced by the kernel, the
checkout code will use the "precise inodes" code path when deciding what to
update. This means that every inode that is in the overlay will get updated
properly, and since the overlay is a superset of what is hydrated, we are
guaranteed to always invalidate what we need to.

Due to the above, this shouldn't result in any changes as we never gc the
overlay, but that will come later, at which point checkout times will stop
being more and more expensive as time goes.

Reviewed By: chadaustin

Differential Revision: D24634253

fbshipit-source-id: c7b838edc20589bbf92ff4e2b3abd079b9a4443d
2020-11-02 21:03:58 -08:00
Xavier Deguillard
e3c3133fd3 inodes: rename future notification should be run non-inline
Summary:
Futures are by default run inline, meaning that when the previous future is
completed, the future will run in the same context as the previous one. In the
case where the previous one is completed by another thread setting up its
promise, the future will be completed in the context of that other thread.

In most cases, this is OK, in others, this can cause a deadlock. And this is
exactly what we're seeing here. When a file is renamed concurrently to an `hg
update`, the inode the rename operates on might not be loaded, and thus both
update and the rename callback will race to load that inode. When update wins
that race, the rename callback will wait on a promise that update will then
set. When that happens, the rest of the rename callback will be run in the
update context, but that will in turn cause update to try to re-acquire the
rename lock that it already holds...

To fix this, we need to make sure that the rename callback doesn't run inline.

Reviewed By: chadaustin

Differential Revision: D24657422

fbshipit-source-id: 23b08765afae7bda4a628f0c23675bff9f486b6b
2020-11-02 21:03:58 -08:00
Xavier Deguillard
8c4429a4f5 integration: fix merge tests
Summary:
I'm not entirely sure why these started failing, but enabling ui.allowmerge
made these run again.

Reviewed By: chadaustin

Differential Revision: D24697462

fbshipit-source-id: ec5ca987e7116edb12658eb7b4d03f1cf0f876d3
2020-11-02 20:47:29 -08:00
Chad Austin
b3413ee2d3 always immediately fetch HgProxyHash in HgQueuedBackingStore
Summary:
For logging and analytics, it's convenient for the
HgQueuedBackingStore to know the manifest hash and path early in the
import process. Since every object fetch requires looking up the
HgProxyHash anyway, fetch it immediately and thread it down to the
importer.

Reviewed By: kmancini

Differential Revision: D24524319

fbshipit-source-id: 0d91d55655e5ee25a010f7664e80125b7c50cf84
2020-11-02 20:18:26 -08:00
Chad Austin
0fa8c8add3 make HgProxyHash move noexcept
Summary:
Use the empty string to indicate the moved-from state, which makes
HgProxyHash moves noexcept. I plan to look up HgProxyHash early and
move it into HgImportRequest.

Reviewed By: kmancini

Differential Revision: D24522612

fbshipit-source-id: 037b4012ad6a51ad7ebd6a96de2e391cd570771b
2020-11-02 20:18:26 -08:00
Chad Austin
77b00f1b87 HgBackingStore is not a BackingStore
Summary:
Stop pretending that HgBackingStore is a standalone backing store
implementation, and instead indicate it's an implementation class used
by HgQueuedBackingStore.

Reviewed By: kmancini

Differential Revision: D24514247

fbshipit-source-id: 90c3a442d01647fa6d1337cfd814f5bf4b480137
2020-11-02 20:18:26 -08:00
Chad Austin
a5de6e754d name some threads
Summary:
We had some unnamed threads that made profiling performance on macOS a
bit harder. Give them a semblance of a useful name, at least.

Reviewed By: kmancini

Differential Revision: D24640223

fbshipit-source-id: 7dd74b30a081753006df681bf97ac96147b1896c
2020-11-02 15:22:53 -08:00
svcscm
c827b749ca Updating submodules
Summary:
GitHub commits:

18419ad042
08420bc99c

Reviewed By: bigfootjon

fbshipit-source-id: 86aa5279cdfe69e39c912719ffdb59368d51cf01
2020-11-02 15:22:53 -08:00
Chad Austin
93238b82b4 skip InodeTable entries with zero InodeNumbers
Summary:
Until fanzeyi gets InodeMetadata moved over to SQLite, remove some
excessive logging when the InodeMetadataTable contains zeroes because
its buffers weren't flushed to disk.

Reviewed By: genevievehelsel

Differential Revision: D24377026

fbshipit-source-id: e6ffa54244730388aaf66dc53cd29a0069fba685
2020-11-02 14:57:13 -08:00
svcscm
637dc48f36 Updating submodules
Summary:
GitHub commits:

517c30bd6f
02f81fb85f
fd8fb790fe

Reviewed By: bigfootjon

fbshipit-source-id: f7d9f32172d111f9c72a7dbb97a0bc24ccbbe3f8
2020-11-02 14:54:21 -08:00
Chad Austin
c06d3deb23 add eden debug modified command
Summary:
Add a very simple debug command that simply prints all materialized
inodes under the given path. It is a quick way to uncover unexpected
writes (or unexpected failed dematerializations after checkou).

Reviewed By: xavierd

Differential Revision: D24378759

fbshipit-source-id: dc393d65506c74dbc0779732cdefd915cbbf9948
2020-11-02 13:52:38 -08:00
Chad Austin
87def59c62 remove dead getDebugStatus
Summary: Kill some dead code.

Reviewed By: xavierd

Differential Revision: D24300170

fbshipit-source-id: 86748dc58046f22c3116d64d8674684538c16e4a
2020-11-02 13:52:38 -08:00
Chad Austin
20c77da782 implement debugInodeStatus with traverseObservedInodes
Summary:
Replace the old implementation of debugInodeStatus with the more
general traverseObservedInodes functionality, and add the ability to
customize its results with flags.

Reviewed By: xavierd

Differential Revision: D24300122

fbshipit-source-id: 0fbd3aa02575faa515fd7852441547d7de13426d
2020-11-02 13:52:37 -08:00
Chad Austin
a6ac98a5a7 thriftfmt
Summary:
Apply automated Thrift formatter. Even if the format is a bit off in a
couple places, and the bikeshed is still being painted, this avoids
unrelated formatting changes later in the stack.

Reviewed By: xavierd

Differential Revision: D24511057

fbshipit-source-id: f1b23578733a8ecf788509e407bc419fa073428d
2020-11-02 13:52:37 -08:00
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