mirror of
https://github.com/facebook/sapling.git
synced 2024-10-10 16:57:49 +03:00
a5066dd552
Summary: The ssh output order issue is a large contributor to test flakiness. Example test failures are: ``` --- test-unbundlereplay.t +++ test-unbundlereplay.t.respondfully.err @@ -154,9 +154,9 @@ remote: [ReplayVerification] Expected: (master_bookmark, c2e526aacb5100b7c1ddb9b711d2e012e6c 69cda). Actual: (master_bookmark, 893d83f11bf81ce2b895a93d51638d4049d56ce2) remote: pushkey-abort: prepushkey hook exited with status 1 remote: transaction abort! + replay failed: error:pushkey + unbundle replay batch item #0 failed remote: rollback completed - replay failed: error:pushkey - unbundle replay batch item #0 failed [1] $ cat $TESTTMP/reports.txt unbundle replay batch item #0 failed --- test-commitcloud-backup-all.t +++ test-commitcloud-backup-all.t.err @@ -59,9 +59,9 @@ remote: pushing 1 commit: remote: eccc11f58a56 D3 backing up stack rooted at 42952ab62cec + backing up stack rooted at 4903fdffd9c6 remote: pushing 1 commit: remote: 42952ab62cec E1 - backing up stack rooted at 4903fdffd9c6 remote: pushing 1 commit: remote: 4903fdffd9c6 E2 commitcloud: backed up 8 commits test-fb-hgext-lfspushrebase-verify-blobs.t --- test-fb-hgext-treemanifest-pushrebase.t +++ test-fb-hgext-treemanifest-pushrebase.t.err @@ -127,9 +127,9 @@ $ hg push --to master -B master --config treemanifest.sendtrees=True pushing to ssh://user@dummy/master searching for changes - remote: baz remote: prepushrebase.cat hook exited with status 1 abort: push failed on remote + remote: baz [255] - Disable the hook ``` The order is nondeterministic because the stderr reading thread can read the content before or after ui.write or ui.write_err in the main thread. This diff introduces an optional feature in dummyssh that buffers all stderr output and only write them after the wrapped hg serve process has exited, at which time the hg client should also have completed its operations and has no reason to ui.write or ui.write_err anything nondeterministically. Then the dummyssh wrapper writes out the buffered stderr so the output order becomes well defined. Reviewed By: xavierd Differential Revision: D19872612 fbshipit-source-id: 84710f98a8e6b4a1c283ffecf008585cca12be0a |
||
---|---|---|
.. | ||
benchmarks | ||
cli | ||
docs | ||
fs | ||
integration | ||
locale | ||
mononoke | ||
py | ||
scm | ||
scripts | ||
test_support | ||
test-data | ||
third-party | ||
win | ||
.gitignore | ||
Eden.project.toml |