Commit Graph

58424 Commits

Author SHA1 Message Date
Xavier Deguillard
7862d8fde0 mount: enable unmount
Summary:
All the unification of the mount code lead to this point, where supporting
unmount is merely just removing the various #ifdef.

Reviewed By: fanzeyi

Differential Revision: D21797078

fbshipit-source-id: 7602eb85e3fa276b72daebda36ae269ec38cde66
2020-06-19 18:13:19 -07:00
Xavier Deguillard
4fcdd44819 prjfschannel: add a stop promise
Summary:
On unmount, the code relies on the channel (fuse/prjfs) to set a promise, while
not strictly required on Windows as the interface is synchronous, this will
enable unmount to be the same between on all platforms.

Reviewed By: fanzeyi

Differential Revision: D21797081

fbshipit-source-id: c3eac448d2b13ef49db7a7d1f36bb084130ea63a
2020-06-19 18:13:19 -07:00
Xavier Deguillard
ffb214384d mount: unify channelMount
Summary:
Most of what fuseMount does can be shared between fuse and prjfs, so let's
rename it and start using it on Windows.

Reviewed By: fanzeyi

Differential Revision: D21797079

fbshipit-source-id: b92a36ecc702ee72df8ebdf9534add42bea9b97e
2020-06-19 18:13:19 -07:00
Xavier Deguillard
b3a13a6fd8 debugedenimporthelper: make it python3 compatible
Summary:
While the code contained type information, some of them were not entirely
correct, path for instance should be str, command arguments are also passed in
as str, not bytes.

Reviewed By: ikostia

Differential Revision: D22104689

fbshipit-source-id: 50cbc9f81a3d9cc324f9105f0bbfbc71d9ca9e98
2020-06-19 16:52:30 -07:00
svcscm
baab1c4e2a Updating submodules
Summary:
GitHub commits:

660ceec599
c058884b7f
937e0a93eb
b7eba90d56
a70abdaf36
d783c77271
88b4210701
c13ad73f38
4e12b602b7
a9527b5009
a1fa759033
ac5070af79
941aaad532
4aa42f7279

Reviewed By: zpao

fbshipit-source-id: ff138250d7ac747c6491ca62338720fdc76fc04f
2020-06-19 16:34:13 -07:00
Jeremy Fitzhardinge
c97d050994 eden: fix up unused Rust dependencies
Reviewed By: StanislavGlebik

Differential Revision: D22132460

fbshipit-source-id: 4a86bdf31254172aa33ff286127429b956e606ec
2020-06-19 16:11:09 -07:00
Arun Kulshreshtha
88ecb984c5 tests: rename environment variables
Summary: Per our ongoing effort to reduce the usage of potentially problematic terminology, rename the environment variables used to include and exclude tests.

Reviewed By: singhsrb

Differential Revision: D22143371

fbshipit-source-id: 97a0f73b21183f94d34af929e75cd531e4e24196
2020-06-19 15:33:18 -07:00
Durham Goode
74da65a38f py3: reupgrade mysql-connector-python to yummy version
Summary:
This is required for migrating to python 3. Originally this broke
builds on non-fbcode centos7 platforms. Since we don't need hgsql in non-fbcode
platforms, I've just tweaked it to skip the hgsql tests for non-fbcode centos7.

Reviewed By: quark-zju

Differential Revision: D22140187

fbshipit-source-id: 01676db9d006375bd3b5ae9e8f13f5592e36b074
2020-06-19 15:25:26 -07:00
Stefan Filip
a2cbbf7f89 python3: fix test-eol.t
Summary: In Python3, b'a\n'[-1] is 10 whereas in Python2 it is "\n".

Reviewed By: quark-zju

Differential Revision: D22128582

fbshipit-source-id: 3b13a14efd81ea2de4fd7125597e3c7ec6371492
2020-06-19 15:22:32 -07:00
Chad Austin
6d79d2559a fall back on the subprocess telemetry logger when necessary
Summary:
When the scuba telemetry logger is unavailable, fall back on the
subprocess.

Reviewed By: genevievehelsel

Differential Revision: D21687855

fbshipit-source-id: c58a4bc1b34974add35d194c8aafdaac7ed47fdb
2020-06-19 15:15:26 -07:00
Stefan Filip
d0987cd948 python3: fix test-atomictestfile.py
Summary: Python3

Reviewed By: xavierd

Differential Revision: D22125298

fbshipit-source-id: 2eb63a697be59bd33c9328fba5ef96a4cae66f43
2020-06-19 15:15:26 -07:00
Stefan Filip
690ccca46d python3: convert test-url to python3
Summary: Python 3

Reviewed By: quark-zju

Differential Revision: D22124540

fbshipit-source-id: 6ede3929bce8aed55c6203e305d08cfb312737e7
2020-06-19 15:11:55 -07:00
svcscm
da8e46d580 Updating submodules
Summary:
GitHub commits:

5533ecc179
9f9d702ff6
bee5c0a292
28fd04bdaa
8427faf0b3
5473b5458a
a607f3efaa
b87cb81331
89adee255c
3042291bcf
4b205c19cc
a961620c23
51b917b0b3
8f9e5a67b5

Reviewed By: zpao

fbshipit-source-id: 085ffff7041623dffea76a0a761e83502988fef0
2020-06-19 15:09:45 -07:00
Viet Hung Nguyen
615e783be7 mononoke/git: moved remaining gitimport objects to import_tools
Summary: Moved the remaining (e.g. GitPool, GitLeaf...) objects from gitimport to import_tools. (first commit: D22135765 (41dd725914))

Reviewed By: StanislavGlebik

Differential Revision: D22139276

fbshipit-source-id: c79e97e52fe58761d6065f24ab35d3887cb65b0d
2020-06-19 14:17:15 -07:00
Durham Goode
d02d5cdbfe py3: fix test-fsmonitor*
Summary: These now pass

Reviewed By: quark-zju

Differential Revision: D22127383

fbshipit-source-id: bcaad400d9f849251e396b68ad1b4d04c8831314
2020-06-19 13:40:18 -07:00
Durham Goode
2138a84cee py3: fix test-fb-hgext-fastannotate-*
Summary: They now pass

Reviewed By: quark-zju

Differential Revision: D22126938

fbshipit-source-id: 60655e470d56187f50220b56a4628af73833066c
2020-06-19 13:40:18 -07:00
Durham Goode
fe720eb8cf py3: fix test-commit.t
Summary: It had some in-test python that needed to be updated.

Reviewed By: quark-zju

Differential Revision: D22097852

fbshipit-source-id: ebe4ab19a2e4bed73badc1d34d6fcf2db6072559
2020-06-19 13:40:17 -07:00
Durham Goode
4bfa413ecc py3: fix test-fb-hgext-errorredirect.t
Summary: It now passes

Reviewed By: quark-zju

Differential Revision: D22105461

fbshipit-source-id: 0f19faaf7fe3b365e2c825625838a74eea3ee9eb
2020-06-19 13:40:17 -07:00
Durham Goode
45b9cabfb3 py3: fix test-profile.t
Summary: Now it passes

Reviewed By: xavierd

Differential Revision: D22104180

fbshipit-source-id: 7d5f512d4294ced12d60e5ea7b2e9121447247c0
2020-06-19 13:40:17 -07:00
Durham Goode
24e2c44860 py3: fix test-dispatch.t and statprof
Summary: Fixes test-dispatch.t and fixes statprof while we're at it.

Reviewed By: xavierd

Differential Revision: D22103518

fbshipit-source-id: 7d795c6f9e3e2c8958746c10e39f55922a923dc5
2020-06-19 13:40:17 -07:00
Durham Goode
6dd5d70b1e py3: fix test-ssh.t
Summary: It now passes

Reviewed By: xavierd

Differential Revision: D22102239

fbshipit-source-id: 78a680eb06ad1ab1be94279c7c4668be9a8673be
2020-06-19 13:40:17 -07:00
Durham Goode
4409ebb103 py3: fix test-context.py
Summary:
It now works with python 3.  I dropped some test output.  In one case
it was confirming that various path encoding work, but we only support utf8 now.
I also dropped some bit that enabled debug output, since the output order was
not the same between python 2 and 3 and it seemed non-trivial to fix.

Reviewed By: xavierd

Differential Revision: D22101132

fbshipit-source-id: 682e7c61f1dd18cce34bdc014c85d560f883bd18
2020-06-19 13:40:17 -07:00
Durham Goode
7f1588131b py3: set LANG="en_US.UTF-8" for most tests
Summary:
We support unicode file paths, and in python 3 those get passed to
python libraries as unicode strings. The tests set LANG=C which mean the python
library tries to convert the path to ascii, but fails for any non-ascii
characters. Let's switch to LANG="en_US.UTF-8" to match our production
behavior and make tests about unicode paths work.

Reviewed By: xavierd

Differential Revision: D22098359

fbshipit-source-id: c3057edc66e6e32f7b8b49374e622d02bd05711f
2020-06-19 13:40:17 -07:00
Durham Goode
8a15d29e7f py3: fix test-visibility.t
Summary:
This module was using binascii.hex directly instead of using Mercurial hex
function.

Reviewed By: xavierd

Differential Revision: D22096490

fbshipit-source-id: 32c912c16415ffd94371ad945c4df2f5a82b92e5
2020-06-19 13:40:17 -07:00
Meyer Jacobs
49d5ada3f4 status: remove pickle formatter, fix test
Summary:
Remove pickle formatter, as part of python3 migration.

Fix test-status.t for python3 compatibility.

Remove test-status.t python2 requirement.

Reviewed By: xavierd

Differential Revision: D22121912

fbshipit-source-id: 1cfdd18880198ef16973463ed24cf9afb28a7afb
2020-06-19 13:31:25 -07:00
Arun Kulshreshtha
da38165c2b edenapi_types: update terminology in comment
Summary: Replace the term 'blacklisted' with 'redacted'.

Reviewed By: quark-zju

Differential Revision: D22142842

fbshipit-source-id: 461faa09a5d3958a4575c48f03e2286eec917681
2020-06-19 13:29:03 -07:00
Arun Kulshreshtha
6926c80fe8 edenapi_types: add doc comment
Summary: Add a crate-level doc comment clarifying the purpose of this crate. In particular, the motivation behind moving some of EdenAPI's types into this crate was to make it easier to share types between the server and client. As such, types that are not shared (which may pull in more complex dependencies and therefore cause build issues for either the server or client) should not be put in this crate.

Reviewed By: quark-zju

Differential Revision: D22142180

fbshipit-source-id: 7258ef33b73a87acf72d4f6bcbe8b27cbc361735
2020-06-19 12:55:49 -07:00
Meyer Jacobs
0a676501ac rage: open subprocesses in text mode
Summary: For python3 compatibility, explicitly open subprocesses in text mode (universal_newlines=True instead of text=True for backwards compatibility), and do not explicitly .decode("utf-8"), as all strings are already utf-8.

Reviewed By: xavierd

Differential Revision: D22123138

fbshipit-source-id: d91cee7909f4e87b4a04b85fa2a2929aec052da3
2020-06-19 10:19:21 -07:00
Stanislau Hlebik
2f71a99850 hgsql: add --syncfromreplica option
Summary:
Context: while syncing ovrsource commits into fbsource as a preparation for
megarepo we noticed that there are some commits that are particularly large
(e.g. up to 4Gb). Syncing them causes hgsql to become unavailable for 10-20
mins until all hg servers catch up - during that time hg log -r tip --forcesync
would just throw mysql unavailable errors.

As a mitigation for this we tried to make hgsql read from replicas instead of
master and it worked! (see D22094976 for more details). However the approach we
chose was quite hacky.

This diff tries to make it less hacky. It add --syncfromreplica option which
will be used by remote_backup.sh script on hg servers. if we don't have a lot
of read traffic on hg servers (and it should be the case for repos that are
hosted on Mononoke) then hg servers should try to read mostly from replica.

One important note here - the repository's state *might* go back in time with --syncfromreplica. I.e. consider the case where we move a bookmark without adding a new commit. Now, let's say local repository got the latest state from mysql leader. Then when we try to sync from replica if this replica is behind the local state of repository then we'd fetch the bookmarks from replica even though they are older.
With our current setup where we have a lot of different repos on different hg servers in completely different state this problem should be acceptable.

Reviewed By: ikostia

Differential Revision: D22118491

fbshipit-source-id: 4bfa869b697326441de6c004cd548df483049b9d
2020-06-19 10:16:44 -07:00
Viet Hung Nguyen
41dd725914 mononoke/git: moved gitimport objects to import_tools
Summary: Moved GitimportPreferences and GitimportTarget objects from gitimport to import_tools. Reasoning: will need to move gitimport function which needs these objects. Since it's a rust_binary, we can't add dependency on it in import_tools. Therefore, I moved the objects to import_tools.

Reviewed By: StanislavGlebik

Differential Revision: D22135765

fbshipit-source-id: f31f96e689dccaac171a9d0573019b1fff757885
2020-06-19 07:13:18 -07:00
Kostia Balytskyi
76471a8505 fix unused dependencies breakages
Summary: A bunch of our dependencies weren't really used, and this fact has recently became a source of hard failures. This diff is an attempt to fix it.

Reviewed By: StanislavGlebik

Differential Revision: D22136288

fbshipit-source-id: 4ae265a93e155312ae086647a27ecf1cbbd57e9c
2020-06-19 06:49:04 -07:00
Xavier Deguillard
baa6894151 store: reap importer when the importer thread dies
Summary:
On Windows (haven't verified on other platforms), ThreadLocalPtr don't appear
to be releasing resources when a thread die. This means that when the importer
thread dies, the actual importer (hg.real) would still run and use resources,
with no way of talking to it.

To fix this, let's manually reset it when the main thread function returns,
this forces the importer to be destroyed and therefore the various handles to
hg.real to be released, effectively terminating it.

I'm not sure if this is the proper fix, but delving into folly feels a bit
daunting. Keeping a TODO for later to go back to it and fix it properly in
folly.

Reviewed By: chadaustin

Differential Revision: D22012540

fbshipit-source-id: 99f994bb5128b38ccf8474031763b8a21055759a
2020-06-18 20:41:53 -07:00
Xavier Deguillard
7943c9a7fd tests: fix test-lfs.t in python3
Summary:
The write method returns the number of bytes written, and python3 print these
if not captured.

Reviewed By: quark-zju

Differential Revision: D22096665

fbshipit-source-id: 2b1abd994df4c705515a6dc3d01c720f056f0411
2020-06-18 18:52:05 -07:00
Xavier Deguillard
a4c433988e progress: use bytes when writing to the progress
Summary:
The ui.ferr expects bytes data, and we were passing a str, causing the progress
bar to crash.

Reviewed By: quark-zju

Differential Revision: D22094687

fbshipit-source-id: fddbfdb4314661554ae90dc0dd8bb16ce080cbfd
2020-06-18 18:49:31 -07:00
Xavier Deguillard
592d84dffb tests: fix test-fb-hgext-remotefilelog-prefetch.t in python3
Summary:
The expected message are printed via repo.ui.debug, which may not be the same
device as print uses, and thus the output may be interleaved in a different
way. By using the same way of printing, this issue is avoided.

Reviewed By: ikostia

Differential Revision: D22097487

fbshipit-source-id: 6e49f44987f5660a00e72c082f0a5a483dded9ae
2020-06-18 15:17:04 -07:00
Stefan Filip
12fea6ed1b python3: remove line buffering from binary file open
Summary:
Python 3.8 gives a warning when asking for line buffering on a binary file:
```
line buffering (buffering=1) isn't supported in binary mode,
the default buffer size will be used
```

Reviewed By: xavierd

Differential Revision: D22120968

fbshipit-source-id: 9b1f98f5bfa8ac9ed4f0b4e62389051f665f5d4f
2020-06-18 14:21:20 -07:00
svcscm
db5f8f24de Updating submodules
Summary:
GitHub commits:

246b4e4021
552fd765b3
2cbb9f98e4

Reviewed By: zpao

fbshipit-source-id: 7944b3ab173259d3cb8c84100b764f951d3e97b9
2020-06-18 13:43:06 -07:00
Lukasz Piatkowski
6a3553cab5 Github Actions: fix MacOS builds - use old XCode version (#22)
Summary:
Boost 1.69 doesn't build with XCode >=11.0 according to https://trac.macports.org/ticket/60287 Downgrading XCode to old version seems to fix this (Selecting done as described in https://www.jessesquires.com/blog/2020/01/06/selecting-an-xcode-version-on-github-ci/)
Pull Request resolved: https://github.com/facebookexperimental/eden/pull/22

Reviewed By: farnz

Differential Revision: D22118747

Pulled By: lukaspiatkowski

fbshipit-source-id: 31acc6298cdcf7c5a75a8be38d6dd0deb90c5bd2
2020-06-18 13:43:06 -07:00
Mark Thomas
b0b6425f63 visibility: add hg debugvisibility status
Summary: Add a command to print out the current status of visibility tracking.

Reviewed By: quark-zju

Differential Revision: D22089413

fbshipit-source-id: 729e9f36fbc13ba90518dcd428a44c02ce358167
2020-06-18 12:15:00 -07:00
Mark Thomas
2eb20def5a commitcloud: require visibleheads for sync
Summary: Commit cloud sync works best when visibleheads are enabled.  Default to requiring it.

Reviewed By: quark-zju

Differential Revision: D22089414

fbshipit-source-id: b786103d5c5f65a7908eb97a973af9eca5990b22
2020-06-18 12:15:00 -07:00
Mark Thomas
a06ea2f1a6 thrift-types: update thrift types
Reviewed By: farnz

Differential Revision: D22089415

fbshipit-source-id: 44596865ef65579d7910f1677735c1820ad69f58
2020-06-18 12:15:00 -07:00
svcscm
499929cfe7 Updating submodules
Summary:
GitHub commits:

99bc0789f7
d6b7b7712f
0d9aa802f5
b1b3573537
911ef5d47d
b4549b9f6c
50b8882913
adb48de101

Reviewed By: zpao

fbshipit-source-id: 85e85c2f51a921fbfea8d6c9b92ea2a307292592
2020-06-18 11:01:48 -07:00
Xavier Deguillard
67db664778 dynamicconfig: read file as bytes
Summary:
Somehow reading the file with `open("r")` will try to decode it as ascii, but
that file may contain utf-8 characters, so open it as bytes, and then decode
it.

Reviewed By: DurhamG

Differential Revision: D22105188

fbshipit-source-id: 0cfbd8c5417b637dd76391f86226e24ee663baf7
2020-06-18 10:44:57 -07:00
Zeyi (Rice) Fan
6700fa7d08 adding ObjectFetchContext to lookup
Summary:
This diff makes `lookup` to use `RequestData` as `ObjectFetchContext` in `getattr` calls.

This will make sure we correctly record backing store fetches in `eden top`

Reviewed By: chadaustin

Differential Revision: D21780969

fbshipit-source-id: 468e2fadcebf4a00477bc5de434e6c658b99d1ce
2020-06-18 10:40:41 -07:00
Zeyi (Rice) Fan
b9332b3673 adding ObjectFetchContext to getattr
Summary: This diff teaches `getattr` to accept `ObjectFetchContext` and pass along.

Reviewed By: chadaustin

Differential Revision: D21780970

fbshipit-source-id: 0f4b1295753281420323a3b33ce76af0ff386587
2020-06-18 10:40:41 -07:00
Zeyi (Rice) Fan
ec622e8e1c start to accept ObjectFetchContext to InodeBase::stat()
Summary: This diff makes `InodeBase::stat()` to be able to accept `ObjectFetchContext` as a parameter.

Reviewed By: chadaustin

Differential Revision: D21780883

fbshipit-source-id: 9b1db2e2268cb98663bcf902ea61897da593ea05
2020-06-18 10:40:41 -07:00
Zeyi (Rice) Fan
7c483e1c02 use RequestData as ObjectFetchContext in read()
Summary: This diff starts to use `RequestData` as `ObjectFetchContext` in our `read()` methods. This ensures EdenFS could track backing store fetches happened in FUSE requests.

Reviewed By: chadaustin

Differential Revision: D21792503

fbshipit-source-id: 9509a1bc8f28100a0dfe196e312c4785c7842345
2020-06-18 10:40:41 -07:00
Zeyi (Rice) Fan
ae0d08f884 record backing store import in RequestData
Summary:
Previously we check if a request is a fuse request when we fetch anything from backing store, so we can collect number of fetches happened for each process in eden top.

This is creating a dependency from store to fuse, which is a little awkward. Instead, we could make `RequestData` a `ObjectFetchContext` and record the fetches when that happens.

Similarly in the future we should also have something equivalent in our Thrift layer.

Reviewed By: kmancini

Differential Revision: D21775919

fbshipit-source-id: 95056830ddbe7c999051c43e0d8eca9a67350904
2020-06-18 10:40:40 -07:00
Kostia Balytskyi
bac7962f6e backsyncer: rename incorrectly named local vars
Summary:
All of these are instances of `CommitSyncer`, named `commit_sync_config`. It
makes a reader think they may be instances of `CommitSyncConfig`.

Reviewed By: farnz

Differential Revision: D22113917

fbshipit-source-id: bb682b24d7cadf87ca7721f341dbc8231636c99a
2020-06-18 08:07:29 -07:00
svcscm
ebb21cdf09 Updating submodules
Summary:
GitHub commits:

3267a7ec1d
de2467b6a7

Reviewed By: zpao

fbshipit-source-id: 5b44662bf7a5c1265c9347095dda2cc035d3913a
2020-06-18 08:03:49 -07:00