You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@trafficserver.apache.org by we...@apache.org on 2013/02/06 09:33:51 UTC

git commit: TS-1653 we should not retry dns lookup after timeout happens

Updated Branches:
  refs/heads/master 7fd61b356 -> bc7a84441


TS-1653 we should not retry dns lookup after timeout happens


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

Branch: refs/heads/master
Commit: bc7a84441ca1d6c13d1117b9515c879c70cf9d3b
Parents: 7fd61b3
Author: weijin <ta...@taobao.com>
Authored: Wed Feb 6 16:32:14 2013 +0800
Committer: weijin <ta...@taobao.com>
Committed: Wed Feb 6 16:32:14 2013 +0800

----------------------------------------------------------------------
 CHANGES                 |    2 ++
 iocore/hostdb/HostDB.cc |   15 ++++++++-------
 2 files changed, 10 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/trafficserver/blob/bc7a8444/CHANGES
----------------------------------------------------------------------
diff --git a/CHANGES b/CHANGES
index f7076c9..468cb5c 100644
--- a/CHANGES
+++ b/CHANGES
@@ -1,6 +1,8 @@
                                                          -*- coding: utf-8 -*-
 Changes with Apache Traffic Server 3.3.1
 
+  *) [TS-1653] prevent the crash that retry dns lookup after timeout
+
   *) [TS-1006] memory management, cut down memory usage
      Author: Yunkai Zhang <qi...@taobao.com>
 

http://git-wip-us.apache.org/repos/asf/trafficserver/blob/bc7a8444/iocore/hostdb/HostDB.cc
----------------------------------------------------------------------
diff --git a/iocore/hostdb/HostDB.cc b/iocore/hostdb/HostDB.cc
index db3c6e3..1d9ef72 100644
--- a/iocore/hostdb/HostDB.cc
+++ b/iocore/hostdb/HostDB.cc
@@ -1560,16 +1560,17 @@ HostDBContinuation::dnsEvent(int event, HostEnt * e)
       do_put_response(m, r, NULL);
 #endif
 
-    // Check for IP family failover
-    if (failed && check_for_retry(md5.db_mark, host_res_style)) {
-      this->refresh_MD5();
-      SET_CONTINUATION_HANDLER(this, (HostDBContHandler) & HostDBContinuation::probeEvent);
-      thread->schedule_in(this, MUTEX_RETRY_DELAY);
-      return EVENT_CONT;
-    }
     // try to callback the user
     //
     if (action.continuation) {
+      // Check for IP family failover
+      if (failed && check_for_retry(md5.db_mark, host_res_style)) {
+        this->refresh_MD5();
+        SET_CONTINUATION_HANDLER(this, (HostDBContHandler) & HostDBContinuation::probeEvent);
+        thread->schedule_in(this, MUTEX_RETRY_DELAY);
+        return EVENT_CONT;
+      }
+
       MUTEX_TRY_LOCK_FOR(lock, action.mutex, thread, action.continuation);
       if (!lock) {
         remove_trigger_pending_dns();