cf traceback below > hg st --debug --traceback Traceback (most recent call last): File "/usr/lib64/python2.6/site-packages/mercurial/dispatch.py", line 189, in _runcatch return _dispatch(req) File "/usr/lib64/python2.6/site-packages/mercurial/dispatch.py", line 914, in _dispatch cmdpats, cmdoptions) File "/usr/lib64/python2.6/site-packages/mercurial/extensions.py", line 195, in closure return func(*(args + a), **kw) File "/usr/lib/python2.6/site-packages/remotefilelog/__init__.py", line 310, in runcommand return orig(lui, repo, *args, **kwargs) File "/usr/lib64/python2.6/site-packages/mercurial/dispatch.py", line 673, in runcommand ret = _runcommand(ui, options, cmd, d) File "/usr/lib64/python2.6/site-packages/mercurial/extensions.py", line 195, in closure return func(*(args + a), **kw) File "/usr/lib64/python2.6/site-packages/hgext/pager.py", line 143, in pagecmd return orig(ui, options, cmd, cmdfunc) File "/usr/lib64/python2.6/site-packages/mercurial/extensions.py", line 195, in closure return func(*(args + a), **kw) File "/usr/lib64/python2.6/site-packages/hgext/color.py", line 518, in colorcmd return orig(ui_, opts, cmd, cmdfunc) File "/usr/lib64/python2.6/site-packages/mercurial/dispatch.py", line 1045, in _runcommand return checkargs() File "/usr/lib64/python2.6/site-packages/mercurial/dispatch.py", line 1005, in checkargs return cmdfunc() File "/usr/lib64/python2.6/site-packages/mercurial/dispatch.py", line 911, in <lambda> d = lambda: util.checksignature(func)(ui, *args, **cmdoptions) File "/usr/lib64/python2.6/site-packages/mercurial/util.py", line 994, in check return func(*args, **kwargs) File "/usr/lib64/python2.6/site-packages/mercurial/extensions.py", line 195, in closure return func(*(args + a), **kw) File "/usr/lib64/python2.6/site-packages/mercurial/util.py", line 994, in check return func(*args, **kwargs) File "/usr/lib/python2.6/site-packages/morestatus.py", line 133, in statuscmd ret = orig(ui, repo, *pats, **opts) File "/usr/lib64/python2.6/site-packages/mercurial/util.py", line 994, in check return func(*args, **kwargs) File "/usr/lib64/python2.6/site-packages/mercurial/extensions.py", line 195, in closure return func(*(args + a), **kw) File "/usr/lib64/python2.6/site-packages/mercurial/util.py", line 994, in check return func(*args, **kwargs) File "/usr/lib/python2.6/site-packages/tweakdefaults.py", line 464, in statuscmd return orig(ui, repo, *pats, **opts) File "/usr/lib64/python2.6/site-packages/mercurial/util.py", line 994, in check return func(*args, **kwargs) File "/usr/lib64/python2.6/site-packages/mercurial/commands.py", line 6328, in status opts.get('subrepos')) File "/usr/lib64/python2.6/site-packages/hgwatchman/__init__.py", line 468, in status return overridestatus(orig, self, *args, **kwargs) File "/usr/lib64/python2.6/site-packages/hgwatchman/__init__.py", line 350, in overridestatus listsubrepos) File "/usr/lib64/python2.6/site-packages/mercurial/localrepo.py", line 1823, in status listsubrepos) File "/usr/lib64/python2.6/site-packages/mercurial/context.py", line 349, in status listunknown) File "/usr/lib64/python2.6/site-packages/mercurial/context.py", line 1632, in _buildstatus s = self._dirstatestatus(match, listignored, listclean, listunknown) File "/usr/lib64/python2.6/site-packages/mercurial/context.py", line 1605, in _dirstatestatus modified2, fixup = self._checklookup(cmp) File "/usr/lib64/python2.6/site-packages/mercurial/extensions.py", line 195, in closure return func(*(args + a), **kw) File "/usr/lib/python2.6/site-packages/remotefilelog/__init__.py", line 235, in checklookup if f in parent: File "/usr/lib64/python2.6/site-packages/mercurial/context.py", line 87, in __contains__ return key in self._manifest File "/usr/lib64/python2.6/site-packages/mercurial/util.py", line 727, in __get__ result = self.func(obj) File "/usr/lib64/python2.6/site-packages/mercurial/context.py", line 529, in _manifest return self._repo.manifest.read(self._changeset[0]) File "/usr/lib64/python2.6/site-packages/mercurial/util.py", line 727, in __get__ result = self.func(obj) File "/usr/lib64/python2.6/site-packages/mercurial/context.py", line 525, in _changeset return self._repo.changelog.read(self.rev()) File "/usr/lib64/python2.6/site-packages/mercurial/repoview.py", line 308, in changelog revs = filterrevs(unfi, self.filtername) File "/usr/lib64/python2.6/site-packages/mercurial/repoview.py", line 250, in filterrevs repo.filteredrevcache[filtername] = func(repo.unfiltered()) File "/usr/lib/python2.6/site-packages/directaccess.py", line 65, in _computehidden hidden = repoview.filterrevs(repo, 'visible') File "/usr/lib64/python2.6/site-packages/mercurial/repoview.py", line 250, in filterrevs repo.filteredrevcache[filtername] = func(repo.unfiltered()) File "/usr/lib64/python2.6/site-packages/mercurial/repoview.py", line 167, in computehidden hidden = tryreadcache(repo, hideable) File "/usr/lib64/python2.6/site-packages/mercurial/repoview.py", line 144, in tryreadcache version, = struct.unpack(">H", fh.read(2)) error: unpack requires a string argument of length 2
Fixed by https://selenic.com/repo/hg/rev/97e0dc6d248c Laurent Charignon <lcharignon@fb.com> repoview: fix corrupted hiddencache crash Mercurial (issue5042) Before this patch if the hiddencache existed but was empty, it would crash mercurial. This patch adds exception handling when reading the hiddencache to avoid the issue. When encountering a corrupted cache file we print a devel warning. There would be no point in issuing a normal warning as the user wouldn't be able to do anything about the situation. The warning looks like: devel-warn: corrupted hidden cache, removing it at: /path/to/repoview.py (please test the fix)
Bug was set to TESTING for 7 days, resolving