Bug 5907 - Cryptic revlog error in rebase
Summary: Cryptic revlog error in rebase
Status: RESOLVED FIXED
Alias: None
Product: Mercurial
Classification: Unclassified
Component: rebase (show other bugs)
Version: 4.6
Hardware: All All
: normal bug
Assignee: Bugzilla
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2018-06-04 22:59 UTC by Matt Harbison
Modified: 2018-06-14 00:00 UTC (History)
2 users (show)

See Also:
Python Version: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Matt Harbison 2018-06-04 22:59 UTC
I just pulled from hg-committed tonight, went to rebase the leftovers, and got this with 4.6 and evolve 8.0:

$ hg rebase -b . -d tip --traceback
Traceback (most recent call last):
  File "mercurial\scmutil.pyo", line 160, in callcatch
  File "mercurial\dispatch.pyo", line 341, in _runcatchfunc
  File "mercurial\dispatch.pyo", line 971, in _dispatch
  File "mercurial\dispatch.pyo", line 727, in runcommand
  File "mercurial\dispatch.pyo", line 979, in _runcommand
  File "mercurial\dispatch.pyo", line 968, in <lambda>
  File "mercurial\util.pyo", line 1553, in check
  File "mercurial\util.pyo", line 1553, in check
  File "C:/Users/Matt/Projects/hg-evolve/hgext3rd\evolve\__init__.py", line 793, in warnobserrors
  File "mercurial\util.pyo", line 1553, in check
  File "mercurial\util.pyo", line 1553, in check
  File "hgext\mq.pyo", line 3599, in mqcommand
  File "mercurial\util.pyo", line 1553, in check
  File "hgext\rebase.pyo", line 830, in rebase
  File "hgext\rebase.pyo", line 904, in _origrebase
  File "hgext\rebase.pyo", line 420, in _performrebase
  File "hgext\rebase.pyo", line 322, in _handleskippingobsolete
  File "hgext\rebase.pyo", line 1818, in _computeobsoletenotrebased
  File "hgext\rebase.pyo", line 1818, in <genexpr>
RevlogError: RevlogError
abort: RevlogError!

I assume that this would work if I used -r or -s instead of -b, since I've never seen this before.  `hg verify` says everything is OK.  The full graph in this range looks like this:

$ hg log -r 44426:44436 -G --hidden
o  changeset:   44436:36ba5dba372d
|  parent:      44426:16f93a3b8b05
|  user:        Sushil khanchi <sushilkhanchi97@gmail.com>
|  date:        Wed May 30 14:20:09 2018 +0530
|  summary:     advanceboundary: add dryrun parameter
|
| @  changeset:   44435:918bcbf7e619
| |  user:        Matt Harbison <matt_harbison@yahoo.com>
| |  date:        Sun Jun 03 01:16:49 2018 -0400
| |  instability: orphan
| |  summary:     xxx-terse: don't terse away explicit paths (issue5724)
| |
| x  changeset:   44434:dccb37649baa
| |  user:        Matt Harbison <matt_harbison@yahoo.com>
| |  date:        Sat Jun 02 22:18:12 2018 -0400
| |  obsolete:    rewritten as 44439:51e420a7a41a by Yuya Nishihara <yuya@tcha.org>
| |  summary:     cmdutil: use internal separators when building the terse list
| |
| x  changeset:   44433:c19516ec1321
| |  parent:      44427:e134101a72df
| |  user:        Matt Harbison <matt_harbison@yahoo.com>
| |  date:        Sat Jun 02 13:44:44 2018 -0400
| |  obsolete:    rewritten using evolve as 44438:79c54e7c0c52 by Yuya Nishihara <yuya@tcha.org>
| |  summary:     rebase: prioritize indicating an interrupted rebase over update (issue5838)
| |
| | x  changeset:   44432:a46a6e858b2a
| |/   parent:      44427:e134101a72df
| |    user:        Matt Harbison <matt_harbison@yahoo.com>
| |    date:        Sat Jun 02 13:44:44 2018 -0400
| |    obsolete:    reworded using amend as 44433:c19516ec1321
| |    summary:     rebase: prioritize indicating an interrupted rebase over update (issue5838)
| |
| | x  changeset:   44431:e90f0e4a2ecd
| |/   parent:      44427:e134101a72df
| |    user:        Matt Harbison <matt_harbison@yahoo.com>
| |    date:        Sat Jun 02 13:44:44 2018 -0400
| |    obsolete:    rewritten using amend as 44432:a46a6e858b2a
| |    summary:     rebase: prioritize indicating an interrupted rebase over update (issue5838)
| |
| | x  changeset:   44430:b7b7fba3f038
| | |  user:        Matt Harbison <matt_harbison@yahoo.com>
| | |  date:        Sun Jun 03 01:16:49 2018 -0400
| | |  obsolete:    rebased using evolve as 44435:918bcbf7e619
| | |  summary:     xxx-terse: don't terse away explicit paths (issue5724)
| | |
| | x  changeset:   44429:8f334d8b909c
| | |  user:        Matt Harbison <matt_harbison@yahoo.com>
| | |  date:        Sat Jun 02 22:18:12 2018 -0400
| | |  obsolete:    rebased using evolve as 44434:dccb37649baa
| | |  summary:     cmdutil: use internal separators when building the terse list
| | |
| | x  changeset:   44428:64c9e910deec
| |/   user:        Matt Harbison <matt_harbison@yahoo.com>
| |    date:        Sat Jun 02 13:44:44 2018 -0400
| |    obsolete:    amended using uncommit as 44431:e90f0e4a2ecd
| |    summary:     rebase: prioritize indicating an interrupted rebase over update (issue5838)
| |
| x  changeset:   44427:e134101a72df
|/   user:        Matt Harbison <matt_harbison@yahoo.com>
|    date:        Sat Jun 02 13:25:45 2018 -0400
|    obsolete:    rewritten using amend as 44437:712d6f535fc9 by Yuya Nishihara <yuya@tcha.org>
|    summary:     tests: demonstrate inconsistent messaging around interrupted rebases
|
o  changeset:   44426:16f93a3b8b05
|  parent:      44420:22edd5321489
~  user:        Sangeet Kumar Mishra <mail2sangeetmishra@gmail.com>
   date:        Wed May 30 17:37:17 2018 +0530
   summary:     grep: enable passing wdir as a revision
Comment 1 Yuya Nishihara 2018-06-05 08:23 UTC
https://www.mercurial-scm.org/repo/hg/file/4.6/hgext/rebase.py#l1818

Perhaps, it has to filter out unknown nodes.
Comment 2 Matt Harbison 2018-06-05 23:54 UTC
(In reply to Yuya Nishihara from comment #1)

Indeed.  I finally figured out a test for it, and I'm letting it run overnight.
Comment 3 HG Bot 2018-06-06 13:10 UTC
Fixed by https://mercurial-scm.org/repo/hg/rev/69d1cafe75f2
Matt Harbison <matt_harbison@yahoo.com>
rebase: avoid RevlogError when computing obsoletenotrebased (issue5907)

The key to reproducing this seems to be missing an obsolete node that is not an
ancestor of the destination.

(please test the fix)
Comment 4 Bugzilla 2018-06-14 00:00 UTC
Bug was set to TESTING for 7 days, resolving