]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
mds: don't report slow request for blocked filelock request 22782/head
authorYan, Zheng <zyan@redhat.com>
Sat, 28 Apr 2018 09:00:09 +0000 (17:00 +0800)
committerYan, Zheng <zyan@redhat.com>
Mon, 2 Jul 2018 02:27:30 +0000 (10:27 +0800)
Signed-off-by: "Yan, Zheng" <zyan@redhat.com>
Fixes: http://tracker.ceph.com/issues/22428
(cherry picked from commit e4160d7e783e086a044926faddcc6023713749bf)

 Conflicts:
src/common/TrackedOp.cc

src/common/TrackedOp.cc
src/common/TrackedOp.h
src/mds/Server.cc

index bd605e54cc7c6bc3bd5b3595f8393410c2517cd8..4ed2fa48bd6f3f515835770045678a2bbcc5b25f 100644 (file)
@@ -341,6 +341,10 @@ bool OpTracker::check_ops_in_flight(std::vector<string> &warning_vector, int *sl
     auto i = sdata->ops_in_flight_sharded.begin();
     while (i != sdata->ops_in_flight_sharded.end() &&
           i->get_initiated() < too_old) {
+
+      if (!i->warn_interval_multiplier)
+       continue;
+
       (*slow)++;
 
       // exponential backoff of warning intervals
index 9435a1913c063febbb74ad8da243062dd5aa5b50..dea88df4c257db22fdcc9b44f994b1fb9968b14c 100644 (file)
@@ -288,6 +288,10 @@ public:
   void mark_event(const char *event,
                  utime_t stamp=ceph_clock_now());
 
+  void mark_nowarn() {
+    warn_interval_multiplier = 0;
+  }
+
   virtual const char *state_string() const {
     Mutex::Locker l(lock);
     return events.rbegin()->c_str();
index 6e9c61191d3f45d6bcc56243dcf25c1d4f38d3a7..fd48bea1918839a484920ffcbd5d4e18e2951803 100644 (file)
@@ -4000,6 +4000,8 @@ void Server::handle_client_file_setlock(MDRequestRef& mdr)
        mdr->more()->flock_was_waiting = true;
        mds->locker->drop_locks(mdr.get());
        mdr->drop_local_auth_pins();
+       mdr->mark_event("failed to add lock, waiting");
+       mdr->mark_nowarn();
        cur->add_waiter(CInode::WAIT_FLOCK, new C_MDS_RetryRequest(mdcache, mdr));
       }
     } else