diff --git a/ctdb/server/ctdb_lock.c b/ctdb/server/ctdb_lock.c index 46498e079ef..3a58711bc4b 100644 --- a/ctdb/server/ctdb_lock.c +++ b/ctdb/server/ctdb_lock.c @@ -392,8 +392,10 @@ static void ctdb_lock_timeout_handler(struct tevent_context *ev, void *private_data) { static char debug_locks[PATH_MAX+1] = ""; + static struct timeval last_debug_time; struct lock_context *lock_ctx; struct ctdb_context *ctdb; + struct timeval now; pid_t pid; double elapsed_time; int new_timer; @@ -418,6 +420,14 @@ static void ctdb_lock_timeout_handler(struct tevent_context *ev, goto skip_lock_debug; } + /* Restrict log debugging to once per second */ + now = timeval_current(); + if (last_debug_time.tv_sec == now.tv_sec) { + goto skip_lock_debug; + } + + last_debug_time.tv_sec = now.tv_sec; + if (ctdb_set_helper("lock debugging helper", debug_locks, sizeof(debug_locks), "CTDB_DEBUG_LOCKS",