wip, hunting busyloops

This commit is contained in:
voidlizard 2025-03-04 18:43:46 +03:00
parent a85a95d1f2
commit cc001b0451
3 changed files with 27 additions and 17 deletions

View File

@ -1319,6 +1319,11 @@ runPeer opts = respawnOnError opts $ do
setProbe rpcmsg rpcProbe setProbe rpcmsg rpcProbe
addProbe rpcProbe addProbe rpcProbe
let doCleanupByPassMessaging = withPeerM penv do
debug $ red "doCleanupByPassMessaging"
pips <- getKnownPeers @L4Proto
cleanupByPassMessaging byPass pips
let rpcctx = RPC2Context { rpcSelf = myself let rpcctx = RPC2Context { rpcSelf = myself
, rpcConfig = fromPeerConfig conf , rpcConfig = fromPeerConfig conf
, rpcMessaging = rpcmsg , rpcMessaging = rpcmsg
@ -1331,6 +1336,7 @@ runPeer opts = respawnOnError opts $ do
, rpcByPassInfo = liftIO (getStat byPass) , rpcByPassInfo = liftIO (getStat byPass)
, rpcProbes = probes , rpcProbes = probes
, rpcDoFetch = liftIO . fetchHash penv , rpcDoFetch = liftIO . fetchHash penv
, rpcCleanupByPassMessaging = doCleanupByPassMessaging
, rpcDoRefChanHeadPost = refChanHeadPostAction , rpcDoRefChanHeadPost = refChanHeadPostAction
, rpcDoRefChanPropose = refChanProposeAction , rpcDoRefChanPropose = refChanProposeAction
, rpcDoRefChanNotify = refChanNotifyAction , rpcDoRefChanNotify = refChanNotifyAction

View File

@ -218,6 +218,9 @@ instance (e ~ L4Proto, MonadUnliftIO m, HasRpcContext PeerAPI RPC2Context m) =>
_ -> do _ -> do
pure nil pure nil
entry $ bindMatch "test:cleanupByPassMessaging" $ const $ do
liftIO rpcCleanupByPassMessaging
pure $ mkSym "done"
entry $ bindMatch "test:explode" $ const do entry $ bindMatch "test:explode" $ const do

View File

@ -43,6 +43,7 @@ data RPC2Context =
, rpcBrains :: SomeBrains L4Proto , rpcBrains :: SomeBrains L4Proto
, rpcByPassInfo :: IO ByPassStat , rpcByPassInfo :: IO ByPassStat
, rpcProbes :: TVar [AnyProbe] , rpcProbes :: TVar [AnyProbe]
, rpcCleanupByPassMessaging :: IO ()
, rpcDoFetch :: HashRef -> IO () , rpcDoFetch :: HashRef -> IO ()
, rpcDoRefChanHeadPost :: HashRef -> IO () , rpcDoRefChanHeadPost :: HashRef -> IO ()
, rpcDoRefChanPropose :: (PubKey 'Sign 'HBS2Basic, SignedBox ByteString 'HBS2Basic) -> IO () , rpcDoRefChanPropose :: (PubKey 'Sign 'HBS2Basic, SignedBox ByteString 'HBS2Basic) -> IO ()