]> git.ipfire.org Git - thirdparty/squid.git/commitdiff
Bug 3111: Mid-term fix for the forward.cc "err" assertion.
authorAlex Rousskov <rousskov@measurement-factory.com>
Thu, 24 Jan 2013 16:22:45 +0000 (09:22 -0700)
committerAlex Rousskov <rousskov@measurement-factory.com>
Thu, 24 Jan 2013 16:22:45 +0000 (09:22 -0700)
The assert is triggered when a close handler for the server connection
destroys FwdState before we have received anything from the origin server.
Instead of asserting, we now respond with a 502 (Bad Gateway) ERR_READ_ERROR.

That error seems the most appropriate single choice among available ones, but
it may be misleading (in access.log) when the close handler was called due to
client problems. Hopefully, another error will be logged in most of those
cases.

src/forward.cc

index 434969bd255da3c0672d10ab8099983934f94712..084855b5682c16dae71f78acf9f0e5fc254f9e0c 100644 (file)
@@ -223,6 +223,8 @@ FwdState::completed()
 
     if (entry->store_status == STORE_PENDING) {
         if (entry->isEmpty()) {
+            if (!err) // we quit (e.g., fd closed) before an error or content
+                fail(new ErrorState(ERR_READ_ERROR, HTTP_BAD_GATEWAY, request));
             assert(err);
             errorAppendEntry(entry, err);
             err = NULL;