Network glitches costing 15 minutes a pop

John Arbash Meinel john at arbash-meinel.com
Sat Aug 16 04:29:29 BST 2008


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Mark Hammond wrote:
> Vincent writes:
> 

...

> 0c3aa0.six: Expected a boundary
> |(squid/2.6.STABLE18:496108C51A70127AB163F74011CD1F5F) line, got ''
> 
> Note that I still got the exact same timeout behaviour, but in this case bzr
> didn't recover from the error and the operation failed (pycurl manages to
> retry until completion if you are patient enough)
> 
> My ubuntu 8.04 VM also shows identical behaviour, both with libcurl and with
> httplib - the symptoms are identical as for the 2 Windows boxes I've tried
> recently (one Vista64, the other XP32).
> 
> All in all it is looking like my network - and quite probably that
> transparent proxy.  Thanks for your help so far and let me know if I can do
> anything else to help track this down.
> 
> Cheers,
> 
> Mark

So that signature *specifically* is indicative of the squid proxy problem. If
you had given me that traceback, I would have pointed you directly to the
known proxy bug. Which as Robert mentioned has been fixed in Squid.

https://bugs.edge.launchpad.net/bzr/+bug/198646

There is also a way to patch bzr to not provoke the bug in squid (which is
part of that bug discussion).

Basically, bzr issues a range request (for, say, bytes 1,000,000 ->
1,000,100), and it then prefixes the header of the file (bytes 0 - 20 or so).

And the problem is that Squid then sees a request starting at 0, and decides
to download the *whole* file, and serve the range request out of cache. Only
it fails to properly do either. I haven't specifically seen it ever try again
and work, so I'm a bit surprised that pycurl eventually succeeds. Perhaps it
ignores the ranges internally?

Anyway, you can patch bzr to split up those requests. So instead of making:

Ranges: 0-10,100000-1000100

It does *two* requests. We don't do that by default because it doubles your
latency to make 2 requests.

John
=:->
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQFIpkmZJdeBCYSNAAMRAlsfAJ9O2ewruxh3hjQ4rizzmXZArMe3GQCgwk1u
t4TrpMQS+3GKYheDs9uVwbg=
=+jqk
-----END PGP SIGNATURE-----



More information about the bazaar mailing list