-
Notifications
You must be signed in to change notification settings - Fork 208
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
Cherry-pick upgrade-16 commits #9545
Merged
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Deploying agoric-sdk with Cloudflare Pages
|
mhofman
added
force:integration
Force integration tests to run on PR
and removed
force:integration
Force integration tests to run on PR
labels
Jun 20, 2024
mhofman
force-pushed
the
mhofman/u16-cherry-pick
branch
2 times, most recently
from
June 21, 2024 00:18
4afb5c5
to
bd14cb1
Compare
Use `@agoric/vow/vat.js` instead.
Co-authored-by: Ikenna Omekam <[email protected]>
closes: #9466 Expand `isRetryableReason` to take the prior return value into account to prevent infinite loops when `watch`ing or `when`ing a plain `Promise.reject(reasonThatIsRetryable)`. Before this, when the watch/when would perform the retry loop, it incorrectly assumed that a non-advancing series of retryable `shorten` attempts just needed more retries. Also, reject watch/when of certain promises that don't resolve promptly (such as when the watching vat is upgraded, even if the promise's decider has not been upgraded). Finally, remove the deprecated `@agoric/vat-data/vow.js`, since that has been superseded by `@agoric/vow/vat.js`. ### Security Considerations Fixes some availability problems. ### Scaling Considerations Less resource consumption. ### Documentation Considerations By design, the `@agoric/vat` package assumes that all pending promises in watch/when chains will settle promptly (such as by the end of the crank), producing only long-lived vows or terminal results. ### Testing Considerations New bootstrap tests added. ### Upgrade Considerations None additional.
Tell Mergify to remove noisy HTML comments in the PR description from the Git merge commit. As per the NOTE in [Mergify Template docs](https://docs.mergify.com/configuration/data-types/#template): > By default, the HTML comments are stripped from `body`. To get the full body, you can use the `body_raw` attribute.
refs: #9153 ## Description This partially reverts the behavioral change from `deviceTools` from #9153. ### Security Considerations None ### Scaling Considerations None ### Documentation Considerations None ### Testing Considerations None ### Upgrade Considerations DeviceTools are bundled into device bundles, so we want to minimize difference between code executing and code on disk.
…ndler (#9507) refs: #8596 ## Description Reverts a behavioral change questioned in #8596 (comment), which was indeed not appropriate. If the reject handler is missing, it should result in an unhandled rejection. ### Security Considerations None ### Scaling Considerations None ### Documentation Considerations None ### Testing Considerations No coverage ### Upgrade Considerations Maintains currently deployed behavior on mainnet
closes: #9484 closes: #9497 ## Description - Changes the type of every return in `localchain.js` to `PromiseVow` - Uses `watch` for `.query()` and `.deposit()` methods and returns a `Vow` - Updates call sites outside `vat-localchain` to expect and unwrap PromiseVows (using `V`) ### Upgrade Considerations These changes better prepare us for upgrades - consumers will know to expect a `PromiseVow`.
Liveslots uses an internal `Cache` utility to hold data about virtual objects, backed by the vatstore. PR #8752 included a change to make its `delete()` method return a "did exist" boolean, just like a JavaScript `Map`. Unfortunately the cache does not know whether a key is present/absent in the backing store, so `delete()` will return an erroneous value. It would cost an extra DB query to make this behave as expected, and liveslots does not have a need for it. So this commit reverts that change, and makes `delete()` return void as before.
`queue_conditions` prevent a PR from entering the merge queue. What we really want is `merge_conditions`, which allows PRs to embark on the merge train while integration tests are still running, and only actually merge when the tests are successful. Also, we can use `queue_conditions` to consolidate and clean up the condition logic in our `pull_request_rules`. https://docs.mergify.com/merge-queue/setup/#configuring-the-merge-queue-rules Tested successfully in Agoric/mergify-experiements#13
closes: #9100 closes: #9425 ## Description Until we have better layering of the snapshots extensions in cosmos-sdk, this replaces the implementation of the `snapshots export` command to initiate the snapshot creation through our front-running mechanism used for state-sync. Drive-by cleanup of the root command as well to address #9425 ### Security Considerations None, ### Scaling Considerations None ### Documentation Considerations Communicate to validators that we fixed the command and that it's usable as expected with any cosmos chain. ### Testing Considerations Added an integration test since this only modifies the command line handling Manually tested with the following ``` cd packages/cosmic-swingset make scenario2-setup make scenario2-run-chain # wait until there are blocks, then kill agd --home t1/n0 snapshots export rm -rf t1/n0/data/application.db t1/n0/data/agoric # the above removes app state without removing cometbft state as that cannot # be restored easily in a single node chain agd --home t1/n0 snapshot restore $snapshot_height 2 make scenario2-run-chain # verify blocks are being produced ``` ### Upgrade Considerations Since we replace the upstream sdk command handling, any future changes upstream would have to be reflected in the override.
mhofman
force-pushed
the
mhofman/u16-cherry-pick
branch
from
June 23, 2024 04:00
3bd8136
to
661a1ef
Compare
Closes #9567 ## Description Stores the swing-store export data outside of the genesis file, and only include a hash of it in genesis for validation. This is the bulk of the data in the genesis file (on mainnet 6GB vs 300MB for the rest), and it serves little purpose to keep it in there. Furthermore golevelDB chokes when cosmos attempts to store the genesis file inside the DB (limit of 4GB documents) ### Security Considerations None, the data remains validated ### Scaling Considerations Reduces memory usage on genesis export / import. Furthermore we avoid iterating over the data twice on import, which is painfully slow for IAVL. ### Documentation Considerations None ### Testing Considerations Added a3p acceptance test Manually tested as follow: ``` cd packages/cosmic-swingset make scenario2-setup make scenario2-run-chain # wait until there are blocks, then kill mkdir t1/n0/export agd --home t1/n0 export --export-dir t1/n0/export agd --home t1/n0 tendermint unsafe-reset-all mv t1/n0/export/* t1/n0/config make scenario2-run-chain # verify blocks are being produced after genesis restart ``` ### Upgrade Considerations There is a compatibility mode to load genesis files with export data embedded.
mhofman
force-pushed
the
mhofman/u16-cherry-pick
branch
2 times, most recently
from
June 26, 2024 02:18
6818dd2
to
78d7794
Compare
This test fails, and will be fixed in the subsequent commit
…eFeedSupport.js`
refs: #9382 refs: #9584 ## Description Add a test that was supposed to be in #9283, where it says > A3P tests that verify that vaultFactory has been upgraded, that a new Auctioneer is running and is receiving prices. Verify that when prices drop, assets are sold via the auction, the bidder gets the proceeds, and the vaults are liquidated or reconstituted appropriately. It was too hard to verify the results of the auction, because of the timing of vault liquidations and auction runs, so the actual check was dropped. The subsequent PR (#9371) that upgraded scaledPriceAuthorities seems to have broken the upgrade, and the missing test failed to warn us. Here we test that vaultFactory was actually upgraded by verifying that it's getting prices from the new price feeds, and drop the upgrade of scaledPriceAuthority until we can figure out how to make that upgrade compatible. ### Security Considerations Not relevant ### Scaling Considerations Drops the upgrade of scaledPriceAuthority, which fixed part of the memory growth. This was the smaller portion of the growth, so it's more important to get the rest of the fixes in than to also include this. ### Documentation Considerations None. ### Testing Considerations Replaces a missing test. ### Upgrade Considerations Repairs upgrade.
…an name (#9575) closes: #9571 ## Description Parametrize the price feed core proposals by the upgrade handler name. The proposal for a3p remains with the deprecated ambient (from environment) oracle addresses. Additionally fix and add some logging to the upgrade vault proposal ### Security Considerations None ### Scaling Considerations Not a typical scaling consideration, but this introduces a "basic" upgrade name that skips all vaults related proposals. The correctly parametrized info can be provided in the chain software upgrade proposal's upgrade info for any chain that has different configuration. ### Documentation Considerations Need to communicate to validators that the pattern of upgrade names has changed. ### Testing Considerations A3P and manually tested on mainfork ### Upgrade Considerations See above
mhofman
force-pushed
the
mhofman/u16-cherry-pick
branch
from
June 26, 2024 04:48
78d7794
to
01d104e
Compare
This was referenced Sep 3, 2024
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Rebase todo:
This is followed by a commit to remove the
orchestration
andasync-flow
packages from the release, as these are not baked in yet and are not deployed anyway.