[PATCH 1 of 3] lfs: default to not using workers for upload/download
Matt Harbison
mharbison72 at gmail.com
Thu Jan 18 23:51:41 UTC 2018
# HG changeset patch
# User Matt Harbison <matt_harbison at yahoo.com>
# Date 1516306294 18000
# Thu Jan 18 15:11:34 2018 -0500
# Node ID 3e89ebf3fc09542792ecccb41c9ea923e270bf76
# Parent 7ffbd911dbc94215248500f0f95064cf3b975144
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
diff --git a/hgext/lfs/__init__.py b/hgext/lfs/__init__.py
--- a/hgext/lfs/__init__.py
+++ b/hgext/lfs/__init__.py
@@ -118,6 +118,9 @@ configitem = registrar.configitem(config
configitem('experimental', 'lfs.user-agent',
default=None,
)
+configitem('experimental', 'lfs.worker-enable',
+ default=False,
+)
configitem('lfs', 'url',
default=None,
diff --git a/hgext/lfs/blobstore.py b/hgext/lfs/blobstore.py
--- a/hgext/lfs/blobstore.py
+++ b/hgext/lfs/blobstore.py
@@ -356,8 +356,13 @@ class _gitlfsremote(object):
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]
More information about the Mercurial-devel
mailing list