| Issue 185: | Client really ahead of server can cause common ancestor negotiation to take too long | |
| Back to list |
Reported by Shawn Pearce <sop@google.com> on Thu May 21 09:14:25 PDT 2009 Source: JIRA GERRIT-185 Affected Version: 2.0.12 A Linux kernel repository. The client had 50,798 commits that didn't exist in the server repository. This was caused by the client fetching a very recent kernel, e.g. Linus' master repository, and then attempting to fetch from a very old one, e.g. a T-Mobile G1 release 1.0 kernel repository. As Linus and gang are more than 50k commits ahead of the G1 kernel the common ancestor negotiation fed 50k+ "have" lines at the server, trying to find a common ancestor. Client was a C Git client, so we know the client side of the protocol pushing "have" lines was correct. Server had a handful of commits that the client wanted, that weren't in that close-to-Linus upstream the client had cloned from. JGit kept unpacking the same commits on the server, because it disposed of them in memory to toss the commit message (which it doesn't need to compute the DAG connections) but then it unpacked again because it thought the commit didn't know who its parents were. Do that 50,798 times, multiplied by the number of commits the server had that the client did not yet have, and uh, its slow as snot. I have to rethink this section of the common base negotiation code.
Sep 24, 2009
#1
code-rev...@gtempaccount.com
Sep 24, 2009
Comment by Shawn Pearce <sop@google.com> on Fri Jun 12 16:03:48 PDT 2009 Patch posted to git ML http://thread.gmane.org/gmane.comp.version-control.git/121460
Sep 24, 2009
Comment by Shawn Pearce <sop@google.com> on Mon Jun 15 16:24:18 PDT 2009 Fixed by https://review.source.android.com/10423
Sep 24, 2009
Update by Shawn Pearce <sop@google.com> on Mon Jun 15 16:24:18 PDT 2009 Fixed in version 2.0.14.
Status:
Fixed
Sep 25, 2009
(No comment was entered for this change.)
Labels:
FixedIn-2.0.14
Oct 25, 2012
(No comment was entered for this change.)
Status:
Released
|
|
| ► Sign in to add a comment |