Всем привет!
Есть у меня некоторое количество домашних сервачков на Debian и squid-deb-proxy на squid 3.5, родительский и дочерний, между которыми сеть фигового качества.На дочернем прописано:
cache_peer parent-server-hostname parent 8000 0 no-query no-digest no-netdb-exchange default connect-timeout=600 standby=5 connect-fail-limit=10240
never_direct allow all
Собственно, все эти параметры я добавил в попытках принудить его обращаться на родительский сервер ни смотря ни на что, и не получилось.
Клиент начинает качать пакеты нормально, но в какой-то момент дочерний сервер начинает отвечать на все запросы ошибкой 500
1446300676.201 0 10.42.2.60 TCP_MISS/500 4560 GET http://ftp.debian.org/debian/pool/main/libr/libreoffice/libr... - HIER_NONE/- text/html
1446300676.205 0 10.42.2.60 TCP_MISS/500 4477 GET http://ftp.debian.org/debian/pool/main/e/evince/evince_3.18.... - HIER_NONE/- text/html
1446300676.208 0 10.42.2.60 TCP_MISS/500 4489 GET http://ftp.debian.org/debian/pool/main/e/evince/evince-gtk_3... - HIER_NONE/- text/html
1446300676.212 0 10.42.2.60 TCP_MISS/500 4507 GET http://ftp.debian.org/debian/pool/main/e/evince/libevdocumen... - HIER_NONE/- text/html
1446300676.215 0 10.42.2.60 TCP_MISS/500 4495 GET http://ftp.debian.org/debian/pool/main/e/evince/libevview3-3... - HIER_NONE/- text/html
У него пропадает родительский сервер из доступных.
2015/10/31 16:59:45.394 kid1| 15,5| neighbors.cc(759) peerDigestLookup: peerDigestLookup: peer parent-server-hostname
2015/10/31 16:59:45.394 kid1| 15,5| neighbors.cc(763) peerDigestLookup: peerDigestLookup: gone!
2015/10/31 16:59:45.394 kid1| 44,3| peer_select.cc(685) peerGetSomeParent: GET ftp.debian.org
2015/10/31 16:59:45.394 kid1| 15,3| neighbors.cc(350) getRoundRobinParent: returning NULL
2015/10/31 16:59:45.394 kid1| 15,3| neighbors.cc(400) getWeightedRoundRobinParent: getWeightedRoundRobinParent: returning NULL
2015/10/31 16:59:45.394 kid1| 15,3| neighbors.cc(312) getFirstUpParent: getFirstUpParent: returning NULL
2015/10/31 16:59:45.394 kid1| 15,3| neighbors.cc(490) getDefaultParent: getDefaultParent: returning NULL
2015/10/31 16:59:45.394 kid1| 15,3| neighbors.cc(490) getDefaultParent: getDefaultParent: returning NULL
2015/10/31 16:59:45.394 kid1| 44,2| peer_select.cc(280) peerSelectDnsPaths: Failed to select source for 'http://ftp.debian.org/debian/pool/main/libr/libreoffice/libr...'
2015/10/31 16:59:45.394 kid1| 44,2| peer_select.cc(281) peerSelectDnsPaths: always_direct = DENIED
2015/10/31 16:59:45.394 kid1| 44,2| peer_select.cc(282) peerSelectDnsPaths: never_direct = ALLOWED
2015/10/31 16:59:45.394 kid1| 44,2| peer_select.cc(295) peerSelectDnsPaths: timedout = 0
2015/10/31 16:59:45.409 kid1| 93,5| AsyncCall.cc(56) cancel: will not call Initiate::noteInitiatorAborted [call28424] because job gone
2015/10/31 16:59:45.409 kid1| 93,5| AsyncCall.cc(48) make: will not call Initiate::noteInitiatorAborted [call28424] because of job gone
При этом родительский сервер по факту доступен, просто видимо в какой-то момент мигнула сеть. Связь восстановилась, а дочерний сервер продолжает отфутболивать клиентов, пока его не перезапустишь.
Как заставить squid пытаться переподключиться к родительскому пиру до посинения, вместо того чтобы сразу отфутболивать клиентов ошибкой 500?