Skip to content

Conversation

dkijania
Copy link
Member

Added Upgrade script test for single archive node. This test is meant to ensure that mesa upgrade script applied on schema on which 3.X.X archive node is operating won't cause any issues. Test steps:

  • Bootstrap archive on berkeley schema
  • Upgrade schema to mesa
  • Apply precomputed blocks to archive (via deamon )
  • Run replayer to ensure daemon and archive node have ledgers hashes equal

I also applied small refactoring to solve to issues. First one was a duplication between upgrade and precomputed_blocks test. They use similar flow so common parts were moved to new module.

Another problem was how to deal with local/ci configuration. Usually local development environment does not have installed archive debian, therefore we need to fetch upgrade script from src/app/archive/create_schema.sql while on ci we operates on archive from debian package. It installs scripts into /etc/mina/archive. I introduced simple function to provide script path based on possible locations + path env var/

@dkijania dkijania self-assigned this Sep 10, 2025
@dkijania
Copy link
Member Author

!ci-build-me

@dkijania dkijania force-pushed the dkijania/single_archive_node_upgrade_script branch from 72c4473 to 0c39a61 Compare September 10, 2025 21:40
@dkijania
Copy link
Member Author

!ci-build-me

@dkijania dkijania requested a review from glyh September 11, 2025 07:04
@glyh
Copy link
Member

glyh commented Sep 11, 2025

Invoking dune exec ./archive_node_tests.exe locally I got this:

Failure "Environment variable MINA_TEST_NETWORK_DATA is not set"

Could you give some instructions how should I test locally? Thanks :)

@dkijania
Copy link
Member Author

MINA_TEST_POSTGRES_URI=postgres://postgres:xxxx@localhost:5432 MINA_TEST_NETWORK_DATA=./src/test/archive/sample_db DUNE_PROFILE=devnet dune exec src/test/archive/archive_node_tests/archive_node_tests.exe -- test upgrade_archive  -v

@glyh
Copy link
Member

glyh commented Sep 11, 2025

 MINA_TEST_POSTGRES_URI=postgres://postgres@localhost:5432 MINA_TEST_NETWORK_DATA=./src/test/archive/sample_db DUNE_PROFILE=devnet dune exec src/test/archive/archive_node_tests/archive_node_tests.exe -- test upgrade_archive  -v
Testing Test archive node..               
This run has ID `6675EE55-6960-4D32-BABE-6F23E9F529FA`.
[SKIP]              precomputed_blocks          0   Recreate database from precomputed blocks sent from mock daemon.
[SKIP]              genesis_load                0   Load mainnet genesis ledger without memory leak.
[FAIL]              upgrade_archive             0   Recreate database from precomputed blocks after upgrade script is applied.
-- upgrade_archive.000 [Recreate database from precomputed blocks after upgrade script is applied.] Failed --
exception

1 error! in 0.000s. 1 test run.

I'm running on a freshly created postgresdb.

I've ran

createdb -U postgres mina_archive
psql -h localhost -U postgres -d mina_archive -f src/app/archive/create_schema.sql

before the test.


let possible_locations ~file possible_locations =
let exists_at_path folder file =
match Sys.file_exists (folder ^ "/" ^ file) with
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nit: replace ^ "/" ^ with ^/

@dkijania
Copy link
Member Author

@glyh please rerun test without -v to see exception

@dkijania dkijania force-pushed the dkijania/single_archive_node_upgrade_script branch from d3a9f26 to fac3db1 Compare September 15, 2025 19:06
@dkijania
Copy link
Member Author

!ci-build-me

@dkijania
Copy link
Member Author

!ci-build-me

@dkijania dkijania requested a review from glyh September 16, 2025 10:46
@glyh glyh changed the title [HF][Upgrade Script] Upgrade script for single node test [HF][Upgrade Script] Upgrade script for single archive node test Sep 16, 2025
@amc-ie
Copy link
Member

amc-ie commented Sep 16, 2025

!ci-bypass-changelog

@glyh glyh merged commit aaf5ba9 into compatible Sep 16, 2025
54 checks passed
@glyh glyh deleted the dkijania/single_archive_node_upgrade_script branch September 16, 2025 13:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants