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