Hi there
Amos Jeffries wrote:
If you have time to dig into it the logics or CONNECT are in src/tunnel.cc.
NP: The peerSelect logics produce a list of potential destinations which
are supposed to be walked through and attempted until one succeeds.
Failure sent to the client only when there are none left to try or
connection timeout aborts the overall process.
For a cache.log trace of the tunnel operations use debug_options 26,4
Look for "comm failure recovery." for when failover is attempted.
This is a test with https://lists.debian.org/
IP addresses 82.195.75.100 and 2001:41b8:202:deb:216:36ff:fe40:4002
It seems to decide to try again, without actually trying again;
2014/04/16 19:08:41.178 kid1| tunnel.cc(650) tunnelStart:
2014/04/16 19:08:41.179 kid1| tunnel.cc(680) tunnelStart: 'CONNECT
lists.debian.org:443 HTTP1.1'
2014/04/16 19:08:41.211 kid1| tunnel.cc(768) tunnelPeerSelectComplete:
paths=2, p[0]={local=[::]
remote=[2001:41b8:202:deb:216:36ff:fe40:4002]:443 flags=1},
serverDest[0]={local=[::]
remote=[2001:41b8:202:deb:216:36ff:fe40:4002]:443 flags=1}
2014/04/16 19:08:41.211 kid1| AsyncCall.cc(18) AsyncCall: The AsyncCall
tunnelConnectDone constructed, this=0xb850cbd0 [call3934863]
2014/04/16 19:08:43.960 kid1| AsyncCall.cc(85) ScheduleCall:
ConnOpener.cc(132) will call tunnelConnectDone(local=[::]
remote=[2001:41b8:202:deb:216:36ff:fe40:4002]:443 flags=1, errno=110,
flag=-4, data=0xbaae7270) [call3934863]
2014/04/16 19:08:43.961 kid1| AsyncCallQueue.cc(51) fireNext: entering
tunnelConnectDone(local=[::]
remote=[2001:41b8:202:deb:216:36ff:fe40:4002]:443 flags=1, errno=110,
flag=-4, data=0xbaae7270)
2014/04/16 19:08:43.961 kid1| AsyncCall.cc(30) make: make call
tunnelConnectDone [call3934863]
2014/04/16 19:08:43.961 kid1| tunnel.cc(577) tunnelConnectDone:
local=[::] remote=[2001:41b8:202:deb:216:36ff:fe40:4002]:443 flags=1,
comm failure recovery.
2014/04/16 19:08:43.961 kid1| tunnel.cc(599) tunnelConnectDone:
terminate with error.
2014/04/16 19:08:43.961 kid1| AsyncCallQueue.cc(53) fireNext: leaving
tunnelConnectDone(local=[::]
remote=[2001:41b8:202:deb:216:36ff:fe40:4002]:443 flags=1, errno=110,
flag=-4, data=0xbaae7270)
2014/04/16 19:08:43.962 kid1| tunnel.cc(557) tunnelErrorComplete: FD 9
2014/04/16 19:08:43.962 kid1| tunnel.cc(168) tunnelClientClosed:
local=[2001:888:1533:1::1]:8080 remote=[2001:888:1533:1::6]:53488 flags=1
2014/04/16 19:08:43.962 kid1| tunnel.cc(185) tunnelStateFree:
tunnelState=0xbaae7270
Regards,
Rob