cardano-testnet: call the CLI check-node-configuration to catch configuration errors #6096
+4
−0
IOG Hydra / ci/hydra-build:x86_64-darwin.native.checks/cardano-testnet/cardano-testnet-test
failed
Jan 30, 2025 in 3m 52s
Build failed
1 failed steps
Details
Failed Steps
Step 1
Derivation
/nix/store/i94c6a3flmarg6559qarfaqjnbigvf0g-cardano-testnet-test-cardano-testnet-test-10.0.0-check.drv
Log
unpacking sources
unpacking source archive /nix/store/wkr3b16lqfr7kax58i8l4zfjxky1akc0-source-root-cardano-testnet-test-cardano-testnet-test-root
source root is source-root-cardano-testnet-test-cardano-testnet-test-root
patching sources
building
/nix/store/n21jr14labdd0m69gvvqvwzirw3g8w5b-cardano-testnet-test-cardano-testnet-test-10.0.0/bin:
patching script interpreter paths in /tmp/tmp.BZM26xiy9R/tmp.iQAXTJZICK/bin
test/Spec.hs
Spec
Ledger Events
Sanity Check: OK (42.15s)
✓ Sanity Check passed 1 test.
Governance
Committee Add New: IGNORED on MacOS and Windows
IGNORED on MacOS and Windows
DRep Deposits: OK (35.12s)
✓ DRep Deposits passed 1 test.
DRep Retirement: OK (47.12s)
✓ DRep Retirement passed 1 test.
Propose And Ratify New Constitution: IGNORED on MacOS and Windows
IGNORED on MacOS and Windows
Gov Action Timeout: FAIL (163.54s)
✗ Gov Action Timeout failed at src/Testnet/Start/Cardano.hs:338:5
after 1 test.
shrink path: 1:
forAll0 =
Cardano node process did not start - address already in use:
cardano-node: DiffusionError Network.Socket.bind: resource busy (Address already in use)
forAll1 =
Waiting for port 57389 to be available before starting node
forAll2 =
Node name: node3
forAll3 =
Waiting for port 57388 to be available before starting node
forAll4 =
Exceeded timeout when retrying node start
forAll5 =
Retrying on 'address in use' error, timeout: -0.945742s
forAll6 =
Waiting for port 57388 to be available before starting node
forAll7 =
Node name: node2
forAll8 =
Waiting for port 57387 to be available before starting node
forAll9 =
Node name: node1
forAll10 =
Writing file: /private/tmp/tmp.BZM26xiy9R/gov-action-timeout-test-c7bef08bb3c81281/node-data/node3/topology.json
forAll11 =
Writing file: /private/tmp/tmp.BZM26xiy9R/gov-action-timeout-test-c7bef08bb3c81281/node-data/node2/topology.json
forAll12 =
Writing file: /private/tmp/tmp.BZM26xiy9R/gov-action-timeout-test-c7bef08bb3c81281/node-data/node1/topology.json
forAll13 =
Writing file: /private/tmp/tmp.BZM26xiy9R/gov-action-timeout-test-c7bef08bb3c81281/node-data/node3/port
forAll14 =
Writing file: /private/tmp/tmp.BZM26xiy9R/gov-action-timeout-test-c7bef08bb3c81281/node-data/node2/port
forAll15 =
Writing file: /private/tmp/tmp.BZM26xiy9R/gov-action-timeout-test-c7bef08bb3c81281/node-data/node1/port
forAll16 =
━━━━ command ━━━━
/nix/store/j5m4q3axa2zdpyv4m0ir797szhv1lw37-cardano-cli-exe-cardano-cli-10.3.0.0/bin/cardano-cli debug check-node-configuration --node-configuration-file /private/tmp/tmp.BZM26xiy9R/gov-action-timeout-test-c7bef08bb3c81281/configuration.yaml
forAll17 =
Reading file: /private/tmp/tmp.BZM26xiy9R/gov-action-timeout-test-c7bef08bb3c81281/utxo-keys/utxo3/utxo.addr
forAll18 =
━━━━ command ━━━━
/nix/store/j5m4q3axa2zdpyv4m0ir797szhv1lw37-cardano-cli-exe-cardano-cli-10.3.0.0/bin/cardano-cli latest address build --payment-verification-key-file /private/tmp/tmp.BZM26xiy9R/gov-action-timeout-test-c7bef08bb3c81281/utxo-keys/utxo3/utxo.vkey --testnet-magic 42 --out-file /private/tmp/tmp.BZM26xiy9R/gov-action-timeout-test-c7bef08bb3c81281/utxo-keys/utxo3/utxo.addr
forAll19 =
Reading file: /private/tmp/tmp.BZM26xiy9R/gov-action-timeout-test-c7bef08bb3c81281/utxo-keys/utxo2/utxo.addr
forAll20 =
━━━━ command ━━━━
/nix/store/j5m4q3axa2zdpyv4m0ir797szhv1lw37-cardano-cli-exe-cardano-cli-10.3.0.0/bin/cardano-cli latest address build --payment-verification-key-file /private/tmp/tmp.BZM26xiy9R/gov-action-timeout-test-c7bef08bb3c81281/utxo-keys/utxo2/utxo.vkey --testnet-magic 42 --out-file /private/tmp/tmp.BZM26xiy9R/gov-action-timeout-test-c7bef08bb3c81281/utxo-keys/utxo2/utxo.addr
forAll21 =
Reading file: /private/tmp/tmp.BZM26xiy9R/gov-action-timeout-test-c7bef08bb3c81281/utxo-keys/utxo1/utxo.addr
forAll22 =
━━━━ command ━━━━
/nix/store/j5m4q3axa2zdpyv4m0ir797szhv1lw37-cardano-cli-exe-cardano-cli-10.3.0.0/bin/cardano-cli latest address build --payment-verification-key-file /private/tmp/tmp.BZM26xiy9R/gov-action-timeout-test-c7bef08bb3c81281/utxo-keys/utxo1/utxo.vkey --testnet-magic 42 --out-file /private/tmp/tmp.BZM26xiy9R/gov-action-timeout-test-c7bef08bb3c81281/utxo-keys/utxo1/utxo.addr
forAll23 =
byron-gen-command
forAll24 =
pools-keys
forAll25 =
genesis.alonzo.spec.json
forAll26 =
byron-genesis.json
forAll27 =
utxo-keys
forAll28 =
stake-delegators
forAll29 =
work
forAll30 =
conway-genesis.json
forAll31 =
byron.genesis.spec.json
forAll32 =
shelley-genesis.json
forAll33 =
module
forAll34 =
drep-keys
forAll35 =
genesis-keys
forAll36 =
delegate-keys
forAll37 =
alonzo-genesis.json
forAll38 =
genesis.conway.spec.json
forAll39 =
Listing directory: /private/tmp/tmp.BZM26xiy9R/gov-action-timeout-test-c7bef08bb3c81281/
forAll40 =
━━━━ command ━━━━
/nix/store/j5m4q3axa2zdpyv4m0ir797szhv1lw37-cardano-cli-exe-cardano-cli-10.3.0.0/bin/cardano-cli conway genesis create-testnet-data --spec-shelley /private/tmp/tmp.BZM26xiy9R/gov-action-timeout-test-c7bef08bb3c81281/genesis-input.shelley.json --spec-alonzo /private/tmp/tmp.BZM26xiy9R/gov-action-timeout-test-c7bef08bb3c81281/genesis-input.alonzo.json --spec-conway /private/tmp/tmp.BZM26xiy9R/gov-action-timeout-test-c7bef08bb3c81281/genesis-input.conway.json --testnet-magic 42 --pools 1 --total-supply 100000020000000 --stake-delegators 3 --utxo-keys 3 --drep-keys 3 --start-time 2025-01-30T16:30:29Z --out-dir /private/tmp/tmp.BZM26xiy9R/gov-action-timeout-test-c7bef08bb3c81281/
forAll41 =
Number of seeded UTxO keys: 3
forAll42 =
Number of stake delegators: 1
forAll43 =
Number of pools: 1
forAll44 =
Writing file: /private/tmp/tmp.BZM26xiy9R/gov-action-timeout-test-c7bef08bb3c81281/genesis-input.shelley.json
forAll45 =
Reading file: /private/tmp/tmp.BZM26xiy9R/gov-action-timeout-test-c7bef08bb3c81281/genesis-input.shelley.json
forAll46 =
Rewriting JSON file: /private/tmp/tmp.BZM26xiy9R/gov-action-timeout-test-c7bef08bb3c81281/genesis-input.shelley.json
forAll47 =
Creating directory if missing: /private/tmp/tmp.BZM26xiy9R/gov-action-timeout-test-c7bef08bb3c81281
forAll48 =
"/private/tmp/tmp.BZM26xiy9R/gov-action-timeout-test-c7bef08bb3c81281/configuration.yaml"
forAll49 =
"/private/tmp/tmp.BZM26xiy9R/gov-action-timeout-test-c7bef08bb3c81281/genesis.conway.spec.json"
forAll50 =
"/private/tmp/tmp.BZM26xiy9R/gov-action-timeout-test-c7bef08bb3c81281/genesis.alonzo.spec.json"
forAll51 =
darwin
forAll52 =
2025-01-30 16:30:29.039338 UTC
forAll53 =
2025-01-30 16:30:14.039338 UTC
┏━━ test/cardano-testnet-test/Cardano/Testnet/Test/Gov/GovActionTimeout.hs ━━━
42 ┃ hprop_check_gov_action_timeout :: Property
43 ┃ hprop_check_gov_action_timeout = integrationWorkspace "gov-action-timeout" $ \tempAbsBasePath' ->
┃ │ Workspace: /private/tmp/tmp.BZM26xiy9R/gov-action-timeout-test-c7bef08bb3c81281
44 ┃ H.runWithDefaultWatchdog_ $ do
45 ┃ -- Start a local test net
46 ┃ conf@Conf { tempAbsPath } <- mkConf tempAbsBasePath'
┃ │ /private/tmp/tmp.BZM26xiy9R/gov-action-timeout-test-c7bef08bb3c81281
47 ┃ let tempAbsPath' = unTmpAbsPath tempAbsPath
48 ┃ tempBaseAbsPath = makeTmpBaseAbsPath tempAbsPath
49 ┃
50 ┃ work <- H.createDirectoryIfMissing $ tempAbsPath' </> "work"
┃ │ Creating directory if missing: /private/tmp/tmp.BZM26xiy9R/gov-action-timeout-test-c7bef08bb3c81281/work
51 ┃
52 ┃ -- Create default testnet
53 ┃ let ceo = ConwayEraOnwardsConway
54 ┃ sbe = convert ceo
55 ┃ eraName = eraToString sbe
56 ┃ asbe = AnyShelleyBasedEra sbe
57 ┃ fastTestnetOptions = def { cardanoNodeEra = asbe }
58 ┃ shelleyOptions = def { genesisEpochLength = 200 }
59 ┃
60 ┃ TestnetRuntime
61 ┃ { testnetMagic
62 ┃ , testnetNodes
63 ┃ , wallets=wallet0:wallet1:_
64 ┃ , configurationFile
65 ┃ }
66 ┃ <- cardanoTestnetDefault fastTestnetOptions shelleyOptions conf
67 ┃
68 ┃ node <- H.headM testnetNodes
69 ┃ poolSprocket1 <- H.noteShow $ nodeSprocket node
70 ┃ execConfig <- mkExecConfig tempBaseAbsPath poolSprocket1 testnetMagic
71 ┃ let socketPath = nodeSocketPath node
72 ┃
73 ┃ epochStateView <- getEpochStateView configurationFile socketPath
74 ┃
75 ┃ H.note_ $ "Sprocket: " <> show poolSprocket1
76 ┃ H.note_ $ "Abs path: " <> tempAbsBasePath'
77 ┃ H.note_ $ "Socketpath: " <> unFile socketPath
78 ┃ H.note_ $ "Foldblocks config file: " <> unFile configurationFile
79 ┃
80 ┃ gov <- H.createDirectoryIfMissing $ work </> "governance"
81 ┃
82 ┃ baseDir <- H.createDirectoryIfMissing $ gov </> "output"
83 ┃
84 ┃ -- Figure out expiration time for proposals
85 ┃
86 ┃ govActionLifetime <- getGovActionLifetime epochStateView ceo
87 ┃ H.note_ $ "govActionLifetime: " <> show govActionLifetime
88 ┃
89 ┃ -- Register stake address
90 ┃ let stakeCertFp = gov </> "stake.regcert"
91 ┃ stakeKeys = KeyPair { verificationKey = File $ gov </> "stake.vkey"
92 ┃ , signingKey = File $ gov </> "stake.skey"
93 ┃ }
94 ┃ cliStakeAddressKeyGen stakeKeys
95 ┃ keyDeposit <- getKeyDeposit epochStateView ceo
96 ┃ createStakeKeyRegistrationCertificate
97 ┃ tempAbsPath (AnyShelleyBasedEra sbe) (verificationKey stakeKeys) keyDeposit stakeCertFp
98 ┃
99 ┃
100 ┃ stakeCertTxBodyFp <- H.note $ work </> "stake.registration.txbody"
101 ┃ stakeCertTxSignedFp <- H.note $ work </> "stake.registration.tx"
102 ┃
103 ┃ txin1 <- findLargestUtxoForPaymentKey epochStateView sbe wallet1
104 ┃
105 ┃ void $ execCli' execConfig
106 ┃ [ eraName, "transaction", "build"
107 ┃ , "--change-address", Text.unpack $ paymentKeyInfoAddr wallet1
108 ┃ , "--tx-in", Text.unpack $ renderTxIn txin1
109 ┃ , "--tx-out", Text.unpack (paymentKeyInfoAddr wallet1) <> "+" <> show @Int 10_000_000
110 ┃ , "--certificate-file", stakeCertFp
111 ┃ , "--witness-override", show @Int 2
112 ┃ , "--out-file", stakeCertTxBodyFp
113 ┃ ]
114 ┃
115 ┃ void $ execCli' execConfig
116 ┃ [ eraName, "transaction", "sign"
117 ┃ , "--tx-body-file", stakeCertTxBodyFp
118 ┃ , "--signing-key-file", signingKeyFp $ paymentKeyInfoPair wallet1
119 ┃ , "--signing-key-file", signingKeyFp stakeKeys
120 ┃ , "--out-file", stakeCertTxSignedFp
121 ┃ ]
122 ┃
123 ┃ void $ execCli' execConfig
124 ┃ [ eraName, "transaction", "submit"
125 ┃ , "--tx-file", stakeCertTxSignedFp
126 ┃ ]
127 ┃
128 ┃ -- make sure that stake registration cert gets into a block
129 ┃ _ <- waitForBlocks epochStateView 1
130 ┃
131 ┃ -- Create a proposal
132 ┃ (governanceActionTxId, _governanceActionIndex) <-
133 ┃ makeActivityChangeProposal execConfig epochStateView ceo (baseDir </> "proposal")
134 ┃ Nothing (EpochInterval 3) stakeKeys wallet0 (EpochInterval 2)
135 ┃
136 ┃ -- Wait for proposal to expire
137 ┃ void $ waitForEpochs epochStateView (EpochInterval $ unEpochInterval govActionLifetime + 1)
138 ┃
139 ┃ -- Check proposal expired
140 ┃ mGovernanceActionTxIx <- watchEpochStateUpdate epochStateView (EpochInterval 2) $ \(anyNewEpochState, _, _) ->
141 ┃ return $ maybeExtractGovernanceActionIndex (fromString governanceActionTxId) anyNewEpochState
142 ┃
143 ┃ mGovernanceActionTxIx H.=== Nothing
This failure can be reproduced by running:
> recheckAt (Seed 12014406324688053141 12503661119574459569) "1:" Gov Action Timeout
Use "--pattern '$NF ~ /Gov Action Timeout/' --hedgehog-replay '1: Seed 12014406324688053141 12503661119574459569'" to reproduce from the command-line.
Use -p '/Gov Action Timeout/' to rerun this test only.
Treasury Donation: OK (119.41s)
✓ Treasury Donation passed 1 test.
Treasury Withdrawal: IGNORED on MacOS and Windows
IGNORED on MacOS and Windows
PParam change fails for SPO: OK (52.66s)
✓ PParam change fails for SPO passed 1 test.
InfoAction: OK (98.41s)
✓ InfoAction passed 1 test.
Transaction Build Wrong Hash: OK (25.24s)
✓ Transaction Build Wrong Hash passed 1 test.
Plutus
PlutusV3: OK (26.05s)
✓ PlutusV3 passed 1 test.
CLI
Shutdown: OK (12.74s)
✓ Shutdown passed 1 test.
Shutdown On Sigint: IGNORED on MacOS and Windows
IGNORED on MacOS and Windows
Shutdown On SlotSynced: OK (36.53s)
✓ Shutdown On SlotSynced passed 1 test.
stake snapshot: OK (166.84s)
✓ stake snapshot passed 1 test.
simple transaction build: OK (22.33s)
✓ simple transaction build passed 1 test.
register deregister stake address in transaction build: OK (27.26s)
✓ register deregister stake address in transaction build passed 1 test.
kes-period-info: OK (167.64s)
✓ kes-period-info passed 1 test.
query-slot-number: OK (21.17s)
✓ query-slot-number passed 1 test.
foldEpochState receives ledger state: OK (34.47s)
✓ foldEpochState receives ledger state passed 1 test.
CliQueries: IGNORED on MacOS and Windows
IGNORED on MacOS and Windows
SubmitApi
transaction: IGNORED on MacOS and Windows
IGNORED on MacOS and Windows
1 out of 23 tests failed (220.30s)
Loading