From 614904fa7a31bf6f69074238b7e710a20e05e1bb Mon Sep 17 00:00:00 2001 From: Gaurav Yadav Date: Thu, 5 Oct 2017 23:44:46 +0530 Subject: glusterd : introduce timer in mgmt_v3_lock Problem: In a multinode environment, if two of the op-sm transactions are initiated on one of the receiver nodes at the same time, there might be a possibility that glusterd may end up in stale lock. Solution: During mgmt_v3_lock a registration is made to gf_timer_call_after which release the lock after certain period of time Change-Id: I16cc2e5186a2e8a5e35eca2468b031811e093843 BUG: 1499004 Signed-off-by: Gaurav Yadav --- libglusterfs/src/common-utils.h | 2 +- libglusterfs/src/mem-types.h | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) (limited to 'libglusterfs') diff --git a/libglusterfs/src/common-utils.h b/libglusterfs/src/common-utils.h index eb3a8f3ac77..76dfe0666f9 100644 --- a/libglusterfs/src/common-utils.h +++ b/libglusterfs/src/common-utils.h @@ -102,7 +102,7 @@ void trap (void); #define GF_CLNT_INSECURE_PORT_CEILING (GF_IANA_PRIV_PORTS_START - 1) #define GF_PORT_MAX 65535 #define GF_PORT_ARRAY_SIZE ((GF_PORT_MAX + 7) / 8) - +#define GF_LOCK_TIMER 180 #define GF_MINUTE_IN_SECONDS 60 #define GF_HOUR_IN_SECONDS (60*60) #define GF_DAY_IN_SECONDS (24*60*60) diff --git a/libglusterfs/src/mem-types.h b/libglusterfs/src/mem-types.h index c2ac088f639..64d0e90e1bd 100644 --- a/libglusterfs/src/mem-types.h +++ b/libglusterfs/src/mem-types.h @@ -175,6 +175,7 @@ enum gf_common_mem_types_ { gf_common_mt_pthread_t, gf_common_ping_local_t, gf_common_volfile_t, + gf_common_mt_mgmt_v3_lock_timer_t, gf_common_mt_end }; #endif -- cgit