ansible/hg: disable generaldelta on new repos (bug 1228088); r=dminor draft
authorGregory Szorc <gps@mozilla.com>
Tue, 01 Mar 2016 13:53:21 -0800
changeset 7414 60082b3292518425ef3c7875c0cc692b376ccbee
parent 7413 0596cf5c6e3c95df1064c33e4afb28aae9df9c2b
child 7415 566b3ead890614e5f4b56f4fe175161c2e75edd9
push id675
push usergszorc@mozilla.com
push dateWed, 02 Mar 2016 22:08:21 +0000
reviewersdminor
bugs1228088
ansible/hg: disable generaldelta on new repos (bug 1228088); r=dminor Mercurial 3.7 creates generaldelta repositories by default. This can be problematic on hg.mozilla.org. Mercurial clients that don't support bundle2 require servers serving generaldelta repositories to re-encode the data to non-generaldelta. This can require a lot of CPU, especially for large repositories. Eventually, we'll want to use generaldelta on hg.mozilla.org. However, until most clients are modern, we risk a CPU explosion when serving generaldelta repos to legacy clients. To play it safe, we disable generaldelta on new repositories by default. MozReview-Commit-ID: 8ZU6UgPS0ei
ansible/roles/hg-ssh/templates/hgrc.j2
ansible/roles/hg-web/files/hgrc
--- a/ansible/roles/hg-ssh/templates/hgrc.j2
+++ b/ansible/roles/hg-ssh/templates/hgrc.j2
@@ -62,8 +62,13 @@ acktimeout = 10000
 # 1 dedicated partition for Try repo (it is special)
 # 3 partitions for all user repos
 partitionmap.0try = 4:\{moz\}\/try
 partitionmap.1user = 5,6,7:\{moz\}\/users\/.*
 partitionmap.2main = 0,1,2,3:.*
 
 [replicationpathrewrites]
 /repo/hg/mozilla/ = {moz}/
+
+# Disable new repos being created with generaldelta because it can cause
+# performance issues when serving large repos to old clients.
+[format]
+usegeneraldelta=false
--- a/ansible/roles/hg-web/files/hgrc
+++ b/ansible/roles/hg-web/files/hgrc
@@ -53,8 +53,13 @@ bugzilla = s|((?:bug[\s#]*|b=#?|#)(\d{4,
 #reporoot = /repo_local/mozilla/
 
 [bundleclone]
 pullmanifest=True
 
 [hgmo]
 mozbuildinfowrapper = /usr/bin/sudo /usr/local/bin/mozbuild-eval %repo%
 awsippath = /etc/mercurial/aws-ip-ranges.json
+
+# Disable new repos being created with generaldelta because it can cause
+# performance issues when serving large repos to old clients.
+[format]
+usegeneraldelta=false