lfs: default to not using workers for upload/download
authorMatt Harbison <matt_harbison@yahoo.com>
Thu, 18 Jan 2018 15:11:34 -0500
changeset 35732 10e62d5efa73
parent 35731 f58245b9e3ea
child 35733 3d48ae1aaa5e
lfs: default to not using workers for upload/download I ran into truncated uploads with this defaulting to on. Wojciech Lis diagnosed it as creating keepalive connections prior to forking, and illegally multiplexing the same connection. [1] I didn't notice a problem with the couple of downloads I tried, but disabled both for simplicity and safety. [1] https://www.mercurial-scm.org/pipermail/mercurial-devel/2018-January/109916.html
hgext/lfs/__init__.py
hgext/lfs/blobstore.py
--- a/hgext/lfs/__init__.py	Sun Jan 14 17:00:24 2018 -0500
+++ b/hgext/lfs/__init__.py	Thu Jan 18 15:11:34 2018 -0500
@@ -119,6 +119,9 @@
 configitem('experimental', 'lfs.user-agent',
     default=None,
 )
+configitem('experimental', 'lfs.worker-enable',
+    default=False,
+)
 
 configitem('lfs', 'url',
     default=None,
--- a/hgext/lfs/blobstore.py	Sun Jan 14 17:00:24 2018 -0500
+++ b/hgext/lfs/blobstore.py	Thu Jan 18 15:11:34 2018 -0500
@@ -356,8 +356,13 @@
                             continue
                         raise
 
-        oids = worker.worker(self.ui, 0.1, transfer, (),
-                             sorted(objects, key=lambda o: o.get('oid')))
+        # Until https multiplexing gets sorted out
+        if self.ui.configbool('experimental', 'lfs.worker-enable'):
+            oids = worker.worker(self.ui, 0.1, transfer, (),
+                                 sorted(objects, key=lambda o: o.get('oid')))
+        else:
+            oids = transfer(sorted(objects, key=lambda o: o.get('oid')))
+
         processed = 0
         for _one, oid in oids:
             processed += sizes[oid]