You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@trafficserver.apache.org by zw...@apache.org on 2013/10/27 22:37:00 UTC

[35/50] [abbrv] git commit: TS-2139 fix the bug of purge twice to remove the doc if enable-interim-cache

TS-2139 fix the bug of purge twice to remove the doc if enable-interim-cache


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

Branch: refs/heads/5.0.x
Commit: a3d1208777c7a232250df65d4409aae1aa58afca
Parents: a2809d1
Author: weijin <ta...@taobao.com>
Authored: Wed Oct 23 11:00:30 2013 +0800
Committer: weijin <ta...@taobao.com>
Committed: Wed Oct 23 11:06:31 2013 +0800

----------------------------------------------------------------------
 CHANGES               | 2 ++
 iocore/cache/Cache.cc | 7 +++++++
 2 files changed, 9 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/trafficserver/blob/a3d12087/CHANGES
----------------------------------------------------------------------
diff --git a/CHANGES b/CHANGES
index a626df1..77a834f 100644
--- a/CHANGES
+++ b/CHANGES
@@ -1,6 +1,8 @@
                                                          -*- coding: utf-8 -*-
 Changes with Apache Traffic Server 4.1.0
 
+  *) [TS-2139] Fix PURGE twice to remove object in cache if enable-interim-cache
+
   *) [TS-2216] Fix cquuh log tag, which does not calculate the right
    string length.
 

http://git-wip-us.apache.org/repos/asf/trafficserver/blob/a3d12087/iocore/cache/Cache.cc
----------------------------------------------------------------------
diff --git a/iocore/cache/Cache.cc b/iocore/cache/Cache.cc
index 9256ea5..e417ab8 100644
--- a/iocore/cache/Cache.cc
+++ b/iocore/cache/Cache.cc
@@ -2720,6 +2720,13 @@ CacheVC::removeEvent(int /* event ATS_UNUSED */, Event * /* e ATS_UNUSED */)
   Lcollision:
     // check for collision
     if (dir_probe(&key, vol, &dir, &last_collision) > 0) {
+#if TS_USE_INTERIM_CACHE == 1
+      if (dir_ininterim(&dir)) {
+        dir_delete(&key, vol, &dir);
+        last_collision = NULL;
+        goto Lcollision;
+      }
+#endif
       int ret = do_read_call(&key);
       if (ret == EVENT_RETURN)
         goto Lread;