Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Refactor DiffusionSimulation tracing #4622

Merged
merged 4 commits into from
Sep 5, 2023

Update Changelog

0bb77ae
Select commit
Loading
Failed to load commit list.
Merged

Refactor DiffusionSimulation tracing #4622

Update Changelog
0bb77ae
Select commit
Loading
Failed to load commit list.
IOG Hydra / ci/hydra-build:x86_64-darwin.required succeeded Sep 5, 2023 in 1s

Build succeeded

2 steps

Details

Failed Steps

Step 2

Derivation

/nix/store/ag3y4pz8prxs8xkj0k9bqnpp8j8bm47j-ouroboros-network-framework-test-sim-tests-0.9.0.0-check.drv

Log

unpacking sources
unpacking source archive /nix/store/kmhhligrsv0j49g4vz260w7l0q90b35m-source-root-ouroboros-network-framework-test-sim-tests-root
source root is source-root-ouroboros-network-framework-test-sim-tests-root
patching sources
building
ouroboros-network-framework:sim-tests
  Ouroboros.Network.ConnectionManager
    overwritten:                            OK (0.01s)
      +++ OK, passed 100 tests.
    timeoutExpired:                         OK
      +++ OK, passed 100 tests.
  Ouroboros.Network
    ConnectionManager
      valid transitions:                    OK (1.62s)
        +++ OK, passed 100 tests:
        44% Number of transitions: 1 - 9
        26% Number of transitions: 0
        14% Number of transitions: 10 - 19
        11% Number of transitions: 20 - 29
         5% Number of transitions: 30 - 39
        
        42% Number of connections: 1
        26% Number of connections: 0
        10% Number of connections: 2
        10% Number of connections: 4
         6% Number of connections: 3
         4% Number of connections: 5
         2% Number of connections: 6
        
        Activity Type (152 in total):
        52.0% ActiveConn
        48.0% IdleConn
        
        ConnectionEvents (1786 in total):
        20.44% StartServer
        20.16% StartClient
        11.20% InboundMiniprotocols
        11.03% ShutdownClientServer
         9.69% InboundConnection
         9.29% OutboundMiniprotocols
         7.95% OutboundConnection
         5.88% CloseInboundConnection
         4.37% CloseOutboundConnection
        
        Effective DataFLow (152 in total):
        96.7% EffectiveDataFlow Unidirectional
         3.3% EffectiveDataFlow Duplex
        
        Negotiated DataFlow (152 in total):
        38.2% NegotiatedDataFlow Duplex
        33.6% NegotiatedDataFlow Unidirectional
        28.3% NotNegotiated
        
        Pruning (100 in total):
        100% 0
        
        Termination (152 in total):
        60.5% Just ErroredTermination
        39.5% Just CleanTermination
        
        Transitions (809 in total):
        18.8% TerminatedSt                   → UnknownConnectionSt
        10.5% UnknownConnectionSt            → ReservedOutboundSt
         8.3% UnknownConnectionSt            → UnnegotiatedSt Inbound
         7.4% TerminatingSt                  → TerminatedSt
         6.2% ReservedOutboundSt             → UnnegotiatedSt Outbound
         5.2% UnnegotiatedSt Inbound         → InboundIdleSt Unidirectional
         5.1% InboundIdleSt Unidirectional   → InboundSt Unidirectional
         4.4% UnnegotiatedSt Outbound        → OutboundDupSt Ticking
         4.3% ReservedOutboundSt             → TerminatedSt
         3.8% InboundIdleSt Unidirectional   → TerminatingSt
         3.7% InboundSt Unidirectional       → InboundIdleSt Unidirectional
         3.2% InboundIdleSt Duplex           → TerminatingSt
         2.7% UnnegotiatedSt Inbound         → InboundIdleSt Duplex
         2.0% OutboundDupSt Ticking          → OutboundDupSt Expired
         1.9% OutboundDupSt Expired          → TerminatedSt
         1.7% OutboundDupSt Ticking          → InboundIdleSt Duplex
         1.6% InboundIdleSt Duplex           → InboundSt Duplex
         1.4% InboundSt Unidirectional       → TerminatedSt
         1.1% UnnegotiatedSt Outbound        → OutboundUniSt
         0.9% InboundSt Duplex               → InboundIdleSt Duplex
         0.9% InboundSt Duplex               → TerminatedSt
         0.9% OutboundUniSt                  → TerminatedSt
         0.6% OutboundDupSt Ticking          → DuplexSt
         0.6% OutboundDupSt Ticking          → TerminatedSt
         0.6% UnnegotiatedSt Outbound        → TerminatedSt
         0.4% DuplexSt                       → TerminatedSt
         0.4% InboundIdleSt Duplex           → OutboundDupSt Ticking
         0.4% UnnegotiatedSt Inbound         → TerminatedSt
         0.2% OutboundIdleSt Unidirectional  → TerminatingSt
         0.2% OutboundUniSt                  → OutboundIdleSt Unidirectional
         0.1% DuplexSt                       → InboundSt Duplex
         0.1% DuplexSt                       → OutboundDupSt Ticking
         0.1% InboundIdleSt Duplex           → TerminatedSt
         0.1% OutboundDupSt Expired          → OutboundIdleSt Duplex
         0.1% OutboundIdleSt Duplex          → TerminatingSt
      valid transitions (racy):             IGNORED
      valid transition order:               OK (1.54s)
        +++ OK, passed 100 tests.
        
        ConnectionEvents (1634 in total):
        20.69% StartClient
        20.20% StartServer
        11.20% InboundMiniprotocols
        10.95% InboundConnection
        10.47% ShutdownClientServer
         8.45% OutboundConnection
         7.83% OutboundMiniprotocols
         6.67% CloseInboundConnection
         3.55% CloseOutboundConnection
      valid transition order (racy):        IGNORED
      transitions coverage:                 OK (1.15s)
        +++ OK, passed 100 tests.
        
        valid transitions (579 in total):
        11.9% TerminatedSt → UnknownConnectionSt
        10.9% UnknownConnectionSt → ReservedOutboundSt
         8.8% ReservedOutboundSt → UnnegotiatedSt Outbound
         6.0% UnknownConnectionSt → UnnegotiatedSt Inbound
         5.7% UnnegotiatedSt Outbound → OutboundDupSt Ticking
         5.2% TerminatingSt → TerminatedSt
         5.2% UnnegotiatedSt Inbound → InboundIdleSt Unidirectional
         4.0% InboundIdleSt Unidirectional → TerminatingSt
         3.8% ReservedOutboundSt → TerminatedSt
         3.5% UnnegotiatedSt Inbound → InboundIdleSt Duplex
         3.3% OutboundDupSt Ticking → OutboundDupSt Expired
         3.1% OutboundDupSt Expired → TerminatedSt
         2.9% InboundIdleSt Duplex → TerminatingSt
         2.9% InboundIdleSt Unidirectional → InboundSt Unidirectional
         2.1% OutboundDupSt Ticking → InboundIdleSt Duplex
         1.9% InboundIdleSt Duplex → InboundSt Duplex
         1.9% InboundSt Unidirectional → TerminatedSt
         1.9% UnnegotiatedSt Outbound → OutboundUniSt
         1.9% UnnegotiatedSt Outbound → TerminatedSt
         1.7% InboundSt Duplex → TerminatedSt
         1.7% OutboundDupSt Ticking → TerminatedSt
         1.7% OutboundUniSt → TerminatedSt
         1.2% InboundSt Unidirectional → InboundIdleSt Unidirectional
         1.0% OutboundDupSt Ticking → DuplexSt
         0.9% InboundIdleSt Duplex → OutboundDupSt Ticking
         0.7% DuplexSt → TerminatedSt
         0.5% OutboundDupSt Expired → OutboundIdleSt Duplex
         0.5% OutboundIdleSt Duplex → TerminatedSt
         0.5% OutboundUniSt → OutboundIdleSt Unidirectional
         0.5% UnnegotiatedSt Inbound → TerminatedSt
         0.3% DuplexSt → OutboundDupSt Ticking
         0.3% InboundIdleSt Duplex → TerminatedSt
         0.3% InboundIdleSt Unidirectional → TerminatedSt
         0.3% OutboundIdleSt Unidirectional → TerminatingSt
         0.2% InboundSt Duplex → DuplexSt
         0.2% InboundSt Duplex → InboundIdleSt Duplex
         0.2% OutboundIdleSt Unidirectional → TerminatedSt
         0.2% TerminatingSt → UnnegotiatedSt Inbound
        
        Table 'valid transitions' had only 0.0% DuplexSt → InboundSt Duplex, but expected 0.0%
        Table 'valid transitions' had only 0.0% ReservedOutboundSt → UnnegotiatedSt Inbound, but expected 0.0%
        Table 'valid transitions' had only 0.0% UnnegotiatedSt Inbound → UnnegotiatedSt Outbound, but expected 0.0%
        Table 'valid transitions' had only 0.0% UnnegotiatedSt Outbound → UnnegotiatedSt Inbound, but expected 0.0%
      no invalid traces:                    OK (0.72s)
        +++ OK, passed 100 tests.
        
        ConnectionEvents (1433 in total):
        22.40% StartClient
        21.00% StartServer
        11.10% InboundConnection
        10.61% ShutdownClientServer
         9.14% InboundMiniprotocols
         8.30% OutboundConnection
         8.16% OutboundMiniprotocols
         5.58% CloseInboundConnection
         3.70% CloseOutboundConnection
      counters:                             OK (4.34s)
        +++ OK, passed 100 tests.
        
        ConnectionEvents (1671 in total):
        20.41% StartServer
        19.87% StartClient
        10.89% ShutdownClientServer
         9.69% OutboundMiniprotocols
         9.63% OutboundConnection
         9.58% InboundMiniprotocols
         9.28% InboundConnection
         6.16% CloseInboundConnection
         4.49% CloseOutboundConnection
      pruning:                              OK (10.95s)
        +++ OK, passed 100 tests:
        48% Prunings
        
        21% Number of transitions: 1 - 9
        18% Number of transitions: 20 - 29
        17% Number of transitions: 10 - 19
        10% Number of transitions: 30 - 39
         5% Number of transitions: 110 - 119
         5% Number of transitions: 40 - 49
         4% Number of transitions: 70 - 79
         3% Number of transitions: 100 - 109
         3% Number of transitions: 120 - 129
         3% Number of transitions: 50 - 59
         2% Number of transitions: 180 - 189
         1% Number of transitions: 140 - 149
         1% Number of transitions: 150 - 159
         1% Number of transitions: 170 - 179
         1% Number of transitions: 190 - 199
         1% Number of transitions: 210 - 219
         1% Number of transitions: 220 - 229
         1% Number of transitions: 240 - 249
         1% Number of transitions: 60 - 69
         1% Number of transitions: 80 - 89
        
        19% Number of connections: 1
        16% Number of connections: 2
        11% Number of connections: 5
        10% Number of connections: 4
         8% Number of connections: 3
         8% Number of connections: 7
         4% Number of connections: 12
         4% Number of connections: 16
         3% Number of connections: 15
         2% Number of connections: 23
         2% Number of connections: 6
         1% Number of connections: 11
         1% Number of connections: 13
         1% Number of connections: 18
         1% Number of connections: 19
         1% Number of connections: 20
         1% Number of connections: 21
         1% Number of connections: 24
         1% Number of connections: 28
         1% Number of connections: 29
         1% Number of connections: 32
         1% Number of connections: 35
         1% Number of connections: 38
         1% Number of connections: 8
        
        Activity Type (737 in total):
        82.9% ActiveConn
        17.1% IdleConn
        
        ConnectionEvents (3656 in total):
        27.22% InboundMiniprotocols
        18.57% OutboundConnection
        17.40% InboundConnection
        15.62% StartServer
        12.94% CloseOutboundConnection
         3.50% CloseInboundConnection
         2.46% OutboundMiniprotocols
         1.18% ShutdownClientServer
         1.12% StartClient
        
        Effective DataFLow (737 in total):
        70.0% EffectiveDataFlow Unidirectional
        30.0% EffectiveDataFlow Duplex
        
        Negotiated DataFlow (737 in total):
        87.5% NegotiatedDataFlow Duplex
        11.4% NotNegotiated
         1.1% NegotiatedDataFlow Unidirectional
        
        Pruning (100 in total):
        52% 0
        11% 1
         5% 25
         4% 2
         3% 4
         2% 12
         2% 16
         2% 42
         2% 5
         2% 6
         2% 8
         1% 15
         1% 21
         1% 23
         1% 24
         1% 28
         1% 3
         1% 30
         1% 32
         1% 36
         1% 76
         1% 77
         1% 9
         1% 96
        
        Termination (737 in total):
        58.6% Just ErroredTermination
        41.4% Just CleanTermination
        
        Transitions (4959 in total):
        14.86% TerminatedSt                   → UnknownConnectionSt
         9.82% UnknownConnectionSt            → ReservedOutboundSt
         8.45% ReservedOutboundSt             → UnnegotiatedSt Outbound
         8.11% UnnegotiatedSt Outbound        → OutboundDupSt Ticking
         6.15% TerminatingSt                  → TerminatedSt
         5.63% OutboundDupSt Ticking          → OutboundDupSt Expired
         5.55% InboundIdleSt Duplex           → TerminatingSt
         5.36% InboundSt Duplex               → InboundIdleSt Duplex
         5.12% OutboundDupSt Ticking          → DuplexSt
         5.10% InboundIdleSt Duplex           → InboundSt Duplex
         5.04% UnknownConnectionSt            → UnnegotiatedSt Inbound
         4.92% UnnegotiatedSt Inbound         → InboundIdleSt Duplex
         4.17% DuplexSt                       → OutboundDupSt Ticking
         4.13% OutboundDupSt Expired          → TerminatedSt
         1.73% OutboundDupSt Ticking          → InboundIdleSt Duplex
         1.35% ReservedOutboundSt             → TerminatedSt
         0.85% InboundIdleSt Duplex           → OutboundDupSt Ticking
         0.81% OutboundDupSt Expired          → DuplexSt
         0.69% OutboundDupSt Expired          → OutboundIdleSt Duplex
         0.46% OutboundIdleSt Duplex          → TerminatingSt
         0.34% UnnegotiatedSt Outbound        → TerminatedSt
         0.26% DuplexSt                       → InboundSt Duplex
         0.18% InboundIdleSt Duplex           → TerminatedSt
         0.16% InboundIdleSt Unidirectional   → TerminatingSt
         0.16% OutboundDupSt Ticking          → TerminatedSt
         0.16% OutboundIdleSt Duplex          → TerminatedSt
         0.16% UnnegotiatedSt Inbound         → InboundIdleSt Unidirectional
         0.06% InboundIdleSt Unidirectional   → InboundSt Unidirectional
         0.06% InboundSt Unidirectional       → InboundIdleSt Unidirectional
         0.06% OutboundIdleSt Duplex          → InboundSt Duplex
         0.04% InboundSt Duplex               → DuplexSt
         0.02% ReservedOutboundSt             → UnnegotiatedSt Inbound
         0.02% TerminatingSt                  → UnnegotiatedSt Inbound
    InboundGovernor
      valid transitions:                    OK (1.47s)
        +++ OK, passed 100 tests.
        
        ConnectionEvents (1719 in total):
        21.41% StartClient
        21.41% StartServer
        10.59% ShutdownClientServer
        10.06% InboundConnection
        10.06% InboundMiniprotocols
         8.67% OutboundMiniprotocols
         8.26% OutboundConnection
         5.58% CloseInboundConnection
         3.96% CloseOutboundConnection
      valid transition order:               OK (1.72s)
        +++ OK, passed 100 tests.
        
        ConnectionEvents (1805 in total):
        22.11% StartClient
        20.44% StartServer
        11.36% ShutdownClientServer
        11.14% InboundConnection
        10.47% InboundMiniprotocols
         7.20% OutboundConnection
         6.98% CloseInboundConnection
         6.43% OutboundMiniprotocols
         3.88% CloseOutboundConnection
      transitions coverage:                 OK (1.36s)
        +++ OK, passed 100 tests.
        
        valid transitions (191 in total):
        20.9% Nothing → Just RemoteIdleSt
        15.7% Just RemoteIdleSt → Nothing
        11.5% Just RemoteIdleSt → Just RemoteWarmSt
        11.5% Just RemoteWarmSt → Just RemoteHotSt
        11.0% Just RemoteColdSt → Nothing
        11.0% Just RemoteIdleSt → Just RemoteColdSt
         8.4% Just RemoteHotSt → Nothing
         4.7% Just RemoteHotSt → Just RemoteWarmSt
         4.2% Just RemoteWarmSt → Just RemoteIdleSt
         1.0% Just RemoteWarmSt → Nothing
        
        Table 'valid transitions' had only 0.0% Nothing → Nothing, but expected 0.0%
      no invalid traces:                    OK (1.29s)
        +++ OK, passed 100 tests.
        
        ConnectionEvents (1583 in total):
        21.92% StartServer
        21.04% StartClient
        11.88% ShutdownClientServer
        10.36% InboundMiniprotocols
         9.98% InboundConnection
         8.21% OutboundConnection
         7.26% OutboundMiniprotocols
         5.81% CloseInboundConnection
         3.54% CloseOutboundConnection
      no unsupported state:                 OK (0.73s)
        +++ OK, passed 100 tests.
        
        ConnectionEvents (1558 in total):
        21.76% StartServer
        21.50% StartClient
        11.75% ShutdownClientServer
        11.04% InboundConnection
        10.40% InboundMiniprotocols
         7.38% OutboundConnection
         6.80% CloseInboundConnection
         5.58% OutboundMiniprotocols
         3.79% CloseOutboundConnection
      pruning:                              OK (10.47s)
        +++ OK, passed 100 tests.
        
        ConnectionEvents (3623 in total):
        28.79% InboundMiniprotocols
        18.60% OutboundConnection
        17.53% InboundConnection
        15.93% StartServer
        11.73% CloseOutboundConnection
         3.12% CloseInboundConnection
         2.37% OutboundMiniprotocols
         0.99% StartClient
         0.94% ShutdownClientServer
      counters:                             OK (2.84s)
        +++ OK, passed 100 tests.
        
        ConnectionEvents (1617 in total):
        21.21% StartClient
        20.16% StartServer
        10.82% InboundConnection
        10.27% ShutdownClientServer
        10.14% InboundMiniprotocols
         8.91% OutboundConnection
         7.54% OutboundMiniprotocols
         6.06% CloseInboundConnection
         4.89% CloseOutboundConnection
      timeouts enforced:                    OK (2.64s)
        +++ OK, passed 100 tests.
    Server2
      unidirectional Sim:                   OK (0.41s)
        +++ OK, passed 100 tests.
      bidirectional Sim:                    OK (0.64s)
        +++ OK, passed 100 tests.
      never above hardlimit:                OK (9.30s)
        +++ OK, passed 100 tests.
        
        ConnectionEvents (3095 in total):
        27.98% InboundMiniprotocols
        18.87% OutboundConnection
        17.74% InboundConnection
        16.28% StartServer
        11.92% CloseOutboundConnection
         2.68% CloseInboundConnection
         2.62% OutboundMiniprotocols
         1.26% StartClient
         0.65% ShutdownClientServer
      accept errors
        ConnectionAborted:                  OK (0.04s)
          +++ OK, passed 1 test.
        ResourceExhausted:                  OK
          +++ OK, passed 1 test.
    connection terminated when negotiating: OK
      +++ OK, passed 100 tests:
      100% Number of transitions: 10 - 19
      
      100% Number of connections: 2
      
      Activity Type (200 in total):
      100.0% ActiveConn
      
      ConnectionEvents (1500 in total):
      40.00% OutboundConnection
      40.00% StartServer
      20.00% OutboundMiniprotocols
      
      Effective DataFLow (200 in total):
      100.0% EffectiveDataFlow Unidirectional
      
      Negotiated DataFlow (200 in total):
      100.0% NegotiatedDataFlow Unidirectional
      
      Pruning (100 in total):
      100% 0
      
      Termination (200 in total):
      100.0% Just ErroredTermination
      
      Transitions (1000 in total):
      20.0% OutboundUniSt                  → TerminatedSt
      20.0% ReservedOutboundSt             → UnnegotiatedSt Outbound
      20.0% TerminatedSt                   → UnknownConnectionSt
      20.0% UnknownConnectionSt            → ReservedOutboundSt
      20.0% UnnegotiatedSt Outbound        → OutboundUniSt
    generators
      MultiNodeScript:                      OK
        +++ OK, passed 100 tests:
        50% Number of events: 1 - 9
        20% Number of events: 10 - 19
        12% Number of events: 20 - 29
         8% Number of events: 30 - 39
         6% Number of events: 40 - 49
         3% Number of events: 50 - 59
         1% Number of events: 60 - 69
        
        34% Number of servers: 2 - 3
        25% Number of servers: 1 - 1
        14% Number of servers: 4 - 5
        10% Number of servers: 6 - 7
         8% Number of servers: 0
         5% Number of servers: 8 - 9
         2% Number of servers: 10 - 11
         2% Number of servers: 14 - 15
        
        34% Number of clients: 2 - 3
        20% Number of clients: 1 - 1
        14% Number of clients: 4 - 5
        13% Number of clients: 0
         9% Number of clients: 6 - 7
         6% Number of clients: 8 - 9
         3% Number of clients: 14 - 15
         1% Number of clients: 10 - 11
        
        43% Active connections: 0
        35% Active connections: 1 - 4
        15% Active connections: 5 - 9
         4% Active connections: 10 - 14
         3% Active connections: 15 - 19
        
        52% Closed connections: 0
        38% Closed connections: 1 - 4
        10% Closed connections: 5 - 9
        
        35% Number of shutdown connections: 0
        29% Number of shutdown connections: 1 - 1
        21% Number of shutdown connections: 2 - 3
         7% Number of shutdown connections: 4 - 5
         7% Number of shutdown connections: 6 - 7
         1% Number of shutdown connections: 8 - 9
  Ouroboros.Network.RateLimiting
    HardLimit:                              OK
      +++ OK, passed 100 tests:
      29% 0
      24% 1 - 5
      14% 10 - 20
      14% 5 - 10
       9% 20 - 30
       5% 30 - 40
       4% 40 - 50
       1% 50 - 60
    SoftLimit:                              OK
      +++ OK, passed 100 tests:
      31% 1 - 5
      30% 0
      12% 5 - 10
      11% 10 - 20
      11% 20 - 30
       3% 30 - 40
       1% 50 - 60
       1% 60 - 70
  Simulation.Network.Snocket
    client-server:                          OK (0.30s)
      +++ OK, passed 100 tests.
    connect_to_accepting_socket:            OK
      +++ OK, passed 100 tests.
    connect_and_not_close:                  OK
      +++ OK, passed 100 tests.
    connect_to_not_accepting_socket:        OK
      +++ OK, passed 100 tests.
    connect_to_uninitialised_socket:        OK
      +++ OK, passed 100 tests.
    connect_to_not_listening_socket:        OK
      +++ OK, passed 100 tests.
    simultaneous_open:                      OK (0.01s)
      +++ OK, passed 100 tests.

All 34 tests passed (53.66s)
buildPhase completed in 54 seconds

Step 3

Derivation

/nix/store/ag3y4pz8prxs8xkj0k9bqnpp8j8bm47j-ouroboros-network-framework-test-sim-tests-0.9.0.0-check.drv

Log

unpacking sources
unpacking source archive /nix/store/kmhhligrsv0j49g4vz260w7l0q90b35m-source-root-ouroboros-network-framework-test-sim-tests-root
source root is source-root-ouroboros-network-framework-test-sim-tests-root
patching sources
building
ouroboros-network-framework:sim-tests
  Ouroboros.Network.ConnectionManager
    overwritten:                            OK (0.01s)
      +++ OK, passed 100 tests.
    timeoutExpired:                         OK
      +++ OK, passed 100 tests.
  Ouroboros.Network
    ConnectionManager
      valid transitions:                    OK (1.62s)
        +++ OK, passed 100 tests:
        44% Number of transitions: 1 - 9
        26% Number of transitions: 0
        14% Number of transitions: 10 - 19
        11% Number of transitions: 20 - 29
         5% Number of transitions: 30 - 39
        
        42% Number of connections: 1
        26% Number of connections: 0
        10% Number of connections: 2
        10% Number of connections: 4
         6% Number of connections: 3
         4% Number of connections: 5
         2% Number of connections: 6
        
        Activity Type (152 in total):
        52.0% ActiveConn
        48.0% IdleConn
        
        ConnectionEvents (1786 in total):
        20.44% StartServer
        20.16% StartClient
        11.20% InboundMiniprotocols
        11.03% ShutdownClientServer
         9.69% InboundConnection
         9.29% OutboundMiniprotocols
         7.95% OutboundConnection
         5.88% CloseInboundConnection
         4.37% CloseOutboundConnection
        
        Effective DataFLow (152 in total):
        96.7% EffectiveDataFlow Unidirectional
         3.3% EffectiveDataFlow Duplex
        
        Negotiated DataFlow (152 in total):
        38.2% NegotiatedDataFlow Duplex
        33.6% NegotiatedDataFlow Unidirectional
        28.3% NotNegotiated
        
        Pruning (100 in total):
        100% 0
        
        Termination (152 in total):
        60.5% Just ErroredTermination
        39.5% Just CleanTermination
        
        Transitions (809 in total):
        18.8% TerminatedSt                   → UnknownConnectionSt
        10.5% UnknownConnectionSt            → ReservedOutboundSt
         8.3% UnknownConnectionSt            → UnnegotiatedSt Inbound
         7.4% TerminatingSt                  → TerminatedSt
         6.2% ReservedOutboundSt             → UnnegotiatedSt Outbound
         5.2% UnnegotiatedSt Inbound         → InboundIdleSt Unidirectional
         5.1% InboundIdleSt Unidirectional   → InboundSt Unidirectional
         4.4% UnnegotiatedSt Outbound        → OutboundDupSt Ticking
         4.3% ReservedOutboundSt             → TerminatedSt
         3.8% InboundIdleSt Unidirectional   → TerminatingSt
         3.7% InboundSt Unidirectional       → InboundIdleSt Unidirectional
         3.2% InboundIdleSt Duplex           → TerminatingSt
         2.7% UnnegotiatedSt Inbound         → InboundIdleSt Duplex
         2.0% OutboundDupSt Ticking          → OutboundDupSt Expired
         1.9% OutboundDupSt Expired          → TerminatedSt
         1.7% OutboundDupSt Ticking          → InboundIdleSt Duplex
         1.6% InboundIdleSt Duplex           → InboundSt Duplex
         1.4% InboundSt Unidirectional       → TerminatedSt
         1.1% UnnegotiatedSt Outbound        → OutboundUniSt
         0.9% InboundSt Duplex               → InboundIdleSt Duplex
         0.9% InboundSt Duplex               → TerminatedSt
         0.9% OutboundUniSt                  → TerminatedSt
         0.6% OutboundDupSt Ticking          → DuplexSt
         0.6% OutboundDupSt Ticking          → TerminatedSt
         0.6% UnnegotiatedSt Outbound        → TerminatedSt
         0.4% DuplexSt                       → TerminatedSt
         0.4% InboundIdleSt Duplex           → OutboundDupSt Ticking
         0.4% UnnegotiatedSt Inbound         → TerminatedSt
         0.2% OutboundIdleSt Unidirectional  → TerminatingSt
         0.2% OutboundUniSt                  → OutboundIdleSt Unidirectional
         0.1% DuplexSt                       → InboundSt Duplex
         0.1% DuplexSt                       → OutboundDupSt Ticking
         0.1% InboundIdleSt Duplex           → TerminatedSt
         0.1% OutboundDupSt Expired          → OutboundIdleSt Duplex
         0.1% OutboundIdleSt Duplex          → TerminatingSt
      valid transitions (racy):             IGNORED
      valid transition order:               OK (1.54s)
        +++ OK, passed 100 tests.
        
        ConnectionEvents (1634 in total):
        20.69% StartClient
        20.20% StartServer
        11.20% InboundMiniprotocols
        10.95% InboundConnection
        10.47% ShutdownClientServer
         8.45% OutboundConnection
         7.83% OutboundMiniprotocols
         6.67% CloseInboundConnection
         3.55% CloseOutboundConnection
      valid transition order (racy):        IGNORED
      transitions coverage:                 OK (1.15s)
        +++ OK, passed 100 tests.
        
        valid transitions (579 in total):
        11.9% TerminatedSt → UnknownConnectionSt
        10.9% UnknownConnectionSt → ReservedOutboundSt
         8.8% ReservedOutboundSt → UnnegotiatedSt Outbound
         6.0% UnknownConnectionSt → UnnegotiatedSt Inbound
         5.7% UnnegotiatedSt Outbound → OutboundDupSt Ticking
         5.2% TerminatingSt → TerminatedSt
         5.2% UnnegotiatedSt Inbound → InboundIdleSt Unidirectional
         4.0% InboundIdleSt Unidirectional → TerminatingSt
         3.8% ReservedOutboundSt → TerminatedSt
         3.5% UnnegotiatedSt Inbound → InboundIdleSt Duplex
         3.3% OutboundDupSt Ticking → OutboundDupSt Expired
         3.1% OutboundDupSt Expired → TerminatedSt
         2.9% InboundIdleSt Duplex → TerminatingSt
         2.9% InboundIdleSt Unidirectional → InboundSt Unidirectional
         2.1% OutboundDupSt Ticking → InboundIdleSt Duplex
         1.9% InboundIdleSt Duplex → InboundSt Duplex
         1.9% InboundSt Unidirectional → TerminatedSt
         1.9% UnnegotiatedSt Outbound → OutboundUniSt
         1.9% UnnegotiatedSt Outbound → TerminatedSt
         1.7% InboundSt Duplex → TerminatedSt
         1.7% OutboundDupSt Ticking → TerminatedSt
         1.7% OutboundUniSt → TerminatedSt
         1.2% InboundSt Unidirectional → InboundIdleSt Unidirectional
         1.0% OutboundDupSt Ticking → DuplexSt
         0.9% InboundIdleSt Duplex → OutboundDupSt Ticking
         0.7% DuplexSt → TerminatedSt
         0.5% OutboundDupSt Expired → OutboundIdleSt Duplex
         0.5% OutboundIdleSt Duplex → TerminatedSt
         0.5% OutboundUniSt → OutboundIdleSt Unidirectional
         0.5% UnnegotiatedSt Inbound → TerminatedSt
         0.3% DuplexSt → OutboundDupSt Ticking
         0.3% InboundIdleSt Duplex → TerminatedSt
         0.3% InboundIdleSt Unidirectional → TerminatedSt
         0.3% OutboundIdleSt Unidirectional → TerminatingSt
         0.2% InboundSt Duplex → DuplexSt
         0.2% InboundSt Duplex → InboundIdleSt Duplex
         0.2% OutboundIdleSt Unidirectional → TerminatedSt
         0.2% TerminatingSt → UnnegotiatedSt Inbound
        
        Table 'valid transitions' had only 0.0% DuplexSt → InboundSt Duplex, but expected 0.0%
        Table 'valid transitions' had only 0.0% ReservedOutboundSt → UnnegotiatedSt Inbound, but expected 0.0%
        Table 'valid transitions' had only 0.0% UnnegotiatedSt Inbound → UnnegotiatedSt Outbound, but expected 0.0%
        Table 'valid transitions' had only 0.0% UnnegotiatedSt Outbound → UnnegotiatedSt Inbound, but expected 0.0%
      no invalid traces:                    OK (0.72s)
        +++ OK, passed 100 tests.
        
        ConnectionEvents (1433 in total):
        22.40% StartClient
        21.00% StartServer
        11.10% InboundConnection
        10.61% ShutdownClientServer
         9.14% InboundMiniprotocols
         8.30% OutboundConnection
         8.16% OutboundMiniprotocols
         5.58% CloseInboundConnection
         3.70% CloseOutboundConnection
      counters:                             OK (4.34s)
        +++ OK, passed 100 tests.
        
        ConnectionEvents (1671 in total):
        20.41% StartServer
        19.87% StartClient
        10.89% ShutdownClientServer
         9.69% OutboundMiniprotocols
         9.63% OutboundConnection
         9.58% InboundMiniprotocols
         9.28% InboundConnection
         6.16% CloseInboundConnection
         4.49% CloseOutboundConnection
      pruning:                              OK (10.95s)
        +++ OK, passed 100 tests:
        48% Prunings
        
        21% Number of transitions: 1 - 9
        18% Number of transitions: 20 - 29
        17% Number of transitions: 10 - 19
        10% Number of transitions: 30 - 39
         5% Number of transitions: 110 - 119
         5% Number of transitions: 40 - 49
         4% Number of transitions: 70 - 79
         3% Number of transitions: 100 - 109
         3% Number of transitions: 120 - 129
         3% Number of transitions: 50 - 59
         2% Number of transitions: 180 - 189
         1% Number of transitions: 140 - 149
         1% Number of transitions: 150 - 159
         1% Number of transitions: 170 - 179
         1% Number of transitions: 190 - 199
         1% Number of transitions: 210 - 219
         1% Number of transitions: 220 - 229
         1% Number of transitions: 240 - 249
         1% Number of transitions: 60 - 69
         1% Number of transitions: 80 - 89
        
        19% Number of connections: 1
        16% Number of connections: 2
        11% Number of connections: 5
        10% Number of connections: 4
         8% Number of connections: 3
         8% Number of connections: 7
         4% Number of connections: 12
         4% Number of connections: 16
         3% Number of connections: 15
         2% Number of connections: 23
         2% Number of connections: 6
         1% Number of connections: 11
         1% Number of connections: 13
         1% Number of connections: 18
         1% Number of connections: 19
         1% Number of connections: 20
         1% Number of connections: 21
         1% Number of connections: 24
         1% Number of connections: 28
         1% Number of connections: 29
         1% Number of connections: 32
         1% Number of connections: 35
         1% Number of connections: 38
         1% Number of connections: 8
        
        Activity Type (737 in total):
        82.9% ActiveConn
        17.1% IdleConn
        
        ConnectionEvents (3656 in total):
        27.22% InboundMiniprotocols
        18.57% OutboundConnection
        17.40% InboundConnection
        15.62% StartServer
        12.94% CloseOutboundConnection
         3.50% CloseInboundConnection
         2.46% OutboundMiniprotocols
         1.18% ShutdownClientServer
         1.12% StartClient
        
        Effective DataFLow (737 in total):
        70.0% EffectiveDataFlow Unidirectional
        30.0% EffectiveDataFlow Duplex
        
        Negotiated DataFlow (737 in total):
        87.5% NegotiatedDataFlow Duplex
        11.4% NotNegotiated
         1.1% NegotiatedDataFlow Unidirectional
        
        Pruning (100 in total):
        52% 0
        11% 1
         5% 25
         4% 2
         3% 4
         2% 12
         2% 16
         2% 42
         2% 5
         2% 6
         2% 8
         1% 15
         1% 21
         1% 23
         1% 24
         1% 28
         1% 3
         1% 30
         1% 32
         1% 36
         1% 76
         1% 77
         1% 9
         1% 96
        
        Termination (737 in total):
        58.6% Just ErroredTermination
        41.4% Just CleanTermination
        
        Transitions (4959 in total):
        14.86% TerminatedSt                   → UnknownConnectionSt
         9.82% UnknownConnectionSt            → ReservedOutboundSt
         8.45% ReservedOutboundSt             → UnnegotiatedSt Outbound
         8.11% UnnegotiatedSt Outbound        → OutboundDupSt Ticking
         6.15% TerminatingSt                  → TerminatedSt
         5.63% OutboundDupSt Ticking          → OutboundDupSt Expired
         5.55% InboundIdleSt Duplex           → TerminatingSt
         5.36% InboundSt Duplex               → InboundIdleSt Duplex
         5.12% OutboundDupSt Ticking          → DuplexSt
         5.10% InboundIdleSt Duplex           → InboundSt Duplex
         5.04% UnknownConnectionSt            → UnnegotiatedSt Inbound
         4.92% UnnegotiatedSt Inbound         → InboundIdleSt Duplex
         4.17% DuplexSt                       → OutboundDupSt Ticking
         4.13% OutboundDupSt Expired          → TerminatedSt
         1.73% OutboundDupSt Ticking          → InboundIdleSt Duplex
         1.35% ReservedOutboundSt             → TerminatedSt
         0.85% InboundIdleSt Duplex           → OutboundDupSt Ticking
         0.81% OutboundDupSt Expired          → DuplexSt
         0.69% OutboundDupSt Expired          → OutboundIdleSt Duplex
         0.46% OutboundIdleSt Duplex          → TerminatingSt
         0.34% UnnegotiatedSt Outbound        → TerminatedSt
         0.26% DuplexSt                       → InboundSt Duplex
         0.18% InboundIdleSt Duplex           → TerminatedSt
         0.16% InboundIdleSt Unidirectional   → TerminatingSt
         0.16% OutboundDupSt Ticking          → TerminatedSt
         0.16% OutboundIdleSt Duplex          → TerminatedSt
         0.16% UnnegotiatedSt Inbound         → InboundIdleSt Unidirectional
         0.06% InboundIdleSt Unidirectional   → InboundSt Unidirectional
         0.06% InboundSt Unidirectional       → InboundIdleSt Unidirectional
         0.06% OutboundIdleSt Duplex          → InboundSt Duplex
         0.04% InboundSt Duplex               → DuplexSt
         0.02% ReservedOutboundSt             → UnnegotiatedSt Inbound
         0.02% TerminatingSt                  → UnnegotiatedSt Inbound
    InboundGovernor
      valid transitions:                    OK (1.47s)
        +++ OK, passed 100 tests.
        
        ConnectionEvents (1719 in total):
        21.41% StartClient
        21.41% StartServer
        10.59% ShutdownClientServer
        10.06% InboundConnection
        10.06% InboundMiniprotocols
         8.67% OutboundMiniprotocols
         8.26% OutboundConnection
         5.58% CloseInboundConnection
         3.96% CloseOutboundConnection
      valid transition order:               OK (1.72s)
        +++ OK, passed 100 tests.
        
        ConnectionEvents (1805 in total):
        22.11% StartClient
        20.44% StartServer
        11.36% ShutdownClientServer
        11.14% InboundConnection
        10.47% InboundMiniprotocols
         7.20% OutboundConnection
         6.98% CloseInboundConnection
         6.43% OutboundMiniprotocols
         3.88% CloseOutboundConnection
      transitions coverage:                 OK (1.36s)
        +++ OK, passed 100 tests.
        
        valid transitions (191 in total):
        20.9% Nothing → Just RemoteIdleSt
        15.7% Just RemoteIdleSt → Nothing
        11.5% Just RemoteIdleSt → Just RemoteWarmSt
        11.5% Just RemoteWarmSt → Just RemoteHotSt
        11.0% Just RemoteColdSt → Nothing
        11.0% Just RemoteIdleSt → Just RemoteColdSt
         8.4% Just RemoteHotSt → Nothing
         4.7% Just RemoteHotSt → Just RemoteWarmSt
         4.2% Just RemoteWarmSt → Just RemoteIdleSt
         1.0% Just RemoteWarmSt → Nothing
        
        Table 'valid transitions' had only 0.0% Nothing → Nothing, but expected 0.0%
      no invalid traces:                    OK (1.29s)
        +++ OK, passed 100 tests.
        
        ConnectionEvents (1583 in total):
        21.92% StartServer
        21.04% StartClient
        11.88% ShutdownClientServer
        10.36% InboundMiniprotocols
         9.98% InboundConnection
         8.21% OutboundConnection
         7.26% OutboundMiniprotocols
         5.81% CloseInboundConnection
         3.54% CloseOutboundConnection
      no unsupported state:                 OK (0.73s)
        +++ OK, passed 100 tests.
        
        ConnectionEvents (1558 in total):
        21.76% StartServer
        21.50% StartClient
        11.75% ShutdownClientServer
        11.04% InboundConnection
        10.40% InboundMiniprotocols
         7.38% OutboundConnection
         6.80% CloseInboundConnection
         5.58% OutboundMiniprotocols
         3.79% CloseOutboundConnection
      pruning:                              OK (10.47s)
        +++ OK, passed 100 tests.
        
        ConnectionEvents (3623 in total):
        28.79% InboundMiniprotocols
        18.60% OutboundConnection
        17.53% InboundConnection
        15.93% StartServer
        11.73% CloseOutboundConnection
         3.12% CloseInboundConnection
         2.37% OutboundMiniprotocols
         0.99% StartClient
         0.94% ShutdownClientServer
      counters:                             OK (2.84s)
        +++ OK, passed 100 tests.
        
        ConnectionEvents (1617 in total):
        21.21% StartClient
        20.16% StartServer
        10.82% InboundConnection
        10.27% ShutdownClientServer
        10.14% InboundMiniprotocols
         8.91% OutboundConnection
         7.54% OutboundMiniprotocols
         6.06% CloseInboundConnection
         4.89% CloseOutboundConnection
      timeouts enforced:                    OK (2.64s)
        +++ OK, passed 100 tests.
    Server2
      unidirectional Sim:                   OK (0.41s)
        +++ OK, passed 100 tests.
      bidirectional Sim:                    OK (0.64s)
        +++ OK, passed 100 tests.
      never above hardlimit:                OK (9.30s)
        +++ OK, passed 100 tests.
        
        ConnectionEvents (3095 in total):
        27.98% InboundMiniprotocols
        18.87% OutboundConnection
        17.74% InboundConnection
        16.28% StartServer
        11.92% CloseOutboundConnection
         2.68% CloseInboundConnection
         2.62% OutboundMiniprotocols
         1.26% StartClient
         0.65% ShutdownClientServer
      accept errors
        ConnectionAborted:                  OK (0.04s)
          +++ OK, passed 1 test.
        ResourceExhausted:                  OK
          +++ OK, passed 1 test.
    connection terminated when negotiating: OK
      +++ OK, passed 100 tests:
      100% Number of transitions: 10 - 19
      
      100% Number of connections: 2
      
      Activity Type (200 in total):
      100.0% ActiveConn
      
      ConnectionEvents (1500 in total):
      40.00% OutboundConnection
      40.00% StartServer
      20.00% OutboundMiniprotocols
      
      Effective DataFLow (200 in total):
      100.0% EffectiveDataFlow Unidirectional
      
      Negotiated DataFlow (200 in total):
      100.0% NegotiatedDataFlow Unidirectional
      
      Pruning (100 in total):
      100% 0
      
      Termination (200 in total):
      100.0% Just ErroredTermination
      
      Transitions (1000 in total):
      20.0% OutboundUniSt                  → TerminatedSt
      20.0% ReservedOutboundSt             → UnnegotiatedSt Outbound
      20.0% TerminatedSt                   → UnknownConnectionSt
      20.0% UnknownConnectionSt            → ReservedOutboundSt
      20.0% UnnegotiatedSt Outbound        → OutboundUniSt
    generators
      MultiNodeScript:                      OK
        +++ OK, passed 100 tests:
        50% Number of events: 1 - 9
        20% Number of events: 10 - 19
        12% Number of events: 20 - 29
         8% Number of events: 30 - 39
         6% Number of events: 40 - 49
         3% Number of events: 50 - 59
         1% Number of events: 60 - 69
        
        34% Number of servers: 2 - 3
        25% Number of servers: 1 - 1
        14% Number of servers: 4 - 5
        10% Number of servers: 6 - 7
         8% Number of servers: 0
         5% Number of servers: 8 - 9
         2% Number of servers: 10 - 11
         2% Number of servers: 14 - 15
        
        34% Number of clients: 2 - 3
        20% Number of clients: 1 - 1
        14% Number of clients: 4 - 5
        13% Number of clients: 0
         9% Number of clients: 6 - 7
         6% Number of clients: 8 - 9
         3% Number of clients: 14 - 15
         1% Number of clients: 10 - 11
        
        43% Active connections: 0
        35% Active connections: 1 - 4
        15% Active connections: 5 - 9
         4% Active connections: 10 - 14
         3% Active connections: 15 - 19
        
        52% Closed connections: 0
        38% Closed connections: 1 - 4
        10% Closed connections: 5 - 9
        
        35% Number of shutdown connections: 0
        29% Number of shutdown connections: 1 - 1
        21% Number of shutdown connections: 2 - 3
         7% Number of shutdown connections: 4 - 5
         7% Number of shutdown connections: 6 - 7
         1% Number of shutdown connections: 8 - 9
  Ouroboros.Network.RateLimiting
    HardLimit:                              OK
      +++ OK, passed 100 tests:
      29% 0
      24% 1 - 5
      14% 10 - 20
      14% 5 - 10
       9% 20 - 30
       5% 30 - 40
       4% 40 - 50
       1% 50 - 60
    SoftLimit:                              OK
      +++ OK, passed 100 tests:
      31% 1 - 5
      30% 0
      12% 5 - 10
      11% 10 - 20
      11% 20 - 30
       3% 30 - 40
       1% 50 - 60
       1% 60 - 70
  Simulation.Network.Snocket
    client-server:                          OK (0.30s)
      +++ OK, passed 100 tests.
    connect_to_accepting_socket:            OK
      +++ OK, passed 100 tests.
    connect_and_not_close:                  OK
      +++ OK, passed 100 tests.
    connect_to_not_accepting_socket:        OK
      +++ OK, passed 100 tests.
    connect_to_uninitialised_socket:        OK
      +++ OK, passed 100 tests.
    connect_to_not_listening_socket:        OK
      +++ OK, passed 100 tests.
    simultaneous_open:                      OK (0.01s)
      +++ OK, passed 100 tests.

All 34 tests passed (53.66s)
buildPhase completed in 54 seconds