Mercurial > hg
diff tests/test-lock-badness.t @ 35209:9153871d50e0
lock: allow to configure when the lock messages are displayed
We add a new 'ui.timeout.warn' config to set a grace period before we display
lock related warning:
waiting for lock on PATH held by PROCESS
The config is based on 'ui.timeout' and expresses a number of seconds before
the warning is displayed. Negative values disable the warning altogether.
The messages go to the debug output to help people trouble-shooting deadlocks.
author | Boris Feld <boris.feld@octobus.net> |
---|---|
date | Wed, 29 Nov 2017 20:39:59 -0500 |
parents | fce4ed2912bb |
children | 1e1c1bfb0be4 |
line wrap: on
line diff
--- a/tests/test-lock-badness.t Wed Nov 29 20:36:29 2017 -0500 +++ b/tests/test-lock-badness.t Wed Nov 29 20:39:59 2017 -0500 @@ -57,14 +57,77 @@ $ echo b > b/b $ hg -R b ci -A -m b --config hooks.precommit="python:`pwd`/hooks.py:sleepone" > stdout & $ hg -R b up -q --config hooks.pre-update="python:`pwd`/hooks.py:sleephalf" \ - > > preup 2>&1 + > > preup-stdout 2>preup-stderr $ wait - $ cat preup + $ cat preup-stdout + $ cat preup-stderr waiting for lock on working directory of b held by process '*' on host '*' (glob) got lock after * seconds (glob) $ cat stdout adding b +On processs waiting on another, warning after a long time. + + $ echo b > b/c + $ hg -R b ci -A -m b --config hooks.precommit="python:`pwd`/hooks.py:sleepone" > stdout & + $ hg -R b up -q --config hooks.pre-update="python:`pwd`/hooks.py:sleephalf" \ + > --config ui.timeout.warn=250 \ + > > preup-stdout 2>preup-stderr + $ wait + $ cat preup-stdout + $ cat preup-stderr + $ cat stdout + adding c + +On processs waiting on another, warning disabled. + + $ echo b > b/d + $ hg -R b ci -A -m b --config hooks.precommit="python:`pwd`/hooks.py:sleepone" > stdout & + $ hg -R b up -q --config hooks.pre-update="python:`pwd`/hooks.py:sleephalf" \ + > --config ui.timeout.warn=-1 \ + > > preup-stdout 2>preup-stderr + $ wait + $ cat preup-stdout + $ cat preup-stderr + $ cat stdout + adding d + +check we still print debug output + +On processs waiting on another, warning after a long time (debug output on) + + $ echo b > b/e + $ hg -R b ci -A -m b --config hooks.precommit="python:`pwd`/hooks.py:sleepone" > stdout & + $ hg -R b up --config hooks.pre-update="python:`pwd`/hooks.py:sleephalf" \ + > --config ui.timeout.warn=250 --debug\ + > > preup-stdout 2>preup-stderr + $ wait + $ cat preup-stdout + calling hook pre-update: hghook_pre-update.sleephalf + waiting for lock on working directory of b held by process '*' on host '*' (glob) + got lock after * seconds (glob) + 0 files updated, 0 files merged, 0 files removed, 0 files unresolved + $ cat preup-stderr + $ cat stdout + adding e + +On processs waiting on another, warning disabled, (debug output on) + + $ echo b > b/f + $ hg -R b ci -A -m b --config hooks.precommit="python:`pwd`/hooks.py:sleepone" > stdout & + $ hg -R b up --config hooks.pre-update="python:`pwd`/hooks.py:sleephalf" \ + > --config ui.timeout.warn=-1 --debug\ + > > preup-stdout 2>preup-stderr + $ wait + $ cat preup-stdout + calling hook pre-update: hghook_pre-update.sleephalf + waiting for lock on working directory of b held by process '*' on host '*' (glob) + got lock after * seconds (glob) + 0 files updated, 0 files merged, 0 files removed, 0 files unresolved + $ cat preup-stderr + $ cat stdout + adding f + Pushing to a local read-only repo that can't be locked $ chmod 100 a/.hg/store