[issue2271] diff --git traceback with pager and high cpu load

Christian Ebert bugs at mercurial.selenic.com
Sun Jul 4 09:11:20 UTC 2010


New submission from Christian Ebert <blacktrash at gmx.net>:

Since (found out by bisecting)

changeset:   11182:3c368a1c962d
branch:      stable
parent:      11171:3b3261f6d9ba
user:        Brodie Rao <brodie at bitheap.org>
date:        Mon May 03 14:00:34 2010 -0500
summary:     pager: fork and exec pager as parent process

I get a traceback (see below) for hg diff --git with enabled pager
extension. However this only happens when I run a multithreaded video
conversion at the same time, e.g.:

Processes:  71 total, 3 running, 68 sleeping... 234 threads             13:08:53
Load Avg:  1.42,  1.18,  0.63    CPU usage: 74.88% user,  2.46% sys, 22.66% idle
PhysMem:  477M wired,  625M active, 1274M inactive, 2382M used, 1714M free.
VM: 50G + 0   39216(0) pageins, 0(0) pageouts

  PID COMMAND      %CPU   TIME   #TH #PRTS #MREGS RPRVT  RSHRD  RSIZE  VSIZE
 1296 mencoder   149.6%  8:41.66   5    48      0     0      0    54M   666M
[...]

The extremely strange traceback:

$ hg diff -r default
** unknown exception encountered, details follow
** report bug details to http://mercurial.selenic.com/bts/
** or mercurial at selenic.com
** Python 2.6.5 (r265:79063, May 13 2010, 09:27:41) [GCC 4.0.1 (Apple Inc.
build 5493)]
** Mercurial Distributed SCM (version 1.5.4+190-521c8e0c93bf)
** Extensions loaded: keyword, mq, convert, patchbomb, graphlog, record,
extdiff, color, pager, crecord
Traceback (most recent call last):
  File "/usr/local/bin/hg", line 27, in <module>
    mercurial.dispatch.run()
  File "/usr/local/lib/python2.6/site-packages/mercurial/dispatch.py", line
16, in run
    sys.exit(dispatch(sys.argv[1:]))
  File "/usr/local/lib/python2.6/site-packages/mercurial/dispatch.py", line
34, in dispatch
    return _runcatch(u, args)
  File "/usr/local/lib/python2.6/site-packages/mercurial/dispatch.py", line
54, in _runcatch
    return _dispatch(ui, args)
  File "/usr/local/lib/python2.6/site-packages/mercurial/dispatch.py", line
483, in _dispatch
    cmdpats, cmdoptions)
  File "/usr/local/lib/python2.6/site-packages/mercurial/dispatch.py", line
351, in runcommand
    ret = _runcommand(ui, options, cmd, d)
  File "/usr/local/lib/python2.6/site-packages/mercurial/extensions.py",
line 160, in wrap
    return wrapper(origfn, *args, **kwargs)
  File "/usr/local/lib/python2.6/site-packages/hgext/pager.py", line 95, in
pagecmd
    return orig(ui, options, cmd, cmdfunc)
  File "/usr/local/lib/python2.6/site-packages/mercurial/extensions.py",
line 160, in wrap
    return wrapper(origfn, *args, **kwargs)
  File "/usr/local/lib/python2.6/site-packages/hgext/color.py", line 213, in
colorcmd
    return orig(ui_, opts, cmd, cmdfunc)
  File "/usr/local/lib/python2.6/site-packages/mercurial/dispatch.py", line
534, in _runcommand
    return checkargs()
  File "/usr/local/lib/python2.6/site-packages/mercurial/dispatch.py", line
488, in checkargs
    return cmdfunc()
  File "/usr/local/lib/python2.6/site-packages/mercurial/dispatch.py", line
481, in <lambda>
    d = lambda: util.checksignature(func)(ui, *args, **cmdoptions)
  File "/usr/local/lib/python2.6/site-packages/mercurial/util.py", line 408,
in check
    return func(*args, **kwargs)
  File "/usr/local/lib/python2.6/site-packages/mercurial/extensions.py",
line 116, in wrap
    util.checksignature(origfn), *args, **kwargs)
  File "/usr/local/lib/python2.6/site-packages/mercurial/util.py", line 408,
in check
    return func(*args, **kwargs)
  File "/usr/local/lib/python2.6/site-packages/hgext/mq.py", line 2791, in
mqcommand
    return orig(ui, repo, *args, **kwargs)
  File "/usr/local/lib/python2.6/site-packages/mercurial/util.py", line 408,
in check
    return func(*args, **kwargs)
  File "/usr/local/lib/python2.6/site-packages/mercurial/commands.py", line
1452, in diff
    cmdutil.diffordiffstat(ui, repo, diffopts, node1, node2, m, stat=stat)
  File "/usr/local/lib/python2.6/site-packages/mercurial/cmdutil.py", line
677, in diffordiffstat
    changes, diffopts):
  File "/usr/local/lib/python2.6/site-packages/mercurial/patch.py", line
1492, in difflabel
    for chunk in func(*args, **kw):
  File "/usr/local/lib/python2.6/site-packages/mercurial/patch.py", line
1449, in diff
    changes = repo.status(ctx1, ctx2, match=match)
  File "/usr/local/lib/python2.6/site-packages/mercurial/localrepo.py", line
1088, in status
    mf2.set(f, ctx2.flags(f))
  File "/usr/local/lib/python2.6/site-packages/mercurial/context.py", line
737, in flags
    flag = findflag(self._parents[0])
  File "/usr/local/lib/python2.6/site-packages/mercurial/context.py", line
731, in findflag
    ff = self._repo.dirstate.flagfunc(lambda x: flag or '')
  File "/usr/local/lib/python2.6/site-packages/mercurial/dirstate.py", line
131, in flagfunc
    if self._checklink:
  File "/usr/local/lib/python2.6/site-packages/mercurial/util.py", line 163,
in __get__
    result = self.func(obj)
  File "/usr/local/lib/python2.6/site-packages/mercurial/dirstate.py", line
115, in _checklink
    return util.checklink(self._root)
  File "/usr/local/lib/python2.6/site-packages/mercurial/util.py", line 697,
in checklink
    name = tempfile.mktemp(dir=path, prefix='hg-checklink-')
  File "/usr/local/lib/python2.6/site-packages/mercurial/demandimport.py",
line 75, in __getattribute__
    self._load()
  File "/usr/local/lib/python2.6/site-packages/mercurial/demandimport.py",
line 47, in _load
    mod = _origimport(head, globals, locals)
  File "/sw/lib/python2.6/tempfile.py", line 34, in <module>
    from random import Random as _Random
  File "/usr/local/lib/python2.6/site-packages/mercurial/demandimport.py",
line 106, in _demandimport
    mod = _origimport(name, globals, locals)
  File "/sw/lib/python2.6/random.py", line 59, in <module>
    LOG4 = _log(4.0)
ValueError: math domain error

----------
messages: 12998
nosy: blacktrash, brodie
priority: bug
status: unread
title: diff --git traceback with pager and high cpu load

____________________________________________________
Mercurial issue tracker <bugs at mercurial.selenic.com>
<http://mercurial.selenic.com/bts/issue2271>
____________________________________________________


More information about the Mercurial-devel mailing list