sapling/eden/scm/edenscm/mercurial
Adam Simpkins 03873d9870 suppress exceptions that occur in sparse telemetry tracking
Summary:
The `sparse` extension's dirstate tracking code attempts to read dirstate data
after the command has executed.  For commands that didn't require accessing
the dirstate, this can end up reading it for the first time, and can this fail
in some circumstances.  Ignore all errors that occur when trying to compute
this telemetry, so they don't break the main command functionality.

In particular, we see reproducible scenarios where `hg` crashes due to this
error when invoked by watchman to compute the list of files changed between
two commits.  Watchman currently always invokes Mercurial with `HG_PENDING`
enabled, and this can cause dirstate loading to fail when there is pending
data.

Reviewed By: quark-zju

Differential Revision: D20402221

fbshipit-source-id: 782d9b6eff26d50ef20f080c0cbcbc852e425146
2020-03-11 18:34:09 -07:00
..
cext fsinfo: remove old getfstype implementation 2020-03-11 17:35:41 -07:00
cffi Manual synchronization of fbcode/eden and facebookexperimental/eden 2020-02-11 11:42:43 +01:00
commands update debugedenimporthelper's debug utilities to use ui.write() 2020-03-11 16:25:50 -07:00
help Move fb-mercurial sources into an eden/scm subdirectory. 2019-11-13 16:04:48 -08:00
hgweb pycompat: drop sysbytes, sysstr, strurl, bytesurl 2020-01-31 17:59:53 -08:00
httpclient typing: enable pyre 2019-12-04 10:55:00 -08:00
pure pycompat: drop sysbytes, sysstr, strurl, bytesurl 2020-01-31 17:59:53 -08:00
templates Move fb-mercurial sources into an eden/scm subdirectory. 2019-11-13 16:04:48 -08:00
thirdparty stop including thirdparty/pyre2 in the fbcode build 2020-02-19 13:05:06 -08:00
utils py3: iter{keys,values,items} -> pycompat.iter{keys,values,items} 2020-01-28 16:27:28 -08:00
__init__.py remove py3 code transform 2020-01-27 19:00:14 -08:00
ancestor.py Move fb-mercurial sources into an eden/scm subdirectory. 2019-11-13 16:04:48 -08:00
archival.py py3: fix archive 2020-02-17 14:52:40 -08:00
bdiff.c use absolute includes for the native cext modules 2020-02-19 13:05:06 -08:00
bdiff.h use absolute includes for the native cext modules 2020-02-19 13:05:06 -08:00
bitmanipulation.h use absolute includes for the native cext modules 2020-02-19 13:05:06 -08:00
blackbox.py pyre: add stub for "bindings" 2020-01-31 13:18:54 -08:00
blobstore.py lfs: implement gc 2019-11-14 11:14:05 -08:00
bookmarks.py py3: fix test-bookmarks.t 2020-02-17 14:52:39 -08:00
branchmap.py py3: iter{keys,values,items} -> pycompat.iter{keys,values,items} 2020-01-28 16:27:28 -08:00
bundle2.py remotefilelog: retry fetches on dropped connections 2020-03-06 08:32:16 -08:00
bundlerepo.py py3: get several infinitepush tests passing 2020-02-17 14:52:36 -08:00
byterange.py fix_map 2020-01-28 18:24:56 -08:00
changegroup.py remotefilelog: retry fetches on dropped connections 2020-03-06 08:32:16 -08:00
changelog.py changelog: the _delaybuf is a byte list 2020-03-06 10:29:33 -08:00
chgserver.py py3: chg: fix compatibility 2020-02-03 18:26:57 -08:00
CMakeLists.txt cmake: always build support for the EdenSCM backing store 2019-11-22 13:00:07 -08:00
cmdutil.py renderdag: add auto-detection of best lines renderer 2020-03-04 11:05:29 -08:00
color.py py3: add type annotations to ui.write() 2020-01-31 17:05:54 -08:00
commandserver.py py3: chg: fix compatibility 2020-02-03 18:26:57 -08:00
compat.h Move fb-mercurial sources into an eden/scm subdirectory. 2019-11-13 16:04:48 -08:00
config.py py3: config: fix some encoding issues 2020-01-29 07:45:15 -08:00
configitems.py merge: add a Rust threaded file updater 2020-03-11 01:13:54 -07:00
connectionpool.py connection pool: log remote path 2020-03-11 02:18:06 -07:00
context.py py3: more commit cloud fixes 2020-02-28 11:32:16 -08:00
copies.py copies: repo.revs -> repo.nodes 2020-03-11 10:42:20 -07:00
crecord.py fix_map 2020-01-28 18:24:56 -08:00
dagop.py dagop: fix doc about reachableroots 2019-12-06 11:02:32 -08:00
dagparser.py pycompat: drop sysbytes, sysstr, strurl, bytesurl 2020-01-31 17:59:53 -08:00
dagutil.py Move fb-mercurial sources into an eden/scm subdirectory. 2019-11-13 16:04:48 -08:00
debugcommands.py Move fb-mercurial sources into an eden/scm subdirectory. 2019-11-13 16:04:48 -08:00
destutil.py Move fb-mercurial sources into an eden/scm subdirectory. 2019-11-13 16:04:48 -08:00
dirstate.py suppress exceptions that occur in sparse telemetry tracking 2020-03-11 18:34:09 -07:00
dirstateguard.py Move fb-mercurial sources into an eden/scm subdirectory. 2019-11-13 16:04:48 -08:00
discovery.py revset: replace some repo.revs with repo.nodes 2020-02-28 17:45:26 -08:00
dispatch.py encoding: outputencoding option overrides wrong module attribute 2020-03-04 11:05:29 -08:00
drawdag.py commands: add debugdifftree 2020-03-11 10:42:21 -07:00
dummycert.pem Move fb-mercurial sources into an eden/scm subdirectory. 2019-11-13 16:04:48 -08:00
eden_dirstate_fs.py add type annotations for dirstate.status() 2020-02-21 13:54:20 -08:00
eden_dirstate_map.py remove the mercurial.policy module 2020-02-21 13:54:19 -08:00
eden_dirstate.py remove the mercurial.policy module 2020-02-21 13:54:19 -08:00
eden_update.py py3: iter{keys,values,items} -> pycompat.iter{keys,values,items} 2020-01-28 16:27:28 -08:00
edenfs.py Move fb-mercurial sources into an eden/scm subdirectory. 2019-11-13 16:04:48 -08:00
EdenThriftClient.py handle EdenError in checkout path 2020-02-27 07:30:35 -08:00
encoding.py test-annotate: fix py3 compatibility 2020-03-03 17:46:34 -08:00
error.py remotefilelog: retry fetches on dropped connections 2020-03-06 08:32:16 -08:00
exchange.py py3: various fixes to move bundle2 tests foward 2020-02-17 14:52:32 -08:00
extensions.py extensions: base64.decodestring is deprecated 2020-03-06 10:29:31 -08:00
fancyopts.py Move fb-mercurial sources into an eden/scm subdirectory. 2019-11-13 16:04:48 -08:00
filelog.py revlog: add some type annotations 2020-02-03 07:35:32 -08:00
filemerge.py pycompat: drop sysbytes, sysstr, strurl, bytesurl 2020-01-31 17:59:53 -08:00
fileset.py py3: move checkwinfilename() to a separate file and add type hints 2020-01-31 20:18:21 -08:00
filesystem.py add type annotations for dirstate.status() 2020-02-21 13:54:20 -08:00
fixcorrupt.py doctor: integrate fixcorrupt logic to repair changelog 2020-02-18 09:41:31 -08:00
formatter.py py3: fix test-cat.t 2020-02-17 14:52:30 -08:00
fscap.py fsinfo: remove old getfstype implementation 2020-03-11 17:35:41 -07:00
graphmod.py Move fb-mercurial sources into an eden/scm subdirectory. 2019-11-13 16:04:48 -08:00
hbisect.py fix_map 2020-01-28 18:24:56 -08:00
help.py cmdutil: remove allcmds from UnknownCommand 2020-02-19 20:12:57 -08:00
helptext.py pager: allow overriding of encoding for the pager 2020-03-04 11:05:29 -08:00
hg.py clone: add a "clonepreclose" function 2020-02-26 17:08:23 -08:00
hintutil.py hint: update revnum deprecation message 2020-02-18 18:06:26 -08:00
hook.py pycompat: drop sysbytes, sysstr, strurl, bytesurl 2020-01-31 17:59:53 -08:00
httpconnection.py py3: iter{keys,values,items} -> pycompat.iter{keys,values,items} 2020-01-28 16:27:28 -08:00
httppeer.py py3: add type annotations to i18n 2020-02-03 07:35:31 -08:00
i18n.py py3: add type annotations to i18n 2020-02-03 07:35:31 -08:00
identity.py Move fb-mercurial sources into an eden/scm subdirectory. 2019-11-13 16:04:48 -08:00
json.py py3: more commit cloud fixes 2020-02-28 11:32:16 -08:00
keepalive.py pycompat: drop sysbytes, sysstr, strurl, bytesurl 2020-01-31 17:59:53 -08:00
localrepo.py skip automigration if the repository has an abandoned transaction 2020-03-11 16:25:50 -07:00
lock.py repo: skip data migrations if repo lock cannot be taken 2020-03-05 11:42:19 -08:00
lsprof.py py3: iter{keys,values,items} -> pycompat.iter{keys,values,items} 2020-01-28 16:27:28 -08:00
lsprofcalltree.py Move fb-mercurial sources into an eden/scm subdirectory. 2019-11-13 16:04:48 -08:00
mail.py Upgrade Pyre version for eden to 2927613de6d20ee2d66e98124f3834812475e122 2020-02-19 15:05:25 -08:00
manifest.py remove the mercurial.policy module 2020-02-21 13:54:19 -08:00
match.py py3: fix up matchers to exclusively use unicode 2020-02-03 08:00:11 -08:00
mdiff.py remove the mercurial.policy module 2020-02-21 13:54:19 -08:00
merge.py pyworker: handle symlinks and executable 2020-03-11 01:13:55 -07:00
mergeutil.py Move fb-mercurial sources into an eden/scm subdirectory. 2019-11-13 16:04:48 -08:00
metrics.py Move fb-mercurial sources into an eden/scm subdirectory. 2019-11-13 16:04:48 -08:00
minirst.py py3: fix test-bookmarks.t 2020-02-17 14:52:39 -08:00
mpatch.c use absolute includes for the native cext modules 2020-02-19 13:05:06 -08:00
mpatch.h use absolute includes for the native cext modules 2020-02-19 13:05:06 -08:00
mutation.py pyre: add stub for "bindings" 2020-01-31 13:18:54 -08:00
namespaces.py py3: iter{keys,values,items} -> pycompat.iter{keys,values,items} 2020-01-28 16:27:28 -08:00
node.py py3: node: get rid of extra encoding 2020-01-29 16:48:41 -08:00
obsolete.py remove the mercurial.policy module 2020-02-21 13:54:19 -08:00
obsutil.py obsutil: remove pyre-fixme 2019-12-04 17:04:45 -08:00
parser.py pycompat: drop sysbytes, sysstr, strurl, bytesurl 2020-01-31 17:59:53 -08:00
patch.py py3: fix a few test-dirstate* tests 2020-02-28 11:32:15 -08:00
pathutil.py Move fb-mercurial sources into an eden/scm subdirectory. 2019-11-13 16:04:48 -08:00
peer.py pycompat: drop sysbytes, sysstr, strurl, bytesurl 2020-01-31 17:59:53 -08:00
perftrace.py pyre: add stub for "bindings" 2020-01-31 13:18:54 -08:00
phases.py py3: various fixes to move bundle2 tests foward 2020-02-17 14:52:32 -08:00
posix.py fsinfo: remove old getfstype implementation 2020-03-11 17:35:41 -07:00
profiling.py py3: profiling: fix some encoding issues 2020-01-29 07:45:20 -08:00
progress.py pyre: add stub for "bindings" 2020-01-31 13:18:54 -08:00
pushkey.py py3: fix pushkey encoding by removing local encoding 2020-01-31 13:12:13 -08:00
pvec.py Move fb-mercurial sources into an eden/scm subdirectory. 2019-11-13 16:04:48 -08:00
pycompat.py py3: fix archive 2020-02-17 14:52:33 -08:00
rcutil.py Move fb-mercurial sources into an eden/scm subdirectory. 2019-11-13 16:04:48 -08:00
registrar.py pycompat: drop sysbytes, sysstr, strurl, bytesurl 2020-01-31 17:59:53 -08:00
repair.py py3: repair: fix encoding for SHA1 calculation 2020-01-29 07:45:11 -08:00
replay.py py3: only use binary stdin/stdout/stderr 2020-02-03 18:26:57 -08:00
repository.py py3: add pycompat.ABC 2020-01-31 17:05:54 -08:00
repoview.py pycompat: drop sysbytes, sysstr, strurl, bytesurl 2020-01-31 17:59:53 -08:00
revlog.py remove the mercurial.policy module 2020-02-21 13:54:19 -08:00
revset.py revset: remove _destupdate and _destmerge 2020-03-11 10:42:21 -07:00
revsetlang.py pycompat: drop iterbytestr 2020-01-31 16:38:03 -08:00
rewriteutil.py mutation: allow instabilities if mutation is enabled 2020-01-24 14:47:38 -08:00
scmposix.py Move fb-mercurial sources into an eden/scm subdirectory. 2019-11-13 16:04:48 -08:00
scmutil.py py3: move checkwinfilename() to a separate file and add type hints 2020-01-31 20:18:21 -08:00
scmwindows.py typing: enable pyre 2019-12-04 10:55:00 -08:00
server.py py3: make conduithttp.py python 3 compatible 2020-02-17 14:52:31 -08:00
setdiscovery.py setdiscovery: use the nodemap __contains__ 2020-01-31 18:34:01 -08:00
similar.py py3: iter{keys,values,items} -> pycompat.iter{keys,values,items} 2020-01-28 16:27:28 -08:00
simplemerge.py pycompat: drop strkwargs / byteskwargs 2020-01-31 16:38:03 -08:00
smartset.py pyre: add stub for "bindings" 2020-01-31 13:18:54 -08:00
sparse.py Move fb-mercurial sources into an eden/scm subdirectory. 2019-11-13 16:04:48 -08:00
sshpeer.py remotefilelog: retry fetches on dropped connections 2020-03-06 08:32:16 -08:00
sshserver.py py3: various fixes to move bundle2 tests foward 2020-02-17 14:52:32 -08:00
sslutil.py pycompat: drop fsencode / fsdecode 2020-01-31 16:38:03 -08:00
statprof.py pycompat: drop strkwargs / byteskwargs 2020-01-31 16:38:03 -08:00
store.py remove the mercurial.policy module 2020-02-21 13:54:19 -08:00
streamclone.py py3: misc fixes around streaming clones 2020-01-31 18:39:40 -08:00
templatefilters.py hg-py3: make metaedit command work 2020-01-31 18:29:01 -08:00
templatekw.py pycompat: drop strkwargs / byteskwargs 2020-01-31 16:38:03 -08:00
templater.py hg-py3: make metaedit command work 2020-01-31 18:29:01 -08:00
transaction.py test-issue4074: fix py3 compatibility 2020-03-03 17:46:34 -08:00
treedirstate.py remove an unused variable in the treedirstate code 2020-02-21 13:54:21 -08:00
treediscovery.py Move fb-mercurial sources into an eden/scm subdirectory. 2019-11-13 16:04:48 -08:00
treestate.py pyre: add stub for "bindings" 2020-01-31 13:18:54 -08:00
txnutil.py Move fb-mercurial sources into an eden/scm subdirectory. 2019-11-13 16:04:48 -08:00
types.py py3: add stub for localrepository 2020-02-03 17:07:36 -08:00
ui.py rage: add debugnetwork 2020-03-09 08:59:13 -07:00
uiconfig.py pycompat: drop sysbytes, sysstr, strurl, bytesurl 2020-01-31 17:59:53 -08:00
upgrade.py typing: enable pyre 2019-12-04 10:55:00 -08:00
url.py Upgrade Pyre version for eden to 2927613de6d20ee2d66e98124f3834812475e122 2020-02-19 15:05:25 -08:00
urllibcompat.py pycompat: drop sysbytes, sysstr, strurl, bytesurl 2020-01-31 17:59:53 -08:00
util.py remotenames: fix expaths 2020-03-06 10:29:32 -08:00
verify.py py3: iter{keys,values,items} -> pycompat.iter{keys,values,items} 2020-01-28 16:27:28 -08:00
vfs.py Update pyre version for eden 2020-03-06 12:14:56 -08:00
visibility.py fix a ProgrammingError bug in visibility migration 2020-03-11 16:25:50 -07:00
win32.py fsinfo: remove old getfstype implementation 2020-03-11 17:35:41 -07:00
windows.py fsinfo: remove old getfstype implementation 2020-03-11 17:35:41 -07:00
winutil.py py3: move checkwinfilename() to a separate file and add type hints 2020-01-31 20:18:21 -08:00
wireproto.py py3: various fixes to move bundle2 tests foward 2020-02-17 14:52:32 -08:00
worker.py pycompat: drop sysbytes, sysstr, strurl, bytesurl 2020-01-31 17:59:53 -08:00