From 91663b86af6df6bb44a0fc3481e1c0f6e524679f Mon Sep 17 00:00:00 2001 From: Francesco Chemolli Date: Thu, 9 Jul 2015 15:50:22 +0200 Subject: [PATCH] Check invariant in DiskdFile::readDone (CID 980997) --- src/DiskIO/DiskDaemon/DiskdFile.cc | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/DiskIO/DiskDaemon/DiskdFile.cc b/src/DiskIO/DiskDaemon/DiskdFile.cc index 3d115a0adc..a257012a27 100644 --- a/src/DiskIO/DiskDaemon/DiskdFile.cc +++ b/src/DiskIO/DiskDaemon/DiskdFile.cc @@ -348,8 +348,11 @@ DiskdFile::readDone(diomsg * M) ReadRequest::Pointer readRequest = dynamic_cast(M->requestor); /* remove the free protection */ - if (readRequest != NULL) - readRequest->unlock(); + if (readRequest != NULL) { + const uint32_t lcount = readRequest->unlock(); + if (lcount == 0) + debugs(79, DBG_IMPORTANT, "invariant check failed: redRequest reference count is 0"); + } if (M->status < 0) { ++diskd_stats.read.fail; -- 2.47.3