Commit Graph

63873 Commits

Author SHA1 Message Date
Zeyi (Rice) Fan
1651dd1898 inodes: implement non-Windows virtual functions for SqliteOverlay
Summary: This diff implements the newly added methods to `IOverlay` so we can build & test `SqliteOverlay` on devserver.

Reviewed By: chadaustin

Differential Revision: D25283647

fbshipit-source-id: 50d0c2dd47cd8f74c860a131ffad1d6342a86ea2
2021-03-15 12:01:47 -07:00
generatedunixname89002005307016
41c3dff77f Add annotations to eden/fs/cli/doctor/test/stale_mount_test.py
Reviewed By: xavierd

Differential Revision: D27038411

fbshipit-source-id: ccaebafebe97767b84981f5c654ce207efed0a87
2021-03-15 09:58:09 -07:00
Alex Hornby
44cff08838 mononoke: add --read-count option to benchmark_filestore
Summary: Was fixed at 2 reads, add an option to allow testing read performance more throughly.

Reviewed By: farnz

Differential Revision: D27043234

fbshipit-source-id: 4bb5f49007a4fa67c42e872e236417fa5ce5c9a0
2021-03-15 08:50:09 -07:00
svcscm
a56d27e188 Updating submodules
Summary:
GitHub commits:

50c72c1ced
386f6a840e

Reviewed By: yns88

fbshipit-source-id: 82671bc1516fdf444579782314ac3737373b773e
2021-03-15 08:36:51 -07:00
Thomas Orozco
7ad1561b68 mononoke/fileblob: create tempfiles in blobstore location
Summary:
Right now, fileblob crashes if those two things are on different devices
(because you cannot atomically rename across devices), so you need to make sure
your TMPDIR is on the same volume as your fileblob.

This is kinda annoying and kinda unnecessary. Let's just fix default to putting
the temporary files into the same location as the blobstore.

Note: while the temp files will be in the same directory as the rest of our
blobs, they don't have the `blob-` prefix (their prefix will be `.tmp`), so
they cannot be read by accident as if they were blobs.

Reviewed By: farnz

Differential Revision: D27046889

fbshipit-source-id: c2b47cd6927eef34ac19325f87f446a6f6532eaf
2021-03-15 08:32:59 -07:00
svcscm
ca7bba10eb Updating submodules
Summary:
GitHub commits:

30b97aab8e
ab90cf2314
3dff28cf9b

Reviewed By: yns88

fbshipit-source-id: 568d12839a4b91a8c31c232460b4191bd45abff5
2021-03-15 05:50:22 -07:00
Alex Hornby
76e60fd0da mononoke: use the constants in benchmark_filestore
Summary: Tidy up a bit and use the constants

Reviewed By: krallin

Differential Revision: D27043233

fbshipit-source-id: 3208e2f35c67b4b22bb5f8189cd8c5b399604833
2021-03-15 03:53:41 -07:00
svcscm
f376508548 Updating submodules
Summary:
GitHub commits:

084d5a26f7
b1127fc4ed

Reviewed By: yns88

fbshipit-source-id: a611ed5034b14090e0488f1d827ce941d678ede4
2021-03-15 03:53:41 -07:00
svcscm
54cafadd31 Updating submodules
Summary:
GitHub commits:

634d499f22

Reviewed By: yns88

fbshipit-source-id: f32e54ba63788710738175f350dd0e69886e9700
2021-03-14 17:23:38 -07:00
svcscm
b9d95c29d4 Updating submodules
Summary:
GitHub commits:

6329dbd5a1
d08f702782
ef415f25ac
374b80efc5

Reviewed By: yns88

fbshipit-source-id: a69c242e4f7c23f6285dda4635ec13f92a0bd263
2021-03-13 18:23:46 -08:00
svcscm
eabe8f062e Updating submodules
Summary:
GitHub commits:

abd5742cc3
a6fdb90696
b708b166dc
6024285320
8a58c049eb
0bf8a55f10
a1f1d53f2e

Reviewed By: yns88

fbshipit-source-id: 3d943d0fec08a90087e0ee910dce852ecca2dd37
2021-03-12 17:54:04 -08:00
Katie Mancini
8323ba03c9 allow prefetching windows prefetch profiles
Summary:
Prefetch profiles has been tested to work on windows. Prefetching will be a little slower
on windows as process creation is more expensive, but it is still functional, and should
be ready for us to gather some early numbers on windows sandcastle.

Reviewed By: xavierd

Differential Revision: D27016292

fbshipit-source-id: ed0c8b732b1dfb8bf0a301ae5e76469d4e59f8d2
2021-03-12 17:36:31 -08:00
Jun Wu
ffb23d32a3 dag: make Debug<Segment>::fmt print invalid segments
Summary: This makes it easier to spot problematic segments.

Differential Revision: D27025039

fbshipit-source-id: 44ae9eaf03ca54751b64c0cf977b78737eaa58f0
2021-03-12 17:23:48 -08:00
Jun Wu
062c21d4d8 destutil: exclude null in histedit rev selection
Summary: The Rust commit graph does not hardcode nullid. This avoids crashes in some cases.

Differential Revision: D27022659

fbshipit-source-id: 0f61ffd9da89de7a477470384c6015d9edfaaaa0
2021-03-12 17:14:17 -08:00
svcscm
feb804be78 Updating submodules
Summary:
GitHub commits:

b91079dca7
492a049c23
994d82d36e
20db7e0a69
f843bd06bf

Reviewed By: yns88

fbshipit-source-id: 679b1299d80be89076ac59aba85ded0f52c1a114
2021-03-12 14:59:39 -08:00
Stanislau Hlebik
480a0e9ef7 mononoke: start moving streaming changelog logic to rust
Summary:
Our current straming changelog updater logic is written in python, and it has a
few downsides:
1) It writes directly to manifold, which means it bypasses all the multiplexed
blobstore logic...
2) ...more importantly, we can't write to non-manifold blobstores at all.
3) There are no tests for the streaming changelogs

This diff moves the logic of initial creation of streaming changelog entry to
rust, which should fix the issues mentioned above. I want to highligh that
this implementation only works for the initial creation case i.e. when there are no
entries in the database. Next diffs will add incremental updates functionality.

Reviewed By: krallin

Differential Revision: D27008485

fbshipit-source-id: d9583bb1b98e5c4abea11c0a43c42bc673f8ed48
2021-03-12 14:46:30 -08:00
svcscm
897d9fb3c5 Updating submodules
Summary:
GitHub commits:

13db6407a2
66b5ac97c0
a7790c691a
b97f89e57f
66e5910933
3fafea9530
119dda2195
5df6e860b6
3869df6c22
39f41722a9
f36b8bb181

Reviewed By: yns88

fbshipit-source-id: 28e7cc1c908f47e89339a7c9f550912d3860c905
2021-03-12 13:16:38 -08:00
Jun Wu
ea61594e04 dag: add some validations about segment parents
Summary:
We saw the `unwrap()` panic at `iddag.rs:453`:

  let (new_idx, low, high, parent_count, has_root) = candidate.unwrap();

Reading the code, it seems it can only happen if one of `parents` is `high` in a segment.
Parents in a segment should all be < low.  Add some validations for that.

Reviewed By: sfilipco

Differential Revision: D27021394

fbshipit-source-id: 2c51713dfb8f07f2921229d8866f7e8a0bd9490f
2021-03-12 13:02:50 -08:00
Robin Håkanson
d2a411abf6 gitimport add fb303 profiling support
Summary: gitimport add fb303 profiling support.

Reviewed By: krallin

Differential Revision: D27014516

fbshipit-source-id: 90183cc5c9069960536469ead57030c860a052a3
2021-03-12 12:35:05 -08:00
Carolyn Busch
bd89a4c855 edenapi_server: add bookmark endpoint
Summary: Add the EdenAPI endpoint for resolving bookmarks. This is a first pass that just takes a bookmark name as a path variable, to make sure that this is on the right track. We'll want to add a proper request type that includes a list of bookmarks and a response type that can indicate that no bookmark was found. Then the hg bookmark command will also need support for prefix listing capabilities.

Reviewed By: kulshrax

Differential Revision: D26920845

fbshipit-source-id: 067db6a636a75531ee5953392b734c038a58efb6
2021-03-12 12:07:35 -08:00
Jun Wu
3525a5b1e3 io: do not clear progress if stdout is redirected
Summary:
For example, `hg log > a.txt`, writing to `a.txt` does not need to clear the
progress bars.

Reviewed By: andll

Differential Revision: D26886281

fbshipit-source-id: 392c50e62a854e03ea0c400a1dac8bfb900815a2
2021-03-12 11:39:10 -08:00
Jun Wu
d76c91096a hgcommands: drop indicatif progress bar
Summary:
The Rust progress bars now integrates with hg-http and all requests get
progress bars for free. There is no need for a separate bar.

Reviewed By: andll

Differential Revision: D26970747

fbshipit-source-id: c5e59c745e75a93e5da0541baab21c3f23dc1322
2021-03-12 11:39:10 -08:00
Jun Wu
be8e45cdd1 hgcommands: support Rust progress
Summary:
Render the progress bars in a Rust thread.
Also make it compatible with traditional Python progress bars (not the most efficient way because the Python still have its own progress thread, but the code change is minimal).

Reviewed By: andll

Differential Revision: D26886282

fbshipit-source-id: ad1f862ced278cc1cb90c37f576eb05f52a50b13
2021-03-12 11:39:10 -08:00
Jun Wu
f561d3b862 streams: increase commit text batch size to 10k
Summary: 100 and 5k seems too small - requests are too frequent.

Reviewed By: andll

Differential Revision: D26886276

fbshipit-source-id: cb5cce1111120f8a437fbc8c60906940588f38bc
2021-03-12 11:39:09 -08:00
Jun Wu
a7c3458c82 clidispatch: split dispatch() method
Summary:
Split `dispatch()` into 2 parts: config parsing and command execution.
This allows callsite to do extra work based on the config before running the
command.

Reviewed By: andll

Differential Revision: D26853749

fbshipit-source-id: 459918b43341f7e14df6958056b6e07453bb691b
2021-03-12 11:39:09 -08:00
Stefan Filip
41049b62ca segmented_changelog: add scuba logs for updates
Summary:
Scuba stats provide a lot of context around the workings of the service.
The most interesting operation for segmented changelog is the update.

Reviewed By: krallin

Differential Revision: D26770846

fbshipit-source-id: a5250603f74930ef4f86b4167d43bdd1790b3fce
2021-03-12 11:29:40 -08:00
Stefan Filip
3d50bcc878 segmented_changelog: add stats for inprocess update
Summary:
STATS!!!
Count, success, failure, duration. Per instances, per repo.

I wavered on what to name the stats. I wondered whether it was worth being more
specific that "mononoke.segmented_changelog.update" with something like
"inprocess". In my view the in process stats are more important than the tailer
stats because the tailer is more simple and thus easier to understand. So I add
extra qualifications to the tailer stats and keep the name short for inprocess
stats.

Reviewed By: krallin

Differential Revision: D26770845

fbshipit-source-id: 8e02ec3e6b84621327e665c2099abd7a034e43a5
2021-03-12 11:29:39 -08:00
Stefan Filip
0bd89797a1 segmented_changelog: add repo_id to OnDemandUpdateSegmentedChangelog
Summary: Currently unused. Will add stats the reference it.

Reviewed By: krallin

Differential Revision: D26770847

fbshipit-source-id: d5694cd221c90ba3adaf89345ffeb06fa46b9e7b
2021-03-12 11:29:39 -08:00
Robin Håkanson
650f0ad049 Handle (ignore) git-sub-modules in gitimport
Summary:
Handle (ignore) git-submodules in gitimport.

git-sub-modules are represented as ObjectType::Commit inside the tree. For now we do not support git-sub-modules but we still need to import repositories that has sub-modules in them (just not synchronized), so ignoring any sub-module for now.

Reviewed By: StanislavGlebik

Differential Revision: D26999625

fbshipit-source-id: eb32247d4ad0325ee433e21a516ac4a92469fd90
2021-03-12 10:46:41 -08:00
Alex Hornby
93aee06296 mononoke: record checkpoint update stats and finish time
Summary: Record some more stats so we can see last finish time. Also record update stats for run and chunk number so can see how far along a run is.

Differential Revision: D26949482

fbshipit-source-id: 5e7df4412c25149559883b6e15afa70e1c670cdc
2021-03-12 10:46:40 -08:00
Chad Austin
7ef5417c64 log a structured event when a proxy hash lookup fails
Summary:
We don't have data on how often this repo-corrupted event occurs, so
begin logging it.

Reviewed By: xavierd

Differential Revision: D26968638

fbshipit-source-id: 95e62a595f74f22fdec8a60ebb0671e53cbe199e
2021-03-12 10:42:46 -08:00
Chad Austin
4b9a93230b optimize HgProxyHash some and make loading from LocalStore explicit
Summary:
It's always annoyed me that HgProxyHash has a constructor which knows
how to load itself from a LocalStore. Add an explicit load() function,
and clean up some other stuff about the class while I'm in there.

Reviewed By: xavierd

Differential Revision: D26769231

fbshipit-source-id: f0ea9f16c3f1fbcd3d4361bcc34845901094b282
2021-03-12 10:42:46 -08:00
generatedunixname89002005307016
50f5138b6f Add annotations to eden/integration/doteden_test.py
Reviewed By: xavierd

Differential Revision: D27012538

fbshipit-source-id: fa8ccea1aa218323ded54115bf5a3fd9728e19bb
2021-03-12 09:57:26 -08:00
Shen Gong
0f0ed89b7c Allow disabling feature Prefetch Profiles
Summary: adds a new subcommand `disable` which will update the user's local eden config with a flag to disable prefetching

Reviewed By: kmancini

Differential Revision: D26964514

fbshipit-source-id: 043c89a5848f827377744ebc46fe93c431efee3e
2021-03-12 09:36:08 -08:00
Stanislau Hlebik
819b26d2d1 mononoke: fix getdeps test
Summary:
Apparently getdeps uses python2 and hg-git outputs commits hashes differently.
This diff fixes it.

Reviewed By: krallin

Differential Revision: D27012424

fbshipit-source-id: 1a8a2fc8266b4035190cfd6056f37b52132a1b9b
2021-03-12 09:09:02 -08:00
Andrew Gallagher
44feabdeaf Codemod away get_build_rule_output_path()
Summary:
This uses the codemod tool from D26980571 to port uses of deprecated
`get_build_rule_output_path()` (https://www.internalfb.com/intern/wiki/Buck-users/buildoutput-paths/)
to resources (https://fburl.com/python-resources).

This is part of unblocking the hashed buck-out rollout effort
(https://fb.prod.workplace.com/groups/fbcode.fyi/permalink/3694589863910121/),
as `get_build_rule_output_path()` relies on hard-coded buck-out paths.

Reviewed By: aniketmathur

Differential Revision: D26981028

fbshipit-source-id: d8cc70a2df3167d9e1961efa530ca639131f45fa
2021-03-12 09:09:02 -08:00
Andrey Chursin
e1ce22be1e async-runtime: introduce (try_)block_unless_interrupted
Summary: This method should be preferred to use from python binding. It is similar to block_on but allow to interrupt future on Ctrl+C

Reviewed By: quark-zju

Differential Revision: D26894586

fbshipit-source-id: 02d8fbb2f9c4d9e585f8fbee51bfc400c402d0d2
2021-03-12 09:04:04 -08:00
Andrey Chursin
6ed54d0317 checkout: switch to Bytes::to_vec since it is fixed now
Summary: See removed comment for detals

Reviewed By: quark-zju

Differential Revision: D26966487

fbshipit-source-id: 600c73fdec22180d7814608ecf1c3c9354fee5a1
2021-03-12 09:04:04 -08:00
Andrey Chursin
b67b2f21e1 checkout: handle sparse profile change file duplication
Summary:
During sparse profile change, there might be a case when file has changed between checkouts, and also is added due to sparse profile change

Currently this would lead to creating duplicated update action that would waste resources. This diff deduplicates such action

Reviewed By: quark-zju

Differential Revision: D26953657

fbshipit-source-id: ccd9084cc3984ac0692ee6178fce018a94cd56e7
2021-03-12 09:04:03 -08:00
Andrey Chursin
1e6ed3059c checkout: strip metadata from value returned by storage
Summary:
Current store implementation returns value that may contain matadata.
We need to strip it before writing out file to disk

This is not going to be a problem with new Eden API, but it is not erady yet and rolling it out may take time
So in order to start testing native checkout now, we are incorporating metadata removal in the checkout code

Reviewed By: quark-zju

Differential Revision: D26953658

fbshipit-source-id: 05d8be55bb96e7c3162594498ef0b9944b422c90
2021-03-12 09:04:03 -08:00
Simon Farnsworth
1eecbfa82d Switch default Manifold client from Thrift to C++
Summary: All important jobs (SCS Server, LFS Server, Mononoke Server, derived data) have switched successfully. Roll up anything that's been missed by switching the default and letting contbuild take care of it

Reviewed By: krallin

Differential Revision: D26980991

fbshipit-source-id: 2c9f7cd56c38e9e1a2f8374c76141e7a99c88a2a
2021-03-12 08:37:15 -08:00
svcscm
cc64215a36 Updating submodules
Summary:
GitHub commits:

c09fadd4ae

Reviewed By: yns88

fbshipit-source-id: 200a889d65d0e11ef45184b974388323a3c5ec2d
2021-03-12 08:19:09 -08:00
Mark Juggurnauth-Thomas
33ec4db653 bounded_traversal: require futures to be boxed
Summary:
Bounded traversal's internal book-keeping moves the futures returned from fold and unfold callbacks around while they are being queued to be scheduled.  If these futures are large, then this can result in a significant portion of bounded traversal's CPU time being spent on `memcpy`ing these futures around.

This can be prevented by always boxing the futures that are returned to bounded traversal.  Make this a requirement by changing the type from `impl Future<...>` to `BoxFuture<...>`.

Reviewed By: mitrandir77

Differential Revision: D26997706

fbshipit-source-id: 23a3583adc23c4e7d3607a78e82fc9d1056691c3
2021-03-12 08:12:57 -08:00
Stanislau Hlebik
f7e3a55184 mononoke: allow using streaming clone with sqlite
Summary:
Previously it was possible to use streaming clone only with xdb table. This
diff changes it

Reviewed By: farnz

Differential Revision: D27008486

fbshipit-source-id: b8d51832dd62b4343b36c3a7a96b83a327056025
2021-03-12 06:44:00 -08:00
svcscm
4ba972402e Updating submodules
Summary:
GitHub commits:

b6126684da

Reviewed By: yns88

fbshipit-source-id: 2f3fa573382525ec4cdb8772997b004eb85a173f
2021-03-12 04:42:50 -08:00
Ilia Medianikov
8cf4bc15dc mononoke: pushrebase: save prepushrebase changeset id in bonsai changeset extra
Summary:
Knowing the prepushrebase changeset id is required for retroactive review.
Retroactive review checks landed commits, but verify integrity hook runs on a commit before landing. This way the landed commit has no straightforward connection with the original one and retroactive review can't acknowledge if verify integrity have seen it.

Reviewed By: StanislavGlebik

Differential Revision: D26944453

fbshipit-source-id: af1ec3c2e7fd3efc6572bb7be4a8065afa2631c1
2021-03-12 04:09:41 -08:00
Rafael Catalão Lopes Perrella
f0f6d57e9b Fix package boundary violations
Reviewed By: yfeldblum

Differential Revision: D26944733

fbshipit-source-id: c67250ca846732cbcc456ae39a5cc58cd38498e6
2021-03-12 04:03:53 -08:00
Stanislau Hlebik
55dc8bf7d6 mononoke: remove unused getbundle_low_gen_num_threshold
Summary:
This tunable is not used anymore, we use
getbundle_high_low_gen_num_difference_threshold instead. Let's remove it.

Differential Revision: D26984966

fbshipit-source-id: 4e8ded5982f7e90c90476ff758b766df55644273
2021-03-12 03:14:51 -08:00
Alex Hornby
6e75bcc077 mononoke: add hg derived data support to benchmark_large_directory
Summary: Add ability to benchmark hg derivation

Reviewed By: krallin

Differential Revision: D26983309

fbshipit-source-id: 593f16c752610db4253e44509ffcf218dd241796
2021-03-12 02:58:53 -08:00
Alex Hornby
0035efe1f5 mononoke: add BonsaiHgMappingToHgBonsaiMapping edge to assist LFS validation
Summary:
The existing query to establish HgChangesetId on the path to FileContentMetadata for LFS validation is quite complex, using HgFilenode linknodes.

This change adds an optional edge from BonsaiHgMappingToHgBonsaiMapping that can be used to simplify the LFS validation case and load less data to get there.

Reviewed By: mitrandir77

Differential Revision: D26975799

fbshipit-source-id: 799acb8228721c1878f33254ebfa5e6345673e5d
2021-03-12 02:54:51 -08:00