diff --git a/app/Main.hs b/app/Main.hs index 36e79c5..c712f55 100644 --- a/app/Main.hs +++ b/app/Main.hs @@ -35,7 +35,6 @@ main = do -- handle unsuccessful join putStrLn $ err <> " Error joining, start listening for incoming requests anyways" - print =<< readTVarIO thisNode wait =<< async (fediMainThreads serverSock thisNode) -- TODO: periodic retry ) diff --git a/src/Hash2Pub/DHTProtocol.hs b/src/Hash2Pub/DHTProtocol.hs index f431da9..e562b98 100644 --- a/src/Hash2Pub/DHTProtocol.hs +++ b/src/Hash2Pub/DHTProtocol.hs @@ -246,7 +246,6 @@ handleIncomingRequest :: LocalNodeStateSTM -- ^ the handling -> SockAddr -- ^ source address of the request -> IO () handleIncomingRequest nsSTM sendQ msgSet sourceAddr = do - putStrLn $ "handling incoming request: " <> show msgSet ns <- readTVarIO nsSTM -- add nodestate to cache now <- getPOSIXTime diff --git a/src/Hash2Pub/FediChord.hs b/src/Hash2Pub/FediChord.hs index 152abd9..061a74f 100644 --- a/src/Hash2Pub/FediChord.hs +++ b/src/Hash2Pub/FediChord.hs @@ -150,6 +150,7 @@ fediChordBootstrapJoin nsSTM (joinHost, joinPort) = Just (FORWARD resultset) -> foldr' (addCacheEntryPure now) cacheAcc resultset ) initCache bootstrapResponse + putStrLn "initialised bootstrap cache" fediChordJoin bootstrapCache nsSTM ) `catch` (\e -> pure . Left $ "Error at bootstrap joining: " <> displayException (e :: IOException)) @@ -191,7 +192,6 @@ maxEntryAge = 600 -- | Periodically iterate through cache, clean up expired entries and verify unverified ones cacheVerifyThread :: LocalNodeStateSTM -> IO () cacheVerifyThread nsSTM = forever $ do - putStrLn "cache verify run: begin" -- get cache (ns, cache) <- atomically $ do ns <- readTVar nsSTM @@ -231,7 +231,7 @@ cacheVerifyThread nsSTM = forever $ do ) pong else pure () ) - + -- check the cache invariant per slice and, if necessary, do a single lookup to the -- middle of each slice not verifying the invariant latestNs <- readTVarIO nsSTM @@ -239,12 +239,10 @@ cacheVerifyThread nsSTM = forever $ do let nodesToQuery targetID = case queryLocalCache latestNs latestCache (lNumBestNodes latestNs) targetID of FOUND node -> [node] FORWARD nodeSet -> remoteNode <$> Set.elems nodeSet - print $ checkCacheSliceInvariants latestNs latestCache forM_ (checkCacheSliceInvariants latestNs latestCache) (\targetID -> forkIO $ sendQueryIdMessages targetID latestNs (Just (1 + jEntriesPerSlice latestNs)) (nodesToQuery targetID) >> pure () -- ask for 1 entry more than j because of querying the middle ) - - putStrLn "cache verify run: end" + threadDelay $ 10^6 * round maxEntryAge `div` 20 @@ -255,7 +253,7 @@ checkCacheSliceInvariants :: LocalNodeState -> NodeCache -> [NodeID] -- ^ list of middle IDs of slices not -- ^ fulfilling the invariant -checkCacheSliceInvariants ns +checkCacheSliceInvariants ns | isJoined ns = checkPredecessorSlice jEntries (getNid ns) startBound lastPred <> checkSuccessorSlice jEntries (getNid ns) startBound lastSucc | otherwise = const [] where @@ -311,8 +309,6 @@ stabiliseThread :: LocalNodeStateSTM -> IO () stabiliseThread nsSTM = forever $ do ns <- readTVarIO nsSTM - putStrLn "stabilise run: begin" - -- iterate through the same snapshot, collect potential new neighbours -- and nodes to be deleted, and modify these changes only at the end of -- each stabilise run. @@ -360,7 +356,6 @@ stabiliseThread nsSTM = forever $ do writeTVar nsSTM $ addSuccessors [nextEntry] latestNs ) - putStrLn "stabilise run: end" -- TODO: make delay configurable threadDelay (60 * 10^6) where @@ -425,7 +420,6 @@ sendThread sock sendQ = forever $ do -- | Sets up and manages the main server threads of FediChord fediMainThreads :: Socket -> LocalNodeStateSTM -> IO () fediMainThreads sock nsSTM = do - (\x -> putStrLn $ "launching threads, ns: " <> show x) =<< readTVarIO nsSTM sendQ <- newTQueueIO recvQ <- newTQueueIO -- concurrently launch all handler threads, if one of them throws an exception diff --git a/src/Hash2Pub/FediChordTypes.hs b/src/Hash2Pub/FediChordTypes.hs index 660eb49..fbd3295 100644 --- a/src/Hash2Pub/FediChordTypes.hs +++ b/src/Hash2Pub/FediChordTypes.hs @@ -80,8 +80,6 @@ import qualified Network.ByteOrder as NetworkBytes import Hash2Pub.Utils -import Debug.Trace (trace) - -- define protocol constants diff --git a/test/FediChordSpec.hs b/test/FediChordSpec.hs index 1e94628..545c3dd 100644 --- a/test/FediChordSpec.hs +++ b/test/FediChordSpec.hs @@ -276,7 +276,7 @@ spec = do ownNode <- setNid ownId <$> exampleLocalNode let (FORWARD qResult) = queryLocalCache ownNode bootstrapCache 2 ownId remoteNode (head $ Set.elems qResult) `shouldBe` bootstrapNode - + -- some example data