diff --git a/ouroboros-network/src/Ouroboros/Network/PeerSelection/PeerStateActions.hs b/ouroboros-network/src/Ouroboros/Network/PeerSelection/PeerStateActions.hs index af1ee95a091..e0f932f109a 100644 --- a/ouroboros-network/src/Ouroboros/Network/PeerSelection/PeerStateActions.hs +++ b/ouroboros-network/src/Ouroboros/Network/PeerSelection/PeerStateActions.hs @@ -877,7 +877,8 @@ withPeerStateActions PeerStateActionsArguments { PeerConnectionHandle { pchConnectionId, pchPeerState, - pchAppHandles + pchAppHandles, + pchMux } = do atomically $ do currentState <- getCurrentState <$> readTVar pchPeerState @@ -903,6 +904,7 @@ withPeerStateActions PeerStateActionsArguments { case res of Nothing -> do -- timeout fired + Mux.stopMux pchMux _ <- unregisterOutboundConnection spsConnectionManager (remoteAddress pchConnectionId) atomically (writeTVar pchPeerState (PeerStatus PeerCold)) traceWith spsTracer (PeerStatusChangeFailure