Commit Graph

69567 Commits

Author SHA1 Message Date
Michael Cuevas
26ae74fb1d add thrift endpoint for querying file attributes in bulk
Summary:
update thrift interface to include a function that returns attributes for a given list of files.

to support this, we add several structures that define the functions parameters and return type.

- FileAttributes: a "bitmask" enum. Each attribute is a power of 2 to enable bitwise ORing attributes together to decide which attributes to fetch from files.
- FileAttributeData: struct to hold the attributes of an individual file
- FileAttributeDataOrError: union that is either a FileAttributeData or EdenError thrown when accessing the file attributes
- GetAttributesFromFilesParameters: self explanatory.
- GetAttributesFromFilesResult: self explanatory. Map of file -> FileAttributeDataOrError
- getAttributesFromFile(): actual function that will be implemented in EdenServiceHandler.cpp

Reviewed By: chadaustin

Differential Revision: D32155168

fbshipit-source-id: 6dd768f3bcee1e32a2362df231feebfb1297dbf6
2021-11-17 11:31:25 -08:00
Stanislau Hlebik
fafa8e454a mononoke: add a tunable to disable new not sync candidate logic
Summary:
It would be nice to be able to quickly turn it off in case of problems.
Hopefully we'll never need this lever, but better not need it but have it, then
have it not need it.

Reviewed By: yancouto

Differential Revision: D32491454

fbshipit-source-id: 8a84bc0cd955e0121aa632eab5ba7b98fef724c8
2021-11-17 10:27:31 -08:00
Stanislau Hlebik
9a47e7c3f5 mononoke: fix how we decide if a version is related or not
Summary:
Previously we've been just looking at the small repos in a given version to
decide if this is related or not. This is wrong - versions for all pre-merge fbsource
commits have no small repos in it, and yet we want to find this versions when
trying to sync a commit from fbsource to ovrsource.

FWIW just looking at repos in given version is not enough to understand if a
repo and version are related. What tells them if they are related is common
config - if common config contains a given repo, then it's indeed related.

This is what this diff does.
Also I had to debug some of the failing tests, and pretty_assertions made them easier to debug, so I decided to leave pretty_assertions here.

Reviewed By: mitrandir77

Differential Revision: D32461769

fbshipit-source-id: 9c9a57aa71e20cec8448602dfbe0248a6bb850f7
2021-11-17 10:27:31 -08:00
Stanislau Hlebik
97da9def59 mononoke: continue removing current version methods
Summary:
Thanks to the previous diffs we can continue removing methods that use current
version, and this is what this diff does.

Reviewed By: mitrandir77

Differential Revision: D32428739

fbshipit-source-id: 047d07f6ceea5dcf9dd1f8f71de6fd8aeccc624d
2021-11-17 10:27:31 -08:00
Stanislau Hlebik
30daf7fa2e mononoke: simplify SyncedAncestorsVersions
Summary:
Previously SyncedAncestorsVersions struct had to keep track of NotSyncCandidate
separately because they didn't have a version. Now that they have it we can
remove a separate boolean field in SyncedAncestorsVersions and treat
NotSyncCandidate in the same way

Reviewed By: mitrandir77

Differential Revision: D32490221

fbshipit-source-id: 718ee6d3877a7755d8bef60b7b27ce4a00e6a4d8
2021-11-17 10:27:31 -08:00
Stanislau Hlebik
044f1495f8 mononoke: check large repo version when deciding if commit is a not sync candidate
Summary:
This diff is the diff that actually (and finally!) makes it easier to add new
small repos to an existing large repo.

The key change is in
eden/mononoke/commit_rewriting/cross_repo_sync/src/commit_sync_outcome.rs,
function get_plural_commit_sync_outcome. Now when syncing in large->small
direction if there's no entry in synced_working_copy_equivalence mapping then
we check if a mapping for a given large repo commit contains a given small repo
at all. If no then we just consider it a NotSyncCandidate. The upside of that
is that adding a new small repo  wouldn't require adding new mapping for existing large repo commits.

The rest of the diff does two main things:
1) Add a version field to NotSyncCandidate.
2) Threads CommitSyncDataProvider and CommitSyncDirection to
get_plural_commit_sync_outcome.

Both of these changes are necessary and splitting them in separate diffs was
impractical.

Reviewed By: mitrandir77

Differential Revision: D32428738

fbshipit-source-id: cf6ff07cd8c7e6253d8be33e2b3ed36d964ab014
2021-11-17 10:27:31 -08:00
svcscm svcscm
509dd87987 Updating submodules
Summary:
GitHub commits:

ea1a45d709
08a0f568d7
c7a8464a7b
993c162004
c7e2331108
81bcd252c7
506765fe14
67c8370227

Reviewed By: bigfootjon

fbshipit-source-id: e9934e661c772d2fa856905864d7eabd3b6efb1e
2021-11-17 10:24:10 -08:00
Yan Soares Couto
3faa477e3f Check lookup error only once
Summary: This checks the error at the beginning of the function and is slightly simpler, and matches the style of the other error checking.

Reviewed By: markbt

Differential Revision: D32471435

fbshipit-source-id: 1f1ff6fd4312083fb94ba5fc5ddf631ee0cc1ceb
2021-11-17 09:45:52 -08:00
Yan Soares Couto
b1de68b508 Allow copying from bubble on lookup
Summary:
This diff allows specifying a `copy_from_bubble` on a lookup request. If the file is not found in your usual bubble during a request, it will check the `copy_from` bubble, and if the file is available there, will copy its content, so it doesn't need to be reuploaded.

This will be used to optimise uploads on snapshots, which often share a lot of files.

Reviewed By: markbt

Differential Revision: D32471433

fbshipit-source-id: 6c913ae79fbf19f8162d4faac2bad216294f6fb9
2021-11-17 09:45:52 -08:00
Yan Soares Couto
4e5e482586 Use fetch_key to store file in HgContext
Summary: We currently have 3 functions for this, one for each type of hash. This diff makes it a single function, using `FetchKey` which is used to hold all types of hash. This makes code simpler and it still works the same.

Reviewed By: markbt

Differential Revision: D32467694

fbshipit-source-id: f7ed501df129e5f2883d2041c0517409457e48e6
2021-11-17 09:45:52 -08:00
Yan Soares Couto
3b1a57d1d0 Move file check out of check_request_item
Summary: This simply moves the logic to lookup files to another function, as I plan to make it more complicated, and don't want the main function to get more complicated.

Reviewed By: markbt

Differential Revision: D32467695

fbshipit-source-id: 97df6d1b3fb8fa4bb62e5d367e8a28209420ce72
2021-11-17 09:45:52 -08:00
Yan Soares Couto
8de287bf11 Cleanup of lookup fix on client and server
Summary:
See D31935606 (82bc644036) for high level explanation.

## What this diff
Remove logic on client and server to deal with `index` and `token` fields.

## Land safety
This needs to be landed after the previous diff deploys everywhere. It is safe to deploy in any order because:

- If server deploys first, it will stop sending `usize` and ìndex` fields, which will be defaulted by serde, but the client code already uses `result` token if it's not default, which it's already not as the previous diff deployed.
- If client deploys first, we stop looking at `usize` and `index` fields, but since previous diff already deployed, `result` always has a value so the behaviour is the same.

Reviewed By: StanislavGlebik

Differential Revision: D32000221

fbshipit-source-id: ded7591448c16b4e1c1264cf0409d996a8834d97
2021-11-17 09:45:52 -08:00
svcscm svcscm
ecb8b6a682 Updating submodules
Summary:
GitHub commits:

3209ff8bfe
c9539ede76
bd7c630ea2
858365fe12

Reviewed By: bigfootjon

fbshipit-source-id: 87cc46e5333f280dc028a6bdd382561abb5b5404
2021-11-17 09:20:08 -08:00
Yan Soares Couto
b2ed1ed7d2 Add more integration tests for update
Summary: I was a little afraid there might be corner cases for the snapshot update optimisation, so I added a bunch more tests on snapshot update, to make sure it always restores the snapshot correctly, regardless of how the working directory state is.

Reviewed By: StanislavGlebik

Differential Revision: D32314413

fbshipit-source-id: 2e42a5fe2eff499fd53a06be110b69eb7c1ad59d
2021-11-17 08:21:13 -08:00
Yan Soares Couto
1afb7aa972 Don't redownload files if possible
Summary:
This is an optimisation for snapshots. If we're restoring an snapshot, and the files are already downloaded with correct content, we don't need to delete and redownload them.

This is useful for "syncing" mechanisms that quickly create and restore snapshots, as most of the files will be the same between restores, and thus don't need redownloading.

Reviewed By: StanislavGlebik

Differential Revision: D32288548

fbshipit-source-id: 6572c3d49584d350f06c2f8e2a3ac57e7c8696c9
2021-11-17 08:21:13 -08:00
Stanislau Hlebik
ac655ebbe3 mononoke: initialize SqlSyncedCommitMapping in test repo factory
Summary: It's used in a few tests, and I don't see a reason to not initialize it here

Reviewed By: mitrandir77

Differential Revision: D32490222

fbshipit-source-id: 58c1a08379636b529247e1b3cde64098e536d468
2021-11-17 05:56:59 -08:00
Alex Hornby
9382e6c4d1 mononoke: use new value_len field from sqlblob chunk tables
Summary:
Add support for nullable value_len fields to sqlblob chunk tables and population of them from sqlblob_gc mark phase.

For put() this change adds a chunk_generation insert if the UpdateGeneration on put shows no rows affected. This is so that that chunk_generation.value_len can be relied on to be present for new rows. The insert is done after chunk and data put so as to not introduce a "chunk_generation without data key" state.

Reviewed By: farnz

Differential Revision: D32317235

fbshipit-source-id: 83de98350a59aab6905a7e6cf9f64d8f89c7682e
2021-11-17 03:46:34 -08:00
Mark Juggurnauth-Thomas
98f005467c commitcloud: use binary nodes for the fake dag
Summary:
The commit cloud service uses hex nodes, as it uses JSON as its usual
serialization format.  However, historically these have leaked into the
Mercurial internals.

In D21554672 (b2c1d90f22) we converted the fake dag for cloud smartlog to use the `dag`
module, however since this requires binary nodes, we converted the hex
nodes to binary by encoding them (i.e. they ended up with hex-encoded nodes
stored in a bytes object).

This leads to further issues when other things are expecting real binary
nodes, but instead get binary-encoded hex nodes.  For example, if these
nodes are passed to the mutation store to do look-ups.

Instead, let's use the real binary node as the keys in the fake dag.

Reviewed By: DurhamG

Differential Revision: D32361889

fbshipit-source-id: bfeab9ea25741ca76db91617d6bc6bf094adf679
2021-11-17 02:28:54 -08:00
svcscm svcscm
c8bd27a9ed Updating submodules
Summary:
GitHub commits:

98a2c3564e
28a92503dc
035ec28d08
6aef383e5b

Reviewed By: bigfootjon

fbshipit-source-id: 215cc8156460c4a80c047d9084b326d3dec94968
2021-11-17 01:03:21 -08:00
svcscm svcscm
e945678fa1 Updating submodules
Summary:
GitHub commits:

c0cc1a6b72

Reviewed By: bigfootjon

fbshipit-source-id: 3da17b92cf965b1400b7cb2e94f09a0c133d8913
2021-11-17 00:31:09 -08:00
Jim Meyering
1e894f4361 eden/fs/service/EdenServiceHandler.cpp: adapt to C++20
Summary:
Cast EDEN_MICRO to something fmt::format can handle: char* (from std::basic_string<char8_t>); but that means this is no longer a literal, so cannot concat. Move to its own fmt argument.

This avoids the following errors:

  eden/fs/service/EdenServiceHandler.cpp:227:60: error: invalid operands to binary expression ('basic_ostream<char>' and 'std::basic_string<char8_t>')

Differential Revision: D32486517

fbshipit-source-id: c799bdd73be1b46cc938b2076ebc78d0bdb3dded
2021-11-17 00:04:35 -08:00
svcscm svcscm
a41a63955d Updating submodules
Summary:
GitHub commits:

dfb7d656d6
efc10e106b
e054b444eb
dd21466fca
80e8d2cc9f

Reviewed By: bigfootjon

fbshipit-source-id: 570dd6c49527dff741fa8a5a93dea15d27a4acd5
2021-11-16 23:30:43 -08:00
svcscm svcscm
bca328d3fd Updating submodules
Summary:
GitHub commits:

272bd24289
1fc0ecee4b
7ef9bfb772
fad0c273df
7a38fcac89
817e3bb9cb

Reviewed By: bigfootjon

fbshipit-source-id: 20e0f6c0419a00749461bd4d8c9aed13eb5d386a
2021-11-16 22:53:28 -08:00
svcscm svcscm
29541c40c8 Updating submodules
Summary:
GitHub commits:

c1a85a34a5

Reviewed By: bigfootjon

fbshipit-source-id: 6fe5496617def093985ad4091cca795ee5aac61e
2021-11-16 22:20:09 -08:00
svcscm svcscm
9ceb3eeb78 Updating submodules
Summary:
GitHub commits:

b956e32ea9
d17a648f19
8b443d0989
dc3d310039

Reviewed By: bigfootjon

fbshipit-source-id: dad5571cab7e4f0524a3fa69502cf5afd48972fb
2021-11-16 21:51:57 -08:00
svcscm svcscm
8d257585d7 Updating submodules
Summary:
GitHub commits:

d8a9ad701c
68b909c045
df7d424cfe
223248d681
9bcfbc10ba
3fa9ad272c

Reviewed By: bigfootjon

fbshipit-source-id: bdc909831ec147e86c762ebe05acd5393d289576
2021-11-16 21:23:16 -08:00
Jim Meyering
71ebf27844 eden/fs/utils/test/Utf8Test.cpp: fix platform010-exposed build errors
Summary:
We should all be migrating to platform010, for the improved performance of its
generated code and for its improved diagnostics/portability.

reinterpret_cast another u8"..." literal to const char*

This avoids the following errors:
```
stderr: In file included from eden/fs/utils/test/Utf8Test.cpp:9:
In file included from folly/portability/GTest.h:32:
third-party-buck/platform010/build/googletest/include/gtest/gtest.h:1545:11: error: invalid operands to binary expression ('char8_t const[4]' and 'const std::basic_string<char>')
  if (lhs == rhs) {
      ~~~ ^  ~~~
third-party-buck/platform010/build/googletest/include/gtest/gtest.h:1572:12: note: in instantiation of function template specialization 'testing::internal::CmpHelperEQ<char8_t [4], std::basic_string<char>>' requested here
    return CmpHelperEQ(lhs_expression, rhs_expression, lhs, rhs);
           ^
eden/fs/utils/test/Utf8Test.cpp:43:3: note: in instantiation of function template specialization 'testing::internal::EqHelper::Compare<char8_t [4], std::basic_string<char>, nullptr>' requested here
  EXPECT_EQ(u8"\uFFFD", ensureValidUtf8("\xff"));
```

Differential Revision: D32484896

fbshipit-source-id: b271292eb121e0e183bec56ab51fc6acb791b052
2021-11-16 21:10:13 -08:00
svcscm svcscm
89b3ade39b Updating submodules
Summary:
GitHub commits:

00ba697d6a
48c9f95218
151a5a7cc8
4baa8bfeaa
51794ec788
55db5ae131
fa46ae87d8
9f37b398a2
8156abea56

Reviewed By: bigfootjon

fbshipit-source-id: e1b012b694ed9cee3b03c83a892913ee18b8f74b
2021-11-16 20:55:24 -08:00
svcscm svcscm
8735f3e3f7 Updating submodules
Summary:
GitHub commits:

cb96b2ed4c
a6c2471899
595c63699a
0730921663
d5d2f4a67f
a87aa56590
e044f0c4e4
fbe0471a77
699301cba1
296be03d93
793189e843

Reviewed By: bigfootjon

fbshipit-source-id: 2b42a788bc6999927883de7ab51b44915f0ca59e
2021-11-16 20:30:20 -08:00
svcscm svcscm
16ffbe82ba Updating submodules
Summary:
GitHub commits:

f4c7df6b85
b4fbcee9df
ead54a24e0
1cc6c6d97c
2225f063d4
1b807ff95d
7bc5a8923d
fc15bf8295
659a7f99ee

Reviewed By: bigfootjon

fbshipit-source-id: 34d5e521b2f9732ceecdc27fb0da74de31e82004
2021-11-16 19:52:59 -08:00
svcscm svcscm
4a41ef4abb Updating submodules
Summary:
GitHub commits:

8529deb1d0
9a3afaf164
d1cd9e379f
d95ffbaf4f
bbf770021e
993ffe1691
3271099e3f
013de86f84
d0ee0d53c9

Reviewed By: bigfootjon

fbshipit-source-id: d36a893e9658e7c79f9693eda3f0fc4f56646235
2021-11-16 18:38:46 -08:00
Durham Goode
bf28b71195 sparse: reintroduce in-memory caching for sparse matcher
Summary:
It turns out repo.sparsematch() is called in a tight loop in some
places, like during checkout's record update phase. Let's cache it in memory.

This is a little different from the old caching mechanism because 1) it's only
ever in memory, so we don't need to worry about persisting it over time and
invalidating it when the sparse profile configs change, and 2) it only hashes
the inputs, and not the whole config file. The one input that is not part of the
cache key is the dynamic sparse profile config. Since that input has strict
invalidation points, we can just invalidate the sparse cache when the dynamic
sparse profile config invalidated.

Differential Revision: D32474918

fbshipit-source-id: 35593d06dac420e7a7fee47c5e1602413541de5f
2021-11-16 18:20:59 -08:00
Xavier Deguillard
6d2b462933 inodes: add TreeInode::removeRecursively
Summary:
On Windows, directory removal notifications can be received out of order, and
sometimes duplicated. The next diff will rework the way EdenFS handle
notifications on Windows by looking at the on-disk state and applying it to the
inode hierarchy. In some cases, an entire directory hierarchy will need to be
removed which the added function will make it easier to do.

Reviewed By: chadaustin

Differential Revision: D32329806

fbshipit-source-id: ad9af389c993420184c0e59dd3d25188adddb77a
2021-11-16 16:33:24 -08:00
Saul Gutierrez
a7f8773653 revset: add lost() for "lost" commits
Summary: As the title says. More details can be found in the associated task.

Reviewed By: quark-zju

Differential Revision: D32346505

fbshipit-source-id: 00494165a57714dd8f8e6d3f36920a1342c121c7
2021-11-16 15:56:19 -08:00
svcscm svcscm
ae15b51770 Updating submodules
Summary:
GitHub commits:

692d9e8e46
245c05b572
549d614735
16bce7b0fe

Reviewed By: bigfootjon

fbshipit-source-id: 53c1d78733769635fc97f7fb620845d7bb7bb725
2021-11-16 13:58:10 -08:00
svcscm svcscm
95f08d3189 Updating submodules
Summary:
GitHub commits:

18d7ee816a
a458f47de8
d8b0faeaaf
1178d348aa
4bfc2e836c
cc881a2576
076588fe5c
21e56fb3e6
8f3310357b

Reviewed By: bigfootjon

fbshipit-source-id: b529a0ee7d40d80264df9d93268f75482e2e6a36
2021-11-16 13:24:05 -08:00
Pyre Bot Jr
0f0334f97a suppress errors in fbcode/eden - batch 1
Differential Revision: D32470212

fbshipit-source-id: 9170c56d6a6bab051bf35337ef8df57a5a73371f
2021-11-16 12:54:39 -08:00
Yan Soares Couto
d4e707f812 Clean up eager repo unimplemented functions
Summary: A default impl that errors was added to EdenApi trait, but this impl still has a bunch of similar implementations, let's clean them.

Reviewed By: DurhamG

Differential Revision: D32314851

fbshipit-source-id: 7899c9ea23dc56bb83962d3f8625023f14b5cb4f
2021-11-16 12:20:19 -08:00
Victor Gao
578401a16b import Move core crates
Summary:
This is an attempt to import `move-vm-runtime` and some other core crates of the Move programming language into fbsource.

The imported Move crates contains a few patches and are different from the official release in the following ways:
1. `diem-workspace-hack` regenerated in disabled mode
2. `diem-types` does not enable the default features for its dependency `diem-crypto`
3. `bytecode-interpreter` does not enable the default features for its dependency `bytecode-interpreter-crypto`

All of these patches are needed to help avoid enabling conflicting features at the same time.

#buildmore

Reviewed By: shazqadeer

Differential Revision: D29804394

fbshipit-source-id: 4fe3ba153437062a8744ffdf8cfe528bab817a91
2021-11-16 12:15:30 -08:00
svcscm svcscm
0e2bfb9260 Updating submodules
Summary:
GitHub commits:

c01da75ba4
25cd2f9b72
2fd9f99717
598bda3f79
f8c685c4fc
2f4ce8f920
c2de09b8d8
0034e1642d

Reviewed By: bigfootjon

fbshipit-source-id: 731124ddb88b72cafa89f0ad3de3c751a105f32d
2021-11-16 11:48:24 -08:00
Stanislau Hlebik
ed073de1bf mononoke: make version mapping non-optional in WorkingCopyEquivalence
Summary:
In the next diff we are going to refactor CommitSyncOutcome::NotSyncCandidate
to have a version, which would mean that the version should always be present
even for NotSyncCandidate

So in this diff let's make mapping version non-optional. Note that at the moment our
prod tables have some of the mapping entries with a non-empty version - I'm
going to fix it before landing this diff.

Reviewed By: mitrandir77

Differential Revision: D32428740

fbshipit-source-id: be9f8b104a14497bf5a524c68c0fd53beba22ee1
2021-11-16 11:21:07 -08:00
Jun Wu
3258cb0b73 pymetalog: make checkout 100x faster
Summary:
Use the more efficient implementation.

This is about 100x faster. In my repo with `len(ml.roots())` being 10k+:

Before:

  In [1]: %time [ml.checkout(r) for r in ml.roots()];1
  CPU times: user 4.97 s, sys: 2.75 s, total: 7.72 s
  Wall time: 8.72 s

After:

  In [1]: %time [ml.checkout(r) for r in ml.roots()];1
  CPU times: user 76.9 ms, sys: 16.5 ms, total: 93.4 ms
  Wall time: 92.2 ms

Reviewed By: DurhamG

Differential Revision: D32436360

fbshipit-source-id: 6c993ea70bea5f45d0e2d1b410180f791c9fdd96
2021-11-16 11:18:30 -08:00
Jun Wu
f839476496 metalog: implement efficient checkout
Summary: This will be used to checkout previous versions of metalog relatively cheaply.

Reviewed By: DurhamG

Differential Revision: D32436359

fbshipit-source-id: 97ca4512f63831dcc4dc109bd62f734a3e5c80c2
2021-11-16 11:18:30 -08:00
Jun Wu
20196600f8 metalog: wrap log and blobs with Arc<RwLock>
Summary:
This will be used to implement an efficient `checkout` without re-opening the
logs.

Reviewed By: DurhamG

Differential Revision: D32436358

fbshipit-source-id: 12edb685d88c140ffc9f76cf996ee8f3b146d4aa
2021-11-16 11:18:30 -08:00
svcscm svcscm
7839745547 Updating submodules
Summary:
GitHub commits:

361846a59d
d915983d6c
b73a8eb92d
d502c01f4e
28f54e71f3
9b76231c23
826d59d03b
ceba44c63e
8da2f17c71
24922d637f
58e628f29b
5a9f4ef9ba

Reviewed By: bigfootjon

fbshipit-source-id: a50a69a694476d1048b6f27f6dcf7077e46bdb63
2021-11-16 11:14:52 -08:00
svcscm svcscm
fac59537ff Updating submodules
Summary:
GitHub commits:

9f1fc058f0
1a8e4466a8
0806b6476d
25c1543120
4b2507a05c
ed4cd63a19
46509496d9
a61d67354a
e8f72359a1
fac4772214
ce24650791

Reviewed By: bigfootjon

fbshipit-source-id: 563f055e2042426d0d3d0ad0dab744b0fb109d97
2021-11-16 09:30:12 -08:00
svcscm svcscm
9ac7bb3207 Updating submodules
Summary:
GitHub commits:

9011336609
c0aa08771b
3a9d2d4772
31f4f7564d

Reviewed By: bigfootjon

fbshipit-source-id: 5177547a6ec2fdbb97ca0685c103ec0b60a379bc
2021-11-16 08:57:24 -08:00
svcscm svcscm
15377e90e6 Updating submodules
Summary:
GitHub commits:

65f92ceb9a
e84b3d2818
fd9b674523
81b27b3b59

Reviewed By: bigfootjon

fbshipit-source-id: 855a235a0c1a766c1f70f670c3769d14b94031cf
2021-11-16 02:13:20 -08:00
svcscm svcscm
14cdf8e721 Updating submodules
Summary:
GitHub commits:

a8c39c48ae
a2f46aa352
9b40ac6041
78e3cd52cd
34b3f01347

Reviewed By: bigfootjon

fbshipit-source-id: fcc44c1a2775fdd030a92bd2f8ef777b798b6807
2021-11-16 01:36:07 -08:00
svcscm svcscm
09a6a3637d Updating submodules
Summary:
GitHub commits:

e57ddb5a61

Reviewed By: bigfootjon

fbshipit-source-id: a076f468693fbc665857f9e88bb9cb705a803b4d
2021-11-16 00:34:41 -08:00