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;