[Bug 4518] New: Push with evolve is extremely slow
mercurial-bugs at selenic.com
mercurial-bugs at selenic.com
Fri Jan 30 14:56:06 UTC 2015
http://bz.selenic.com/show_bug.cgi?id=4518
Priority: normal
Bug ID: 4518
CC: mercurial-devel at selenic.com
Assignee: bugzilla at selenic.com
Summary: Push with evolve is extremely slow
Severity: bug
Classification: Unclassified
OS: Linux
Reporter: mathias.demare at gmail.com
Hardware: PC
Status: UNCONFIRMED
Version: 3.3-rc
Component: evolution
Product: Mercurial
I'm noticing a push from one machine to another that is extremely slow (but
works fine when I am not using evolve). I am seeing this both with ssh and with
http.
Without evolve, push takes 1 or 2 seconds, with evolve it takes multiple
minutes. CPU goes to 100% on the receiving side.
Here's a profile after ~30 seconds (I interrupted after that):
CallCount Recursive Total(s) Inline(s) module:lineno(function)
44 0 22.0826 22.0819 <select.select>
44 0 0.0007 0.0003
SocketServer:449(fileno)
31 20 0.0228 0.0220 <__import__>
1 0 0.0164 0.0001
mercurial.hgweb.server:9(<module>)
1 0 0.0001 0.0001
SocketServer:120(<module>)
1 0 0.0025 0.0000 mimetools:1(<module>)
1 0 0.0001 0.0000 rfc822:71(<module>)
1 0 0.0139 0.0000
BaseHTTPServer:18(<module>)
1 0 0.0034 0.0017 mimetypes:205(readfp)
517 0 0.0004 0.0004 <method 'readline' of
'file' objects>
516 0 0.0003 0.0003 <method 'split' of
'str' objects>
189 0 0.0005 0.0003 mimetypes:78(add_type)
516 0 0.0003 0.0003 <range>
516 0 0.0002 0.0002 <len>
1 0 22.1127 0.0008
mercurial.extensions:149(wrap)
1 0 22.1120 0.0000
mercurial.util:709(check)
2 0 0.0000 0.0000
mercurial.util:707(checksignature)
318 0 0.0009 0.0006 mimetypes:78(add_type)
318 0 0.0002 0.0002 <method 'setdefault' of
'dict' objects>
239 0 0.0001 0.0001 <method 'append' of
'list' objects>
1 0 22.0845 0.0005
SocketServer:221(serve_forever)
44 0 22.0828 0.0002
SocketServer:151(_eintr_retry)
1 0 0.0000 0.0000 threading:575(set)
1 0 0.0004 0.0000
SocketServer:282(_handle_request_noblock)
1 0 0.0008 0.0000
mercurial.demandimport:103(__getattribute__)
1 0 0.0000 0.0000 threading:589(clear)
517 0 0.0004 0.0004 <method 'readline' of
'file' objects>
530 0 0.0004 0.0004 <method 'split' of 'str'
objects>
44 0 0.0007 0.0003 SocketServer:449(fileno)
44 0 0.0003 0.0002 socket:223(meth)
On the client side, almost all of the time taken is right after it prints
'sending evoext_obshash command'.
The following part was printed (1 query at a time) during ~9 minutes:
query 1; still undecided: 50036, sample size is: 200
sending evoext_obshash command
sampling from both directions
query 2; still undecided: 4100, sample size is: 200
sending evoext_obshash command
sampling from both directions
query 3; still undecided: 243, sample size is: 200
sending evoext_obshash command
3 total queries
Sadly, I can't pass along the repository itself. It's a repository with ~50 000
changesets and 10 git subrepositories. I have not been able to reproduce this
yet with an example repository.
Pushing side: version 3.3-rc+53-6becb9dbca25+20150130
Receiving side: version 3.3-rc
Evolve version on both sides:
@ changeset: 1194:aa7cdd9d7310
| branch: stable
| bookmark: @
| tag: tip
| parent: 1191:583f7f03434b
| user: Tyrone Nicholas <tnicholas at fb.com>
| date: Tue Jan 27 16:07:57 2015 +0000
| summary: evolve: explicitly disable bookmark on evolve (issue4432)
--
You are receiving this mail because:
You are on the CC list for the bug.
More information about the Mercurial-devel
mailing list