You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@trafficserver.apache.org by am...@apache.org on 2016/04/03 03:04:39 UTC

trafficserver git commit: TS-4317: Prevent cache stripe recovery from infinite loop.

Repository: trafficserver
Updated Branches:
  refs/heads/master 42d687c47 -> 6ff7aafe4


TS-4317: Prevent cache stripe recovery from infinite loop.


Project: http://git-wip-us.apache.org/repos/asf/trafficserver/repo
Commit: http://git-wip-us.apache.org/repos/asf/trafficserver/commit/6ff7aafe
Tree: http://git-wip-us.apache.org/repos/asf/trafficserver/tree/6ff7aafe
Diff: http://git-wip-us.apache.org/repos/asf/trafficserver/diff/6ff7aafe

Branch: refs/heads/master
Commit: 6ff7aafe42d3d51d3ed8d12828920451c1d3fd34
Parents: 42d687c
Author: Alan M. Carroll <am...@apache.org>
Authored: Sat Apr 2 20:03:50 2016 -0500
Committer: Alan M. Carroll <am...@apache.org>
Committed: Sat Apr 2 20:03:50 2016 -0500

----------------------------------------------------------------------
 iocore/cache/Cache.cc | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/trafficserver/blob/6ff7aafe/iocore/cache/Cache.cc
----------------------------------------------------------------------
diff --git a/iocore/cache/Cache.cc b/iocore/cache/Cache.cc
index 882bd4c..ae25d10 100644
--- a/iocore/cache/Cache.cc
+++ b/iocore/cache/Cache.cc
@@ -1689,8 +1689,10 @@ Vol::handle_recover_from_data(int event, void * /* data ATS_UNUSED */)
       if (s > e)
         s -= round_to_approx_size(doc->len);
       recover_pos -= e - s;
-      if (recover_pos >= skip + len)
+      if (recover_pos >= skip + len) {
+        recover_wrapped = 1;
         recover_pos = start;
+      }
       io.aiocb.aio_nbytes = RECOVERY_SIZE;
       if ((off_t)(recover_pos + io.aiocb.aio_nbytes) > (off_t)(skip + len))
         io.aiocb.aio_nbytes = (skip + len) - recover_pos;