Commit Graph

62621 Commits

Author SHA1 Message Date
Jun Wu
8e35bcc49d tracing-analyzer: log version information
Reviewed By: DurhamG

Differential Revision: D19803760

fbshipit-source-id: 802d72c1a7aab495d2b6aecd2f8bb696ce2fc522
2021-01-22 12:31:16 -08:00
Jun Wu
7656b5796e tracing-analyzer: aggregate logging data from tracing data
Summary:
This new crate is part of the new telemetry / logging effort.  Its input is
tracing data, and output is aggregated NoSQL table content.

This diff is only the start, setting up the direction.

Reviewed By: DurhamG

Differential Revision: D19797702

fbshipit-source-id: bdf34461c05b5eae5e59652bc82d8ee1857dbf1e
2021-01-22 12:31:16 -08:00
svcscm
53b7c7e248 Updating submodules
Summary:
GitHub commits:

3657c3296e
b0dfa5dc35
308822a7b8

Reviewed By: 2d2d2d2d2d

fbshipit-source-id: af5de389ee7b7fb41ebba4eb08b966b8632b105b
2021-01-22 12:31:15 -08:00
svcscm
5387aecc7b Updating submodules
Summary:
GitHub commits:

7e2f5928df
1ea2e153e0
e0a0d3e3e6

Reviewed By: 2d2d2d2d2d

fbshipit-source-id: de99ce88d40089d6cf96452f90ecd2b2a6cbf501
2021-01-22 10:18:26 -08:00
Ilia Medianikov
bb9a4e5e8c Record blob size to blobstore healer queue
Summary:
Schema for `xdb.mononoke_blobstore_sync_queue : blobstore_sync_queue` wasn't altered yet as AOSC [wasn't working](https://fb.workplace.com/groups/mysql.users/permalink/4991036464278262/).

This will allow the blobstore healer to make decisions about how many blobs it should copy at once. The goal is to eliminate the OOMs that were regularly seen by giving the blobstore healer a memory budget.

Reviewed By: krallin

Differential Revision: D25925522

fbshipit-source-id: d3714dbadc74274a4c4a0e66fa732b84bef89227
2021-01-22 08:34:16 -08:00
Jan Mazur
d1b291d72a flush stream to always print out interactive prompt
Summary: Suddenly prompt stopped appearing for me. Flush the stream to be sure that it's printed out.

Reviewed By: HarveyHunt

Differential Revision: D25956018

fbshipit-source-id: 83419037fa6ce672e203385b71f1403a738d0c90
2021-01-22 07:46:11 -08:00
Alex Hornby
799203c8fa mononoke: remove ThrottleOptions::new, make struct instance instead
Summary: Its easier to distinguish the parameters when constructing it directly rather than via a new() method.

Differential Revision: D26017347

fbshipit-source-id: a020db1133de727f217f67a05953059122e3623a
2021-01-22 07:24:14 -08:00
Alex Hornby
f2e3367985 mononoke: move add_blobstore_args into MononokeAppBuilder
Summary: Its only called from inside MononokeAppBuilder so move it inside to save passing all the struct members as params.

Differential Revision: D25976405

fbshipit-source-id: e95d7b8f5f4474f0289d29bb7bb0a8b0780112e0
2021-01-22 07:24:14 -08:00
Liubov Dmitrieva
a1dd7229e6 dynamic config: remove unnecessary option from the dynamic config
Summary: this infinitepush option is true by default

Reviewed By: DurhamG

Differential Revision: D25995928

fbshipit-source-id: 0c1d50a96dc16ee4d8c45da4f4a213baa49bb8a4
2021-01-22 06:24:23 -08:00
Alex Hornby
a5d86bdae9 mononoke: use strum for ScrubAction parsing
Summary: Removes the manual from_str impl

Reviewed By: krallin

Differential Revision: D25944622

fbshipit-source-id: 4e1e1113e0501c01435b287b165c0f1695729615
2021-01-22 06:04:54 -08:00
Alex Hornby
5285dd1b3c mononoke: move enum ScrubAction to multiplexedblob
Summary: This doesn't need to be in metaconfig anymore, can move it to multiplexedblob

Reviewed By: krallin

Differential Revision: D25928061

fbshipit-source-id: 8aa6ce6aafa16f84730cf388ebf7eab6d5bf2c53
2021-01-22 06:04:54 -08:00
Stanislau Hlebik
7770133dbe mononoke: add more getbundle logging
Summary:
We have a few tricky opimizations, so it's better to have more logging than
less.

Reviewed By: HarveyHunt

Differential Revision: D25995937

fbshipit-source-id: b5502708125b70f3d656be3dc1120176f5c76ce8
2021-01-22 05:40:08 -08:00
Alex Hornby
80fe031070 mononoke: walk hg filenodes in chunks
Summary:
The test added in previous diff showed that hg filenodes weren't being deferred between chunks in the expected way.

This is because we can't tell if a hg filenode is in a given chunk until it is loaded. This is similar to unodes, but the linked changeset in this case isHgChangesetId rather than the bonsai ChangesetId, so this change introduces hg_to_bcs mapping in the walker state, which is used for looking up whether the filenodes linked HgChangesetId is in the chunk, and if not defers the edge.

Reviewed By: krallin

Differential Revision: D25742276

fbshipit-source-id: 1f92452d012aab5b9fdf29f43fc05ebc043b2c7a
2021-01-22 03:13:30 -08:00
Alex Hornby
45a600b68d mononoke: add test for walking hg filenodes in chunks
Summary: Add a test for hg filenode chunking showing its not deferring any edges to the second chunk, which is a problem.  The fix is in the next diff.

Reviewed By: krallin

Differential Revision: D25742278

fbshipit-source-id: bafd59cef01c3153eb1beadccb6026d456454d6b
2021-01-22 03:13:30 -08:00
Alex Hornby
2d7459e61b mononoke: walk hg in chunks
Summary:
Add test for walking hg non-filenode data in chunks.  Expect some deferred edges to next chunk as parents point into history.

Done by deferring hg_changeset_via_bonsai_step if the bonsai is outside range of the chunk

Reviewed By: krallin

Differential Revision: D25742288

fbshipit-source-id: 385c9261151d10f7a7029f86ec10470226fc993c
2021-01-22 03:13:30 -08:00
Alex Hornby
899056b472 mononoke: add test for walking fsnodes in chunks
Summary: Add test for walking fsnodes in chunks.  Fsnodes don't point into history, so not expecting any edges to be deferred between chunks.

Reviewed By: krallin

Differential Revision: D25742291

fbshipit-source-id: dfacbffd1640713df0bc80e9306210860f9a932c
2021-01-22 03:13:29 -08:00
Alex Hornby
61403ea30e mononoke: add test for walking skeleton manifest in chunks
Summary: Add test for walking skeleton manifest in chunks.  These manifests don't point into history, so no edges expected to be deferred between chunks

Reviewed By: krallin

Differential Revision: D25742290

fbshipit-source-id: 0bee980940d3f023392a518174aae0352d5eebda
2021-01-22 03:13:29 -08:00
Alex Hornby
a6adb65083 mononoke: walk deleted file manifest in chunks
Summary:
Add test to walk deleted manifests in chunks, no deferring expected as these manifests don't point into history.

Test showed was missing handling for this manifest type in chunking so fixed it.

Reviewed By: krallin

Differential Revision: D25742285

fbshipit-source-id: 5411f904510f9b4fd9028c7d0dde6c652a784796
2021-01-22 03:13:29 -08:00
Alex Hornby
a88732a604 mononoke: add test for walking blame in chunks
Summary: Add test for walking blame in chunks, check that edges crossing chunk boundary are deferred.

Reviewed By: StanislavGlebik

Differential Revision: D25742296

fbshipit-source-id: 163b07df57ebb1c745ee0577f58a45660e6cd18d
2021-01-22 03:13:29 -08:00
Alex Hornby
8734c48e51 mononoke: add test for walking fastlog in chunks
Summary: Add test for scrubbing fastlog in chunks,  make sure edges get deferred between chunks.

Reviewed By: StanislavGlebik

Differential Revision: D25742277

fbshipit-source-id: 46fd47cfc776783b713717df0ab86bae1b0873fe
2021-01-22 03:13:28 -08:00
Alex Hornby
929522eeae mononoke: walk unode in deferred chunks
Summary:
For Unodes we can't determine before loading them whether they fall within the current chunk as the linked changesetid value is not visibile until the step is executed.

This change adds the ability to defer an already executing step and uses it for unode to defer if its linked changeset is not in the chunk being processed

Deferred edges are stored in the walker state, and are checked on each chunk so that any deferred edges can be run

Reviewed By: StanislavGlebik

Differential Revision: D25742280

fbshipit-source-id: 8a0e7d96b8bf10889bf5e83fe4bee829a1a5cb4c
2021-01-22 03:13:28 -08:00
Alex Hornby
9e9975dd8a mononoke: add enum for walker step output
Summary: Add an enum for the walker step output in preparation for adding a Deferred variant to it in next diff

Reviewed By: StanislavGlebik

Differential Revision: D25742293

fbshipit-source-id: 6aabacb1cd39d16f4d36998908048fd2a10eba4d
2021-01-22 03:13:28 -08:00
Alex Hornby
6c8199cea6 mononoke: walk changeset_info in chunks
Summary: Allow scrubbing of ChangesetInfo in chunks of public commit ids

Reviewed By: markbt

Differential Revision: D25742286

fbshipit-source-id: a5e2faed16eb60c5b7054261a74595a945e68c15
2021-01-22 03:13:28 -08:00
Alex Hornby
cc3eb431b6 mononoke: walk repos by public changeset chunks
Summary:
For large repos is is desirable to walk them in chunks as a prerequisite for being able to clear state caches to reduced memory usage between chunks and to checkpoint between chunks so that an interrupted scrub can resume.

Chunks are fetched from the repo bounds of changeset id in newestfirst order,  this means that we scrub newest data first.  Any edges discovered from the walk that point outside the chunk are deferred until the later chunk that covers them.

This change adds chunking and tests if for core bonsai data, following diffs add it for other types.

Reviewed By: StanislavGlebik

Differential Revision: D25742295

fbshipit-source-id: b989abdf2ca367cf9b10f45d9f932eba55ee6dae
2021-01-22 03:13:27 -08:00
Alex Hornby
8490ead952 mononoke: add options to walk repos by public changeset chunks
Summary: New command line args to allow scrubbing a repo in chunks of N changesets.  Used in a later diff.

Reviewed By: StanislavGlebik

Differential Revision: D25742282

fbshipit-source-id: 4bcf74d26f8c2863c6e96f25eca69e01f9c2c0d5
2021-01-22 03:13:27 -08:00
Alex Hornby
e5307b654d mononoke: include root count in walker queue stats
Summary:
The main thing this change does is make sure pending roots to visit are represented in the difference between Walked and Children.  Children is the sum of all child nodes discovered, both visited and unvisited.  Walked is a measure of number of nodes visited.  Children-Walked is used as a measure of queue depth remaining to be processed.

When not chunking this is a minor issue as usually just one bookmark root node is not counted in children, but when chunking not counting the roots means mean the chunk of several 100000 roots is not visible as waiting to be processed.

Reviewed By: StanislavGlebik

Differential Revision: D25852526

fbshipit-source-id: df5f21a37be152f0baee40d33fd7dfb7aaa763de
2021-01-22 03:13:27 -08:00
svcscm
ca2f1e2824 Updating submodules
Summary:
GitHub commits:

bc7bad1069

Reviewed By: 2d2d2d2d2d

fbshipit-source-id: af2645c1c6ec066c7d548d4209dc74d9054cfd7b
2021-01-22 02:43:49 -08:00
Jun Wu
9166540443 localrepo: remove a XXX comment about metalog
Summary:
It's no longer true - we're doing metalog commit in transaction.py, not lock
release. Also rename the function to clarify.

Reviewed By: DurhamG

Differential Revision: D25984806

fbshipit-source-id: b17a3f635210be7855341fc8a47fed6411599164
2021-01-21 17:42:18 -08:00
svcscm
9ddf80bb86 Updating submodules
Summary:
GitHub commits:

7d46b49e5a
a590d0b416
5fdef0c2cb
a7b356ecec
d8abcc1c1e
594957d4ed
1533e5052f
c15911e017
51fdbd608c
0431578d45
94e0dfa922

Reviewed By: 2d2d2d2d2d

fbshipit-source-id: d1809f631d836865c3df6fe9ae34c2259223893b
2021-01-21 17:42:17 -08:00
svcscm
ac1ca806d5 Updating submodules
Summary:
GitHub commits:

6b8e416b6c
699767735f
7c4b838daa
e3400d8711
658463b7ce
19076c95aa
e103e6d7dc
6f5717a43d
4f2dc1aa0f
62f1cdb2a4
469beffa2f
b53263f265
c1df7711b1

Reviewed By: 2d2d2d2d2d

fbshipit-source-id: 532aa6a260b14865aed410b5bc2e1bab4c91720d
2021-01-21 15:40:15 -08:00
Niles Rogoff
593512b654 Retry bistro tests up to 5 times
Differential Revision: D25985696

fbshipit-source-id: 52ede8dc494f8bf1991dbfed455fbc6bbba83d87
2021-01-21 14:46:17 -08:00
svcscm
b402cf4e48 Updating submodules
Summary:
GitHub commits:

09f3c7aa65
5b44809e44

Reviewed By: 2d2d2d2d2d

fbshipit-source-id: a76e229267008abb175338f50410523587b7f00f
2021-01-21 14:37:31 -08:00
Stefan Filip
a76dffcb83 tracing: update base collector to Registry + Subscriber list
Summary:
This setup is more extendable than the TracingData focused approach. We can
more easily add new functionality using the Subscriber list.

The approach taken here to introduce the new collector tries to maintain
existing functionality. We can then move various logic to their own
Subscribers.

Reviewed By: quark-zju

Differential Revision: D25988580

fbshipit-source-id: 045cd355dbd499109e554a29a1439c2d490b7c40
2021-01-21 11:35:08 -08:00
Stefan Filip
f8461b8989 metrics: use dot . as metric separator
Summary:
Dot `.` is the common separator for the metrics aggregator that we use.
This adds some form of consistency.

Reviewed By: DurhamG

Differential Revision: D25968398

fbshipit-source-id: 194d2f33fe477fe5d768a9cd8f9f46f56445e3e8
2021-01-21 11:29:42 -08:00
Egor Tkachenko
deeb963d7e Add retry logic
Summary:
We can see number of HTTP errors when working with darkisilon S3 https://fburl.com/scuba/mononoke_blobstore_trace/lt1itidt
While we are still investigating the root cause, it seems most of them are the result of too many connections we are trying to open to the host. Long term solution for that is to make reverse proxy in between with some fixed number persistent connection to isilon. However we can still have some errors and to increase reliability let's make some exponential retry logic.

Reviewed By: krallin

Differential Revision: D25995114

fbshipit-source-id: b19e92933416f0bee20c2fa3235052ee1aa15c89
2021-01-21 10:23:05 -08:00
Alex Hornby
4c99a8e49a mononoke: fix divide by zero if walk is really fast to complete
Summary: If progress is logged less than one millisecond apart it gives a divide by zero.  Fix it.

Reviewed By: farnz

Differential Revision: D25997768

fbshipit-source-id: 65dcba2dc7a789540a8e4fce6aeca0ee9668895d
2021-01-21 10:01:00 -08:00
Stanislau Hlebik
53360c82dc mononoke: fix backsyncing mapping change via commit extra
Summary:
Yesterday I landed a diff (D25950531 (79c34c5094)) which allows changing a mapping by
landing a commit with a special commit extra. The implementation was done
inside backsyncer.

However, this was incorrect for a few reasons, the main reason being backsyncer
is not the only thing that rewrites commits between repos (x-repo commit lookup
is another thing for example).
So we need to push this implementation down to CommitSyncer level so that
everyone rewrites commits in the same way.

This diff fixes this issue, and moves all the logic of figuring out correct
mapping version down to CommitSyncer level. Doing so allowed me to also
simplify backsyncer to use normal sync_commit() method to backsync commits.

Another important note is about how we handle commits with no parents. We allow
syncing them only if there's an unambiguous version that we can pick. In case
of any ambiguity we don't sync them and return an error, which means that e.g.
merging a new repo and simultaneously changing the mapping is not possible.

Reviewed By: ikostia

Differential Revision: D25975842

fbshipit-source-id: a87fee545ac1305832ac905337610e7b87884477
2021-01-21 09:43:29 -08:00
svcscm
add03cb3bf Updating submodules
Summary:
GitHub commits:

66f614d724
75c772b320
8a485cf970

Reviewed By: 2d2d2d2d2d

fbshipit-source-id: 1582c24c3a6f1651ce767ffd0aeddfad9c7c69bf
2021-01-21 07:16:59 -08:00
Stanislau Hlebik
7a6e92b8e8 mononoke: add get_version function
Summary:
this is the function that will be responsible for figuring out which version to
use for remapping a commit. We'll extend it in the next diff.

Differential Revision: D25973951

fbshipit-source-id: 42b02608b4b88a216f6ea895943c49573fb29171
2021-01-21 06:00:29 -08:00
Stanislau Hlebik
91b2778ec5 mononoke: remove unneeded check
Summary:
We do the same check a little bit below - let's remove the first one, since
it's unnecessary

Differential Revision: D25973248

fbshipit-source-id: ab88128906b938c5ee57e23a261a7fc997e0ef72
2021-01-21 06:00:29 -08:00
Johan Schuijt-Li
a44eecde1d send correct websocket headers and add test
Summary:
D25883922 (c1c9a9c585) does a refactor which messes up the headers, which will break
proxygen. Correct this and add a test to make sure we don't repeat this
mistake.

Reviewed By: krallin

Differential Revision: D25983271

fbshipit-source-id: 4994a4992fd6df7c62c5d91970f76165f848cc08
2021-01-20 22:55:10 -08:00
svcscm
660703a532 Updating submodules
Summary:
GitHub commits:

7a21ca5b0a
ece23fac57
02d961487f
0e54b25be2
cea043b6e4
fdc014dfe4
54219f0506
e49e32b6cc
455aabbc1c
cb38570881
010744dd29

Reviewed By: 2d2d2d2d2d

fbshipit-source-id: b8e6fcf29ea59948368a0d406872e98be38cd271
2021-01-20 22:55:09 -08:00
svcscm
b5d21bcd69 Updating submodules
Summary:
GitHub commits:

dfc2dd26f1
bc40ae2ed5
594df25ce9
7ba43ce313
1d9aa6793a
e10d1c93b8
537020ac1e
68e81b3b82
78520ea345
5abe676385
1ebf759c76
24322cc827

Reviewed By: 2d2d2d2d2d

fbshipit-source-id: 63714a755d28be2a145b4bed9dffcd1b5c92346c
2021-01-20 22:11:03 -08:00
Udip Pant
b899ce837f update to libbpf-0.3 in getdeps
Summary: Allows us to use new APIs in libbpf

Reviewed By: anakryiko

Differential Revision: D25933787

fbshipit-source-id: f0988caae351760b814eba74f6f716db51f728bd
2021-01-20 21:20:09 -08:00
svcscm
683caf6d4e Updating submodules
Summary:
GitHub commits:

9c9f1d2db4
8bb30bbf74
c7ea550124

Reviewed By: 2d2d2d2d2d

fbshipit-source-id: 9dfbf25f141ff2977eddb064f9e343a4c8a2f6d2
2021-01-20 21:20:09 -08:00
svcscm
3183f03942 Updating submodules
Summary:
GitHub commits:

59b47473bf
5493332d47
4226eac1ea
59b91a569a
79bdfab8c5
e883b6ede9

Reviewed By: 2d2d2d2d2d

fbshipit-source-id: 0bf46af1afd2aaf10f4020cfe5381e238eca57e5
2021-01-20 19:19:34 -08:00
Chad Austin
acaba247cf implement FUSE_FALLOCATE
Summary:
Some linkers (lld being one) use fallocate() or posix_fallocate() on
the output file before writing its contents. EdenFS would return
ENOSYS or ENOTSUP so glibc would fall back and write a single byte to
every 512 byte block, which is terribly slow and generates a bunch of
fake traffic in the Watchman journal.

This diff implements basic support for FUSE_FALLOCATE, avoiding this
slow emulation.

Reviewed By: xavierd

Differential Revision: D25934694

fbshipit-source-id: c6c90ea2b517d4dbedce29d9a4340870c8c177c3
2021-01-20 19:04:59 -08:00
svcscm
b0023da0c2 Updating submodules
Summary:
GitHub commits:

3fa09cb1c5
3516ecec71
f50f6c6253
0d34840d70
51f8b9ff8d

Reviewed By: 2d2d2d2d2d

fbshipit-source-id: 0181c6b74574d0b22d354db364f2d15acf7e7f6c
2021-01-20 17:22:04 -08:00
Katie Mancini
84710bce2b Include backing repos in eden list
Summary:
A lot of users have been having trouble getting their eden repos recloned
recently, to make this process simplier I add the reclone process to the clone
script.

In this script I check if a user has multiple repos depending on the same
backing store. This allows me to warn them that they might lose changes from
these other repos. This diff threads along the backing store to the
`eden list` result for that check.

Reviewed By: chadaustin

Differential Revision: D25078423

fbshipit-source-id: 9ceb1f9acc4ec170cbb12d4b0b3b7d51987f88e3
2021-01-20 15:56:28 -08:00
Liubov Dmitrieva
9bd3235f3f deprecate owner_team option in favour of ui.supportcontact
Summary:
The both options have basically the same value.

This is my next step for resolving mismatches between CC dynamic config and the current configuration and generally improving CC configuration.

Reviewed By: DurhamG

Differential Revision: D25973556

fbshipit-source-id: aae21efcd5174ed58efcb9e5d8c85831d35777ea
2021-01-20 14:15:54 -08:00