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
--- 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]