Skip to content

Peer selection governor test failure #5320

@crocodile-dentist

Description

@crocodile-dentist
progress
  ledger peers
    progresses towards known target (from below):                           FAIL (1597.06s)
      *** Failed! Falsified (after 93 tests and 437 shrinks):
      MaxTime {getTime = Time 1286.224424s}
      GovernorMockEnvironment {peerGraph = PeerGraph [(PeerAddr 4,[PeerAddr 43],GovernorScripts {peerShareScript = Script (Just ([PeerAddr 43],PeerShareTimeQuick) :| []), peerSharingScript = Script (PeerSharingEnabled :| []), connectionScript = Script ((Noop,NoDelay) :| [])}),(PeerAddr 6,[],GovernorScripts {peerShareScript = Script (Nothing :| []), peerSharingScript = Script (PeerSharingDisabled :| []), connectionScript = Script ((ToCold,NoDelay) :| [(ToCold,NoDelay),(ToCold,NoDelay),(ToCold,NoDelay),(ToCold,NoDelay),(ToCold,NoDelay),(Noop,NoDelay)])}),(PeerAddr 43,[PeerAddr 6],GovernorScripts {peerShareScript = Script (Nothing :| [Just ([PeerAddr 6],PeerShareTimeQuick)]), peerSharingScript = Script (PeerSharingEnabled :| []), connectionScript = Script ((ToCooling,LongDelay) :| [(ToCold,NoDelay),(Noop,NoDelay)])})], localRootPeers = fromGroups [], publicRootPeers = PublicRootPeers {getLedgerPeers = fromList [], getBigLedgerPeers = fromList [], getExtraPeers = ExtraPeers {publicConfigPeers = fromList [(PeerAddr 4,DoAdvertisePeer)], bootstrapPeers = fromList []}}, targets = Script (((PeerSelectionTargets {targetNumberOfRootPeers = 1, targetNumberOfKnownPeers = 3, targetNumberOfEstablishedPeers = 3, targetNumberOfActivePeers = 1, targetNumberOfKnownBigLedgerPeers = 1, targetNumberOfEstablishedBigLedgerPeers = 0, targetNumberOfActiveBigLedgerPeers = 0},PeerSelectionTargets {targetNumberOfRootPeers = 0, targetNumberOfKnownPeers = 1, targetNumberOfEstablishedPeers = 0, targetNumberOfActivePeers = 0, targetNumberOfKnownBigLedgerPeers = 10, targetNumberOfEstablishedBigLedgerPeers = 1, targetNumberOfActiveBigLedgerPeers = 1}),NoDelay) :| []), pickKnownPeersForPeerShare = Script (PickFirst :| []), pickColdPeersToPromote = Script (PickFirst :| []), pickWarmPeersToPromote = Script (PickFirst :| []), pickHotPeersToDemote = Script (PickFirst :| []), pickWarmPeersToDemote = Script (PickFirst :| []), pickColdPeersToForget = Script (PickFirst :| []), pickInboundPeers = Script (PickFirst :| []), peerSharingFlag = PeerSharingEnabled, useBootstrapPeers = Script ((DontUseBootstrapPeers,NoDelay) :| []), consensusMode = PraosMode, useLedgerPeers = Script ((UseLedgerPeers Always,NoDelay) :| []), ledgerStateJudgement = Script ((TooOld,NoDelay) :| []), seed = TestSeed {unTestSeed = -403870301216978136}}
      shrinked below
      
      Signal key: (target, known peers, shrinks, unexpected)
      Last 20 signal values:
      0s    @ (0,fromList [],fromList [],False)
      0s    @ (3,fromList [],fromList [],False)
      0s    @ (3,fromList [PeerAddr 4],fromList [],False)
      302s  @ (3,fromList [PeerAddr 4,PeerAddr 43],fromList [],False)
      1218.04710984158s     @ (3,fromList [PeerAddr 4,PeerAddr 6,PeerAddr 43],fromList [],False)
      
      Property violated at: 1286.224423128144s
      Invalid signal value:
      (3,fromList [PeerAddr 4,PeerAddr 43],fromList [PeerAddr 6],True)
      
      Use --quickcheck-replay="(SMGen 8480437410607979533 3455608514874148351,92)" to reproduce.
      Use -p '/progress.ledger peers.progresses towards known target (from below)/' to rerun this test only.

This is a flaky test which should be enhanced. The issue here is that a peer was forgotten because it has exhausted its maximum connection retry limit in the policy and it is not accounted for in the property.

Metadata

Metadata

Labels

Type

No type

Projects

Status

No status

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions