Bug 4455 - traceback on clone with bookmarks (from local to remote using ssh)
Summary: traceback on clone with bookmarks (from local to remote using ssh)
Status: RESOLVED FIXED
Alias: None
Product: Mercurial
Classification: Unclassified
Component: bookmarks (show other bugs)
Version: 3.2.1
Hardware: PC Linux
: normal bug
Assignee: Bugzilla
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2014-11-17 06:12 UTC by Rémi Cardona
Modified: 2015-01-22 15:04 UTC (History)
1 user (show)

See Also:
Python Version: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Rémi Cardona 2014-11-17 06:12 UTC
$ hg clone --debug --traceback . ssh://hg@hg.logilab.org/users/rcardona/grshell-reliures4
running ssh hg@hg.logilab.org 'hg init users/rcardona/grshell-reliures4'
running ssh hg@hg.logilab.org 'hg -R users/rcardona/grshell-reliures4 serve --stdio'
sending hello command
sending between command
remote: 325
remote: capabilities: lookup changegroupsubset branchmap pushkey known getbundle unbundlehash batch stream bundle2-exp=HG2X%0Ab2x%253Alistkeys%0Ab2x%253Apushkey unbundle=HG10GZ,HG10BZ,HG10UN httpheader=1024 _evoext_pushobsmarkers_0 _evoext_pullobsmarkers_0 _evoext_obshash_0 _evoext_b2x_obsmarkers_0 _push_experiment_notifypushend_0
remote: 1
cannot lock source repository: [Errno 13] Permission denied: '/home/katia/src/grshell-reliures/.hg/store/lock'
query 1; heads
sending batch command
searching for changes
taking quick initial sample
searching: 2 queries
query 2; still undecided: 211, sample size is: 88
sending known command
sampling from both directions
searching: 3 queries
query 3; still undecided: 27, sample size is: 27
sending known command
3 total queries
error writing hidden changesets cachepreparing listkeys for "phases"
sending listkeys command
preparing listkeys for "namespaces"
sending listkeys command
0 total queries
checking for updated bookmarks
preparing listkeys for "bookmarks"
sending listkeys command
201 changesets found
list of changesets:
b8c8659f1854fff9fa2332338fa7d193225877ff
[...]
1ef38368b04e11184fe952c1a7da79c8e83631ca
sending unbundle command
bundling: 1/201 changesets (0.50%)
[...]
bundling: 201/201 changesets (100.00%)
bundling: 1/170 manifests (0.59%)
[...]
bundling: 170/170 manifests (100.00%)
bundling: .hggrmapping 1/5 files (20.00%)
bundling: .hgguestrepo 2/5 files (40.00%)
bundling: .hgtags 3/5 files (60.00%)
bundling: cubes/__init__.py 4/5 files (80.00%)
bundling: logilab/__init__.py 5/5 files (100.00%)
remote: adding changesets
remote: adding manifests
remote: adding file changes
remote: added 201 changesets with 170 changes to 5 files (+8 heads)
preparing listkeys for "phases"
sending listkeys command
preparing pushkey for "phases:cf9d6f61539d4af6e1e76d811aa695d323e44536"
sending pushkey command
preparing pushkey for "phases:4fb5ff16581e46b3c97c904f5099da3a6c8a5244"
sending pushkey command
try to push obsolete markers to remote
preparing listkeys for "namespaces"
sending listkeys command
pushing 68 obsolescence markers (7905 bytes)
sending evoext_pushobsmarkers_0 command
obsmarkers exchange: 0/7905 bytes (0.00%)
obsmarkers exchange: 4096/7905 bytes (51.82%)
obsmarkers exchange: 7905/7905 bytes (100.00%)
preparing pushkey for "bookmarks:cubicweb-3.16"
sending pushkey command
remote: bookmark cubicweb-3.16 is on draft changeset 0bf75ffdfa86fe5f691fec415bf985b51d59340b, rejecting
remote: abort: prepushkey.nodraftbook hook exited with status 1
Traceback (most recent call last):
  File "/home/rcardona/Projects/hg/mercurial/dispatch.py", line 140, in _runcatch
    return _dispatch(req)
  File "/home/rcardona/Projects/hg/mercurial/dispatch.py", line 850, in _dispatch
    cmdpats, cmdoptions)
  File "/home/rcardona/Projects/hg/mercurial/dispatch.py", line 611, in runcommand
    ret = _runcommand(ui, options, cmd, d)
  File "/home/rcardona/Projects/hg/mercurial/extensions.py", line 196, in wrap
    return wrapper(origfn, *args, **kwargs)
  File "/home/rcardona/Projects/hg/hgext/pager.py", line 158, in pagecmd
    return orig(ui, options, cmd, cmdfunc)
  File "/home/rcardona/Projects/hg/mercurial/extensions.py", line 196, in wrap
    return wrapper(origfn, *args, **kwargs)
  File "/home/rcardona/Projects/hg/hgext/color.py", line 485, in colorcmd
    return orig(ui_, opts, cmd, cmdfunc)
  File "/home/rcardona/Projects/hg/mercurial/dispatch.py", line 941, in _runcommand
    return checkargs()
  File "/home/rcardona/Projects/hg/mercurial/dispatch.py", line 912, in checkargs
    return cmdfunc()
  File "/home/rcardona/Projects/hg/mercurial/dispatch.py", line 847, in <lambda>
    d = lambda: util.checksignature(func)(ui, *args, **cmdoptions)
  File "/home/rcardona/Projects/hg/mercurial/util.py", line 677, in check
    return func(*args, **kwargs)
  File "/home/rcardona/Projects/hg/mercurial/commands.py", line 1371, in clone
    branch=opts.get('branch'))
  File "/home/rcardona/Projects/hg/mercurial/hg.py", line 426, in clone
    bookmarks=srcrepo._bookmarks.keys())
  File "/home/rcardona/Projects/hg/mercurial/extensions.py", line 196, in wrap
    return wrapper(origfn, *args, **kwargs)
  File "/home/rcardona/Projects/hgext/mutable-history/hgext/evolve.py", line 620, in push
    return orig(repo, *args, **opts)
  File "/home/rcardona/Projects/hg/mercurial/exchange.py", line 221, in push
    _pushbookmark(pushop)
  File "/home/rcardona/Projects/hg/mercurial/exchange.py", line 767, in _pushbookmark
    if remote.pushkey('bookmarks', b, old, new):
  File "/home/rcardona/Projects/hg/mercurial/wireproto.py", line 162, in plain
    encresref.set(self._submitone(f.func_name, encargsorres))
  File "/home/rcardona/Projects/hg/mercurial/wireproto.py", line 224, in _submitone
    return self._call(op, **args)
  File "/home/rcardona/Projects/hg/mercurial/sshpeer.py", line 160, in _call
    return self._recv()
  File "/home/rcardona/Projects/hg/mercurial/sshpeer.py", line 207, in _recv
    self._abort(error.ResponseError(_("unexpected response:"), l))
  File "/home/rcardona/Projects/hg/mercurial/sshpeer.py", line 113, in _abort
    raise exception
ResponseError: ('unexpected response:', '')
abort : unexpected response: empty string
Comment 1 Rémi Cardona 2014-11-17 06:13 UTC
FTR I had a somewhat similar traceback with 3.1 (though I didn't keep it before upgrading).
Comment 2 Pierre-Yves David 2014-11-29 07:50 UTC
The important line is apparently:

  remote: abort: prepushkey.nodraftbook hook exited with status 1

I'll try to repro the traceback in testing.
Comment 3 Pierre-Yves David 2014-11-29 22:11 UTC
I can reproduce. Currently crafting a fixes.
Comment 4 HG Bot 2014-12-01 19:46 UTC
Fixed by http://selenic.com/repo/hg/rev/53a65929ef1f
Pierre-Yves David <pierre-yves.david@fb.com>
pushkey: gracefully handle prepushkey hook failure (issue4455)

This allow to gracefully report the failure of the bookmark push and carry on.
Before this change set. Local push would plain quit and wireprotocol would
failed in various ungraceful way.

(please test the fix)
Comment 5 Matt Mackall 2015-01-22 15:04 UTC
Bulk testing -> fixed