summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Schwenke <martin@meltin.net>2020-02-17 16:20:25 +1100
committerAmitay Isaacs <amitay@samba.org>2020-02-18 02:56:38 +0000
commitc9405aec703a9bb90236ddcb860301339a59fee6 (patch)
treebf16965125164bfe69102fd74e0a39648d51898a
parentc16da0e8f09cb31baab7789ca8cd3bf34514bafc (diff)
downloadsamba-c9405aec703a9bb90236ddcb860301339a59fee6.tar.gz
ctdb-daemon: Check for lock count underflow
This is a programming error. Signed-off-by: Martin Schwenke <martin@meltin.net> Reviewed-by: Amitay Isaacs <amitay@gmail.com>
-rw-r--r--ctdb/server/ctdb_lock.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/ctdb/server/ctdb_lock.c b/ctdb/server/ctdb_lock.c
index 5f032ae568b..478447d76f8 100644
--- a/ctdb/server/ctdb_lock.c
+++ b/ctdb/server/ctdb_lock.c
@@ -198,6 +198,9 @@ static int ctdb_lock_context_destructor(struct lock_context *lock_ctx)
} else {
DLIST_REMOVE(lock_ctx->ctdb->lock_current, lock_ctx);
}
+ if (lock_ctx->ctdb_db->lock_num_current == 0) {
+ ctdb_fatal(NULL, "Lock count is 0 before decrement\n");
+ }
lock_ctx->ctdb_db->lock_num_current--;
CTDB_DECREMENT_STAT(lock_ctx->ctdb, locks.num_current);
CTDB_DECREMENT_DB_STAT(lock_ctx->ctdb_db, locks.num_current);