[Bug 6035] New: hg update exit with 255, dirstate corrupted

mercurial-bugs at mercurial-scm.org mercurial-bugs at mercurial-scm.org
Mon Dec 10 07:49:17 UTC 2018


https://bz.mercurial-scm.org/show_bug.cgi?id=6035

            Bug ID: 6035
           Summary: hg update exit with 255, dirstate corrupted
           Product: Mercurial
           Version: 4.8
          Hardware: PC
                OS: Other
            Status: UNCONFIRMED
          Severity: bug
          Priority: wish
         Component: Mercurial
          Assignee: bugzilla at mercurial-scm.org
          Reporter: semarie at online.fr
                CC: mercurial-devel at mercurial-scm.org

Created attachment 2026
  --> https://bz.mercurial-scm.org/attachment.cgi?id=2026&action=edit
test6.sh

I am on OpenBSD -current (development head, upcoming 6.5), using mercurial
4.8.1 installed from OpenBSD package system (using `pkg_add mercurial`).

I am facing a problem with `hg update`, where the command ends with exit code
255, and a corrupted dirstate. I am able to reproduce it on OpenBSD on
different hosts, with a newly created hg repository made from scratch.

It seems mercurial is confused by the present of some CVS/ directory in the
repository.

In order to reproduce, I am using the attached `test6.sh` script.

It checkouts from an OpenBSD mirror a part of the ports tree (the commented
curl command is an alternative to download the content for testing on
environment without cvs), create a new mercurial repository, and next clone it.

I splited the clone operation in "clone --noupdate" (works well) and the
"update" operation (failed).

Note that if I remove the CVS/ directories before creating the repository
(commented find command), the operation succeeded.

The traceback generated (with --traceback) of `hg update` is the following:

```
Traceback (most recent call last):
  File "/usr/local/lib/python2.7/site-packages/mercurial/scmutil.py", line 166,
in callcatch
    return func()
  File "/usr/local/lib/python2.7/site-packages/mercurial/worker.py", line 187,
in workerfunc
    for result in func(*(staticargs + (pargs,))):
  File "/usr/local/lib/python2.7/site-packages/mercurial/merge.py", line 1492,
in batchget
    repo.ui.note(_("getting %s\n") % f)
  File "/usr/local/lib/python2.7/site-packages/mercurial/ui.py", line 1463, in
note
    self.write(*msg, **opts)
  File "/usr/local/lib/python2.7/site-packages/mercurial/ui.py", line 950, in
write
    self._writenobuf(*args, **opts)
  File "/usr/local/lib/python2.7/site-packages/mercurial/ui.py", line 962, in
_writenobuf
    self._write(*msgs, **opts)
  File "/usr/local/lib/python2.7/site-packages/mercurial/ui.py", line 969, in
_write
    self.fout.write(''.join(msgs))
  File "/usr/local/lib/python2.7/site-packages/mercurial/dispatch.py", line
260, in catchterm
    raise error.SignalInterrupt
SignTraceback (most recent call last):
  File "/usr/local/lib/python2.7/site-packages/mercurial/scmutil.py", line 166,
in callcatch
    return func()
  File "/usr/local/lib/python2.7/site-packages/mercurial/worker.py", line 187,
in workerfunc
    for result in func(*(staticargs + (pargs,))):
  File "/usr/local/lib/python2.7/site-packages/mercurial/merge.py", line 1492,
in batchget
    repo.ui.note(_("getting %s\n") % f)
  File "/usr/local/lib/python2.7/site-packages/mercurial/ui.py", line 1463, in
note
    self.write(*msg, **opts)
  File "/usr/local/lib/python2.7/site-packages/mercurial/ui.py", line 950, in
write
    self._writenobuf(*args, **opts)
  File "/usr/local/lib/python2.7/site-packages/mercurial/ui.py", line 962, in
_writenobuf
    self._write(*msgs, **opts)
  File "/usr/local/lib/python2.7/site-packages/mercurial/ui.py", line 969, in
_write
    self.fout.write(''.join(msgs))
  File "/usr/local/lib/python2.7/site-packages/mercurial/dispatch.py", line
260, in catchterm
    raise error.SignalInterrupt
SignalInterrupt
alInterrupt
Traceback (most recent call last):
  File "/usr/local/lib/python2.7/site-packages/mercurial/worker.py", line 191,
in _posixworker
    ret = scmutil.callcatch(ui, workerfunc)
  File "/usr/local/lib/python2.7/site-packages/mercurial/scmutil.py", line 166,
in callcatch
    return func()
  File "/usr/local/lib/python2.7/site-packages/mercurial/worker.py", line 187,
in workerfunc
    for result in func(*(staticargs + (pargs,))):
  File "/usr/local/lib/python2.7/site-packages/mercurial/merge.py", line 1492,
in batchget
    repo.ui.note(_("getting %s\n") % f)
  File "/usr/local/lib/python2.7/site-packages/mercurial/ui.py", line 1463, in
note
    self.write(*msg, **opts)
  File "/usr/local/lib/python2.7/site-packages/mercurial/ui.py", line 950, in
write
    self._writenobuf(*args, **opts)
  File "/usr/local/lib/python2.7/site-packages/mercurial/ui.py", line 962, in
_writenobuf
    self._write(*msgs, **opts)
  File "/usr/local/lib/python2.7/site-packages/mercurial/ui.py", line 969, in
_write
    self.fout.write(''.join(msgs))
  File "/usr/local/lib/python2.7/site-packages/mercurial/dispatch.py", line
260, in catchterm
    raise error.SignalInterrupt
SignalInterrupt
Traceback (most recent call last):
  File "/usr/local/lib/python2.7/site-packages/mercurial/worker.py", line 191,
in _posixworker
    ret = scmutil.callcatch(ui, workerfunc)
  File "/usr/local/lib/python2.7/site-packages/mercurial/scmutil.py", line 166,
in callcatch
    return func()
  File "/usr/local/lib/python2.7/site-packages/mercurial/worker.py", line 187,
in workerfunc
    for result in func(*(staticargs + (pargs,))):
  File "/usr/local/lib/python2.7/site-packages/mercurial/merge.py", line 1492,
in batchget
    repo.ui.note(_("getting %s\n") % f)
  File "/usr/local/lib/python2.7/site-packages/mercurial/ui.py", line 1463, in
note
    self.write(*msg, **opts)
  File "/usr/local/lib/python2.7/site-packages/mercurial/ui.py", line 950, in
write
    self._writenobuf(*args, **opts)
  File "/usr/local/lib/python2.7/site-packages/mercurial/ui.py", line 962, in
_writenobuf
    self._write(*msgs, **opts)
  File "/usr/local/lib/python2.7/site-packages/mercurial/ui.py", line 969, in
_write
    self.fout.write(''.join(msgs))
  File "/usr/local/lib/python2.7/site-packages/mercurial/dispatch.py", line
260, in catchterm
    raise error.SignalInterrupt
SignalInterrupt
Traceback (most recent call last):
  File "/usr/local/lib/python2.7/site-packages/mercurial/scmutil.py", line 166,
in callcatch
    return func()
  File "/usr/local/lib/python2.7/site-packages/mercurial/dispatch.py", line
354, in _runcatchfunc
    return _dispatch(req)
  File "/usr/local/lib/python2.7/site-packages/mercurial/dispatch.py", line
994, in _dispatch
    cmdpats, cmdoptions)
  File "/usr/local/lib/python2.7/site-packages/mercurial/dispatch.py", line
737, in runcommand
    ret = _runcommand(ui, options, cmd, d)
  File "/usr/local/lib/python2.7/site-packages/mercurial/dispatch.py", line
1003, in _runcommand
    return cmdfunc()
  File "/usr/local/lib/python2.7/site-packages/mercurial/dispatch.py", line
991, in <lambda>
    d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
  File "/usr/local/lib/python2.7/site-packages/mercurial/util.py", line 1644,
in check
    return func(*args, **kwargs)
  File "/usr/local/lib/python2.7/site-packages/mercurial/util.py", line 1644,
in check
    return func(*args, **kwargs)
  File "/usr/local/lib/python2.7/site-packages/hgext/mq.py", line 3631, in
mqcommand
    return orig(ui, repo, *args, **kwargs)
  File "/usr/local/lib/python2.7/site-packages/mercurial/util.py", line 1644,
in check
    return func(*args, **kwargs)
  File "/usr/local/lib/python2.7/site-packages/mercurial/commands.py", line
6046, in update
    updatecheck=updatecheck)
  File "/usr/local/lib/python2.7/site-packages/mercurial/hg.py", line 921, in
updatetotally
    ret = _update(repo, checkout, updatecheck=updatecheck)
  File "/usr/local/lib/python2.7/site-packages/mercurial/hg.py", line 858, in
update
    stats = updaterepo(repo, node, False, updatecheck=updatecheck)
  File "/usr/local/lib/python2.7/site-packages/mercurial/hg.py", line 854, in
updaterepo
    updatecheck=updatecheck)
  File "/usr/local/lib/python2.7/site-packages/mercurial/merge.py", line 2178,
in update
    stats = applyupdates(repo, actions, wc, p2, overwrite, labels=labels)
  File "/usr/local/lib/python2.7/site-packages/mercurial/merge.py", line 1646,
in applyupdates
    for i, item in prog:
  File "/usr/local/lib/python2.7/site-packages/mercurial/worker.py", line 237,
in _posixworker
    cleanup()
  File "/usr/local/lib/python2.7/site-packages/mercurial/worker.py", line 220,
in cleanup
    sys.exit(status)
SystemExit: 255
```

Thanks

-- 
You are receiving this mail because:
You are on the CC list for the bug.


More information about the Mercurial-devel mailing list