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;