// no more slow ops in flight
return false;
}
+ if (!op.warn_interval_multiplier)
+ return true;
slow++;
if (warned >= log_threshold) {
// enough samples of slow ops
op.warn_interval_multiplier *= 2;
};
int slow = 0;
- if (with_slow_ops_in_flight(&oldest_secs, &slow, &warned, warn_on_slow_op)) {
+ if (with_slow_ops_in_flight(&oldest_secs, &slow, &warned, warn_on_slow_op) &&
+ slow > 0) {
stringstream ss;
ss << slow << " slow requests, "
<< warned << " included below; oldest blocked for > "
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();
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