Skip to content

Commit 6e915d1

Browse files
authored
Merge pull request #5230 from IntersectMBO/coot/simple-server-econnaborted-handling
Fixed handling of ECONNABORTED in the simple server
2 parents 74ba1f3 + 5c4c49a commit 6e915d1

File tree

3 files changed

+9
-4
lines changed

3 files changed

+9
-4
lines changed
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
### Non-Breaking
2+
3+
- framework: improved handling of `ECONNABORTED` in the simple server.
4+

ouroboros-network/framework/lib/Ouroboros/Network/Server.hs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ module Ouroboros.Network.Server
2828
, InboundGovernor.RemoteTransition
2929
, InboundGovernor.RemoteTransitionTrace
3030
, isECONNABORTED
31+
, server_CONNABORTED_DELAY
3132
) where
3233

3334
import Control.Applicative (Alternative)

ouroboros-network/framework/lib/Ouroboros/Network/Server/Simple.hs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,9 @@ module Ouroboros.Network.Server.Simple
1717
import Control.Applicative (Alternative)
1818
import Control.Concurrent.JobPool qualified as JobPool
1919
import Control.Monad.Class.MonadAsync
20-
import Control.Monad.Class.MonadFork (MonadFork)
2120
import Control.Monad.Class.MonadSTM
2221
import Control.Monad.Class.MonadThrow
23-
import Control.Monad.Class.MonadTimer.SI (MonadDelay, MonadTimer)
22+
import Control.Monad.Class.MonadTimer.SI
2423
import Control.Tracer (Tracer, traceWith)
2524
import Data.ByteString.Lazy qualified as BL
2625
import Data.Functor (void)
@@ -32,7 +31,7 @@ import Network.Mux qualified as Mx
3231
import Ouroboros.Network.ConnectionId
3332
import Ouroboros.Network.Mux
3433
import Ouroboros.Network.Protocol.Handshake
35-
import Ouroboros.Network.Server (isECONNABORTED)
34+
import Ouroboros.Network.Server (isECONNABORTED, server_CONNABORTED_DELAY)
3635
import Ouroboros.Network.Snocket (Snocket)
3736
import Ouroboros.Network.Snocket qualified as Snocket
3837
import Ouroboros.Network.Socket
@@ -111,7 +110,8 @@ with sn tracer muxTracers makeBearer configureSock addr handshakeArgs versions k
111110
acceptOne (Snocket.AcceptFailure e)
112111
| Just ioErr <- fromException e
113112
, isECONNABORTED ioErr
114-
= traceWith tracer (AcceptException e)
113+
= threadDelay server_CONNABORTED_DELAY
114+
115115
acceptOne (Snocket.AcceptFailure e)
116116
= do traceWith tracer (AcceptException e)
117117
throwIO e

0 commit comments

Comments
 (0)