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 2014/01/03 18:18:41 UTC

[10/50] git commit: TS-2452: Can't access a deleted object

TS-2452: Can't access a deleted object

It's an obvious bug, blame me:(.

Signed-off-by: Yunkai Zhang <qi...@taobao.com>


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

Branch: refs/heads/5.0.x
Commit: fb60e203baffad9aa18c9dec5dc335034052b842
Parents: 9da35d2
Author: Yunkai Zhang <qi...@taobao.com>
Authored: Wed Dec 25 22:36:49 2013 +0800
Committer: Yunkai Zhang <qi...@taobao.com>
Committed: Wed Dec 25 22:49:25 2013 +0800

----------------------------------------------------------------------
 CHANGES                    | 2 ++
 proxy/logging/LogObject.cc | 2 +-
 2 files changed, 3 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/trafficserver/blob/fb60e203/CHANGES
----------------------------------------------------------------------
diff --git a/CHANGES b/CHANGES
index eb361c0..e600391 100644
--- a/CHANGES
+++ b/CHANGES
@@ -1,6 +1,8 @@
                                                          -*- coding: utf-8 -*-
 Changes with Apache Traffic Server 4.2.0
 
+  *) [TS-2452] Can't access a deleted object.
+
   *) [TS-2363] Fix assertion of "Unknown file format type!".
 
   *) [TS-2448] Fix traffic_cop and traffic_manager to obey the proxy.config.local_state_dir setting.

http://git-wip-us.apache.org/repos/asf/trafficserver/blob/fb60e203/proxy/logging/LogObject.cc
----------------------------------------------------------------------
diff --git a/proxy/logging/LogObject.cc b/proxy/logging/LogObject.cc
index 4869448..8790948 100644
--- a/proxy/logging/LogObject.cc
+++ b/proxy/logging/LogObject.cc
@@ -48,12 +48,12 @@ LogBufferManager::preproc_buffers(LogBufferSink *sink) {
       // Still has outstanding references.
       write_list.push(b);
     } else if (_num_flush_buffers > FLUSH_ARRAY_SIZE) {
-      delete b;
       ink_atomic_increment(&_num_flush_buffers, -1);
       Warning("Dropping log buffer, can't keep up.");
       RecIncrRawStat(log_rsb, this_thread()->mutex->thread_holding,
                      log_stat_bytes_lost_before_preproc_stat,
                      b->header()->byte_count);
+      delete b;
     } else {
       new_q.push(b);
     }