Commit Graph

76340 Commits

Author SHA1 Message Date
Yipu Miao
005dbebae8 Enable RECAS backingstore on Mac
Summary: Enable RECAS backing store on Mac. This seems working.

Reviewed By: genevievehelsel

Differential Revision: D38373195

fbshipit-source-id: 201f056b67a9b2ab6bd90c8a35a7fc8b43dbf07c
2022-08-03 10:50:52 -07:00
Open Source Bot
515b95c329 Updating submodules
Summary:
GitHub commits:

2b46e364a9
00c281cd59
e1693b62cc
d66b0ecacb

Reviewed By: bigfootjon

fbshipit-source-id: 4d04d3520e5f0bf1b9848aa27d72e0bbc3e96453
2022-08-03 10:16:55 -07:00
Mark Juggurnauth-Thomas
2aa8069039 repo_authorization: implement path ACL checks
Summary:
Implement path ACL checks for basic read accesses to the repo.  Attempts to access
a tree or file will fail if the user doesn't have access to that path.  Attempts
to access arbitrary trees or files by their IDs will also fail if the user does not
have full repo read access, as the paths for these accesses cannot be checked.

In this initial version, we do not prevent queries that would allow users to
find out the names of paths that they do not have access to: for example
listing all files in a directory would still work.

Reviewed By: RajivTS

Differential Revision: D38129042

fbshipit-source-id: 1b2b6e5881712628c6d979d329447afac2050626
2022-08-03 08:27:47 -07:00
Mark Juggurnauth-Thomas
75c1fe0b21 mononoke_api: make changeset path functions async and fallible
Summary:
We will need to add permission checks here, so first make these functions async
and fallible.

Reviewed By: yancouto

Differential Revision: D38129040

fbshipit-source-id: ff459fa0fcdd8bae63217caab16099e987233f70
2022-08-03 08:27:47 -07:00
Mark Juggurnauth-Thomas
7da0b89cad scs_server: add path acls test
Summary:
Add an initial test for path ACLs in the source control service.  Currently
Path ACLs are not used, so the test user that is granted access cannot access
the file.

Reviewed By: RajivTS

Differential Revision: D38129041

fbshipit-source-id: 6ba37f9f2102429a7249b873987b1d94a23a7fe9
2022-08-03 08:27:47 -07:00
Michael van der Westhuizen
5c2c300ed8 Build for aarch64 in addition to x86_64
Summary:
Allow CI/CD builds to build and publish aarch64 builds alongside the existing x86_64 builds.

The published RPMs will have the same version number as the x86_64 RPMs allowing standard slowroll logic to push the packages to the fleet.  This allows the aarch64 bringup team to stop special-casing slowroll.

This diff affects only the RPMs that are required for initial bringup.  Subsequent activity will add more RPMs.

Context about the aarch64 effort: https://fb.workplace.com/groups/1858357931081326/posts/3670012916582476

Differential Revision: D38386331

fbshipit-source-id: 7a72da85868d0c0a488940cfff4285145ef114e7
2022-08-03 07:09:58 -07:00
Open Source Bot
03e7b33c87 Updating submodules
Summary:
GitHub commits:

2e5106815a
0889ffd100
6a3bf0c59d
0c516562e9
6635994285

Reviewed By: bigfootjon

fbshipit-source-id: 7c1a80fa6421a51e57d08962eafcff50d0bb31c3
2022-08-03 06:50:18 -07:00
Pyre Bot Jr
fa7fc1a6c7 Add annotations to eden/scm/edenscm/hgext/dirsync.py
Reviewed By: jordanwebster

Differential Revision: D38385266

fbshipit-source-id: 4bc87e50a44c616d30a407cad0775dcc2084d806
2022-08-03 05:57:22 -07:00
Open Source Bot
241d56320a Updating submodules
Summary:
GitHub commits:

2859760dd0
815c2a9345
86a05e68fd
77c9041fed
96e54b60dc
34d15014c6
f3a07d1974

Reviewed By: bigfootjon

fbshipit-source-id: 54b6fa1a9db96dd1e617c4c42df3c1a71423a811
2022-08-03 04:47:04 -07:00
Open Source Bot
842c77a6a3 Updating submodules
Summary:
GitHub commits:

cae5b8d39e
b43f44e586
ba4c98a388
4b4c5d67e2
54ccc031e2
d7b75d9ac7
79486bdca5
9ceaa37c9c
9b9835ca73

Reviewed By: bigfootjon

fbshipit-source-id: adb3ca275ad71394ff2b2fa6b85db36e7dc95436
2022-08-03 02:41:54 -07:00
Pavel Golubev
59b5ae7e1f migrated segmented_changelog_tailer to new CLI framework
Summary:
1. Migrated CLI flags and application setup to new framework.
2. Deprecated `--repo` flag in favor of `MultiRepoArgs` (`--repo-id` and `--repo-name` flags).
3. Refactored clone hints future stream so it can be used with `tokio::spawn()` which requires static lifetime of variables used in async scopes.

Reviewed By: mitrandir77

Differential Revision: D38282271

fbshipit-source-id: 77fc50662669d537059cb2297d0f4bfc27d8a07c
2022-08-03 01:55:05 -07:00
Open Source Bot
af61d688e2 Updating submodules
Summary:
GitHub commits:

119f779394
30c704cf2b
a7bf93023e
8e2fb5f970
0c49759917
b336ff93c3
daa3c52812
f7514fc190
3e494bdace
7e1d86adbc
1897aeab52

Reviewed By: bigfootjon

fbshipit-source-id: bcd63a210fba7916491a2f8e7122fd514856edac
2022-08-03 01:34:48 -07:00
Open Source Bot
16a4afacf7 Updating submodules
Summary:
GitHub commits:

526f9be286
728a5e8141
3fd5687bcf
5809556482
39fa45471a
a54402dd7e

Reviewed By: bigfootjon

fbshipit-source-id: f759a075667678755c4430963f871e11a71ef6c7
2022-08-03 00:39:05 -07:00
Open Source Bot
14b872dad9 Updating submodules
Summary:
GitHub commits:

3dd4851309
7ed09ba32d
a3a28bce1b
ab1ed4bf86
418498be44

Reviewed By: bigfootjon

fbshipit-source-id: 8c4f92928c7b0731980baadfcc5bffb53328c062
2022-08-02 23:00:12 -07:00
Open Source Bot
2f6b1c9360 Updating submodules
Summary:
GitHub commits:

4f8f7ed0da
e0176d64d8
6ae7afe06c
d7893679c8
031428582e
495fe904e4
8074e96cb4

Reviewed By: bigfootjon

fbshipit-source-id: e6ed71dda1b565d062a87448941eb07e16218d8a
2022-08-02 21:37:14 -07:00
Open Source Bot
76b9a2487b Updating submodules
Summary:
GitHub commits:

9f9872c0f4
cfcf1f7249
fdbf89880f
684eccdce9
007f1658b4
06b29f0169
35aa1d3230
7ba7330571
1400bd5e71
2148956b20

Reviewed By: bigfootjon

fbshipit-source-id: 390dc6eeb727e74399f521d8d1157f1d86ac97e7
2022-08-02 20:50:29 -07:00
Katie Mancini
40521f9eb2 bump inode tracebus limits and add a config for extra safety
Summary:
Users are showing that tracebus fills up for inode events. for fs tacebuses we use a 25000 event limit, so lets bump to there.

we will also add a config so we can switch this off completely as needed.

Reviewed By: mshroyer, xavierd

Differential Revision: D38375093

fbshipit-source-id: 01156a1b1964ab4430a860f2e5e4c82cd86ec28e
2022-08-02 19:19:08 -07:00
Open Source Bot
db3c86ef58 Updating submodules
Summary:
GitHub commits:

b184a017d4
ef6ebd0c52
631cfeeaef
8007dc4844
8d664ccb07
585b7e357c
838b5bf937
724ed48119
43762e483a
3554e1b963
7ca8280901
5262d1b210
950a7cea9e
5160e7d020
bd528d092b

Reviewed By: bigfootjon

fbshipit-source-id: f38ffa919a8b56a5b3aa0e63c490893a832f6239
2022-08-02 18:37:48 -07:00
Andrew Milas
3a2edab897 Create Hg ActivityBuffer
Summary: This diff is part of a stack of diffs (D38276534 (464b402226), D38282758, D38287560, D38288599) for adding retroactive tracing support for the eden trace hg command. This diff specifically performs the logic within EdenFS to create an ActivityBuffer in each HgQueuedBackingStore and subscribe to the tracebus of this BackingStore to read and store hg events as they occur. In later diffs we will expose these events in a thrift interface, and then display them in the eden tracing CLI.

Reviewed By: MichaelCuevas

Differential Revision: D38282758

fbshipit-source-id: ef5a18482639ac6359a73ea255fe1035f97d103d
2022-08-02 17:42:10 -07:00
Mark Shroyer
726a02ea91 Move thrift flags into EdenConfig
Summary:
Replaces the `thrift_*` flags in EdenServer with equivalent configurations in
EdenConfig, except for the CoDel flag which is removed.

Reviewed By: fanzeyi

Differential Revision: D38343465

fbshipit-source-id: 158fcd2a72a2f61923073d23aa8c4dfff7156ca9
2022-08-02 16:10:41 -07:00
Open Source Bot
0aa9035c8f Updating submodules
Summary:
GitHub commits:

94d718f69a
07764dda0a
a98af931de
46bb62c573
bef3127b00
ba781e813b
ac4f992306
288ba8ac59
f13a4c3963
36f6d47222
499cd22f5c

Reviewed By: bigfootjon

fbshipit-source-id: 6770fb46c33f8437cf821384a85dcce01a9afef9
2022-08-02 15:49:30 -07:00
Andrew Milas
464b402226 Add template to ActivityBuffer
Summary:
While before the ActivityBuffer only supported storing InodeTraceEvents, it is now time that we generalize this support by allowing the ActivityBuffer to store multiple types of trace events. This diff makes the transition with three main changes
1. Adding a template type to what event an ActivityBuffer can store
2. Modifying current uses of the ActivityBuffer to specify the InodeTraceEvent type (or int type in the ActivityBufferTest)
3. Moves the InodeTraceEvent type from ActivityBuffer.h to EdenMount.h and clarifies that the ActivityBuffer used in EdenMount is for Inode trace events.

Reviewed By: MichaelCuevas

Differential Revision: D38276534

fbshipit-source-id: ddfdae44b514a6e2066ebfbb7d843ef1280a6559
2022-08-02 13:41:53 -07:00
Xavier Deguillard
1bd5005ac7 integration: add another out-of-order test
Summary:
This time, we're testing the behavior of replacing a directory by another
directory. This is achieved by doing a rename.

Reviewed By: genevievehelsel

Differential Revision: D38291941

fbshipit-source-id: 18a004800ca58d97fd8a4837bce5c8bc7c3b05fb
2022-08-02 13:03:34 -07:00
Xavier Deguillard
f725a47f82 integration: add a double rename stress test
Reviewed By: kmancini

Differential Revision: D38007959

fbshipit-source-id: d4cb79d6bbff918d01c8ad7af616306a9ce0d7a3
2022-08-02 13:03:34 -07:00
Xavier Deguillard
03004f5a41 prjfs: properly handle directory hierarchy replaced by a file
Summary:
When walking up the path that has been detected as not being present on disk,
EdenFS would assume that the returned path is a directory, but this assumption
doesn't hold true if the directory has been replaced by a file. Thus, instead
of walking up until finding a file/directory that is present on disk, the code
needs to walk up until a directory is found.

Reviewed By: kmancini

Differential Revision: D37927926

fbshipit-source-id: 5da55f503f4df8158c61435a1afa2cdd3f24d997
2022-08-02 13:03:34 -07:00
Xavier Deguillard
7ba8264a8a prjfs: properly handle renaming of directories
Summary:
Renaming of directories is handled in the same way that a directory was removed
and another one was created in a different location. Internally, EdenFS will
query the filesystem for whether the renamed directory exist, and remove the
entire inode hierarchy, at the same time, all the files in the destination
directory are added recursively in the inode hierarchy.

This model however breaks down if a new folder is then added on disk at the
location of the old directory. When that happens prior to the directory removal
described above, EdenFS will not removed the directory hierarchy, but it will
treat it as a directory creation, and will thus try to add all the on-disk
childrens of the created directory to the inode hierarchy. On completed, the
TreeInode corresponding to this directory will contain the old entries of the
renamed directory, thus a mismatch with what's on disk.

To solve this, we also need to make sure that all the entries in the TreeInode
are also consulted and recursed into. This will naturally remove the
files/directories that are no longer present on disk.

Reviewed By: kmancini

Differential Revision: D37764806

fbshipit-source-id: 249e2028cf419f837659d6813803b7a03c2a0163
2022-08-02 13:03:34 -07:00
Alex Bezugly
4334444a6b migrate repo_import tool to new CLI framework
Summary: Migrate repo import tool (the tool we use to ingest small git repos into our large monorepos) to new framework.

Reviewed By: mitrandir77

Differential Revision: D38285162

fbshipit-source-id: 165c96d5495d0fada0507d02af6ad4ff82baa91b
2022-08-02 12:44:34 -07:00
Michael Bolin
d4b399be62 add more pull request template keywords
Reviewed By: quark-zju

Differential Revision: D38319498

fbshipit-source-id: 6f3e896d6e3574f08bf45fcab166c1a38d90334d
2022-08-02 12:37:45 -07:00
Katie Mancini
b44082e107 remove folly::Format InodeNumber
Summary:
From the folly format docs
> Use fmt::format instead of folly::format for better performance, build times and compatibility with std::format

eden build times have gotten a bit high, cutting out folly format will help reduce build time, so let's start
by banishing it from eden

buck2 build times have been un-reliable, I have been trying `--local-only` and `buck clean` but the build times seem too goo for clean builds and are all over the place. Will try more throughly clearing caches. I think that folly/format.h is still being linked  due to recursive dependencies, so I am looking into making sure it at least isn't being recursively included in any of our headers.

Reviewed By: xavierd

Differential Revision: D38250995

fbshipit-source-id: b02d8c458fe92a068426031cffd20ef01ae0edf7
2022-08-02 11:44:19 -07:00
Katie Mancini
c3ebd23f25 remove folly::Format PathError
Summary:
From the folly format docs
> Use fmt::format instead of folly::format for better performance, build times and compatibility with std::format

eden build times have gotten a bit high, cutting out folly format will help reduce build time, so let's start
by banishing it from eden

see the last change in this group for the difference

Reviewed By: xavierd

Differential Revision: D38251002

fbshipit-source-id: 41559edc44157f64950e764fb3bc941739dcbf40
2022-08-02 11:44:19 -07:00
Katie Mancini
91627d912b remove folly::Format store
Summary:
From the folly format docs
> Use fmt::format instead of folly::format for better performance, build times and compatibility with std::format

eden build times have gotten a bit high, cutting out folly format will help reduce build time, so let's start
by banishing it from eden

see the last change in this group for the difference

Reviewed By: xavierd

Differential Revision: D38250997

fbshipit-source-id: 64082155f573d94d6968bc58e6d6eb5594286c38
2022-08-02 11:44:19 -07:00
Katie Mancini
981b4cb1f4 remove folly::Format GitBlob
Summary:
From the folly format docs
> Use fmt::format instead of folly::format for better performance, build times and compatibility with std::format

eden build times have gotten a bit high, cutting out folly format will help reduce build time, so let's start
by banishing it from eden

see the last change in this group for the difference

Reviewed By: xavierd

Differential Revision: D38251005

fbshipit-source-id: 62f70896da0e852707ecf10198b1e14eaadb94a2
2022-08-02 11:44:19 -07:00
Katie Mancini
26a5b13ad3 remove folly::Format RocksDbLocalStore
Summary:
From the folly format docs
> Use fmt::format instead of folly::format for better performance, build times and compatibility with std::format

eden build times have gotten a bit high, cutting out folly format will help reduce build time, so let's start
by banishing it from eden

see the last change in this group for the difference

Reviewed By: xavierd

Differential Revision: D38250998

fbshipit-source-id: b02fc4a2d656255460a642e98059dbe3129b5f0e
2022-08-02 11:44:19 -07:00
Katie Mancini
87b8b49513 remove folly::Format model
Summary:
From the folly format docs
> Use fmt::format instead of folly::format for better performance, build times and compatibility with std::format

eden build times have gotten a bit high, cutting out folly format will help reduce build time, so let's start
by banishing it from eden

see the last change in this group for the difference

Reviewed By: xavierd

Differential Revision: D38251003

fbshipit-source-id: eace8cee2a1c02ecf95cc386b16c3ae595a4f188
2022-08-02 11:44:19 -07:00
Katie Mancini
c56693d4e2 remove folly::Format TimeUtil
Summary:
From the folly format docs
> Use fmt::format instead of folly::format for better performance, build times and compatibility with std::format

eden build times have gotten a bit high, cutting out folly format will help reduce build time, so let's start
by banishing it from eden

see the last change in this group for the difference

Reviewed By: xavierd

Differential Revision: D38250999

fbshipit-source-id: bfa6debfb9cc9abb8634df69701658308645e6f1
2022-08-02 11:44:19 -07:00
Katie Mancini
1697c2ed3c remove folly::Format PrivhelperServer
Summary:
From the folly format docs
> Use fmt::format instead of folly::format for better performance, build times and compatibility with std::format

eden build times have gotten a bit high, cutting out folly format will help reduce build time, so let's start
by banishing it from eden

see the last change in this group for the difference

Reviewed By: xavierd

Differential Revision: D38251001

fbshipit-source-id: 0e6c4f7403a6962ef1e5fc6adba4a991dcdf6a5d
2022-08-02 11:44:19 -07:00
Katie Mancini
cff9ff7e4f remove folly::Format PathFuncs
Summary:
From the folly format docs
> Use fmt::format instead of folly::format for better performance, build times and compatibility with std::format

eden build times have gotten a bit high, cutting out folly format will help reduce build time, so let's start
by banishing it from eden

see the last change in this group for the difference

Reviewed By: xavierd

Differential Revision: D38251000

fbshipit-source-id: a5aee79f7f0acbf969a351c3aa5ac32bb6c01b2a
2022-08-02 11:44:19 -07:00
Katie Mancini
ae72e466c1 remove folly::Format TakeoverData
Summary:
From the folly format docs
> Use fmt::format instead of folly::format for better performance, build times and compatibility with std::format

eden build times have gotten a bit high, cutting out folly format will help reduce build time, so let's start
by banishing it from eden

see the last change in this group for the difference

Reviewed By: chadaustin

Differential Revision: D38250996

fbshipit-source-id: 7f1ffc4a13c2751b503c26792ae841090b119c9c
2022-08-02 11:44:19 -07:00
Open Source Bot
0cfc90f74a Updating submodules
Summary:
GitHub commits:

ebe94c0e0d
b288cf0bf5
291705faca
96880e8c9e
d9ebec7ed6
ee631f54e9

Reviewed By: bigfootjon

fbshipit-source-id: 911b03190b0131fde079a508db40fcc951da1dba
2022-08-02 11:14:14 -07:00
Jan Mazur
0eaf06311a forward cats meant for VI
Summary:
Mononoke server on push (currently only wireproto) forwards cats that are supposed to contain extra identities used by verify integrity and stored in a db and logged to scuba here: https://fburl.com/scuba/commit_integrity/ibk4ysx5

Since remote pushrebase was rolled out, we lost these cats along the way. I'm forwarding them to SCS with this diff.

Reviewed By: markbt

Differential Revision: D38198880

fbshipit-source-id: c10973ac5f46a22b2c4b6f4de6d2ddb3b77630af
2022-08-02 10:51:01 -07:00
Open Source Bot
5f8e8db5ca Updating submodules
Summary:
GitHub commits:

0d70ec4fcb
99e78e77c5
9e4396c650
a8235bc51d
9da97a3726
8162c9e577
1255df3c33

Reviewed By: bigfootjon

fbshipit-source-id: fccc67022e4006e91c2277dfb0561a104e3c4856
2022-08-02 09:52:33 -07:00
MSDK Bot
4891cb67f9 Update isl component on FBS:master
Differential Revision: D38355168

fbshipit-source-id: 257adf205bc875549e354209f227916720649b5e
2022-08-02 09:40:41 -07:00
Open Source Bot
439b90ba25 Updating submodules
Summary:
GitHub commits:

195bcc46bf
d9b44f3ca4
1f8ad4e8c4
648159905d
3cdca263d8
109ae35a38
2a37f5cfdd
8a9c42cc56

Reviewed By: bigfootjon

fbshipit-source-id: 0ef7c4fbf3d4b8af4dbbecbd4f6a770dff4e4049
2022-08-02 09:16:11 -07:00
Michael Bolin
d940f2daa9 use BEL instead of ESC in hyperlink function
Summary:
As reported in https://github.com/markbt/streampager/issues/57,
we saw extra backslashes in the output of the `hyperlink()` function.
Changing the ANSI escape sequence appears to fix things,
at least in iTerm+streampager.

Reviewed By: markbt

Differential Revision: D38268807

fbshipit-source-id: d47e3cf5fa9e2f93485221bdc0cd4aa62a812ea5
2022-08-02 08:44:55 -07:00
Mark Juggurnauth-Thomas
61efb1f9fb check_write_permissions: add bypass allowlist
Summary:
For some scenarios (e.g. mirroring commits) it may be necessary to bypass the
recently-added author write permissions checks.  Add a `bypass_allowlist` option
to the hook config which lets us define identities of pushers who are allowed to
bypass this check.

Reviewed By: mzr

Differential Revision: D38350812

fbshipit-source-id: c4ddefd631cef1053573426b05e35481d999aa62
2022-08-02 08:05:17 -07:00
Open Source Bot
2d245dacbc Updating submodules
Summary:
GitHub commits:

07f0838469
445a78a443
7c6aecf61f
7295ddc06e
69db4fd7ef
e4ed598c13
3d80b981f7
10adc9fdc4
149a3f8fe8
16dfe3fb99

Reviewed By: bigfootjon

fbshipit-source-id: 840e3b206772101b84da4df861c31d742d02d547
2022-08-02 07:59:48 -07:00
Harvey Hunt
01131adcb8 mononoke: Remove hook manager factory
Summary:
The hook manager factory was used in a couple of places to make it
simpler to create a `HookManager`. However, `HookManager` is now a facet and
can therefore be created using the facet factory methods.

Remove the hook manager factory code and move its logic into `repo_factory`.
Further, update `mononoke_api::Repo`'s `new_test_common` method to create a
`HookManager` using `TestRepoFactory`. In the future, we should get rid of the
custom test methods inside of `Repo` and rely on `TestRepoFactory` instead.

Reviewed By: markbt

Differential Revision: D38352454

fbshipit-source-id: aa127ad3408a049576dafe6e21bc65f50203ead2
2022-08-02 07:59:14 -07:00
Harvey Hunt
1566c26579 mononoke: Convert mononoke_api::Repo to a container
Summary:
Now that all of the components of `Repo` are facets, the struct can be
converted to a container. This means that the struct can be built using a
`RepoFactory` rather than calling `Repo::new()`.

In later diffs, we can remove the helper methods (e.g. `hook_manager()`,
`ephemeral_store()` etc) and update callers to import traits instead.

Reviewed By: yancouto

Differential Revision: D38349354

fbshipit-source-id: bd9ae8b3d1e6aa1d0230306860fcff852161fad0
2022-08-02 07:59:14 -07:00
Harvey Hunt
be4cf4eba7 mononoke: Move skiplist env into repo_factory
Summary:
`mononoke_api::Repo` has logic to disable skiplists if there
`skiplist_enabled` isn't set in `MononokeEnvironment`. In order to migrate
`Repo` to be a container, this logic needs to live inside of the repo_factory.

Update the code to create a skiplist index to check the same environment
setting and disable skiplists if it's not set.

Reviewed By: yancouto

Differential Revision: D38349355

fbshipit-source-id: 0550607506b91e0a42a63bcec5995c20f12b03a0
2022-08-02 07:59:14 -07:00
Harvey Hunt
8defde8a18 mononoke: Convert WBC to a facet and build it with repo_factory
Summary:
The Warm Bookmark Cache isn't a facet, which means that it can't be
built with `repo_factory`. Turn it into a facet and add code into
`repo_factory` to build it from the required components.

Reviewed By: yancouto

Differential Revision: D38349357

fbshipit-source-id: b89f73178a9be1b2811daae8614ff09cc80d1068
2022-08-02 07:59:14 -07:00