-
Notifications
You must be signed in to change notification settings - Fork 59
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Uses closed connection from a proxy (e.g. squid2) #68
Comments
We have the same error when forwarding connections through spiped with Cabal built against the latest HTTP version. |
@bergmark: Thanks. Maybe |
I'll ask my colleagues about it tomorrow. |
Just to set expectations: As far as I know HTTP has one active maintainer (me) and zero long-term developers. Here I use "maintainer" in the sense of merging patches, making releases, perhaps the odd minor fix particularly when a new GHC comes along, and "developer" in the sense of people spending significant amounts of time working on fixing bugs and developing new features. A reliable repro case, would definitely be a significant step towards getting this fixed, but it'll still need someone to make the fix. Ideally a repro would be expressed as a self-contained addition to the test-suite, but this may be harder if it relies on external software such as spiped. |
I have been debugging on the issue. Cabal receives a message like this: proxy uri host: 127.0.0.1, port: :3129 Whenever we see "close" messages in the response, we clean the connection pool using the isTCPConnectedTo function. But the problem here is, the isTCPConnectedTo doesn't return False even though we receive "close" message. Any pointers on how to tackle this problem ? |
There is a bug that is triggered by using squid2 (haskell/HTTP#68) and helmut found out that it does not happen with squid3. Hence use squid3.
To clarify here as well, this is a regression in |
OK, hopefully tracking it down will be much easier then. The main difference between 4000.2.17 and 4000.2.16 is that openTCPConnection_ was rewritten in commit 5c1c7ba. It's not immediately obvious to me why that would cause this problem, but would you be able to verify if that commit triggers the problem, or otherwise bisect to figure out which other commit is responsible? |
Temporarily maintaining a branch without IPv6 support to avoid issue #68
Yep, that's the offending commit! |
Hmm - not really obvious why that would cause the symptoms described above. Any chance of a script that reproduces the problem? Even if it relies on having spiped installed it'd at least help with debugging, if not automated testing. |
Also pinging @dermesser who wrote the commit - any thoughts about how it might be triggering this problem? |
Just a small bump, as I just ran into the problem of |
I've hit this as well. Will try downgrading HTP. |
The
where there's no proxy at This ticket is about the more restricted problem with proxies, introduced with 5c1c7ba. @psibi wrote:
At that point, did the client side already react to Regarding 5c1c7ba, there's a bunch of undocumented changes in there, and if anybody has the setup to debug this problem, it'd help to bisect those changes further. None of that should make a difference, but some does, and they interact with huge chunks of code. |
This is related to #14, which may have not been fixed properly. When using
cabal update
built withHTTP-4000.2.17
and using a squid2 proxy, I getcabal: does not exist
. A friend of mine did some debugging and found out:It does not happen with squid3, or perl’s
HTTP::Proxy
.The text was updated successfully, but these errors were encountered: