Interdiff:
diff --git a/src/Ganeti/WConfd/DeathDetection.hs
b/src/Ganeti/WConfd/DeathDetection.hs
index 3b0e69c..26264a0 100644
--- a/src/Ganeti/WConfd/DeathDetection.hs
+++ b/src/Ganeti/WConfd/DeathDetection.hs
@@ -63,8 +63,8 @@ cleanupLocksTask = forever . runResultT $ do
died <- liftIO (isDead fpath)
when died $ do
logInfo $ show owner ++ " died, releasing locks and reservations"
- persCleanup persistentLocks owner
persCleanup persistentTempRes owner
+ persCleanup persistentLocks owner
_ <- liftIO . E.try $ removeFile fpath
:: WConfdMonad (Either IOError ())
return ()
On Fri, Jul 4, 2014 at 2:15 PM, Klaus Aehlig <[email protected]> wrote:
> On Fri, Jul 04, 2014 at 01:17:59PM +0200, 'Petr Pudlak' via ganeti-devel
> wrote:
> > .. as it needs to be stored and reloaded if WConfd is restarted while
> > jobs are running.
> >
> > Signed-off-by: Petr Pudlak <[email protected]>
> > ---
> > src/Ganeti/Path.hs | 5 +++++
> > src/Ganeti/WConfd/Core.hs | 3 +--
> > src/Ganeti/WConfd/DeathDetection.hs | 3 ++-
> > src/Ganeti/WConfd/Monad.hs | 23 ++++++++++++++++++-----
> > src/Ganeti/WConfd/Persistent.hs | 14 +++++++++++++-
> > src/Ganeti/WConfd/Server.hs | 3 +++
> > src/Ganeti/WConfd/TempRes.hs | 4 ++--
> > 7 files changed, 44 insertions(+), 11 deletions(-)
>
> > +++ b/src/Ganeti/WConfd/DeathDetection.hs
> > @@ -62,8 +62,9 @@ cleanupLocksTask = forever . runResultT $ do
> > let fpath = ciLockFile owner
> > died <- liftIO (isDead fpath)
> > when died $ do
> > - logInfo $ show owner ++ " died, releasing locks"
> > + logInfo $ show owner ++ " died, releasing locks and
> reservations"
> > persCleanup persistentLocks owner
> > + persCleanup persistentTempRes owner
>
> Please release locks last. In the future we might get a dependency that
> ownership of a lock is a prerequisite for certain reservations whereas
> a dependency in the other direction cannot happen. So by switching the
> order (first release temporary reseverations, then release locks) we avoid
> subtle races in the future.
>
> > _ <- liftIO . E.try $ removeFile fpath
> > :: WConfdMonad (Either IOError ())
> > return ()
>
>
> Rest LGTM
>
> --
> Klaus Aehlig
> Google Germany GmbH, Dienerstr. 12, 80331 Muenchen
> Registergericht und -nummer: Hamburg, HRB 86891
> Sitz der Gesellschaft: Hamburg
> Geschaeftsfuehrer: Graham Law, Christine Elizabeth Flores
>