-
Notifications
You must be signed in to change notification settings - Fork 122
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
fix: remove race condition on start container retries #415
fix: remove race condition on start container retries #415
Conversation
Marking as r4r. The CI on ibc-go doesn't run into this issue which is why I haven't re-reviewed this until now, but I noticed this failure, which seems like it's very possible a command is being executed twice given the error:
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thank you! I like the approach of the longer timeout and no retries to prevent potential double execution.
…ntures#415) * fix: increase retry to 15 seconds to avoid retrying a command exec * chore: increase log tail, simplify start container logic * chore: cleanup, revert change, add in-code comment * chore: remove reference to retry
* Param proposals, balance inquiries, and IBC transfer error handling (#393) * Extract file writing/copying logic to helpers * Add ParamChangeProposal * Update file naming for param change proposal * Use Code to detect errors in IBC transfers * Add AllBalances and ParamChangeProposal * Add support for the Hermes relayer (#396) * adding some scaffolding for hermes relayer * chore: updating interface to accept create connection options type * chore: wip * wip: adding path map to hermes relayer type * writing mnemonic file * correctly reading toml config * ibc test passing with hermes relayer * learn ibc test passing with hermes relayer * adding parse client and connection output * adding hermes test cases * remove unused types * undid import change * reverted import change * reverted some unintentional changes * fix linting error * adding hermes to conformance matrix * adding default value for matrix file for CI * pass absolute value for matrix file * removed extra part of path * adding hermes to Labels function * add capabilities for hermes * temporarily strip down number of tests to verify hermes relayer * fixing conformance tests * fixing channel tests in TestRelayerSetup * revert to go rly to test * bump hermes version * extract json response correctly * extract json result from stdout * correct channel parsing json stdout * set field ClearOnStart to true * switch back to go relayer as default * add hermes to the default relayers list * update penumbra chain spin-up (#409) * Create .github/dependabot.yml Start dependabot. * Bump github.com/BurntSushi/toml from 1.2.0 to 1.2.1 (#432) Bumps [github.com/BurntSushi/toml](https://github.com/BurntSushi/toml) from 1.2.0 to 1.2.1. - [Release notes](https://github.com/BurntSushi/toml/releases) - [Commits](BurntSushi/toml@v1.2.0...v1.2.1) --- updated-dependencies: - dependency-name: github.com/BurntSushi/toml dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump modernc.org/sqlite from 1.17.3 to 1.21.0 (#433) --- updated-dependencies: - dependency-name: modernc.org/sqlite dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump leonsteinhaeuser/project-beta-automations from 2.0.1 to 2.1.0 (#428) Bumps [leonsteinhaeuser/project-beta-automations](https://github.com/leonsteinhaeuser/project-beta-automations) from 2.0.1 to 2.1.0. - [Release notes](https://github.com/leonsteinhaeuser/project-beta-automations/releases) - [Commits](leonsteinhaeuser/project-beta-automations@v2.0.1...v2.1.0) --- updated-dependencies: - dependency-name: leonsteinhaeuser/project-beta-automations dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Dan Kanefsky <56059752+boojamya@users.noreply.github.com> * Bump golangci/golangci-lint-action from 2 to 3 (#429) Bumps [golangci/golangci-lint-action](https://github.com/golangci/golangci-lint-action) from 2 to 3. - [Release notes](https://github.com/golangci/golangci-lint-action/releases) - [Commits](golangci/golangci-lint-action@v2...v3) --- updated-dependencies: - dependency-name: golangci/golangci-lint-action dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Dan Kanefsky <56059752+boojamya@users.noreply.github.com> * Bump actions/checkout from 1 to 3 (#430) Bumps [actions/checkout](https://github.com/actions/checkout) from 1 to 3. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](actions/checkout@v1...v3) --- updated-dependencies: - dependency-name: actions/checkout dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Dan Kanefsky <56059752+boojamya@users.noreply.github.com> * Bump github.com/gdamore/tcell/v2 (#434) Bumps [github.com/gdamore/tcell/v2](https://github.com/gdamore/tcell) from 2.4.1-0.20210905002822-f057f0a857a1 to 2.6.0. - [Release notes](https://github.com/gdamore/tcell/releases) - [Commits](https://github.com/gdamore/tcell/commits/v2.6.0) --- updated-dependencies: - dependency-name: github.com/gdamore/tcell/v2 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Dan Kanefsky <56059752+boojamya@users.noreply.github.com> * Bump github.com/avast/retry-go/v4 from 4.0.4 to 4.3.3 (#437) Bumps [github.com/avast/retry-go/v4](https://github.com/avast/retry-go) from 4.0.4 to 4.3.3. - [Release notes](https://github.com/avast/retry-go/releases) - [Commits](avast/retry-go@4.0.4...4.3.3) --- updated-dependencies: - dependency-name: github.com/avast/retry-go/v4 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump github.com/stretchr/testify from 1.8.1 to 1.8.2 (#436) Bumps [github.com/stretchr/testify](https://github.com/stretchr/testify) from 1.8.1 to 1.8.2. - [Release notes](https://github.com/stretchr/testify/releases) - [Commits](stretchr/testify@v1.8.1...v1.8.2) --- updated-dependencies: - dependency-name: github.com/stretchr/testify dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Andrew Gouin <andrew@gouin.io> * Bump go.uber.org/zap from 1.21.0 to 1.24.0 (#439) Bumps [go.uber.org/zap](https://github.com/uber-go/zap) from 1.21.0 to 1.24.0. - [Release notes](https://github.com/uber-go/zap/releases) - [Changelog](https://github.com/uber-go/zap/blob/master/CHANGELOG.md) - [Commits](uber-go/zap@v1.21.0...v1.24.0) --- updated-dependencies: - dependency-name: go.uber.org/zap dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Dan Kanefsky <56059752+boojamya@users.noreply.github.com> * Cosmos SDK v0.47 (#359) * chore: update to 0.47 * bump go * updates * updates * feedback * Fix BroadcastSync for cosmos broadcaster (#360) * Fix BroadcastSync for cosmos broadcaster * Fixing docstring * public grpc, register tmlightclient codecs as no longer by default, attempt base64 decode on key if string value doesn't match for backwards compatibility Add test for IBC with chains pre/post SDK 47 upgrade * Bump ibc-go to latest commit * deps: upgrade to ibc-go/v7 and bump ibctest go mod (#372) * bumping ibc-go to v7 branch * bumping ibctest go mod to v7 * chore: align User interface with CosmosWallet and fix issue with broadcast mode sync (#388) * chore: v0.47 branch merge and bumps (#406) * Param proposals, balance inquiries, and IBC transfer error handling (#393) * Extract file writing/copying logic to helpers * Add ParamChangeProposal * Update file naming for param change proposal * Use Code to detect errors in IBC transfers * Add AllBalances and ParamChangeProposal * Add support for the Hermes relayer (#396) * adding some scaffolding for hermes relayer * chore: updating interface to accept create connection options type * chore: wip * wip: adding path map to hermes relayer type * writing mnemonic file * correctly reading toml config * ibc test passing with hermes relayer * learn ibc test passing with hermes relayer * adding parse client and connection output * adding hermes test cases * remove unused types * undid import change * reverted import change * reverted some unintentional changes * fix linting error * adding hermes to conformance matrix * adding default value for matrix file for CI * pass absolute value for matrix file * removed extra part of path * adding hermes to Labels function * add capabilities for hermes * temporarily strip down number of tests to verify hermes relayer * fixing conformance tests * fixing channel tests in TestRelayerSetup * revert to go rly to test * bump hermes version * extract json response correctly * extract json result from stdout * correct channel parsing json stdout * set field ClearOnStart to true * switch back to go relayer as default * add hermes to the default relayers list * Update version of ibc-go from v6 to v7 from merge * Bump sdk and ibc-go --------- Co-authored-by: bigs <bigswim@gmail.com> Co-authored-by: Cian Hatton <cianhatton@gmail.com> * deps: bump SDK to v0.47-rc3 (#414) Co-authored-by: Carlos Rodriguez <crodveg@gmail.com> * Consolidate flush command into single command (#417) * Consolidate flush command into single command * Updates for hermes * Bump to rly default with consolidated flush * Flush with channelID since hermes requires it * feat: add ReadFile method for reading files from docker fs (#423) Expose a ReadFile method on ChainNode so that you can read files from the docker filesystem within test cases that exist in downstream repos. --------- Co-authored-by: Justin Tieri <37750742+jtieri@users.noreply.github.com> * Add support for genesis sub commands (#384) * Add support for genesis sub commands * Remove logging and add some basic documentation for UsingNewGenesisCommand * Remove UsingNewGenesisCommand from chainspec + add test --------- Co-authored-by: Julien Robert <julien@rbrt.fr> Co-authored-by: Cian Hatton <cianhatton@gmail.com> Co-authored-by: Damian Nolan <damiannolan@gmail.com> Co-authored-by: Gjermund Garaba <gjermund@garaba.net> Co-authored-by: bigs <bigswim@gmail.com> Co-authored-by: Carlos Rodriguez <carlos@interchain.io> Co-authored-by: Carlos Rodriguez <crodveg@gmail.com> Co-authored-by: Justin Tieri <37750742+jtieri@users.noreply.github.com> * Add image repo to upgradeVersion (#445) * add image reop to upgradeVersion * container repo * juno container repo * fix order * capitalization * generate explicit port bindings (#444) * generate explicit port bindings * Prevent race to open ports between closing tmp listeners and starting containers * Bump github.com/cosmos/ibc-go/v7 from 7.0.0-rc1 to 7.0.0 (#451) Bumps [github.com/cosmos/ibc-go/v7](https://github.com/cosmos/ibc-go) from 7.0.0-rc1 to 7.0.0. - [Release notes](https://github.com/cosmos/ibc-go/releases) - [Changelog](https://github.com/cosmos/ibc-go/blob/main/CHANGELOG.md) - [Commits](cosmos/ibc-go@v7.0.0-rc1...v7.0.0) --- updated-dependencies: - dependency-name: github.com/cosmos/ibc-go/v7 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Andrew Gouin <andrew@gouin.io> * Bump golang.org/x/tools from 0.6.0 to 0.7.0 (#449) Bumps [golang.org/x/tools](https://github.com/golang/tools) from 0.6.0 to 0.7.0. - [Release notes](https://github.com/golang/tools/releases) - [Commits](golang/tools@v0.6.0...v0.7.0) --- updated-dependencies: - dependency-name: golang.org/x/tools dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Andrew Gouin <andrew@gouin.io> * fix: remove race condition on start container retries (#415) * fix: increase retry to 15 seconds to avoid retrying a command exec * chore: increase log tail, simplify start container logic * chore: cleanup, revert change, add in-code comment * chore: remove reference to retry * Bump github.com/libp2p/go-libp2p-core from 0.15.1 to 0.20.1 (#440) Bumps [github.com/libp2p/go-libp2p-core](https://github.com/libp2p/go-libp2p-core) from 0.15.1 to 0.20.1. - [Release notes](https://github.com/libp2p/go-libp2p-core/releases) - [Commits](libp2p/go-libp2p-core@v0.15.1...v0.20.1) --- updated-dependencies: - dependency-name: github.com/libp2p/go-libp2p-core dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Andrew Gouin <andrew@gouin.io> * consolidate create node container (#447) * generate explicit port bindings * Prevent race to open ports between closing tmp listeners and starting containers * Consolidate create node container * Use RWMutex * initialize containerLifecycle for penumbra node * Bump rly to v2.3.0-rc2 * Temporarily modify version * Bump github.com/centrifuge/go-substrate-rpc-client/v4 (#438) Bumps [github.com/centrifuge/go-substrate-rpc-client/v4](https://github.com/centrifuge/go-substrate-rpc-client) from 4.0.10 to 4.0.12. - [Release notes](https://github.com/centrifuge/go-substrate-rpc-client/releases) - [Commits](centrifuge/go-substrate-rpc-client@v4.0.10...v4.0.12) --- updated-dependencies: - dependency-name: github.com/centrifuge/go-substrate-rpc-client/v4 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Andrew Gouin <andrew@gouin.io> * Bump actions/setup-go from 3 to 4 (#472) Bumps [actions/setup-go](https://github.com/actions/setup-go) from 3 to 4. - [Release notes](https://github.com/actions/setup-go/releases) - [Commits](actions/setup-go@v3...v4) --- updated-dependencies: - dependency-name: actions/setup-go dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Migrate docker relayer to ContainerLifecycle (#466) * Bump default rly version to v2.3.0-rc4 * update docker relayer to use ContainerLifecycle * Add nil check * Make ICA waits more explicit (#471) * Make ICA waits more explicit * Poll for channel close * Bump modernc.org/sqlite from 1.21.0 to 1.21.1 (#473) Bumps [modernc.org/sqlite](https://gitlab.com/cznic/sqlite) from 1.21.0 to 1.21.1. - [Release notes](https://gitlab.com/cznic/sqlite/tags) - [Commits](https://gitlab.com/cznic/sqlite/compare/v1.21.0...v1.21.1) --- updated-dependencies: - dependency-name: modernc.org/sqlite dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Andrew Gouin <andrew@gouin.io> * Bump google.golang.org/grpc from 1.53.0 to 1.54.0 (#463) Bumps [google.golang.org/grpc](https://github.com/grpc/grpc-go) from 1.53.0 to 1.54.0. - [Release notes](https://github.com/grpc/grpc-go/releases) - [Commits](grpc/grpc-go@v1.53.0...v1.54.0) --- updated-dependencies: - dependency-name: google.golang.org/grpc dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Andrew Gouin <andrew@gouin.io> * Bump github.com/cosmos/cosmos-sdk from 0.47.0 to 0.47.1 (#462) Bumps [github.com/cosmos/cosmos-sdk](https://github.com/cosmos/cosmos-sdk) from 0.47.0 to 0.47.1. - [Release notes](https://github.com/cosmos/cosmos-sdk/releases) - [Changelog](https://github.com/cosmos/cosmos-sdk/blob/v0.47.1/CHANGELOG.md) - [Commits](cosmos/cosmos-sdk@v0.47.0...v0.47.1) --- updated-dependencies: - dependency-name: github.com/cosmos/cosmos-sdk dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Andrew Gouin <andrew@gouin.io> * Bump github.com/99designs/keyring from 1.2.1 to 1.2.2 (#450) Bumps [github.com/99designs/keyring](https://github.com/99designs/keyring) from 1.2.1 to 1.2.2. - [Release notes](https://github.com/99designs/keyring/releases) - [Commits](99designs/keyring@v1.2.1...v1.2.2) --- updated-dependencies: - dependency-name: github.com/99designs/keyring dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Andrew Gouin <andrew@gouin.io> Co-authored-by: Dan Kanefsky <56059752+boojamya@users.noreply.github.com> * Update `ExportState` (#475) * update exportstate * add space * concatenate stdout and stderr * use ChainConfig in RestoreKey relayer * fix mini bug * fix lint * use cmd create node same main --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: bigs <bigswim@gmail.com> Co-authored-by: Cian Hatton <cianhatton@gmail.com> Co-authored-by: Dan Kanefsky <56059752+boojamya@users.noreply.github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Andrew Gouin <andrew@gouin.io> Co-authored-by: Julien Robert <julien@rbrt.fr> Co-authored-by: Damian Nolan <damiannolan@gmail.com> Co-authored-by: Gjermund Garaba <gjermund@garaba.net> Co-authored-by: Carlos Rodriguez <carlos@interchain.io> Co-authored-by: Carlos Rodriguez <crodveg@gmail.com> Co-authored-by: Justin Tieri <37750742+jtieri@users.noreply.github.com> Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com> Co-authored-by: Nguyen Thanh Nhan <thanhnhan98qh@gmail.com>
* chore: update to 0.47 * bump go * updates * updates * feedback * Fix BroadcastSync for cosmos broadcaster (#360) * Fix BroadcastSync for cosmos broadcaster * Fixing docstring * public grpc, register tmlightclient codecs as no longer by default, attempt base64 decode on key if string value doesn't match for backwards compatibility Add test for IBC with chains pre/post SDK 47 upgrade * Bump ibc-go to latest commit * deps: upgrade to ibc-go/v7 and bump ibctest go mod (#372) * bumping ibc-go to v7 branch * bumping ibctest go mod to v7 * Initial commit for hyperspace relayer * Add support for creating the core config and modifying chain configs. * Move hyperspace to its own package * Populate hyperspace's cosmos config with key information, i.e. KeyEntry * Add wasm code id and wasm client type to cosmos chain config * chore: align User interface with CosmosWallet and fix issue with broadcast mode sync (#388) * Hyperspace create-client is populating client-ids in chain configs. Reverted to using preset keys for both parachain and cosmos. Added 08-wasm types for codec registry. * Add CreateConnections, GetClients, and ParseGetClientsOuput. CreateConnection only commits MsgConnectionOpenInit. Removes wasm_client_type and counterparty_wasm_code_id from chain configs. Increases max rpc body size for a larger contract. Subs out FindTxs for polkadot chains to not impact cosmos chains block db functions. * Temporarily force simd for chain A and rococo-local for chain B * Create connection working in hyperspace/interchaintest * Add create channel and get connections. Create channels works. * Reduce session length to 20 blocks again. Debugging starting the relayer. And using ibc-go-simd from heighliner. * Start hyperspace relayer * IBC transfers working in both directions * Poll for cosmos chain balance to reduce test time * Use interchaintest generated relayer wallet in hyperspace's cosmos chain config. * add query channels (#397) * add query channels * code cleanup from PR commments * fix channel and portID fork polkadot mint * Add test for requiring governance on PushNewWasmCode msg * Fix denom trace param * Add submitting a proposal for a new wasm contract. Clean up the test case. * Bump to ibc-go v7, cosmos-sdk v0.47, polkadot v0.9.36, update parachains mint funds & send ibc tx msgs * Refactor hyperspace into more manageable files * Add GeneratePath() to hyperspace relayer and move hyperspace-specific relayer functions out of DockerRelayer * Add LinkPath to hyperspace relayer interface * Override cosmos chain block time in test * Scale polkadot/parachain additional wallets by a factor of 1mil relative to default * Update test framework with latest changes from ibc-go, hyperspace, grandpa contract, and parachain. * Update to gzip the wasm contract and reduce gas wanted now that gas consumption is better. * Update codecs, update hyperspace/parachain commits to use, and remove enabling ib send/receive on parachain. The parachain now defaults to being enabled for send/receives. * Merge branch 'main' into feat/hyperspace (#492) * Param proposals, balance inquiries, and IBC transfer error handling (#393) * Extract file writing/copying logic to helpers * Add ParamChangeProposal * Update file naming for param change proposal * Use Code to detect errors in IBC transfers * Add AllBalances and ParamChangeProposal * Add support for the Hermes relayer (#396) * adding some scaffolding for hermes relayer * chore: updating interface to accept create connection options type * chore: wip * wip: adding path map to hermes relayer type * writing mnemonic file * correctly reading toml config * ibc test passing with hermes relayer * learn ibc test passing with hermes relayer * adding parse client and connection output * adding hermes test cases * remove unused types * undid import change * reverted import change * reverted some unintentional changes * fix linting error * adding hermes to conformance matrix * adding default value for matrix file for CI * pass absolute value for matrix file * removed extra part of path * adding hermes to Labels function * add capabilities for hermes * temporarily strip down number of tests to verify hermes relayer * fixing conformance tests * fixing channel tests in TestRelayerSetup * revert to go rly to test * bump hermes version * extract json response correctly * extract json result from stdout * correct channel parsing json stdout * set field ClearOnStart to true * switch back to go relayer as default * add hermes to the default relayers list * update penumbra chain spin-up (#409) * Create .github/dependabot.yml Start dependabot. * Bump github.com/BurntSushi/toml from 1.2.0 to 1.2.1 (#432) Bumps [github.com/BurntSushi/toml](https://github.com/BurntSushi/toml) from 1.2.0 to 1.2.1. - [Release notes](https://github.com/BurntSushi/toml/releases) - [Commits](BurntSushi/toml@v1.2.0...v1.2.1) --- updated-dependencies: - dependency-name: github.com/BurntSushi/toml dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump modernc.org/sqlite from 1.17.3 to 1.21.0 (#433) --- updated-dependencies: - dependency-name: modernc.org/sqlite dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump leonsteinhaeuser/project-beta-automations from 2.0.1 to 2.1.0 (#428) Bumps [leonsteinhaeuser/project-beta-automations](https://github.com/leonsteinhaeuser/project-beta-automations) from 2.0.1 to 2.1.0. - [Release notes](https://github.com/leonsteinhaeuser/project-beta-automations/releases) - [Commits](leonsteinhaeuser/project-beta-automations@v2.0.1...v2.1.0) --- updated-dependencies: - dependency-name: leonsteinhaeuser/project-beta-automations dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Dan Kanefsky <56059752+boojamya@users.noreply.github.com> * Bump golangci/golangci-lint-action from 2 to 3 (#429) Bumps [golangci/golangci-lint-action](https://github.com/golangci/golangci-lint-action) from 2 to 3. - [Release notes](https://github.com/golangci/golangci-lint-action/releases) - [Commits](golangci/golangci-lint-action@v2...v3) --- updated-dependencies: - dependency-name: golangci/golangci-lint-action dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Dan Kanefsky <56059752+boojamya@users.noreply.github.com> * Bump actions/checkout from 1 to 3 (#430) Bumps [actions/checkout](https://github.com/actions/checkout) from 1 to 3. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](actions/checkout@v1...v3) --- updated-dependencies: - dependency-name: actions/checkout dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Dan Kanefsky <56059752+boojamya@users.noreply.github.com> * Bump github.com/gdamore/tcell/v2 (#434) Bumps [github.com/gdamore/tcell/v2](https://github.com/gdamore/tcell) from 2.4.1-0.20210905002822-f057f0a857a1 to 2.6.0. - [Release notes](https://github.com/gdamore/tcell/releases) - [Commits](https://github.com/gdamore/tcell/commits/v2.6.0) --- updated-dependencies: - dependency-name: github.com/gdamore/tcell/v2 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Dan Kanefsky <56059752+boojamya@users.noreply.github.com> * Bump github.com/avast/retry-go/v4 from 4.0.4 to 4.3.3 (#437) Bumps [github.com/avast/retry-go/v4](https://github.com/avast/retry-go) from 4.0.4 to 4.3.3. - [Release notes](https://github.com/avast/retry-go/releases) - [Commits](avast/retry-go@4.0.4...4.3.3) --- updated-dependencies: - dependency-name: github.com/avast/retry-go/v4 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump github.com/stretchr/testify from 1.8.1 to 1.8.2 (#436) Bumps [github.com/stretchr/testify](https://github.com/stretchr/testify) from 1.8.1 to 1.8.2. - [Release notes](https://github.com/stretchr/testify/releases) - [Commits](stretchr/testify@v1.8.1...v1.8.2) --- updated-dependencies: - dependency-name: github.com/stretchr/testify dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Andrew Gouin <andrew@gouin.io> * Bump go.uber.org/zap from 1.21.0 to 1.24.0 (#439) Bumps [go.uber.org/zap](https://github.com/uber-go/zap) from 1.21.0 to 1.24.0. - [Release notes](https://github.com/uber-go/zap/releases) - [Changelog](https://github.com/uber-go/zap/blob/master/CHANGELOG.md) - [Commits](uber-go/zap@v1.21.0...v1.24.0) --- updated-dependencies: - dependency-name: go.uber.org/zap dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Dan Kanefsky <56059752+boojamya@users.noreply.github.com> * Cosmos SDK v0.47 (#359) * chore: update to 0.47 * bump go * updates * updates * feedback * Fix BroadcastSync for cosmos broadcaster (#360) * Fix BroadcastSync for cosmos broadcaster * Fixing docstring * public grpc, register tmlightclient codecs as no longer by default, attempt base64 decode on key if string value doesn't match for backwards compatibility Add test for IBC with chains pre/post SDK 47 upgrade * Bump ibc-go to latest commit * deps: upgrade to ibc-go/v7 and bump ibctest go mod (#372) * bumping ibc-go to v7 branch * bumping ibctest go mod to v7 * chore: align User interface with CosmosWallet and fix issue with broadcast mode sync (#388) * chore: v0.47 branch merge and bumps (#406) * Param proposals, balance inquiries, and IBC transfer error handling (#393) * Extract file writing/copying logic to helpers * Add ParamChangeProposal * Update file naming for param change proposal * Use Code to detect errors in IBC transfers * Add AllBalances and ParamChangeProposal * Add support for the Hermes relayer (#396) * adding some scaffolding for hermes relayer * chore: updating interface to accept create connection options type * chore: wip * wip: adding path map to hermes relayer type * writing mnemonic file * correctly reading toml config * ibc test passing with hermes relayer * learn ibc test passing with hermes relayer * adding parse client and connection output * adding hermes test cases * remove unused types * undid import change * reverted import change * reverted some unintentional changes * fix linting error * adding hermes to conformance matrix * adding default value for matrix file for CI * pass absolute value for matrix file * removed extra part of path * adding hermes to Labels function * add capabilities for hermes * temporarily strip down number of tests to verify hermes relayer * fixing conformance tests * fixing channel tests in TestRelayerSetup * revert to go rly to test * bump hermes version * extract json response correctly * extract json result from stdout * correct channel parsing json stdout * set field ClearOnStart to true * switch back to go relayer as default * add hermes to the default relayers list * Update version of ibc-go from v6 to v7 from merge * Bump sdk and ibc-go --------- Co-authored-by: bigs <bigswim@gmail.com> Co-authored-by: Cian Hatton <cianhatton@gmail.com> * deps: bump SDK to v0.47-rc3 (#414) Co-authored-by: Carlos Rodriguez <crodveg@gmail.com> * Consolidate flush command into single command (#417) * Consolidate flush command into single command * Updates for hermes * Bump to rly default with consolidated flush * Flush with channelID since hermes requires it * feat: add ReadFile method for reading files from docker fs (#423) Expose a ReadFile method on ChainNode so that you can read files from the docker filesystem within test cases that exist in downstream repos. --------- Co-authored-by: Justin Tieri <37750742+jtieri@users.noreply.github.com> * Add support for genesis sub commands (#384) * Add support for genesis sub commands * Remove logging and add some basic documentation for UsingNewGenesisCommand * Remove UsingNewGenesisCommand from chainspec + add test --------- Co-authored-by: Julien Robert <julien@rbrt.fr> Co-authored-by: Cian Hatton <cianhatton@gmail.com> Co-authored-by: Damian Nolan <damiannolan@gmail.com> Co-authored-by: Gjermund Garaba <gjermund@garaba.net> Co-authored-by: bigs <bigswim@gmail.com> Co-authored-by: Carlos Rodriguez <carlos@interchain.io> Co-authored-by: Carlos Rodriguez <crodveg@gmail.com> Co-authored-by: Justin Tieri <37750742+jtieri@users.noreply.github.com> * Add image repo to upgradeVersion (#445) * add image reop to upgradeVersion * container repo * juno container repo * fix order * capitalization * generate explicit port bindings (#444) * generate explicit port bindings * Prevent race to open ports between closing tmp listeners and starting containers * Bump github.com/cosmos/ibc-go/v7 from 7.0.0-rc1 to 7.0.0 (#451) Bumps [github.com/cosmos/ibc-go/v7](https://github.com/cosmos/ibc-go) from 7.0.0-rc1 to 7.0.0. - [Release notes](https://github.com/cosmos/ibc-go/releases) - [Changelog](https://github.com/cosmos/ibc-go/blob/main/CHANGELOG.md) - [Commits](cosmos/ibc-go@v7.0.0-rc1...v7.0.0) --- updated-dependencies: - dependency-name: github.com/cosmos/ibc-go/v7 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Andrew Gouin <andrew@gouin.io> * Bump golang.org/x/tools from 0.6.0 to 0.7.0 (#449) Bumps [golang.org/x/tools](https://github.com/golang/tools) from 0.6.0 to 0.7.0. - [Release notes](https://github.com/golang/tools/releases) - [Commits](golang/tools@v0.6.0...v0.7.0) --- updated-dependencies: - dependency-name: golang.org/x/tools dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Andrew Gouin <andrew@gouin.io> * fix: remove race condition on start container retries (#415) * fix: increase retry to 15 seconds to avoid retrying a command exec * chore: increase log tail, simplify start container logic * chore: cleanup, revert change, add in-code comment * chore: remove reference to retry * Bump github.com/libp2p/go-libp2p-core from 0.15.1 to 0.20.1 (#440) Bumps [github.com/libp2p/go-libp2p-core](https://github.com/libp2p/go-libp2p-core) from 0.15.1 to 0.20.1. - [Release notes](https://github.com/libp2p/go-libp2p-core/releases) - [Commits](libp2p/go-libp2p-core@v0.15.1...v0.20.1) --- updated-dependencies: - dependency-name: github.com/libp2p/go-libp2p-core dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Andrew Gouin <andrew@gouin.io> * consolidate create node container (#447) * generate explicit port bindings * Prevent race to open ports between closing tmp listeners and starting containers * Consolidate create node container * Use RWMutex * initialize containerLifecycle for penumbra node * Bump rly to v2.3.0-rc2 * Temporarily modify version * Bump github.com/centrifuge/go-substrate-rpc-client/v4 (#438) Bumps [github.com/centrifuge/go-substrate-rpc-client/v4](https://github.com/centrifuge/go-substrate-rpc-client) from 4.0.10 to 4.0.12. - [Release notes](https://github.com/centrifuge/go-substrate-rpc-client/releases) - [Commits](centrifuge/go-substrate-rpc-client@v4.0.10...v4.0.12) --- updated-dependencies: - dependency-name: github.com/centrifuge/go-substrate-rpc-client/v4 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Andrew Gouin <andrew@gouin.io> * Bump actions/setup-go from 3 to 4 (#472) Bumps [actions/setup-go](https://github.com/actions/setup-go) from 3 to 4. - [Release notes](https://github.com/actions/setup-go/releases) - [Commits](actions/setup-go@v3...v4) --- updated-dependencies: - dependency-name: actions/setup-go dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Migrate docker relayer to ContainerLifecycle (#466) * Bump default rly version to v2.3.0-rc4 * update docker relayer to use ContainerLifecycle * Add nil check * Make ICA waits more explicit (#471) * Make ICA waits more explicit * Poll for channel close * Bump modernc.org/sqlite from 1.21.0 to 1.21.1 (#473) Bumps [modernc.org/sqlite](https://gitlab.com/cznic/sqlite) from 1.21.0 to 1.21.1. - [Release notes](https://gitlab.com/cznic/sqlite/tags) - [Commits](https://gitlab.com/cznic/sqlite/compare/v1.21.0...v1.21.1) --- updated-dependencies: - dependency-name: modernc.org/sqlite dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Andrew Gouin <andrew@gouin.io> * Bump google.golang.org/grpc from 1.53.0 to 1.54.0 (#463) Bumps [google.golang.org/grpc](https://github.com/grpc/grpc-go) from 1.53.0 to 1.54.0. - [Release notes](https://github.com/grpc/grpc-go/releases) - [Commits](grpc/grpc-go@v1.53.0...v1.54.0) --- updated-dependencies: - dependency-name: google.golang.org/grpc dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Andrew Gouin <andrew@gouin.io> * Bump github.com/cosmos/cosmos-sdk from 0.47.0 to 0.47.1 (#462) Bumps [github.com/cosmos/cosmos-sdk](https://github.com/cosmos/cosmos-sdk) from 0.47.0 to 0.47.1. - [Release notes](https://github.com/cosmos/cosmos-sdk/releases) - [Changelog](https://github.com/cosmos/cosmos-sdk/blob/v0.47.1/CHANGELOG.md) - [Commits](cosmos/cosmos-sdk@v0.47.0...v0.47.1) --- updated-dependencies: - dependency-name: github.com/cosmos/cosmos-sdk dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Andrew Gouin <andrew@gouin.io> * Bump github.com/99designs/keyring from 1.2.1 to 1.2.2 (#450) Bumps [github.com/99designs/keyring](https://github.com/99designs/keyring) from 1.2.1 to 1.2.2. - [Release notes](https://github.com/99designs/keyring/releases) - [Commits](99designs/keyring@v1.2.1...v1.2.2) --- updated-dependencies: - dependency-name: github.com/99designs/keyring dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Andrew Gouin <andrew@gouin.io> Co-authored-by: Dan Kanefsky <56059752+boojamya@users.noreply.github.com> * Update `ExportState` (#475) * update exportstate * add space * concatenate stdout and stderr * use ChainConfig in RestoreKey relayer * fix mini bug * fix lint * use cmd create node same main --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: bigs <bigswim@gmail.com> Co-authored-by: Cian Hatton <cianhatton@gmail.com> Co-authored-by: Dan Kanefsky <56059752+boojamya@users.noreply.github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Andrew Gouin <andrew@gouin.io> Co-authored-by: Julien Robert <julien@rbrt.fr> Co-authored-by: Damian Nolan <damiannolan@gmail.com> Co-authored-by: Gjermund Garaba <gjermund@garaba.net> Co-authored-by: Carlos Rodriguez <carlos@interchain.io> Co-authored-by: Carlos Rodriguez <crodveg@gmail.com> Co-authored-by: Justin Tieri <37750742+jtieri@users.noreply.github.com> Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com> Co-authored-by: Nguyen Thanh Nhan <thanhnhan98qh@gmail.com> * Change the UidGid of polkadot node to match what is built into the container. * Fix polkadot keys unit tests * Fix go.sum after merge from main * style: go fmt * Update parachain's query ibc balance to match it new api, re-enable verifications of denom balances of our user accounts. * Update cli for wasm light client and update the grandpa contract to support the latest wasm light client interface to contracts. * refactor how hyperspace commander parses get client and get connection output. Fix get channels after the hyperspace cli was removed. * Remove some prints and fix typo * style: go fmt * fix lint errors * update go.mod --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: Julien Robert <julien@rbrt.fr> Co-authored-by: Cian Hatton <cianhatton@gmail.com> Co-authored-by: Andrew Gouin <andrew@gouin.io> Co-authored-by: Damian Nolan <damiannolan@gmail.com> Co-authored-by: Eduardo Díaz <edjroz@users.noreply.github.com> Co-authored-by: ducnt131 <62016666+anhductn2001@users.noreply.github.com> Co-authored-by: bigs <bigswim@gmail.com> Co-authored-by: Dan Kanefsky <56059752+boojamya@users.noreply.github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Gjermund Garaba <gjermund@garaba.net> Co-authored-by: Carlos Rodriguez <carlos@interchain.io> Co-authored-by: Carlos Rodriguez <crodveg@gmail.com> Co-authored-by: Justin Tieri <37750742+jtieri@users.noreply.github.com> Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com> Co-authored-by: Nguyen Thanh Nhan <thanhnhan98qh@gmail.com>
While investigating cosmos/ibc-go#2827 I came across an issue locally. If I created an interchain test with many validators/full nodes, I would get indeterminate errors on configuration startup. One issue was actually an address being returned twice in the standard output and then being reused for gentx,
{address}\n{address}
was the string being passed around. Another was the genesis file already existing (trying to execute simd init twice)It became apparent to me that on a rare occasion, some of the config commands would get executed twice. With the help of @chatton, we determined it was likely the retry in
StartContainer
. I believe while a node was processing a request, the timeout would occur. Since this is a request being sent to a server, there's no way to ensure that request doesn't get executed. A retry with the same request would be sent and then I would see an error roughly saying that this tx already executed.The proposed changes removes the retry entirely. I'm not sure what use it currently provides. I propose using the calling context's timeout value, if it does not exist, use a standard timeout (30 seconds in the current pr, fine with whatever, but should likely be a defined variable). The only scenario I think a retry could be useful is if the first request attempted is expected to fail and the second may succeed, but the current code doesn't seem to handler this case as the first error would be marked as unrecoverable. How likely is this? Should a defensive retry be used if the timeout hasn't been reached? Are there any common errors returned which warrant a retry? Like a connection being reset?
Is there any context I am missing on why the code is the way it is? Thanks for taking to review this, we would love to patch up these indeterminacy issues.
ref #402