[Bug 503777] [NEW] Loop with moved_temporarily and when using storeurl

frenet renet.f at gmail.com
Wed Jan 6 12:58:06 GMT 2010


Public bug reported:

Binary package hint: squid

As described at : http://wiki.squid-cache.org/ConfigExamples/DynamicContent/YouTube/Discussion there is a bug with http 302 response moved_temporarily when using storeurl.
The storeurl stores the 302 instead of following the redirect and then a loop occurs. 

The fix to ignore small sized object : minimum_object_size 512 bytes is
not always working, just burnt myself with 302 bigger than 512 bytes
from youtube.

The patch described works perfectly on squid_2.7.STABLE7-1ubuntu1 from
lucid. Both Lucid and Karmic are affected by this bug.

The patch is small :
--- src/client_side.c   2008-10-30 07:37:56 +0800
+++ src/client_side.c   2008-11-05 23:44:55 +0800
@@ -2399,6 +2399,18 @@
                is_modified = 0;
        }
     }
+       /* bug fix for 302 moved_temporarily loop bug when using storeurl*/
+       if (mem->reply->sline.status == HTTP_MOVED_TEMPORARILY) {
+       const char *cloc = httpHeaderGetStr(&e->mem_obj->reply->header, HDR_LOCATION);
+       if (!strcmp(http->uri,cloc)) {
+           debug(33, 1) ("Loop Detected: %s Redirect to: %s\n",
+               http->uri,cloc);
+           http->log_type = LOG_TCP_MISS;
+           clientProcessMiss(http);
+               return;
+       } 
+       }
+       /* bug fix end here*/
     stale = refreshCheckHTTPStale(e, r);
     debug(33, 2) ("clientCacheHit: refreshCheckHTTPStale returned %d\n", stale);
     if (stale == 0) {

It was not integrated upstream even in the last head branch. Hope to
have it included in Ubuntu LTS.

** Affects: squid (Ubuntu)
     Importance: Undecided
         Status: New

-- 
Loop with moved_temporarily and when using storeurl
https://bugs.launchpad.net/bugs/503777
You received this bug notification because you are a member of Ubuntu
Server Team, which is subscribed to squid in ubuntu.



More information about the Ubuntu-server-bugs mailing list