Now that we are generating the set of possible peers before attempting to connect. The retry_on_error directive is no longer repeatedly cycling through the peer selecting process failing on one peer until that peer works.

The maybe-direct case seems to have been depending on this behaviour to locate alternative peers before going DIRECT. The attached patch seeks to make the maybe-direct case produce a list of all available parents with the specific algorithm choice first.

Amos
--
Please be using
  Current Stable Squid 2.7.STABLE9 or 3.1.15
  Beta testers wanted for 3.2.0.12
=== modified file 'src/peer_select.cc'
--- src/peer_select.cc	2011-09-18 00:54:22 +0000
+++ src/peer_select.cc	2011-09-18 01:18:39 +0000
@@ -435,8 +435,10 @@
         if (Config.onoff.prefer_direct)
             peerGetSomeDirect(ps);
 
-        if (request->flags.hierarchical || !Config.onoff.nonhierarchical_direct)
+        if (request->flags.hierarchical || !Config.onoff.nonhierarchical_direct) {
             peerGetSomeParent(ps);
+            peerGetAllParents(ps);
+        }
 
         if (!Config.onoff.prefer_direct)
             peerGetSomeDirect(ps);

Reply via email to