Fwd: APT do not work with Squid as a proxy because of pipelining default

2010-05-21 Thread Luigi Gangitano
Hi guys,
I'm sorry to bother you here but a long thread on pipelining support is going 
on on debian-devel. You may wish to add some comments there. :-)

Thread start can be found here:

  http://lists.debian.org/debian-devel/2010/05/msg00494.html

Thanks,

L

Inizio messaggio inoltrato:

> Rinvia-Da: debian-de...@lists.debian.org
> Da: Petter Reinholdtsen 
> Data: 17 maggio 2010 07.05.00 GMT+02.00
> A: debian-de...@lists.debian.org
> Oggetto: APT do not work with Squid as a proxy because of pipelining default
> 
> I am bothered by http://bugs.debian.org/56 >, and the fact
> that apt(-get,itude) do not work with Squid as a proxy.  I would very
> much like to have apt work out of the box with Squid in Squeeze.  To
> fix it one can either change Squid to work with pipelining the way APT
> uses, which the Squid maintainer and developers according to the BTS
> report is unlikely to implement any time soon, or change the default
> setting in apt for Aquire::http::Pipeline-Depth to zero (0).  I've
> added a file like this in /etc/apt/apt.conf.d/ to solve it locally:
> 
>  Aquire::http::Pipeline-Depth 0;
> 
> My question to all of you is simple.  Should the APT default be
> changed or Squid be changed?  Should the bug report be reassigned to
> apt or stay as a bug with Squid?
> 
> Happy hacking,
> -- 
> Petter Reinholdtsen

--
Luigi Gangitano --  -- 
GPG: 1024D/924C0C26: 12F8 9C03 89D3 DB4A 9972  C24A F19B A618 924C 0C26



Re: Fwd: APT do not work with Squid as a proxy because of pipelining default

2010-05-21 Thread Amos Jeffries

Luigi Gangitano wrote:

Hi guys,
I'm sorry to bother you here but a long thread on pipelining support is going 
on on debian-devel. You may wish to add some comments there. :-)

Thread start can be found here:

  http://lists.debian.org/debian-devel/2010/05/msg00494.html

Thanks,

L

Inizio messaggio inoltrato:


Rinvia-Da: debian-de...@lists.debian.org
Da: Petter Reinholdtsen 
Data: 17 maggio 2010 07.05.00 GMT+02.00
A: debian-de...@lists.debian.org
Oggetto: APT do not work with Squid as a proxy because of pipelining default

I am bothered by http://bugs.debian.org/56 >, and the fact
that apt(-get,itude) do not work with Squid as a proxy.  I would very
much like to have apt work out of the box with Squid in Squeeze.  To
fix it one can either change Squid to work with pipelining the way APT
uses, which the Squid maintainer and developers according to the BTS
report is unlikely to implement any time soon, or change the default
setting in apt for Aquire::http::Pipeline-Depth to zero (0).  I've
added a file like this in /etc/apt/apt.conf.d/ to solve it locally:

 Aquire::http::Pipeline-Depth 0;

My question to all of you is simple.  Should the APT default be
changed or Squid be changed?  Should the bug report be reassigned to
apt or stay as a bug with Squid?



Thanks Luigi, you may have to relay this back to the list. I can't seem 
to post a reply to the thread.



I looked at that Debian bug a while back when first looking at 
optimizing the request parsing for Squid. With the thought of increasing 
the Squid threshold for pipelined requests as many are suggesting.



There were a few factors which have so far crushed the idea of solving 
it in Squid alone:


 * Replies with unknown-length need to be end-of-data signalled by 
closing the client TCP link.


 * The IIS and ISA servers behaviour on POST requests with auth or such 
as outlined in our bug http://bugs.squid-cache.org/show_bug.cgi?id=2176 
cause the same sort of problem as above, even if the connection could 
otherwise be kept alive.


 This hits a fundamental flaw in pipelining which Robert Collins 
alluded to but did not explicitly state: that closing the connection 
will erase any chance of getting replies to the following pipelined 
requests. Apt is not alone in failing to re-try unsatisfied requests via 
a new connection.


  Reliable pipelining in Squid requires evading the closing of 
connections. HTTP/1.1 and chunked encoding shows a lot of promise here 
but still require a lot of work to get going.



As noted by David Kalnischkies in 
http://lists.debian.org/debian-devel/2010/05/msg00666.html the Squid 
currently in Debian can be configured trivially to pipeline 2 requests 
concurrently, plus a few more requests in the networking stack buffers 
which will be read in by Squid once the first pipelined request is 
completed.


 A good solution seems to me to involve fixes on both sides. To alter 
the default apt configuration down to a number where the pipeline 
timeouts/errors are less likely to occur. As noted by people around the 
web 1-5 seems to work better than 10; 0 or 1 works flawlessly for most. 
While we work on getting Squid doing more persistent connections and 
faster request handling.


Amos
Squid Proxy Project