hg st/clone/pull crashes on old machine with 5.4

Manuel Jacob me at manueljacob.de
Thu May 14 00:20:19 UTC 2020


A workaround would be to set the environment variable HGMODULEPOLICY=py, 
at the cost of much lower performance. This disables the C extensions 
and uses the pure Python implementation.

On 2020-05-14 02:15, Manuel Jacob wrote:
> Hi Sandro,
> 
> The issue is caused by https://bugs.python.org/issue10211. Python
> 2.7.4 (you have Python 2.7.3) fixed the issue.
> 
> You can fix the issue on the Mercurial side by applying
> https://www.mercurial-scm.org/pipermail/mercurial-devel/2020-May/141666.html.
> I expect that the patch will not be committed for the reasons stated
> in the patch itself. Since you were compiling Mercurial yourself, I
> think this won’t be a problem for you.
> 
> -Manuel
> 
> On 2020-05-13 22:21, Alessandro Dentella wrote:
>> Hi,
>> 
>> I have an old server (Debian Wheezy/7.5) where I compiled a mercurial 
>> 5.4 and
>> pulled a repo I host on Heptapod.
>> 
>> When I do hg pull (or hg st) of a repo pulled from heptapod it crashes 
>> with the
>> traceback reported below. (same behaviour with 5.3.2, 4.9.1).
>> 
>> If I `hg pull` any from Debian 8+ with hg 5.4 there's no problem.
>> 
>> How does the OS influence this behaviour? Is it something known?
>> 
>> 
>> Thanks for your help
>> 
>> 
>> sandro
>> *:-)
>> 
>> 
>> 
>> 
>> --
>> Sandro Dentella  *:-)
>> http://trepalchi.it                Il portale degli artisti
>> 
>> http://www.reteisi.org             Soluzioni libere per le scuole
>> http://sqlkit.argolinux.org        SQLkit home page - 
>> PyGTK/python/sqlalchemy
>> 
>> 
>> root at fw-publieditor-colt:/tmp/sd# hg clone
>> ssh://git@hg.thux.dev/customers/zoooom/quasar2020.customer.app.zoooom.it
>> destination directory: quasar2020.customer.app.zoooom.it
>> requesting all changes
>> adding changesets
>> adding manifests
>> transaction abort!
>> rollback completed
>> ** unknown exception encountered, please report by visiting
>> ** https://mercurial-scm.org/wiki/BugTracker
>> ** Python 2.7.3 (default, Mar 14 2014, 11:57:14) [GCC 4.7.2]
>> ** Mercurial Distributed SCM (version 5.4)
>> ** Extensions loaded: convert, graphlog, strip, mq, pager, rebase, 
>> record
>> Traceback (most recent call last):
>>   File "/usr/bin/hg", line 43, in <module>
>>     dispatch.run()
>>   File
>> "/usr/local/share/hg/lib/python2.7/site-packages/mercurial/dispatch.py",
>> line 112, in run
>>     status = dispatch(req)
>>   File
>> "/usr/local/share/hg/lib/python2.7/site-packages/mercurial/dispatch.py",
>> line 298, in dispatch
>>     ret = _runcatch(req) or 0
>>   File
>> "/usr/local/share/hg/lib/python2.7/site-packages/mercurial/dispatch.py",
>> line 472, in _runcatch
>>     return _callcatch(ui, _runcatchfunc)
>>   File
>> "/usr/local/share/hg/lib/python2.7/site-packages/mercurial/dispatch.py",
>> line 481, in _callcatch
>>     return scmutil.callcatch(ui, func)
>>   File
>> "/usr/local/share/hg/lib/python2.7/site-packages/mercurial/scmutil.py",
>> line 152, in callcatch
>>     return func()
>>   File
>> "/usr/local/share/hg/lib/python2.7/site-packages/mercurial/dispatch.py",
>> line 462, in _runcatchfunc
>>     return _dispatch(req)
>>   File
>> "/usr/local/share/hg/lib/python2.7/site-packages/mercurial/dispatch.py",
>> line 1226, in _dispatch
>>     lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions
>>   File
>> "/usr/local/share/hg/lib/python2.7/site-packages/mercurial/dispatch.py",
>> line 910, in runcommand
>>     ret = _runcommand(ui, options, cmd, d)
>>   File
>> "/usr/local/share/hg/lib/python2.7/site-packages/hgext/pager.py", line
>> 76, in pagecmd
>>     return orig(ui, options, cmd, cmdfunc)
>>   File
>> "/usr/local/share/hg/lib/python2.7/site-packages/mercurial/dispatch.py",
>> line 1237, in _runcommand
>>     return cmdfunc()
>>   File
>> "/usr/local/share/hg/lib/python2.7/site-packages/mercurial/dispatch.py",
>> line 1223, in <lambda>
>>     d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
>>   File
>> "/usr/local/share/hg/lib/python2.7/site-packages/mercurial/util.py",
>> line 1864, in check
>>     return func(*args, **kwargs)
>>   File
>> "/usr/local/share/hg/lib/python2.7/site-packages/mercurial/commands.py",
>> line 1916, in clone
>>     depth=opts.get(b'depth') or None,
>>   File
>> "/usr/local/share/hg/lib/python2.7/site-packages/mercurial/hg.py",
>> line 907, in clone
>>     depth=depth,
>>   File
>> "/usr/local/share/hg/lib/python2.7/site-packages/mercurial/exchange.py",
>> line 1827, in pull
>>     _fullpullbundle2(repo, pullop)
>>   File
>> "/usr/local/share/hg/lib/python2.7/site-packages/mercurial/exchange.py",
>> line 1693, in _fullpullbundle2
>>     _pullbundle2(pullop)
>>   File
>> "/usr/local/share/hg/lib/python2.7/site-packages/mercurial/exchange.py",
>> line 2030, in _pullbundle2
>>     bundle2.processbundle(pullop.repo, bundle, op=op)
>>   File
>> "/usr/local/share/hg/lib/python2.7/site-packages/mercurial/bundle2.py",
>> line 477, in processbundle
>>     processparts(repo, op, unbundler)
>>   File
>> "/usr/local/share/hg/lib/python2.7/site-packages/mercurial/bundle2.py",
>> line 485, in processparts
>>     _processpart(op, part)
>>   File
>> "/usr/local/share/hg/lib/python2.7/site-packages/mercurial/bundle2.py",
>> line 554, in _processpart
>>     handler(op, part)
>>   File
>> "/usr/local/share/hg/lib/python2.7/site-packages/mercurial/bundle2.py",
>> line 2000, in handlechangegroup
>>     **extrakwargs
>>   File
>> "/usr/local/share/hg/lib/python2.7/site-packages/mercurial/bundle2.py",
>> line 489, in _processchangegroup
>>     ret = cg.apply(op.repo, tr, source, url, **kwargs)
>>   File
>> "/usr/local/share/hg/lib/python2.7/site-packages/mercurial/changegroup.py",
>> line 343, in apply
>>     self._unpackmanifests(repo, revmap, trp, progress)
>>   File
>> "/usr/local/share/hg/lib/python2.7/site-packages/mercurial/changegroup.py",
>> line 258, in _unpackmanifests
>>     repo.manifestlog.getstorage(b'').addgroup(deltas, revmap, trp)
>>   File
>> "/usr/local/share/hg/lib/python2.7/site-packages/mercurial/manifest.py",
>> line 1803, in addgroup
>>     deltas, linkmapper, transaction, addrevisioncb=addrevisioncb
>>   File
>> "/usr/local/share/hg/lib/python2.7/site-packages/mercurial/revlog.py",
>> line 2465, in addgroup
>>     deltacomputer=deltacomputer,
>>   File
>> "/usr/local/share/hg/lib/python2.7/site-packages/mercurial/revlog.py",
>> line 2303, in _addrevision
>>     deltainfo = deltacomputer.finddeltainfo(revinfo, fh)
>>   File
>> "/usr/local/share/hg/lib/python2.7/site-packages/mercurial/revlogutils/deltas.py",
>> line 1087, in finddeltainfo
>>     deltainfo = self._fullsnapshotinfo(fh, revinfo)
>>   File
>> "/usr/local/share/hg/lib/python2.7/site-packages/mercurial/revlogutils/deltas.py",
>> line 1017, in _fullsnapshotinfo
>>     rawtext = self.buildtext(revinfo, fh)
>>   File
>> "/usr/local/share/hg/lib/python2.7/site-packages/mercurial/revlogutils/deltas.py",
>> line 938, in buildtext
>>     revinfo.node,
>>   File
>> "/usr/local/share/hg/lib/python2.7/site-packages/mercurial/revlogutils/deltas.py",
>> line 526, in _textfromdelta
>>     basetext = revlog.revision(baserev, _df=fh, raw=False)
>>   File
>> "/usr/local/share/hg/lib/python2.7/site-packages/mercurial/revlog.py",
>> line 1834, in revision
>>     return self._revisiondata(nodeorrev, _df, raw=raw)[0]
>>   File
>> "/usr/local/share/hg/lib/python2.7/site-packages/mercurial/revlog.py",
>> line 1860, in _revisiondata
>>     rev, rawtext, validated = self._rawtext(node, rev, _df=_df)
>>   File
>> "/usr/local/share/hg/lib/python2.7/site-packages/mercurial/revlog.py",
>> line 1934, in _rawtext
>>     rawtext = mdiff.patches(basetext, bins)
>> TypeError: 'buffer' does not have the buffer interface
>> _______________________________________________
>> Mercurial mailing list
>> Mercurial at mercurial-scm.org
>> https://www.mercurial-scm.org/mailman/listinfo/mercurial



More information about the Mercurial mailing list