[Bug 4783] New: Cloning non-generaldelta source repositories with large manifests using --config format.generaldelta=1 over HTTP(S) with bundle2 may time out during manifest conversion
mercurial-bugs at selenic.com
mercurial-bugs at selenic.com
Wed Aug 19 15:46:15 UTC 2015
http://bz.selenic.com/show_bug.cgi?id=4783
Priority: normal
Bug ID: 4783
CC: mercurial-devel at selenic.com,
pierre-yves.david at ens-lyon.org
Assignee: bugzilla at selenic.com
Summary: Cloning non-generaldelta source repositories with
large manifests using --config format.generaldelta=1
over HTTP(S) with bundle2 may time out during manifest
conversion
Severity: bug
Classification: Unclassified
OS: All
Reporter: gabor.stefanik at nng.com
Hardware: All
Status: UNCONFIRMED
Version: 3.5
Component: bundle2
Product: Mercurial
When cloning a large, non-generaldelta source repository heavily affected by
manifest growth over HTTP(S) into a generaldelta target using bundle2, the
manifest conversion takes a very long time (as the manifest needs to be
recompressed as generaldelta).
During this time, HTTP traffic is blocked, and the TCP connection remains idle
for a long time. With many HTTP servers, this can cause timeouts (for example,
SCM Manager over its default Jetty server allows 5 minutes for plain HTTP and
30 seconds for HTTPS by default).
Worse yet, some routers/firewalls will actually inject RST packets into any
plain HTTP connection that's idle for some time.
We need to either clear already-processed manifest data from our receive buffer
during manifest conversion (to allow new data to slowly flow in), or perform
some keep-alive communication during the blocked period, to prevent a timeout.
--
You are receiving this mail because:
You are on the CC list for the bug.
More information about the Mercurial-devel
mailing list