From: Eduard Bagdasaryan Date: Thu, 2 Jul 2020 13:57:57 +0000 (+0300) Subject: Bug 5055 FATAL FwdState::noteDestinationsEnd exception: opening() X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=f0b095e6ee02dc69e2810cdb8a78ac4a594ce7f7;p=thirdparty%2Fsquid.git Bug 5055 FATAL FwdState::noteDestinationsEnd exception: opening() The bug was caused by 25b0ce4. Other symptoms are: assertion failed: store.cc:1793: "isEmpty()" assertion failed: FwdState.cc:501: "serverConnection() == conn" assertion failed: FwdState.cc:1037: "!opening()" This happened because FwdState::connectStart() was called prematurely, when the previous connection returned by HappyConnOpener is open (but FwdState::connOpener is nil). --- diff --git a/src/FwdState.cc b/src/FwdState.cc index c9fa449bcf..f97e0e554a 100644 --- a/src/FwdState.cc +++ b/src/FwdState.cc @@ -579,7 +579,7 @@ FwdState::noteDestination(Comm::ConnectionPointer path) destinations->addPath(path); - if (Comm::IsConnOpen(serverConn)) { + if (destinationReceipt) { // We are already using a previously opened connection, so we cannot be // waiting for connOpener. We still receive destinations for backup. Must(!opening()); @@ -619,7 +619,7 @@ FwdState::noteDestinationsEnd(ErrorState *selectionError) // if all of them fail, forwarding as whole will fail Must(!selectionError); // finding at least one path means selection succeeded - if (Comm::IsConnOpen(serverConn)) { + if (destinationReceipt) { // We are already using a previously opened connection, so we cannot be // waiting for connOpener. We were receiving destinations for backup. Must(!opening());