Commit Graph

63313 Commits

Author SHA1 Message Date
Xavier Deguillard
ce50d2e34c fs: add an NfsDispatcher
Summary:
Similarly to what is done for FUSE and ProjectedFS, the dispatcher is the glue
that sits in between the protocol specific bits and the inodes layer.

For now, this only implements "getattr" but it will be filled overtime as more
RPC can be answered properly.

Reviewed By: kmancini

Differential Revision: D26389795

fbshipit-source-id: 19cf3457feec2ebc100e632cb28c20b11fdde26d
2021-02-17 23:32:38 -08:00
Xavier Deguillard
992d17bd2d nfs: add getattr RPC datastructures
Summary: This merely adds the various datastructures needed to implement GETATTR.

Reviewed By: kmancini

Differential Revision: D26389794

fbshipit-source-id: bda557a21386483449c18aa9e52f4f626b73e69f
2021-02-17 23:32:38 -08:00
Yedidya Feldblum
61ce8b9ba2 getdeps show-build-dir
Summary: A show-build-dir subcommand. Possibly useful for building a project and then running only one test or benchmark binary directly.

Reviewed By: wez

Differential Revision: D26502869

fbshipit-source-id: 0d8f6c42a2bbeb2440503a39c7fc770e3b3e4fff
2021-02-17 20:15:35 -08:00
svcscm
a17fb634fb Updating submodules
Summary:
GitHub commits:

9643afe114
2620a85b1c
cb2d12ebd3
f59c2a6b34
dab4fe5bcd
751173fb69
e3ffd60749
0405490239
887359c3ed

Reviewed By: bigfootjon

fbshipit-source-id: 6be1f33cf04a1f118e71174586c11c3a806e6bb4
2021-02-17 18:07:30 -08:00
Durham Goode
5b5eec156c treemanifest: remove logic that replaces the stores
Summary:
This was added in D26387205 (ca1249c269) to make the treemanifest store usage look
more like the file store usage, but it appears to cause read-after-write
failures. I'm not sure exactly why, but I think it's because something takes a
reference to the old store and writes to it, then something else reads from the
new store. Or vice versa.

Either way, reverting these three lines fixes it.

Reviewed By: singhsrb

Differential Revision: D26497708

fbshipit-source-id: e9afabed8d5f800260e647d5ed1513eed0bc60cd
2021-02-17 14:36:14 -08:00
Mateusz Kwapich
d46aee9954 add support for svn revision numbers source control service
Summary: Let's treat them like any other ids.

Reviewed By: StanislavGlebik

Differential Revision: D26453408

fbshipit-source-id: fb01bf9ca8871a147a41dded7eed6e3360466a44
2021-02-17 12:43:01 -08:00
Mateusz Kwapich
db7a5abbf6 add svn rev numbers to mononoke_api crate
Summary: just some boilerplate to make the use from SCS code clean and easy

Reviewed By: StanislavGlebik

Differential Revision: D26453406

fbshipit-source-id: efc280e0be14c3e0f145a489a9fd77b5c0eefa58
2021-02-17 12:43:01 -08:00
Mateusz Kwapich
3b32b1629f make backfill_git_mapping more generic and supporing svn
Summary: backfill_git_mapping was great for backfilling git mappings, let's use it for svn

Reviewed By: StanislavGlebik

Differential Revision: D26453407

fbshipit-source-id: 3ee61722ac729af5a2fc4187fda3341069bb53f6
2021-02-17 12:43:00 -08:00
Mateusz Kwapich
adba5b3e30 add BonsaiSvnrevMapping to blobrepo
Summary: now that we have the bonsai svn mapping let's thread it through blobrepo

Reviewed By: StanislavGlebik

Differential Revision: D26453409

fbshipit-source-id: 4100a9b16ffb3186735e20a766a1ef486d3c26c5
2021-02-17 12:43:00 -08:00
Mateusz Kwapich
45465ba8d8 make BonsaiSvnrevMapping store the repo_id
Reviewed By: krallin

Differential Revision: D26467968

fbshipit-source-id: 844f2d43fc0541e8aaffdc40ea9f876e3432e3c5
2021-02-17 12:43:00 -08:00
Mateusz Kwapich
ccf4dad352 introduce svn revision mapping
Summary:
Bonsai svnrev mapping will allow us to store the original svn revision number for repos that
were imported from svn at some point in time. This will allow scs_server to
easily respond to queries about commits identified by them.

The code is mostly copypasta from globalrevs

Reviewed By: krallin

Differential Revision: D26424833

fbshipit-source-id: 9825de52c23ab9386de1a9d0e0a9506c0a035a8a
2021-02-17 12:43:00 -08:00
Andrey Chursin
ceee768281 pycheckout: register checkout module in populate_module
Reviewed By: DurhamG

Differential Revision: D26470216

fbshipit-source-id: cdfda074256ba7dbf90d807904bab9a3b8142a98
2021-02-17 12:02:44 -08:00
Andrey Chursin
6498f4f892 pycheckout: add checkoutplan::apply
Reviewed By: DurhamG

Differential Revision: D26469704

fbshipit-source-id: 010a12b04b7f6a5d08e1aa248130026341306595
2021-02-17 12:02:43 -08:00
Andrey Chursin
51a29c5d7e pycheckout: implement checkoutplan::__new__
Summary: This diff introduces a Python checkoutplan, which will be used later for Python code to interact with the Rust checkout infrastructure

Reviewed By: DurhamG

Differential Revision: D26437080

fbshipit-source-id: fe3517f4e2f15244a7c2cd290a41394e904db51b
2021-02-17 12:02:43 -08:00
Andrey Chursin
6ae7c785ba pymanifest: make treemanifest public
Summary: This diff exposes treemanifest for public use and introduce method to borrow underlyning manifest for usage in rust

Reviewed By: DurhamG

Differential Revision: D26437079

fbshipit-source-id: d2d6cd2a4d1f108881d985932a36d48fed4b238d
2021-02-17 12:02:43 -08:00
Andrey Chursin
11faa47a7d pycheckout: empty pycheckout crate
Reviewed By: DurhamG

Differential Revision: D26435596

fbshipit-source-id: 013070ff918c7b45105c7abdad0950ee96d46d49
2021-02-17 12:02:43 -08:00
svcscm
d5910569f4 Updating submodules
Summary:
GitHub commits:

5dded18bad
0f4db9c704
4cd75ddc2d
377e15cb7f
0743eba0c4

Reviewed By: bigfootjon

fbshipit-source-id: e8c892c5534cbc32a7c29ae10a5937c9133545c2
2021-02-17 11:55:38 -08:00
Andrey Chursin
eac8385eff vfs: use &[u8] instead of Bytes for content
Summary: This is most universal/flexible interface

Reviewed By: quark-zju

Differential Revision: D26410641

fbshipit-source-id: cae74675f89c0c1c05c84331c3ce0e78fd0b0b2f
2021-02-17 10:45:46 -08:00
Andrey Chursin
3e29269b99 vfs: update existing permissions instead of setting const value
Summary: This better replicates python's logic

Reviewed By: quark-zju

Differential Revision: D26406416

fbshipit-source-id: 1027004ded63a28aa88b81b087255c4ef212dd6b
2021-02-17 10:45:46 -08:00
Andrey Chursin
0ea63a1eaf checkout: test no empty dirs are left
Reviewed By: quark-zju

Differential Revision: D26406420

fbshipit-source-id: 3a9dc818a4a140f2e532c18b2abd81286cfee1eb
2021-02-17 10:45:46 -08:00
generatedunixname89002005307016
a301311ce8 Add annotations to eden/integration/lib/pexpect.py
Reviewed By: xavierd

Differential Revision: D26486496

fbshipit-source-id: 16c4b0cd1cc7a657b8575adc7d45e2c1f96ed3a1
2021-02-17 10:30:15 -08:00
svcscm
72532d2779 Updating submodules
Summary:
GitHub commits:

45d01ab9c6
e268b22945
160bb5ba19
9c4dd566bd
a9a7e98eb2
b4443423ce

Reviewed By: bigfootjon

fbshipit-source-id: 19dddbca721cbb322b8a42290924dbaf493c0093
2021-02-17 05:10:31 -08:00
Simon Farnsworth
9c8ac7ce2a Update generations in sqlblob on non-overwrite
Summary:
We rely on puts to the blobstore setting the generation number on chunks to ensure that there cannot be a race between puts, marks and deletes.

While not doing so should be harmless assuming mark is bug-free, we should still update the generation number on all referenced chunks when we elide a write, so that mark knows to ignore this chunk for now.

Reviewed By: mitrandir77

Differential Revision: D26469954

fbshipit-source-id: 32decedc69c8d4dcb1071a622b28e98ee36ea238
2021-02-17 04:55:50 -08:00
svcscm
bd86494239 Updating submodules
Summary:
GitHub commits:

f45ed0ab91

Reviewed By: bigfootjon

fbshipit-source-id: 00de0c8e9c83c649968bda4ced4d33d7ee8c1d4e
2021-02-17 04:55:50 -08:00
svcscm
29eb3562ea Updating submodules
Summary:
GitHub commits:

d7633a3d9e

Reviewed By: bigfootjon

fbshipit-source-id: 62c23955e0bc8029416825dee5d2bd92fd086246
2021-02-17 00:47:21 -08:00
Xavier Deguillard
a24e03f76f rust: update libc crate
Summary: The latest libc has fixes for compiling on the M1 mac, let's update it.

Reviewed By: dtolnay

Differential Revision: D26476625

fbshipit-source-id: d9a997e69c428d53c51fc52353289a6510314c50
2021-02-16 22:31:41 -08:00
svcscm
7166bf4147 Updating submodules
Summary:
GitHub commits:

5a7b71414d
9798fc0b81

Reviewed By: bigfootjon

fbshipit-source-id: a0c7ccfdc0e2e672065acf29398695f722aa1936
2021-02-16 22:31:40 -08:00
svcscm
c7f6702ea2 Updating submodules
Summary:
GitHub commits:

8c55aab2e5
55e1ee4b21
118f496d95
367d704617

Reviewed By: bigfootjon

fbshipit-source-id: 1c36b2a289dcd770cfdd32b179f00217427a3f02
2021-02-16 16:34:12 -08:00
Kostia Balytskyi
dc2e1a850f admin: create a subcommand for a rebase
Summary:
This allows to create a changeset clone with p1 changed. Essentially, this is a
bonsai-only rebase without any safety checks. The safety of this operation
(i.e. the usability of the resulting changeset) is highly dependent on the
context the ultimate responsibility is on the person running this command. For
instance, this does not do *any conflict checks*. As such, this is really only
useful to rebase additions/deletions/modifications of unchanged files.

Reviewed By: StanislavGlebik

Differential Revision: D25947017

fbshipit-source-id: 4093c432e4f8ba2a647ee4b17c6840c33d13be81
2021-02-16 16:11:59 -08:00
Stanislau Hlebik
9ee07c3643 metagit: make fast_validate_repository test faster
Summary:
krallin noted that this test takes 60 seconds to finish. This happens because
of r2d2 connection timeout - by default it's 30 seconds, and
fast_validate_repository test fails while we are trying to get git connection.
Instead of failing immediately it waits for 30 seconds (I looked into r2e2
implementation - when trying to get a connection it waits on a condition variable which never gets
notified because of a failure).

to mitigate the issue let's return Result<..., Error> now

Reviewed By: krallin

Differential Revision: D26462872

fbshipit-source-id: 93bb38da20459dca4e3737352ab3b638e8e88a84
2021-02-16 14:05:56 -08:00
generatedunixname89002005307016
2c850edda0 Add annotations to eden/fs/cli/debug.py
Reviewed By: xavierd

Differential Revision: D26462568

fbshipit-source-id: aa295b0d13f078e4018f28875e85ab65f5d449c5
2021-02-16 10:15:55 -08:00
Durham Goode
4b2ec1b3cc tests: fix test on osx
Summary:
Sort works differently on OSX. Let's set the locale in this case to get
consistent sorting across platforms.

Reviewed By: quark-zju

Differential Revision: D26438678

fbshipit-source-id: 80a5c758795fd9675b8b2b658521c0e9d6807366
2021-02-16 10:09:04 -08:00
Egor Tkachenko
d1ced5c38d repo_commit: Limit parents check concurrency
Summary: There was unlimited `try_join_all` call during parents_check. With a big number of parents to check (i.e. `6fa5806aefccf8f6c5500d943ce214f1aaf170ce` in www) it may affect performance. In case of S3 blobstore it leads to huge increase of TCP connections. Let's limit it to 100 concurrent futures.

Reviewed By: krallin

Differential Revision: D26455123

fbshipit-source-id: 6d84831ea0de437527e1abd234a05ca4ba03c01d
2021-02-16 07:32:30 -08:00
Ilia Medianikov
3de430b2d5 mononoke: pushrebase: log pushrebase_distance
Summary: This could be nice to log in Pushrebase. Right now we just log how many times we attempted it.

Reviewed By: krallin

Differential Revision: D26453550

fbshipit-source-id: 3aa49ccbbda387e9299b0a1673ac1b0bb0ecc8d3
2021-02-16 05:36:33 -08:00
Harvey Hunt
315fb0613b mononoke: edenapi: Add a comment to prevent a memory leak from being reintroduced
Summary:
There was a memory leak in EdenAPI server caused by cloning `rctx` and
passing it into the error logging task. D26451527 (de46828572) fixed the memory leak.

Add a comment to warn others so that the memory leak isn't reintroduced.

Reviewed By: farnz

Differential Revision: D26459153

fbshipit-source-id: e6b5a97e511144f93dfdd29caa6f4c92d54be957
2021-02-16 04:27:00 -08:00
svcscm
bbf475a1e7 Updating submodules
Summary:
GitHub commits:

602e0f26af

Reviewed By: bigfootjon

fbshipit-source-id: 839c91c532735a21f9533699298007537a885a04
2021-02-16 04:27:00 -08:00
svcscm
27e8fcfba0 Updating submodules
Summary:
GitHub commits:

420f45b39b
22b01b8c48
993de57926
a3e822842e
5fcf163814

Reviewed By: bigfootjon

fbshipit-source-id: faf92ba131d49f1db62c99d8a0ff283de5d758f7
2021-02-15 18:03:57 -08:00
Egor Tkachenko
0fdf60c6f6 Add scuba-dataset and fb303 to blobimport
Summary:
There are existing metrics within blobimport, but it is not exported. Also there is scuba logging during commit which we can use to monitor backup blobimport process for large repos, which cause some trouble.
In the next diff in the stack I'm updating tw spec to add thrift port.

Reviewed By: StanislavGlebik

Differential Revision: D26452381

fbshipit-source-id: f5f0056760673e323d4e327327479ca5c95ff15c
2021-02-15 16:30:57 -08:00
svcscm
5390151230 Updating submodules
Summary:
GitHub commits:

55a68bc62f
e881968070

Reviewed By: bigfootjon

fbshipit-source-id: 894da894a09a96dd4111dddf7c8bfea5ddcc525c
2021-02-15 16:16:00 -08:00
Jan Mazur
f9376fce90 load_limiter: static, sliced rate limitting
Summary: We would like to consistently rate limit a percentage of hosts from a specific tier expressed as a subset of identities.

Reviewed By: krallin

Differential Revision: D26312370

fbshipit-source-id: d3fc9e892a8c9f62e22b079fa947a85078831687
2021-02-15 09:56:56 -08:00
Harvey Hunt
de46828572 mononoke: edenapi: Fix memory leak caused by RequestContext
Summary:
Over time EdenAPI server anonymous memory usage has been increasing in
line with the number of requests served. This is due to references to
`RequestContext` outliving the lifetime of a request, causing the contained
data to never be dropped.

`RequestContext::new()` spawns a task that is used for logging errors. The task
uses a clone of `RequestContext` and then loops over the messages received on
`error_rx`. However, the only way for `error_rx.next()` to return `None` is for
`error_tx` to be dropped which happens when `RequestContext` is dropped. As the
task has cloned `RequestContext`, `error_tx` won't be dropped whilst the task
is running. As a result, `RequestContext` won't get dropped until the server
shuts down.

Update `new()` to only clone the logger rather than an entire `RequestContext`.

Reviewed By: mzr

Differential Revision: D26451527

fbshipit-source-id: 535ed53d76830df7a5c98694b4293260b7d677cf
2021-02-15 08:19:02 -08:00
Lukasz Piatkowski
711abbd80d fix git printing help message when running 'git init' (#74)
Summary: Pull Request resolved: https://github.com/facebookexperimental/eden/pull/74

Reviewed By: krallin

Differential Revision: D26449960

Pulled By: lukaspiatkowski

fbshipit-source-id: aebecd423c657f1d7c772845d0b212e7de6f250c
2021-02-15 07:08:09 -08:00
svcscm
061c6e9b8b Updating submodules
Summary:
GitHub commits:

fdbd366735
d168518c95
491ec846f4
e361c60fa9

Reviewed By: jurajh-fb

fbshipit-source-id: 8074e69cdd556e7cd0005f7cc992d77f03ac97b9
2021-02-15 02:49:04 -08:00
Thomas Orozco
9bd112f0d9 mononoke: allow using LRU slab rebalancing + rebalance more frequently
Summary:
Like it says in the title. This adds support for enabling slab rebalancing
that targets an even eviction age across all slabs, instead of trying to
maximize hit rate. It also lets us rebalance more often (right now we do it
every 5 minutes).

Reviewed By: HarveyHunt

Differential Revision: D26424323

fbshipit-source-id: a90e5a6b08cdfb01b5be8f995002bb5d5a38c4a2
2021-02-15 01:27:46 -08:00
svcscm
ecdf191f01 Updating submodules
Summary:
GitHub commits:

a59624bc31

Reviewed By: jurajh-fb

fbshipit-source-id: 2b5e47a2fee9c415ed78cc89ef390ea0fc6eac29
2021-02-15 01:27:46 -08:00
svcscm
5430e17ddc Updating submodules
Summary:
GitHub commits:

8c30d2d635
2311b14618
bad8babce6

Reviewed By: jurajh-fb

fbshipit-source-id: 077481dba5a786e498e2a18652f751c319f23c8b
2021-02-14 16:53:42 -08:00
Saurabh Singh
cfe084d02f telemetry: switch to using quantile stats instead of timeseries
Summary:
Timeseries is memory intensive and not really required in the current context
it is being used.

Reviewed By: chadaustin

Differential Revision: D26315632

fbshipit-source-id: ee51c3ad8bef6fce152aa787c8c4602f0b499f92
2021-02-14 16:37:08 -08:00
Saurabh Singh
0b9c2fb148 telemetry: switch to using quantile stats instead of histograms
Summary:
Histograms are memory intensive and require specifying fixed buckets for
instantiation.

Reviewed By: chadaustin

Differential Revision: D26315631

fbshipit-source-id: 6ce5459b8c1c6c25d84285baf96df55ce9119b1a
2021-02-14 16:37:08 -08:00
svcscm
9396529a4d Updating submodules
Summary:
GitHub commits:

38c1a117f0

Reviewed By: jurajh-fb

fbshipit-source-id: f36ffc7bdf776dd0c35ab1dfc719fe7bb4376d96
2021-02-14 14:43:26 -08:00
generatedunixname89002005307016
c83d9f746b Add annotations to eden/fs/cli/redirect.py
Reviewed By: xavierd

Differential Revision: D26445498

fbshipit-source-id: b77940cd7ed34b077ac0a8888268ee00ac01e043
2021-02-14 12:05:09 -08:00