"hg push" hangs for one minute (exactly one minute)
Ernie Rael
err at raelity.com
Thu Apr 28 12:50:07 UTC 2022
On 4/28/22 12:59 AM, Anton Shestakov wrote:
> There are also --debug and --profile, maybe they can help. Although
> some parts of the push process may not have debug logging, and
> profiling is for when you wish to delve into source code.
>
> I suspect there's something in the setup of the network or network
> file system, because 1 minute looks like a net IO timeout. But it
> could also be a timeout for waiting for a file lock, --profile should
> show it if that's the case.
>
Thanks for the options. Bingo.
Twice it does:
... pause for 30 seconds ...
evoext-cache: error while saving new data: database is locked
And this, at the end of profile, looks telling
Note: the lines with the "_trysave" are displayed in red.
| 99.4% 60.29s localrepo.py: wrapper line 237: return
orig(repo.unfiltered...
\ 49.6% 30.11s stablerangecache.py: updatecaches line 532:
super(stablerangerepo, self...
| 49.6% 30.11s localrepo.py: wrapper line 237: return
orig(repo.unfiltered...
| 49.6% 30.08s obsdiscovery.py: updatecaches line 645:
self.obsstore.rangeobshashc...
| 49.6% 30.08s obsdiscovery.py: save line 538:
self._save(repo)
| 49.6% 30.08s obsdiscovery.py: _save line 550: return
self._trysave(repo)
| 49.6% 30.07s obsdiscovery.py: _trysave line 607:
self._ondiskcachekey = self...
\ 49.5% 30.06s stablerangecache.py: updatecaches line 531:
self.stablerange.save(self)
| 49.5% 30.06s stablerangecache.py: save line 406:
self._save(repo)
| 49.5% 30.06s stablerangecache.py: _save line 287: return
self._trysave(repo)
| 49.5% 30.06s stablerangecache.py: _trysave line 348:
con.execute(_updatemeta, meta)
$ hg --profile --debug push
pushing to /z/repos/jvi-dev/jvi
query 1; heads
searching for changes
all remote heads known locally
listing keys for "phases"
listing keys for "namespaces"
listing keys for "namespaces"
checking for updated bookmarks
listing keys for "bookmarks"
no changes found
bundle2-output-bundle: "HG20", 3 parts total
bundle2-output-part: "replycaps" 224 bytes payload
bundle2-output-part: "check:phases" 1032 bytes payload
bundle2-output-part: "obsmarkers" streamed payload
bundle2-input-bundle: with-transaction
bundle2-input-part: "replycaps" supported
bundle2-input-part: total payload size 224
bundle2-input-part: "check:phases" supported
bundle2-input-part: total payload size 1032
bundle2-input-part: "obsmarkers" supported
bundle2-input-part: total payload size 96848
bundle2-input-bundle: 3 parts total
evoext-cache: error while saving new data: database is locked
evoext-cache: error while saving new data: database is locked
bundle2-output-bundle: "HG20", 1 parts total
bundle2-output-part: "reply:obsmarkers" (params: 0 advisory) empty payload
bundle2-input-bundle: no-transaction
bundle2-input-part: "reply:obsmarkers" (params: 0 advisory) supported
bundle2-input-bundle: 1 parts total
listing keys for "phases"
| 100.0% 60.67s hg: <module> line 61: dispatch.run()
| 100.0% 60.67s dispatch.py: run line 144: status =
dispatch(req)
| 100.0% 60.67s dispatch.py: dispatch line 250: status =
_rundispatch(req)
| 100.0% 60.67s dispatch.py: _rundispatch line 294: ret =
_runcatch(req) or 0
| 100.0% 60.67s dispatch.py: _runcatch line 470: return
_callcatch(ui, _runc...
| 100.0% 60.67s dispatch.py: _callcatch line 480: return
scmutil.callcatch(ui...
| 100.0% 60.67s scmutil.py: callcatch line 153: return func()
| 100.0% 60.67s dispatch.py: _runcatchfunc line 460: return
_dispatch(req)
| 99.9% 60.61s dispatch.py: _dispatch line 1273: return
runcommand(
| 99.9% 60.61s dispatch.py: runcommand line 918: ret =
_runcommand(ui, optio...
| 99.9% 60.61s dispatch.py: _runcommand line 1285: return
cmdfunc()
| 99.9% 60.61s dispatch.py: <lambda> line 1271: d =
lambda: util.checksigna...
| 99.9% 60.61s util.py: check line 1887: return
func(*args, **kwargs)
| 99.9% 60.61s util.py: check line 1887: return
func(*args, **kwargs)
| 99.9% 60.61s __init__.py: pushoutgoingwrap line 1353: return
orig(ui, repo, *args...
| 99.9% 60.61s util.py: check line 1887: return
func(*args, **kwargs)
| 99.9% 60.61s util.py: check line 1887: return
func(*args, **kwargs)
| 99.9% 60.61s flow.py: wrappush line 94: return
orig(repo, remote, *...
| 99.9% 60.61s util.py: check line 1887: return
func(*args, **kwargs)
| 99.9% 60.58s commands.py: push line 5787: pushop =
exchange.push(
| 99.9% 60.58s __init__.py: push line 578: return
orig(repo, *args, **...
| 99.9% 60.58s util.py: inner line 95: return
f(*args, **kwargs)
| 99.9% 60.58s gitrepo.py: exchangepush line 231: return orig(
| 99.7% 60.51s exchange.py: push line 475:
_pushbundle2(pushop)
| 99.7% 60.51s exchange.py: _pushbundle2 line 1152: reply =
e.callcommand(
| 99.7% 60.51s localrepo.py: callcommand line 284: result =
fn(**pycompat.strk...
| 99.7% 60.50s localrepo.py: unbundle line 410: ret =
exchange.unbundle(sel...
| 99.5% 60.39s exchange.py: unbundle line 2712:
lockandtr[2].close()
| 99.5% 60.39s transaction.py: _active line 39: return
func(self, *args, **...
| 99.4% 60.32s transaction.py: close line 629:
self._postclosecallback[cat...
| 99.4% 60.30s localrepo.py: updater line 2785:
repo.updatecaches(tr)
| 99.4% 60.30s localrepo.py: wrapper line 237: return
orig(repo.unfiltered...
| 99.4% 60.30s obscache.py: updatecaches line 484:
super(obscacherepo, self).u...
| 99.4% 60.30s localrepo.py: wrapper line 237: return
orig(repo.unfiltered...
| 99.4% 60.30s firstmergecache.py: updatecaches line 64:
super(firstmergecacherepo, ...
| 99.4% 60.30s localrepo.py: wrapper line 237: return
orig(repo.unfiltered...
| 99.4% 60.29s depthcache.py: updatecaches line 91:
super(depthcacherepo, self)...
| 99.4% 60.29s localrepo.py: wrapper line 237: return
orig(repo.unfiltered...
| 99.4% 60.29s stablesort.py: updatecaches line 971:
super(stablesortrepo, self)...
| 99.4% 60.29s localrepo.py: wrapper line 237: return
orig(repo.unfiltered...
\ 49.6% 30.11s stablerangecache.py: updatecaches line 532:
super(stablerangerepo, self...
| 49.6% 30.11s localrepo.py: wrapper line 237: return
orig(repo.unfiltered...
| 49.6% 30.08s obsdiscovery.py: updatecaches line 645:
self.obsstore.rangeobshashc...
| 49.6% 30.08s obsdiscovery.py: save line 538:
self._save(repo)
| 49.6% 30.08s obsdiscovery.py: _save line 550: return
self._trysave(repo)
| 49.6% 30.07s obsdiscovery.py: _trysave line 607:
self._ondiskcachekey = self...
\ 49.5% 30.06s stablerangecache.py: updatecaches line 531:
self.stablerange.save(self)
| 49.5% 30.06s stablerangecache.py: save line 406:
self._save(repo)
| 49.5% 30.06s stablerangecache.py: _save line 287: return
self._trysave(repo)
| 49.5% 30.06s stablerangecache.py: _trysave line 348:
con.execute(_updatemeta, meta)
---
Sample count: 41622
Total time: 15.030000 seconds (60.670000 wall)
More information about the Mercurial
mailing list