Agoric / agoric-3-proposals

Proposals run or planned for Mainnet (agoric-3)
Apache License 2.0
0 stars 4 forks source link

Missing affordances for asserting upgrade failure and subsequent recovery #165

Open gibson042 opened 4 months ago

gibson042 commented 4 months ago

agoric-upgrade-16-rc2 failed in emerynet because cosmos store upgrades had already been applied by rc0/rc1 (cf. https://github.com/Agoric/agoric-sdk/issues/9682 ). It would be nice if this repository included a way to execute an upgrade and assert its failure, to be followed by a successor that recovers it.

mhofman commented 4 months ago

Also one reason we didn't test this appropriately is because there is no easy way to create a tree of proposals with a branch instead of fully linear layers.

In particular we need to test whether an unreleased rc1 can apply both on top of the previous version, or on top of a previous rc0

turadg commented 4 months ago

It would be nice if this repository included a way to execute an upgrade and assert its failure

So a way for execute_upgrade to allow startAgd to fail and to then not wait for blocks.

https://github.com/Agoric/agoric-3-proposals/blob/c70cf299b0efc3758991639a03b92cc33867a5bf/packages/synthetic-chain/public/upgrade-test-scripts/run_execute.sh#L28-L32

I suggest a general override with an execute.sh in the proposal package, as there is for prepare.sh and use.sh.

no easy way to create a tree of proposals with a branch instead of fully linear layers.

How easy to do you want it to be? This repo is for tooling and the actual history of what's been proposed on chain. To branch, I think you'd want a separate project for each scenario. E.g. duplicate a3p-integration