You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@trafficserver.apache.org by yu...@apache.org on 2013/10/01 06:59:48 UTC

[2/2] git commit: TS-2260: Avoid flooding log when log host is down

TS-2260: Avoid flooding log when log host is down

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/4591314f
Tree: http://git-wip-us.apache.org/repos/asf/trafficserver/tree/4591314f
Diff: http://git-wip-us.apache.org/repos/asf/trafficserver/diff/4591314f

Branch: refs/heads/master
Commit: 4591314f6682b695c2b6996bf928c545d617e0c4
Parents: 54883f2
Author: Yunkai Zhang <qi...@taobao.com>
Authored: Mon Sep 30 23:33:52 2013 +0800
Committer: Yunkai Zhang <qi...@taobao.com>
Committed: Tue Oct 1 12:59:11 2013 +0800

----------------------------------------------------------------------
 proxy/logging/Log.cc                  | 2 +-
 proxy/logging/LogCollationClientSM.cc | 8 ++++++--
 proxy/logging/LogCollationClientSM.h  | 1 +
 3 files changed, 8 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/trafficserver/blob/4591314f/proxy/logging/Log.cc
----------------------------------------------------------------------
diff --git a/proxy/logging/Log.cc b/proxy/logging/Log.cc
index ea6493f..ce15131 100644
--- a/proxy/logging/Log.cc
+++ b/proxy/logging/Log.cc
@@ -1382,7 +1382,7 @@ Log::flush_thread_main(void * /* args ATS_UNUSED */)
       //
       while (total_bytes - bytes_written) {
         if (Log::config->logging_space_exhausted) {
-          Warning("logging space exhausted, failed to write file:%s, have dropped (%d) bytes.",
+          Debug("log", "logging space exhausted, failed to write file:%s, have dropped (%d) bytes.",
                   logfile->m_name, (total_bytes - bytes_written));
 
           RecIncrRawStat(log_rsb, mutex->thread_holding,

http://git-wip-us.apache.org/repos/asf/trafficserver/blob/4591314f/proxy/logging/LogCollationClientSM.cc
----------------------------------------------------------------------
diff --git a/proxy/logging/LogCollationClientSM.cc b/proxy/logging/LogCollationClientSM.cc
index e4d2a65..ef865e6 100644
--- a/proxy/logging/LogCollationClientSM.cc
+++ b/proxy/logging/LogCollationClientSM.cc
@@ -71,6 +71,7 @@ LogCollationClientSM::LogCollationClientSM(LogHost * log_host)
     m_pending_event(NULL),
     m_abort_vio(NULL),
     m_abort_buffer(NULL),
+    m_host_is_up(false),
     m_buffer_send_list(NULL),
     m_buffer_in_iocore(NULL),
     m_flow(LOG_COLL_FLOW_ALLOW),
@@ -262,6 +263,7 @@ LogCollationClientSM::client_auth(int event, VIO * /* vio ATS_UNUSED */)
     Debug("log-coll", "[%d]client::client_auth - WRITE_COMPLETE", m_id);
 
     Note("[log-coll] host up [%s:%u]", m_log_host->ip_addr().toString(ipb, sizeof(ipb)), m_log_host->port());
+    m_host_is_up = true;
 
     return client_send(LOG_COLL_EVENT_SWITCH, NULL);
 
@@ -403,13 +405,15 @@ LogCollationClientSM::client_fail(int event, void * /* data ATS_UNUSED */)
     Debug("log-coll", "[%d]client::client_fail - SWITCH", m_id);
     m_client_state = LOG_COLL_CLIENT_FAIL;
 
-    Note("[log-coll] host down [%s:%u]", m_log_host->ip_addr().toString(ipb, sizeof ipb), m_log_host->m_port);
-    {
+    // avoid flooding log when host is down
+    if (m_host_is_up) {
+      Note("[log-coll] host down [%s:%u]", m_log_host->ip_addr().toString(ipb, sizeof ipb), m_log_host->m_port);
       char msg_buf[128];
       snprintf(msg_buf, sizeof(msg_buf), "Collation host %s:%u down",
                m_log_host->ip_addr().toString(ipb, sizeof ipb), m_log_host->m_port
       );
       REC_SignalManager(400, msg_buf);
+      m_host_is_up = false;
     }
 
     // close our NetVConnection (do I need to delete this)

http://git-wip-us.apache.org/repos/asf/trafficserver/blob/4591314f/proxy/logging/LogCollationClientSM.h
----------------------------------------------------------------------
diff --git a/proxy/logging/LogCollationClientSM.h b/proxy/logging/LogCollationClientSM.h
index 594e61c..291fe02 100644
--- a/proxy/logging/LogCollationClientSM.h
+++ b/proxy/logging/LogCollationClientSM.h
@@ -104,6 +104,7 @@ private:
   // to detect server closes (there's got to be a better way to do this)
   VIO *m_abort_vio;
   MIOBuffer *m_abort_buffer;
+  bool m_host_is_up;
 
   // send stuff
   LogBufferList *m_buffer_send_list;