annotate tests/test-issue1502.t @ 35428:71427ff1dff8

workers: handling exceptions in windows workers This adds handling of exceptions from worker threads and resurfaces them as if the function ran without workers. If any of the threads throws, the main thread kills all running threads giving them 5 sec to handle the interruption and raises the first exception received. We don't have to join threads if is_alive() is false Test Plan: Ran multiple updates/enable/disable sparse profile and things worked well Ran test on CentOS- all tests passing on @ passed here Added a forged exception into the worker code and got it properly resurfaced and the rest of workers killed: P58642088 PS C:\open\<repo>> ..\facebook-hg-rpms\build\hg\hg.exe --config extensions.fsmonitor=! sparse --enable-profile <profile> updating [==> ] 1300/39166 1m57sException in thread Thread-3: Traceback (most recent call last): File "C:\open\facebook-hg-rpms\build\hg\hg-python\lib\threading.py", line 801, in __bootstrap_inner self.run() File "C:\open\facebook-hg-rpms\build\hg\mercurial\worker.py", line 244, in run raise e Exception: Forged exception Exception in thread Thread-2: Traceback (most recent call last): File "C:\open\facebook-hg-rpms\build\hg\hg-python\lib\threading.py", line 801, in __bootstrap_inner self.run() File "C:\open\facebook-hg-rpms\build\hg\mercurial\worker.py", line 244, in run raise e Exception: Forged exception <...> Traceback (most recent call last): File "C:\open\facebook-hg-rpms\build\hg\hgexe.py", line 41, in <module> dispatch.run() File "C:\open\facebook-hg-rpms\build\hg\mercurial\dispatch.py", line 85, in run status = (dispatch(req) or 0) & 255 File "C:\open\facebook-hg-rpms\build\hg\mercurial\dispatch.py", line 173, in dispatch ret = _runcatch(req) File "C:\open\facebook-hg-rpms\build\hg\mercurial\dispatch.py", line 324, in _runcatch return _callcatch(ui, _runcatchfunc) File "C:\open\facebook-hg-rpms\build\hg\mercurial\dispatch.py", line 332, in _callcatch return scmutil.callcatch(ui, func) File "C:\open\facebook-hg-rpms\build\hg\mercurial\scmutil.py", line 154, in callcatch return func() File "C:\open\facebook-hg-rpms\build\hg\mercurial\dispatch.py", line 314, in _runcatchfunc return _dispatch(req) File "C:\open\facebook-hg-rpms\build\hg\mercurial\dispatch.py", line 951, in _dispatch cmdpats, cmdoptions) File "C:\open\facebook-hg-rpms\build\hg\hg-python\lib\site-packages\remotefilelog\__init__.py", line 415, in runcommand return orig(lui, repo, *args, **kwargs) File "C:\open\facebook-hg-rpms\build\hg\hg-python\lib\site-packages\hgext3rd\undo.py", line 118, in _runcommandwrapper result = orig(lui, repo, cmd, fullargs, *args) File "C:\open\facebook-hg-rpms\build\hg\hgext\journal.py", line 84, in runcommand return orig(lui, repo, cmd, fullargs, *args) File "C:\open\facebook-hg-rpms\build\hg\hg-python\lib\site-packages\hgext3rd\perftweaks.py", line 268, in _tracksparseprofiles res = runcommand(lui, repo, *args) File "C:\open\facebook-hg-rpms\build\hg\hg-python\lib\site-packages\hgext3rd\perftweaks.py", line 256, in _trackdirstatesizes res = runcommand(lui, repo, *args) File "C:\open\facebook-hg-rpms\build\hg\hg-python\lib\site-packages\hgext3rd\copytrace.py", line 144, in _runcommand return orig(lui, repo, cmd, fullargs, ui, *args, **kwargs) File "C:\open\facebook-hg-rpms\build\hg\hg-python\lib\site-packages\hgext3rd\fbamend\hiddenoverride.py", line 119, in runcommand result = orig(lui, repo, cmd, fullargs, *args) File "C:\open\facebook-hg-rpms\build\hg\mercurial\dispatch.py", line 712, in runcommand ret = _runcommand(ui, options, cmd, d) File "C:\open\facebook-hg-rpms\build\hg\mercurial\dispatch.py", line 959, in _runcommand return cmdfunc() File "C:\open\facebook-hg-rpms\build\hg\mercurial\dispatch.py", line 948, in <lambda> d = lambda: util.checksignature(func)(ui, *args, **strcmdopt) File "C:\open\facebook-hg-rpms\build\hg\mercurial\util.py", line 1183, in check return func(*args, **kwargs) File "C:\open\facebook-hg-rpms\build\hg\hg-python\lib\site-packages\hgext3rd\fbsparse.py", line 860, in sparse disableprofile=disableprofile, force=force) File "C:\open\facebook-hg-rpms\build\hg\hg-python\lib\site-packages\hgext3rd\fbsparse.py", line 949, in _config len, _refresh(ui, repo, oldstatus, oldsparsematch, force)) File "C:\open\facebook-hg-rpms\build\hg\hg-python\lib\site-packages\hgext3rd\fbsparse.py", line 1116, in _refresh mergemod.applyupdates(repo, typeactions, repo[None], repo['.'], False) File "C:\open\facebook-hg-rpms\build\hg\hg-python\lib\site-packages\remotefilelog\__init__.py", line 311, in applyupdates return orig(repo, actions, wctx, mctx, overwrite, labels=labels) File "C:\open\facebook-hg-rpms\build\hg\mercurial\merge.py", line 1464, in applyupdates for i, item in prog: File "C:\open\facebook-hg-rpms\build\hg\mercurial\worker.py", line 286, in _windowsworker raise t.exception Exception: Forged exception PS C:\open\ovrsource> Differential Revision: https://phab.mercurial-scm.org/D1459
author Wojciech Lis <wlis@fb.com>
date Mon, 20 Nov 2017 10:27:41 -0800
parents 4441705b7111
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
26420
2fc86d92c4a9 urls: bulk-change BTS urls to new location
Matt Mackall <mpm@selenic.com>
parents: 19798
diff changeset
1 https://bz.mercurial-scm.org/1502
13478
c631ac076375 bookmarks: restrict moving a bookmark to its descendants (issue1502)
David Soria Parra <dsp@php.net>
parents:
diff changeset
2
c631ac076375 bookmarks: restrict moving a bookmark to its descendants (issue1502)
David Soria Parra <dsp@php.net>
parents:
diff changeset
3 Initialize repository
c631ac076375 bookmarks: restrict moving a bookmark to its descendants (issue1502)
David Soria Parra <dsp@php.net>
parents:
diff changeset
4
c631ac076375 bookmarks: restrict moving a bookmark to its descendants (issue1502)
David Soria Parra <dsp@php.net>
parents:
diff changeset
5 $ hg init foo
c631ac076375 bookmarks: restrict moving a bookmark to its descendants (issue1502)
David Soria Parra <dsp@php.net>
parents:
diff changeset
6 $ touch foo/a && hg -R foo commit -A -m "added a"
c631ac076375 bookmarks: restrict moving a bookmark to its descendants (issue1502)
David Soria Parra <dsp@php.net>
parents:
diff changeset
7 adding a
c631ac076375 bookmarks: restrict moving a bookmark to its descendants (issue1502)
David Soria Parra <dsp@php.net>
parents:
diff changeset
8
c631ac076375 bookmarks: restrict moving a bookmark to its descendants (issue1502)
David Soria Parra <dsp@php.net>
parents:
diff changeset
9 $ hg clone foo foo1
c631ac076375 bookmarks: restrict moving a bookmark to its descendants (issue1502)
David Soria Parra <dsp@php.net>
parents:
diff changeset
10 updating to branch default
c631ac076375 bookmarks: restrict moving a bookmark to its descendants (issue1502)
David Soria Parra <dsp@php.net>
parents:
diff changeset
11 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
c631ac076375 bookmarks: restrict moving a bookmark to its descendants (issue1502)
David Soria Parra <dsp@php.net>
parents:
diff changeset
12
c631ac076375 bookmarks: restrict moving a bookmark to its descendants (issue1502)
David Soria Parra <dsp@php.net>
parents:
diff changeset
13 $ echo "bar" > foo1/a && hg -R foo1 commit -m "edit a in foo1"
c631ac076375 bookmarks: restrict moving a bookmark to its descendants (issue1502)
David Soria Parra <dsp@php.net>
parents:
diff changeset
14 $ echo "hi" > foo/a && hg -R foo commit -m "edited a foo"
28064
9e0535da20a5 test: drop useless --update flag in issue1502 tests
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 26968
diff changeset
15 $ hg -R foo1 pull
35393
4441705b7111 tests: remove (glob) annotations that were only for '\' matches
Matt Harbison <matt_harbison@yahoo.com>
parents: 34661
diff changeset
16 pulling from $TESTTMP/foo
13478
c631ac076375 bookmarks: restrict moving a bookmark to its descendants (issue1502)
David Soria Parra <dsp@php.net>
parents:
diff changeset
17 searching for changes
c631ac076375 bookmarks: restrict moving a bookmark to its descendants (issue1502)
David Soria Parra <dsp@php.net>
parents:
diff changeset
18 adding changesets
c631ac076375 bookmarks: restrict moving a bookmark to its descendants (issue1502)
David Soria Parra <dsp@php.net>
parents:
diff changeset
19 adding manifests
c631ac076375 bookmarks: restrict moving a bookmark to its descendants (issue1502)
David Soria Parra <dsp@php.net>
parents:
diff changeset
20 adding file changes
c631ac076375 bookmarks: restrict moving a bookmark to its descendants (issue1502)
David Soria Parra <dsp@php.net>
parents:
diff changeset
21 added 1 changesets with 1 changes to 1 files (+1 heads)
34661
eb586ed5d8ce transaction-summary: show the range of new revisions upon pull/unbundle (BC)
Denis Laxalde <denis.laxalde@logilab.fr>
parents: 28064
diff changeset
22 new changesets 273d008d6e8e
28064
9e0535da20a5 test: drop useless --update flag in issue1502 tests
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 26968
diff changeset
23 (run 'hg heads' to see heads, 'hg merge' to merge)
13478
c631ac076375 bookmarks: restrict moving a bookmark to its descendants (issue1502)
David Soria Parra <dsp@php.net>
parents:
diff changeset
24
c631ac076375 bookmarks: restrict moving a bookmark to its descendants (issue1502)
David Soria Parra <dsp@php.net>
parents:
diff changeset
25 $ hg -R foo1 book branchy
c631ac076375 bookmarks: restrict moving a bookmark to its descendants (issue1502)
David Soria Parra <dsp@php.net>
parents:
diff changeset
26 $ hg -R foo1 book
c631ac076375 bookmarks: restrict moving a bookmark to its descendants (issue1502)
David Soria Parra <dsp@php.net>
parents:
diff changeset
27 * branchy 1:e3e522925eff
c631ac076375 bookmarks: restrict moving a bookmark to its descendants (issue1502)
David Soria Parra <dsp@php.net>
parents:
diff changeset
28
c631ac076375 bookmarks: restrict moving a bookmark to its descendants (issue1502)
David Soria Parra <dsp@php.net>
parents:
diff changeset
29 Pull. Bookmark should not jump to new head.
c631ac076375 bookmarks: restrict moving a bookmark to its descendants (issue1502)
David Soria Parra <dsp@php.net>
parents:
diff changeset
30
c631ac076375 bookmarks: restrict moving a bookmark to its descendants (issue1502)
David Soria Parra <dsp@php.net>
parents:
diff changeset
31 $ echo "there" >> foo/a && hg -R foo commit -m "edited a again"
c631ac076375 bookmarks: restrict moving a bookmark to its descendants (issue1502)
David Soria Parra <dsp@php.net>
parents:
diff changeset
32 $ hg -R foo1 pull
35393
4441705b7111 tests: remove (glob) annotations that were only for '\' matches
Matt Harbison <matt_harbison@yahoo.com>
parents: 34661
diff changeset
33 pulling from $TESTTMP/foo
13478
c631ac076375 bookmarks: restrict moving a bookmark to its descendants (issue1502)
David Soria Parra <dsp@php.net>
parents:
diff changeset
34 searching for changes
c631ac076375 bookmarks: restrict moving a bookmark to its descendants (issue1502)
David Soria Parra <dsp@php.net>
parents:
diff changeset
35 adding changesets
c631ac076375 bookmarks: restrict moving a bookmark to its descendants (issue1502)
David Soria Parra <dsp@php.net>
parents:
diff changeset
36 adding manifests
c631ac076375 bookmarks: restrict moving a bookmark to its descendants (issue1502)
David Soria Parra <dsp@php.net>
parents:
diff changeset
37 adding file changes
c631ac076375 bookmarks: restrict moving a bookmark to its descendants (issue1502)
David Soria Parra <dsp@php.net>
parents:
diff changeset
38 added 1 changesets with 1 changes to 1 files
34661
eb586ed5d8ce transaction-summary: show the range of new revisions upon pull/unbundle (BC)
Denis Laxalde <denis.laxalde@logilab.fr>
parents: 28064
diff changeset
39 new changesets 84a798d48b17
13478
c631ac076375 bookmarks: restrict moving a bookmark to its descendants (issue1502)
David Soria Parra <dsp@php.net>
parents:
diff changeset
40 (run 'hg update' to get a working copy)
c631ac076375 bookmarks: restrict moving a bookmark to its descendants (issue1502)
David Soria Parra <dsp@php.net>
parents:
diff changeset
41
c631ac076375 bookmarks: restrict moving a bookmark to its descendants (issue1502)
David Soria Parra <dsp@php.net>
parents:
diff changeset
42 $ hg -R foo1 book
c631ac076375 bookmarks: restrict moving a bookmark to its descendants (issue1502)
David Soria Parra <dsp@php.net>
parents:
diff changeset
43 * branchy 1:e3e522925eff