[Bug 6596] New: `hg log` and some other commands get stuck on content-divergence computation

mercurial-bugs at mercurial-scm.org mercurial-bugs at mercurial-scm.org
Thu Sep 30 16:46:26 UTC 2021


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

            Bug ID: 6596
           Summary: `hg log` and some other commands get stuck on
                    content-divergence computation
           Product: Mercurial
           Version: unspecified
          Hardware: PC
                OS: Linux
            Status: UNCONFIRMED
          Severity: bug
          Priority: wish
         Component: evolution
          Assignee: bugzilla at mercurial-scm.org
          Reporter: rgomes at octobus.net
                CC: mercurial-devel at mercurial-scm.org,
                    pierre-yves.david at ens-lyon.org
    Python Version: ---

I'm not exactly sure how that happened, but it followed a simple pull from
foss.heptapod.net/octobus/mercurial-devel.

Commands like `hg log` or `hg pull` get stuck in an apparent loop (or something
ungodly slow) as py-spy indicates:

```
Collecting samples from '/home/alphare/.pyenv/versions/3.9.2/bin/python3
/home/alphare/hg/hg pull' (python v3.9.2)
Total Samples 28500
GIL: 0.00%, Active: 100.00%, Threads: 1

  %Own   %Total  OwnTime  TotalTime  Function (filename:line)
 54.00%  54.00%   185.0s    185.3s   canmerge (mercurial/obsutil.py:538)
 34.00%  89.00%   81.55s    270.7s   successorssets (mercurial/obsutil.py:762)
  4.00%   4.00%   14.17s    14.17s   successorssets (mercurial/obsutil.py:761)
  1.00%   1.00%    3.85s     3.85s   canmerge (mercurial/obsutil.py:537)
  0.00%   0.00%   0.190s    0.190s   _set (mercurial/obsutil.py:535)
  7.00%   7.00%   0.070s    0.070s   _rundispatch (mercurial/dispatch.py:314)
  0.00%   0.00%   0.040s    0.230s   __get__ (mercurial/util.py:1765)
  0.00%   0.00%   0.040s    0.040s   cachevalue (mercurial/util.py:1771)
  0.00%   0.00%   0.040s    0.040s   successorssets (mercurial/obsutil.py:766)
  0.00%   0.00%   0.020s    0.060s   __get__ (mercurial/util.py:1766)
  0.00%  93.00%   0.000s    284.9s   <lambda> (mercurial/dispatch.py:1271)
  0.00%  93.00%   0.000s    284.9s   getinstabilitycounts
(mercurial/scmutil.py:2056)
  0.00%  93.00%   0.000s    284.9s   _runcatchfunc (mercurial/dispatch.py:460)
  0.00%  93.00%   0.000s    284.9s   _pullbundle2 (mercurial/exchange.py:1879)
  0.00%  93.00%   0.000s    284.9s   transaction
(hgext3rd/evolve/__init__.py:401)
  0.00% 100.00%   0.000s    285.0s   dispatch (mercurial/dispatch.py:250)
  0.00%  93.00%   0.000s    284.9s   gettransaction
(mercurial/exchange.py:1455)
  0.00%  93.00%   0.000s    284.9s   runcommand (mercurial/dispatch.py:918)
  0.00%  93.00%   0.000s    284.9s   _fullpullbundle2
(mercurial/exchange.py:1521)
  0.00%  93.00%   0.000s    284.9s   pull (mercurial/commands.py:5451)
  0.00%  93.00%   0.000s    284.9s   check (mercurial/util.py:1886)
  0.00% 100.00%   0.000s    285.0s   <module> (hg:61)
  0.00%  93.00%   0.000s    284.9s   callcatch (mercurial/scmutil.py:153)
  0.00%  93.00%   0.000s    284.9s   handlechangegroup
(mercurial/bundle2.py:1994)
  0.00%  93.00%   0.000s    284.9s   _dispatch (mercurial/dispatch.py:1273)
  0.00%  93.00%   0.000s    284.9s   _runcatch (mercurial/dispatch.py:470)
  0.00%  93.00%   0.000s    284.9s   _processpart (mercurial/bundle2.py:568)
  0.00%  93.00%   0.000s    284.9s   _callcatch (mercurial/dispatch.py:480)
  0.00% 100.00%   0.000s    285.0s   run (mercurial/dispatch.py:144)
  0.00%  93.00%   0.000s    284.9s   gettransaction (mercurial/bundle2.py:332)
  0.00%  93.00%   0.000s    284.9s   transaction
(hgext3rd/topic/__init__.py:561)
  0.00%  93.00%   0.000s    284.9s   transaction (mercurial/localrepo.py:2558)
  0.00%  93.00%   0.000s    284.9s   registersummarycallback
(mercurial/scmutil.py:2060)
  0.00%  93.00%   0.000s    284.9s   wrapmayobsoletewc
(hgext3rd/evolve/__init__.py:557)
  0.00%  93.00%   0.000s    284.9s   pullrebase (hgext/rebase.py:2180)
  0.00%  93.00%   0.000s    284.9s   processparts (mercurial/bundle2.py:494)
  0.00%  93.00%   0.000s    284.9s   transaction (mercurial/exchange.py:1474)
  0.00%  93.00%   0.000s    284.9s   getrevs (mercurial/obsolete.py:913)
  0.00%  93.00%   0.000s    284.9s   processbundle (mercurial/bundle2.py:486)
  0.00%  93.00%   0.000s    284.9s   _rundispatch (mercurial/dispatch.py:294)
  0.00%  93.00%   0.000s    284.9s   _runcommand (mercurial/dispatch.py:1285)
  0.00%  93.00%   0.000s    284.9s   pull (mercurial/exchange.py:1672)
  0.00%  93.00%   0.000s    284.9s   _computecontentdivergentset
(mercurial/obsolete.py:1026)
```

I've uploaded a tarball of my repository for reproduction to
https://static.octobus.net/broken-content-div.tgz

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


More information about the Mercurial-devel mailing list