Commit Graph

3256 Commits

Author SHA1 Message Date
svcscm
eb5ff0d4d4 Updating submodules
Summary:
GitHub commits:

9b54ae14cc
1e72a744e2

Reviewed By: 2d2d2d2d2d

fbshipit-source-id: 487333c649237a81322dcbed0d3a9cbcbd1830f7
2019-10-10 23:28:19 -07:00
Chad Austin
09900bb773 record peer gid for unix domain sockets in addition to pid and uid
Summary:
To allow downstream consumers to make authentication decisions based
on effective group, store and expose the peer effective group id.

Reviewed By: yfeldblum

Differential Revision: D17844620

fbshipit-source-id: 327437d5b36213e06ca6358266109f96761ac8dc
2019-10-10 22:44:04 -07:00
Chad Austin
f5b2123642 give ThriftPermissionChecker ServerState instead of UserInfo
Summary:
Give ThriftPermissionChecker flexibility by allowing it to access
UserInfo if it needs to. This also gives ThriftPermissionChecker
access to EdenConfig for use in future diffs.

Reviewed By: wez

Differential Revision: D17844453

fbshipit-source-id: 5f7badd084bfbe82bd6b3797ef68daa7b63741b5
2019-10-10 22:44:03 -07:00
svcscm
3727163c13 Updating submodules
Summary:
GitHub commits:

6ec3be9134
c19dfa4ecf
605f2b84cb

Reviewed By: 2d2d2d2d2d

fbshipit-source-id: 21de900fbca22d3a3717e7f4e1dcf2b2a4633405
2019-10-10 17:32:22 -07:00
Joseph Friesen
df6c7804d1 enhance mknod to support regular files
Summary:
Some Unix applications (notably, nfsd) create regular files using vfs_create, which ends up invoking the `mknod` system call rather than `open`, which for historical reasons only supported socket creation with Eden. However, since Eden supports regular files, we can broaden the FUSE mknod handler to support regular files as well.

For context, see https://github.com/GoogleCloudPlatform/gcsfuse/issues/137#issuecomment-155273363

Reviewed By: chadaustin

Differential Revision: D17792424

fbshipit-source-id: 466fcbcb3bcb587e731bc8b2a3e0f1508ff1f4e4
2019-10-10 17:17:19 -07:00
Genevieve Helsel
d8f6fb1f44 ensure status reporting behavior with diff() calls
Summary:
Add test cases to ensure behavior of files that exist in the source control tree but match a gitignore pattern (in that case we should report file modification/removal if such happens and should not consult the gitignore)

from `man 5 gitignore` : Note that all the gitignore files really concern only files that are not already tracked by git

Reviewed By: chadaustin

Differential Revision: D17606492

fbshipit-source-id: 1da9f0617ecf2201eb6e548561c2de170f6184fa
2019-10-10 16:59:49 -07:00
svcscm
a561ba3880 Updating submodules
Summary:
GitHub commits:

30eadf6dab

Reviewed By: 2d2d2d2d2d

fbshipit-source-id: 31d9c35ecc6dc3e9ef522d260b193238cc885f4b
2019-10-10 16:59:48 -07:00
svcscm
c8537ea5cb Updating submodules
Summary:
GitHub commits:

8f09128eff
041c679db7
912054cbe9
c9181f8d8a
18fe084a4e
96fcd9bee8
84be696700
1ad80670e6
3fb701aa59

Reviewed By: 2d2d2d2d2d

fbshipit-source-id: 78f58d88f849ab105121533bf276c24d9da06e69
2019-10-10 13:56:56 -07:00
Andres Suarez
4f5c1eb215 Relicense getdeps from BSD to MIT
Summary: See https://fb.workplace.com/groups/osssupport/permalink/2846876118694318/

Reviewed By: wez

Differential Revision: D17750243

fbshipit-source-id: 9e149df1f8e09203820f50d0fcac4a5cecf52e33
2019-10-10 13:20:05 -07:00
svcscm
94b4b3e334 Updating submodules
Summary:
GitHub commits:

6e6968f5ff
80e85cb30f
4c49e38f15

Reviewed By: 2d2d2d2d2d

fbshipit-source-id: 0c36902ad26a7ea5f4c0a7998ef1596167b71b1d
2019-10-10 13:20:05 -07:00
svcscm
d4bae358bf Updating submodules
Summary:
GitHub commits:

bc34a0c873
34fe0fc87d
4f7f55a9c1
ce95cdf22e
52058538bd
b8f426fd37
a6d0ad8c64
b3f1ee8e0e

Reviewed By: 2d2d2d2d2d

fbshipit-source-id: d4e747570517b1d42a84ebd7e37fab38c5a7f003
2019-10-09 21:38:25 -07:00
Wez Furlong
ba2c416069 watchman: migrate wildmatch test to gtest
Summary: This is the first step towards removing `watchman/thirdparty/tap.{cpp,h}`

Reviewed By: chadaustin

Differential Revision: D17775680

fbshipit-source-id: d6ac32c3b2489e1713fb132b0bb46d848c56811f
2019-10-09 21:01:16 -07:00
Wez Furlong
f5b643a4e3 getdeps: ask testpilot to re-run failed tests up to 3 times
Summary: This helps to squash out some flakiness

Reviewed By: pkaush

Differential Revision: D17804696

fbshipit-source-id: decd8e5dd37d802c62cae1168c4f4d72c0fc5c83
2019-10-09 21:01:15 -07:00
svcscm
029b955fff Updating submodules
Summary:
GitHub commits:

36acdac8a5

Reviewed By: 2d2d2d2d2d

fbshipit-source-id: fc46903ce451ee316c0a05c504f8163c2e3453f7
2019-10-09 20:18:27 -07:00
Jun Wu
dcc1c59270 Update hg tests for new update --merge state
Summary: D17766371 added an `update --merge` state. Teach eden tests about it.

Reviewed By: wez

Differential Revision: D17837836

fbshipit-source-id: a95ed326bf435f7340d7910307c8c5c761812514
2019-10-09 18:22:19 -07:00
svcscm
a931bdaf30 Updating submodules
Summary:
GitHub commits:

6a4c4cea79

Reviewed By: 2d2d2d2d2d

fbshipit-source-id: 6a42ab50fb94828a9bf24670644580f22543bcc6
2019-10-09 18:22:19 -07:00
svcscm
b3ad9aecf1 Updating submodules
Summary:
GitHub commits:

1b1897772d
3bd6c6d0d0
149fed4b2e
b047a48ab2
2faa112a79
8f222bfa35
9edafd67e1
08e873d01e

Reviewed By: 2d2d2d2d2d

fbshipit-source-id: 0ee4a022b4ce9097a193c418e3740bb0ec3615a0
2019-10-09 15:59:27 -07:00
Alexey Spiridonov
b93ff4720d Re-enable BUILD_TESTS for fbcode_builder
Summary: As it turns out, several of the `fizz` dependencies require it to have been built with tests enabled, so it's just easier to build them always, IIRC they only waste 1-2 minutes of time.

Reviewed By: lnicco

Differential Revision: D17837758

fbshipit-source-id: dd0c73b3aaf72831ce702dbcecd4e3ff627a4901
2019-10-09 15:20:00 -07:00
Zeyi (Rice) Fan
70b00d43aa eden: make eden build with Rust datapack
Reviewed By: wez

Differential Revision: D17494253

fbshipit-source-id: 45bab057e5cefd8f2808be96ba31814c5196051b
2019-10-09 13:03:07 -07:00
svcscm
e540969b95 Updating submodules
Summary:
GitHub commits:

ca22474b16
ba51bf8336
b00991a9cf
80df4adb86
029f145b2e
5cfd1dd083
4d2dd78048

Reviewed By: 2d2d2d2d2d

fbshipit-source-id: 8d0046610f745cc79e2a95ab6f8cda804cb2abd3
2019-10-09 13:03:07 -07:00
svcscm
f695503b4f Updating submodules
Summary:
GitHub commits:

3fe0037e48
e00630bf70
946e907c9c
5b96cf2eb0
77d5a2c109
c350d4cea1
ab93c5bf2f
9274f54af9

Reviewed By: 2d2d2d2d2d

fbshipit-source-id: 13724c98f794dea8e570406c3a0b64e2c83cfd4a
2019-10-08 22:25:33 -07:00
Alexey Spiridonov
3fdcdad190 Revert / fix up D17158685
Summary:
Proxygen no longer uses `fbcode_builder` to run its tests, so whatever the purpose of D17158685, these `fbcode_builder` configs no longer affect Proxygen, and can be reverted to their original state.

Since the general design pattern for `fbcode_builder` has been to link everything as `.so`s, let's return to this (which helps fix Bistro's build).

Also, let's not waste time building & linking tests for libraries that are not the library under test. That is:
 - Before: The Bistro build also builds tests for wangle, proxygen, etc. This is a result of some accidental changes in D17158685.
 - After: We explicitly don't build test for any of the 4 dependencies here. This is OK because each project also has its own `fbcode_builder_config.py`, which **does** build tests.

This latter part should result in a build-time reduction.

Reviewed By: lnicco

Differential Revision: D17819858

fbshipit-source-id: 7cad1bed86b2f0c3934b0fc5d6fb33e6a2ee2695
2019-10-08 21:47:29 -07:00
svcscm
3184ffeda0 Updating submodules
Summary:
GitHub commits:

7ccc53da5c
19a311afb1
31e273bc7a

Reviewed By: 2d2d2d2d2d

fbshipit-source-id: 0f431a636319f2776b333167ade53012815ef486
2019-10-08 21:47:29 -07:00
svcscm
dec1c2249b Updating submodules
Summary:
GitHub commits:

7a4406fff1
2f4e288143

Reviewed By: 2d2d2d2d2d

fbshipit-source-id: 1a496af357cb8f8baf7588c32332b3e68ec51203
2019-10-08 17:29:04 -07:00
Ken Yong Quan Oung
f76543c64b Add largest_directories_by_file_count to eden debug file_stats summary
Summary:
In order to optimize jobs using eden, we want to be able to see which directories we write/read a lot of files to/from. This information allows us to see if we can improve performance by adding certain directories to prefetch, or by symlinking directories that we write to often.

This diff adds to the summary a list of directories with at least 1000 files written to/read from them.

Reviewed By: fanzeyi

Differential Revision: D17747558

fbshipit-source-id: cf59beeee7c2eda9dea0dfa99f7ab92be9b33e1e
2019-10-08 13:33:15 -07:00
Ken Yong Quan Oung
a0a1610950 Remove unused --sizes argument from eden debug file_stats command
Summary:
Since it has become cheap to fetch file sizes, we made a change in D17633671 to ignore the --sizes flag and always fetch sizes.

Now that we have removed the use of --sizes flag on the Sandcastle side in D17729705, we can remove the flag from the cli as well.

Reviewed By: fanzeyi

Differential Revision: D17746946

fbshipit-source-id: 1a943e32db6a6f6754a20d8e8fa3ac25f241f778
2019-10-08 11:27:54 -07:00
Ken Yong Quan Oung
b80e719c81 Fix type annotation for ExpectedFileSet
Summary:
## Backstory
Pyre was throwing errors in my diff (D17747558) regarding an extraneous fixme. Turns out PyreBot has been adding and removing these fixmes during version updates (see D17135557 and D16183608), so I suspect it's something to do with the Pyre version. Anyways, I figured it'd be easier to do the annotation than to remove the fixme and risk Pyre throwing the same error in a later diff.

## What I did
I added the Key type (Path) and Value type(ExpectedFileBase). mypy then started throwing an error regarding __iter__ returning the wrong type because it wanted an iterator over keys rather than values. Fixed that and added .values() to the for loop.

Reviewed By: genevievehelsel

Differential Revision: D17806135

fbshipit-source-id: c07feee33db78a9bff19ba9856a7047657b8c63e
2019-10-08 11:18:51 -07:00
svcscm
75e049e7be Updating submodules
Summary:
GitHub commits:

bc1c56c35b
9ef6ae81a6
3c81e5743f
237ea0029f
cff5937685

Reviewed By: 2d2d2d2d2d

fbshipit-source-id: bd17e8c604c745ea9771e8486407980c8a71c026
2019-10-08 11:18:51 -07:00
svcscm
bbb1f742ca Updating submodules
Summary:
GitHub commits:

442d7def67
c138dc3d2c
3833f10989
6fc473d530
82d259dade

Reviewed By: 2d2d2d2d2d

fbshipit-source-id: 7834a4a8620d0ab9b60060e0abadfba457fb2890
2019-10-08 01:23:05 -07:00
svcscm
b0c6abab51 Updating submodules
Summary:
GitHub commits:

8f538e5f74

Reviewed By: zpao

fbshipit-source-id: 02817f56059231d315f265a44382ade7773f736b
2019-10-07 14:26:15 -07:00
svcscm
5e144c8070 Updating submodules
Summary:
GitHub commits:

c0fcc0584d

Reviewed By: zpao

fbshipit-source-id: 57e606b87b9a3c82ab52583b75f8f9b18fb67717
2019-10-06 22:26:00 -07:00
svcscm
6b60f7b3a9 Updating submodules
Summary:
GitHub commits:

0773adc6ed

Reviewed By: zpao

fbshipit-source-id: f4a9f5d00470936f93fa214c168491d800b51ba7
2019-10-06 12:25:13 -07:00
svcscm
930050e1f5 Updating submodules
Summary:
GitHub commits:

adb0dd8552
53d3cbdb95

Reviewed By: zpao

fbshipit-source-id: 2deb0909b680fd70b4841d11cec37db0c21c2dc6
2019-10-05 11:51:53 -07:00
svcscm
430057d1b1 Updating submodules
Summary:
GitHub commits:

2d8909f6f5
b123ec99c0
6492bb7063
59829723b6
72953bbc99
0d3a31d96f
33017e5a45
01e006161f

Reviewed By: 2d2d2d2d2d

fbshipit-source-id: 6c38758dcf8effe7b4f4602beb8e32ea605f4679
2019-10-04 11:49:44 -07:00
Wez Furlong
d50c413bc5 eden: collect full command line arguments for eden top on macos
Summary:
We make use of the KERN_PROCARGS2 MIB data that we can
retrieve via `sysctl`.

If we can't retrieve that data then we fall back to libproc as
we were doing previously.  From my testing so far it seems like
the main reason for failure is that the target process is a
protected system process.

Reviewed By: chadaustin

Differential Revision: D17724101

fbshipit-source-id: 8de1a978e6f89612bfe247e0fd540d9078f50746
2019-10-04 11:30:36 -07:00
svcscm
64dd6ac38d Updating submodules
Summary:
GitHub commits:

716e58b5b2
657c1a3dd8
c58b4d6edf
ef116e3747
b882dfef2b
29d57f5c86
416373d0c0

Reviewed By: 2d2d2d2d2d

fbshipit-source-id: 104c97ccbe3eed169c92d6d75d7a28ea059c802d
2019-10-04 11:13:10 -07:00
Puneet Kaushik
97834a146d Add requesting process name in the trace
Summary: This will help us identify the calling process for the FS request. This was helpful while testing watchman crawl in Eden repo.

Reviewed By: chadaustin

Differential Revision: D17719028

fbshipit-source-id: 0d646d7949a6e26268b71287b26d63473a9a87f8
2019-10-04 11:08:44 -07:00
Zeyi (Rice) Fan
7f8aae31f9 getdeps: add libcurl and make Eden use libcurl instead of system curl
Summary:
We are seeing random segment fault originating from OpenSSL on macOS when
Mononoke fetching is enabled.

The cause is that on macOS we are actually linking against libcurl shipped with
the system instead of ours. That copy of libcurl is linked with macOS's
libcrypto instead of the one we compiles during Eden's build, and it seems that
version of libcrypto does not provide concurrency safety.

The solution is to build curl on macOS and make sure it is linked to our
OpenSSL that has the concurrency callbacks registered.

Reviewed By: wez

Differential Revision: D17657822

fbshipit-source-id: 85abdf3be10b3903a5efc6b3a91624c7258de790
2019-10-04 11:00:45 -07:00
svcscm
552e4e7e85 Updating submodules
Summary:
GitHub commits:

f35c0177d8
52c8537cc3
03191fe7b1
9d481a51bb
33e4a55d8f
b899630b14
6eac742faa
62045e2c23
932f277fc1

Reviewed By: 2d2d2d2d2d

fbshipit-source-id: 63094af9262a1b276f88cc459921ff1486d1d045
2019-10-04 10:31:24 -07:00
Wez Furlong
0db060013e watchman: getdeps: Capture artifacts from Github Actions CI builds (#750)
Summary:
This diff teaches the generated Github Actions configuration to copy the
executable outputs from the leaf project into an artifacts dir, and then capture
the artifacts in the build.

This page has details on the artifacts mechanism used by Github Actions:
https://github.com/actions/upload-artifact

This page has the "Artifacts" link on the RHS where an example of the artifacts
can be downloaded:
https://github.com/facebook/watchman/pull/750/checks?check_run_id=244088199

Here's the actual download:
https://github.com/facebook/watchman/suites/247296465/artifacts/74686

And here's what the inside of that zip file contains for the watchman build:

```
$ find . -ls
49685444        0 drwxr-xr-x    6 wez              mygroup      192 Oct  1 18:50 .
49685487       16 -rw-r--r--    1 wez              mygroup     6148 Oct  1 18:51 ./.DS_Store
49685446        0 drwxr-xr-x    5 wez              mygroup      160 Oct  1 18:51 ./mac
49685501       16 -rw-r--r--    1 wez              mygroup     6148 Oct  1 18:51 ./mac/.DS_Store
49685453        0 drwxr-xr-x    3 wez              mygroup       96 Oct  1 18:50 ./mac/bin
49685455     5432 -rwxr-xr-x    1 wez              mygroup  2778500 Oct  2 01:02 ./mac/bin/watchman
49685454        0 drwxr-xr-x    7 wez              mygroup      224 Oct  1 18:50 ./mac/lib
49685457      296 -rwxr-xr-x    1 wez              mygroup   149096 Oct  2 01:02 ./mac/lib/libgflags.2.2.dylib
49685460     1072 -rwxr-xr-x    1 wez              mygroup   546348 Oct  2 01:02 ./mac/lib/libssl.1.1.dylib
49685459      272 -rwxr-xr-x    1 wez              mygroup   135524 Oct  2 01:02 ./mac/lib/liblz4.1.dylib
49685458      352 -rwxr-xr-x    1 wez              mygroup   176900 Oct  2 01:02 ./mac/lib/libglog.0.dylib
49685456     4888 -rwxr-xr-x    1 wez              mygroup  2501012 Oct  2 01:02 ./mac/lib/libcrypto.1.1.dylib
49685445        0 drwxr-xr-x    5 wez              mygroup      160 Oct  1 18:50 ./linux
49685486       16 -rw-r--r--    1 wez              mygroup     6148 Oct  1 18:50 ./linux/.DS_Store
49685448        0 drwxr-xr-x    3 wez              mygroup       96 Oct  1 18:50 ./linux/bin
49685450   196264 -rwxr-xr-x    1 wez              mygroup 100486648 Oct  2 01:16 ./linux/bin/watchman
49685449        0 drwxr-xr-x    4 wez              mygroup      128 Oct  1 18:50 ./linux/lib
49685451     3864 -rwxr-xr-x    1 wez              mygroup  1976888 Oct  2 01:16 ./linux/lib/libgflags.so.2.2
49685452     2208 -rwxr-xr-x    1 wez              mygroup  1127336 Oct  2 01:16 ./linux/lib/libglog.so.0
49685447        0 drwxr-xr-x    4 wez              mygroup      128 Oct  1 18:51 ./windows
49685513       16 -rw-r--r--    1 wez              mygroup     6148 Oct  1 18:51 ./windows/.DS_Store
49685461        0 drwxr-xr-x    5 wez              mygroup      160 Oct  2 01:44 ./windows/bin
49685464     7880 -rwxr-xr-x    1 wez              mygroup  4030976 Oct  2 01:44 ./windows/bin/watchman.exe
49685463      488 -rwxr-xr-x    1 wez              mygroup   249856 Oct  2 01:44 ./windows/bin/glog.dll
49685462      544 -rwxr-xr-x    1 wez              mygroup   278016 Oct  2 01:44 ./windows/bin/gflags.dll
```

The `main.yml` file was updated by running:

```
$ opensource/fbcode_builder/getdeps.py generate-github-actions --output-file watchman/.github/workflows/main.yml watchman
```

Pull Request resolved: https://github.com/facebook/watchman/pull/750

Test Plan: See description above

Reviewed By: pkaush

Differential Revision: D17705148

Pulled By: wez

fbshipit-source-id: 4f3c466180f5a1cb9fa31a9b3b3f117876f8b89d
2019-10-04 10:03:38 -07:00
Adam Simpkins
0b5a1295fc support running the hg status integration tests in CMake builds
Summary:
Update the CMakeLists.txt files to support building the hg integration tests.
At the moment this only includes one of the test files (`status_test.py`).
I have not verified if tests from the other modules pass yet or if they need
any additional tweaks to work in CMake-based builds.

Reviewed By: pkaush, fanzeyi

Differential Revision: D17678991

fbshipit-source-id: 4a5ee5a8d6039d9d2a635c7027897bbeed14f8c0
2019-10-04 08:56:38 -07:00
Adam Simpkins
8ce111ef53 support building the integration tests with CMake
Summary:
Add initial support for building and running some of the integration tests
with CMake.  For now this just runs the tests from basic_test.py, just to
confirm that most of the framework code works in CMake-based builds.

Many of the other tests should also work as well, but a few of them we may
want to disable for CMake-based builds.  e.g., a couple of the tests depend on
hypothesis, and we would need to include hypothesis as a dependency.  Some of
the tests that use systemd might also require a little more work to get
working.

Reviewed By: fanzeyi

Differential Revision: D17659026

fbshipit-source-id: 67420fda9e1021a0cddee2d385fd21e34fb2fd70
2019-10-04 08:56:38 -07:00
svcscm
5586c07fdb Updating submodules
Summary:
GitHub commits:

c510b2adff

Reviewed By: 2d2d2d2d2d

fbshipit-source-id: 15331ba12019dc91362909a446f867d4dd78ea01
2019-10-04 08:17:27 -07:00
Wez Furlong
1fd6bfc2b3 eden: doctor: suppress FileNotFoundError when checking nuclide
Summary:
One of our diagnostics attempts to run `nuclide-connections`,
and prints a warning if that tool is not found.

In our macOS environment that tool is never present so it always emits
a warning that is not actionable.

This diff suppresses that particular warning.

Reviewed By: fanzeyi

Differential Revision: D17745753

fbshipit-source-id: 3394e88d443383880b632fca04a1ec074e46a9bd
2019-10-04 07:13:28 -07:00
Puneet Kaushik
eba935fa9a Move eden_win_util_tests from vcxproj to Cmake
Summary: Moved the code from vcproj testutils folder to test folder and enabled the Cmake build on it.

Reviewed By: wez

Differential Revision: D17738227

fbshipit-source-id: bcba41cb29b7e24782c36899c0977c5592888ff5
2019-10-04 06:40:48 -07:00
svcscm
87cc2a03f6 Updating submodules
Summary:
GitHub commits:

b695c6bce8

Reviewed By: zpao

fbshipit-source-id: 8ba01a4003190450461279ed68f56846af253efa
2019-10-04 06:40:48 -07:00
svcscm
d9944d1c21 Updating submodules
Summary:
GitHub commits:

b09f9d4bd9
a46c690516
a8d1fd8e17
686f4cdab5
2bd394f5a6
2d436815b9
c3565bbd1b
6d8ff2abdc

Reviewed By: zpao

fbshipit-source-id: d4f859be9349c3dd4b0fb51beea8875048992f32
2019-10-03 13:23:33 -07:00
Wez Furlong
bbb6bc98ab getdeps: ensure that INST/lib/*.dll are found in PATH on windows
Summary:
We were troubleshooting an issue with the eden tests on windows
where the boost dlls where not being found during gtest discovery.

When we compute the environment, we were only including INST/bin in the
PATH on windows.  On Windows, the dlls are searched for in the PATH, and
since boost installs those into its `lib` dir we were missing those.

This diff causes `lib` dirs to get added to PATH on windows in the same
manner that we would add them to `LD_LIBRARY_PATH` on linux.

Reviewed By: pkaush

Differential Revision: D17694542

fbshipit-source-id: 143a907e6d30d8c12360caa43c8d9c26ff8c88c6
2019-10-03 12:56:59 -07:00
svcscm
ed18fc6f00 Updating submodules
Summary:
GitHub commits:

b1fc10d337
cca87d7722
2b0ab0456d
5aa4635830
a8dc522a01

Reviewed By: zpao

fbshipit-source-id: 504610ab3a08841b7e8297e5b8cef6a589d57554
2019-10-03 12:56:59 -07:00
svcscm
8d4486f510 Updating submodules
Summary:
GitHub commits:

7b18a047e0
c8d9578c98
ea8fab36e5

Reviewed By: zpao

fbshipit-source-id: 5c26a12cc4de0f8ff310e434625709db07430ec1
2019-10-03 09:19:13 -07:00