On Mon, Mar 23, 2015 at 04:46:29PM +0100, 'Klaus Aehlig' via ganeti-devel wrote:
Now that WConfD has a livelock file of its own,
it needs to ignore it in clean up operations.
Signed-off-by: Klaus Aehlig <[email protected]>
---
src/Ganeti/WConfd/DeathDetection.hs | 9 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)
diff --git a/src/Ganeti/WConfd/DeathDetection.hs
b/src/Ganeti/WConfd/DeathDetection.hs
index 7145b99..ecfb5ce 100644
--- a/src/Ganeti/WConfd/DeathDetection.hs
+++ b/src/Ganeti/WConfd/DeathDetection.hs
@@ -66,10 +66,13 @@ cleanupLocksTask :: WConfdMonadInt ()
cleanupLocksTask = forever . runResultT $ do
logDebug "Death detection timer fired"
owners <- liftM L.lockOwners readLockAllocation
+ mylivelock <- liftM dhLivelock daemonHandle
logDebug $ "Current lock owners: " ++ show owners
let cleanupIfDead owner = do
let fpath = ciLockFile owner
- died <- liftIO (isDead fpath)
+ died <- if fpath == mylivelock
+ then return False
+ else liftIO (isDead fpath)
when died $ do
logInfo $ show owner ++ " died, releasing locks and reservations"
persCleanup persistentTempRes owner
@@ -81,7 +84,9 @@ cleanupLocksTask = forever . runResultT $ do
remainingFiles <- liftIO listLiveLocks
logDebug $ "Livelockfiles remaining: " ++ show remainingFiles
let cleanupStaleIfDead fpath = do
- died <- liftIO (isDead fpath)
+ died <- if fpath == mylivelock
+ then return False
+ else liftIO (isDead fpath)
when died $ do
logInfo $ "Cleaning up stale file " ++ fpath
_ <- liftIO . E.try $ removeFile fpath
--
2.2.0.rc0.207.ga3a616c
LGTM