From 470ce6f39af71d77b36e68e17c6033b2d73d4654 Mon Sep 17 00:00:00 2001 From: Trolli Schmittlauch Date: Sat, 15 Aug 2020 23:58:47 +0200 Subject: [PATCH] correct the slice of transfered tags at leave --- src/Hash2Pub/FediChord.hs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/Hash2Pub/FediChord.hs b/src/Hash2Pub/FediChord.hs index c55d94c..44ea80a 100644 --- a/src/Hash2Pub/FediChord.hs +++ b/src/Hash2Pub/FediChord.hs @@ -293,8 +293,11 @@ fediChordVserverLeave ns = do successorLeave <- liftIO $ sendUntilSuccess 0 -- trigger service data transfer for abandoned key space migrateToNode <- liftEither successorLeave + let lowerKeyBound = maybe (getNid ns) getNid $ headMay (predecessors ns) ownService <- nodeService <$> (liftIO . readTVarIO $ parentRealNode ns) - migrationResult <- liftIO $ migrateData ownService (getNid ns) (getNid migrateToNode) (getDomain migrateToNode, fromIntegral $ getServicePort migrateToNode) + -- previously held data is the one between the immediate predecessor and + -- the own ID + migrationResult <- liftIO $ migrateData ownService lowerKeyBound (getNid ns) (getDomain migrateToNode, fromIntegral $ getServicePort migrateToNode) liftEither migrationResult