-
Notifications
You must be signed in to change notification settings - Fork 215
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
liveslots doesn't drop WatchedPromises from slotToVal #10756
Comments
warner
added
bug
Something isn't working
SwingSet
package: SwingSet
liveslots
requires vat-upgrade to deploy changes
labels
Dec 20, 2024
This was referenced Dec 20, 2024
warner
added a commit
that referenced
this issue
Dec 20, 2024
Liveslots has a bug (#10757) which leaks slotToVal entries when a tracked Promise is still being held in virtual data (e.g. a merely-virtual MapStore) at the time it becomes settled. This is triggered by `watchPromise` because of the order in which we attach two handlers: one which notices the resolution and is inhibited from deleting the slotToVal entry, and a second which removes the Promise from the (virtual) `promiseRegistrations` collection (thus enabling the deletion). For any watched Promise that is resolved, we leave a `slotToVal` entry (with an empty WeakRef) in RAM until the end of the incarnation. This PR does not fix the underlying bug, but it rearranges the handler order to avoid triggering it. The attached unit test fails with the original handler order (`slotToVal.size` grows), and passes with the swapped order (`slotToVal.size` remains constant). closes #10756 refs #10706
warner
added a commit
that referenced
this issue
Dec 20, 2024
Liveslots has a bug (#10757) which leaks slotToVal entries when a tracked Promise is still being held in virtual data (e.g. a merely-virtual MapStore) at the time it becomes settled. This is triggered by `watchPromise` because of the order in which we attach two handlers: one which notices the resolution and is inhibited from deleting the slotToVal entry, and a second which removes the Promise from the (virtual) `promiseRegistrations` collection (thus enabling the deletion). For any watched Promise that is resolved, we leave a `slotToVal` entry (with an empty WeakRef) in RAM until the end of the incarnation. This commit adds a test.failing to demonstrate the presence of the bug. Each time we watch and then resolve a promise, the slotToVal table grows by one entry. refs #10756
warner
added a commit
that referenced
this issue
Dec 20, 2024
Liveslots has a bug (#10757) which leaks slotToVal entries when a tracked Promise is still being held in virtual data (e.g. a merely-virtual MapStore) at the time it becomes settled. This is triggered by `watchPromise` because of the order in which we attach two handlers: one which notices the resolution and is inhibited from deleting the slotToVal entry, and a second which removes the Promise from the (virtual) `promiseRegistrations` collection (thus enabling the deletion). For any watched Promise that is resolved, we leave a `slotToVal` entry (with an empty WeakRef) in RAM until the end of the incarnation. This PR does not fix the underlying bug, but it rearranges the handler order to avoid triggering it. closes #10756 refs #10706
mergify bot
added a commit
that referenced
this issue
Dec 21, 2024
) Liveslots has a bug (#10757) which leaks slotToVal entries when a tracked Promise is still being held in virtual data (e.g. a merely-virtual MapStore) at the time it becomes settled. This is triggered by `watchPromise` because of the order in which we attach two handlers: one which notices the resolution and is inhibited from deleting the slotToVal entry, and a second which removes the Promise from the (virtual) `promiseRegistrations` collection (thus enabling the deletion). For any watched Promise that is resolved, we leave a `slotToVal` entry (with an empty WeakRef) in RAM until the end of the incarnation. This PR does not fix the underlying bug, but it rearranges the handler order to avoid triggering it. The attached unit test fails with the original handler order (`slotToVal.size` grows), and passes with the swapped order (`slotToVal.size` remains constant). closes #10756 refs #10706
mergify bot
added a commit
that referenced
this issue
Dec 24, 2024
refs: #10758, #10756 closes: #10762 ## Description Upgrade the Orchestration (both Core and API) vats to use liveslots with the #10758 fix for a `watchPromise` memory leak (#10756). ### Security Considerations No code change to the vat user code in question, just to the liveslots it relies on. ### Scaling Considerations Should flatten the memory growth curve. ### Documentation Considerations No changes to existing data. ### Testing Considerations The upgraded vats should be monitored for memory growth. ### Upgrade Considerations n/a
mujahidkay
added a commit
that referenced
this issue
Dec 24, 2024
## Description Created as per instructions in MAINTAINERS.md. Includes an additional step to update yarn.lock for multichain-testing, a3p-integration/proposals/s:stake-bld and a3p-integration/proposals/z:acceptance ## Changes - @agoric/[email protected] - @agoric/[email protected] - @agoric/[email protected] - @agoric/[email protected] - [email protected] - @agoric/[email protected] - @agoric/[email protected] - @agoric/[email protected] - @agoric/[email protected] - @agoric/[email protected] - @agoric/[email protected] - @agoric/[email protected] - @agoric/[email protected] - @agoric/[email protected] - @agoric/[email protected] - @agoric/[email protected] - @agoric/[email protected] - @agoric/[email protected] - @agoric/[email protected] - @agoric/[email protected] - @agoric/[email protected] - @agoric/[email protected] - @agoric/[email protected] - @agoric/[email protected] - @agoric/[email protected] - @agoric/[email protected] - @agoric/[email protected] - @agoric/[email protected] - @agoric/[email protected] - @agoric/[email protected] - @agoric/[email protected] - @agoric/[email protected] - @agoric/[email protected] - @agoric/[email protected] - @agoric/[email protected] - @agoric/[email protected] - @agoric/[email protected] - @agoric/[email protected] - @agoric/[email protected] - @agoric/[email protected] - @agoric/[email protected] - @agoric/[email protected] - @agoric/[email protected] - @agoric/[email protected] - @agoric/[email protected] - @agoric/[email protected] - @agoric/[email protected] - @agoric/[email protected] - @agoric/[email protected] - @agoric/[email protected] ## Packages that have NEWS.md updates ```diff --- a/golang/cosmos/CHANGELOG.md +++ b/golang/cosmos/CHANGELOG.md @@ -3,6 +3,32 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.35.0-u18.5](https://github.com/Agoric/agoric-sdk/compare/@agoric/[email protected]...@agoric/[email protected]) (2024-12-24) + + +### Features + +* **cosmos:** Support arbitrary core eval builder arguments ([#10767](#10767)) ([a944f4c](a944f4c)), closes [#10752](#10752) [#10752](#10752) +* **cosmos:** use `x/vbank` ConsensusVersion to upgrade monitoring ([0e367d3](0e367d3)) +* migrate upgrade of v7-board from upgrade 19 to upgrade 18 ([#10761](#10761)) ([837776e](837776e)), closes [#10760](#10760) +* upgrade v7-board and test it ([#10516](#10516)) ([d8a109e](d8a109e)), closes [#10394](#10394) +* **vbank:** new param `allowed_monitoring_accounts` ([5ac4c52](5ac4c52)) +* **vtransfer:** extract base address from parameterized address ([3d44b53](3d44b53)) +* **vtransfer:** port some `address-hooks.js` functions to Go ([159098b](159098b)) +* **x/swingset:** Add parameters for controlling vat cleanup budget ([02c8138](02c8138)), closes [#8928](#8928) +* **x/swingset:** Define default vat cleanup budget as { default: 5, kv: 50 } ([d86ee6d](d86ee6d)) +* **x/swingset:** Read beansPerUnit in each message handler and pass down to helpers ([55b9b49](55b9b49)) +* **x/swingset:** Require a non-empty vat cleanup budget to include `default` ([28c4d8b](28c4d8b)) + + +### Bug Fixes + +* **agd:** upgrade all orchestration vats to new liveslots ([59fa82c](59fa82c)) +* **cosmos:** return an error if version is unsupported ([d17e55b](d17e55b)) +* **x/swingset:** Let migration see incomplete Params structs ([315cdd5](315cdd5)) + + + ## [0.35.0-u18.4](https://github.com/Agoric/agoric-sdk/compare/@agoric/[email protected]...@agoric/[email protected]) (2024-12-17) **Note:** Version bump only for package @agoric/cosmos --- a/packages/ERTP/CHANGELOG.md +++ b/packages/ERTP/CHANGELOG.md @@ -3,6 +3,16 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +### [0.16.3-u18.1](https://github.com/Agoric/agoric-sdk/compare/@agoric/[email protected]...@agoric/[email protected]) (2024-12-24) + + +### Bug Fixes + +* **ertp:** remove unneeded ertp type imports ([#10467](#10467)) ([e96ff82](e96ff82)), closes [#10456](#10456) +* **orchestration:** harden exported patterns ([#10470](#10470)) ([47bebb8](47bebb8)), closes [#10456](#10456) + + + ### [0.16.3-u18.0](https://github.com/Agoric/agoric-sdk/compare/@agoric/[email protected]...@agoric/[email protected]) (2024-10-31) --- a/packages/SwingSet/CHANGELOG.md +++ b/packages/SwingSet/CHANGELOG.md @@ -3,6 +3,21 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.33.0-u18.1](https://github.com/Agoric/agoric-sdk/compare/@agoric/[email protected]...@agoric/[email protected]) (2024-12-24) + + +### Features + +* **internal:** Introduce deepCopyJsonable ([f875bb0](f875bb0)) + + +### Bug Fixes + +* **orchestration:** harden exported patterns ([#10470](#10470)) ([47bebb8](47bebb8)), closes [#10456](#10456) +* **SwingSet:** Introduce a termination-dedicated "VatUndertaker" analog to "VatKeeper" ([b786414](b786414)) + + + ## [0.33.0-u18.0](https://github.com/Agoric/agoric-sdk/compare/@agoric/[email protected]...@agoric/[email protected]) (2024-10-31) --- a/packages/agoric-cli/CHANGELOG.md +++ b/packages/agoric-cli/CHANGELOG.md @@ -3,6 +3,37 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.22.0-u18.6](https://github.com/Agoric/agoric-sdk/compare/[email protected]@0.22.0-u18.6) (2024-12-24) + + +### ⚠ BREAKING CHANGES + +* remove agoricNames from VstorageKit + +### Features + +* **agoric-cli:** Add `agoric wallet send` gas limit options ([21a03f8](21a03f8)) +* **agoric-cli:** Block `agoric wallet send` on tx inclusion ([0389a21](0389a21)) +* client-utils package ([50af71f](50af71f)) +* export cli lib ([0d2d4aa](0d2d4aa)) +* fetchEnvNetworkConfig ([9bdba57](9bdba57)) +* makeWalletUtils wo/spawn ([bc10509](bc10509)) +* makeWalletUtils wo/spawn ([20083ae](20083ae)) +* VstorageKit ([71486d7](71486d7)) + + +### Bug Fixes + +* **agoric-cli:** use readPublished consistently in agops oracle ([e8f6de2](e8f6de2)) +* proposeParamChange options ([202ba1e](202ba1e)) + + +### Miscellaneous Chores + +* remove agoricNames from VstorageKit ([1c69d39](1c69d39)) + + + ## [0.22.0-u18.5](https://github.com/Agoric/agoric-sdk/compare/[email protected]@0.22.0-u18.5) (2024-12-17) **Note:** Version bump only for package agoric --- a/packages/boot/CHANGELOG.md +++ b/packages/boot/CHANGELOG.md @@ -3,6 +3,27 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.2.0-u18.6](https://github.com/Agoric/agoric-sdk/compare/@agoric/[email protected]...@agoric/[email protected]) (2024-12-24) + + +### Features + +* add `bech32Prefix?: string` to `CosmosChainInfo` ([cb9e1ee](cb9e1ee)) +* consistent publishTxnRecord (record) ([dbf3934](dbf3934)) +* **fast-usdc:** publish feeConfig to vstorage ([08b2e13](08b2e13)) +* **fast-usdc:** support risk assessment arg ([ff6737a](ff6737a)) +* **fast-usdc:** write chain policies to vstorage ([#10532](#10532)) ([9d6cff1](9d6cff1)) +* **fast-usdc:** write status updates to vstorage ([#10552](#10552)) ([419df4e](419df4e)) +* **internal:** Introduce deepCopyJsonable ([f875bb0](f875bb0)) +* publish OBSERVED with first evidence ([7e62d8f](7e62d8f)) +* readPublished in SwingsetTestKit ([0b383c9](0b383c9)) +* record instances that will be replaced so we can manage them ([c883c39](c883c39)) +* send-anywhere inits chainHub ([2fa2f75](2fa2f75)) +* **types:** TransactionRecord ([ccb9e28](ccb9e28)) +* vstorage status --> txns ([aebb4d7](aebb4d7)) + + + ## [0.2.0-u18.5](https://github.com/Agoric/agoric-sdk/compare/@agoric/[email protected]...@agoric/[email protected]) (2024-12-17) **Note:** Version bump only for package @agoric/boot --- a/packages/builders/CHANGELOG.md +++ b/packages/builders/CHANGELOG.md @@ -3,6 +3,41 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.2.0-u18.6](https://github.com/Agoric/agoric-sdk/compare/@agoric/[email protected]...@agoric/[email protected]) (2024-12-24) + + +### Features + +* `ForwardOpts` accepts `intermediateRecipient` ([eb975f1](eb975f1)) +* `ForwardOptsShape` ([50b1717](50b1717)) +* add `bech32Prefix?: string` to `CosmosChainInfo` ([cb9e1ee](cb9e1ee)) +* advancer with fees ([087f3a8](087f3a8)) +* assetInfo as array of entries ([51e7a9c](51e7a9c)) +* **builders:** --noNoble option for init-fast-usdc ([508a3e0](508a3e0)) +* **builders:** fast-usdc builder w/CLI config ([9f45a05](9f45a05)) +* **builders:** fast-usdc oracleSet option for MAINNET, ... ([3bf01a2](3bf01a2)) +* **builders:** fast-usdc policy update builder ([8ded3d8](8ded3d8)) +* chain-capabilities.js constants ([52ff70a](52ff70a)) +* export `DenomDetailShape` ([2dfddb3](2dfddb3)) +* export `OrchestrationPowersShape` ([34b61ea](34b61ea)) +* **fast-usdc:** write chain policies to vstorage ([#10532](#10532)) ([9d6cff1](9d6cff1)) +* fusdc assetInfo and chainInfo by netname ([afb4f34](afb4f34)) +* parameterize fusdc with chainInfo and assetInfo ([e5a8b64](e5a8b64)) +* record instances that will be replaced so we can manage them ([c883c39](c883c39)) +* register interchain bank assets proposal ([0e20707](0e20707)) +* registerChainsAndAssets ([e72782d](e72782d)) +* save the outgoing EC Charter instance and kit ([c2c9be3](c2c9be3)) +* send-anywhere inits chainHub ([2fa2f75](2fa2f75)) +* upgrade v7-board and test it ([#10516](#10516)) ([d8a109e](d8a109e)), closes [#10394](#10394) + + +### Bug Fixes + +* **agd:** upgrade all orchestration vats to new liveslots ([59fa82c](59fa82c)) +* **orchestration:** denomAmounts must be non-negative ([#10458](#10458)) ([40e0e4e](40e0e4e)) + + + ## [0.2.0-u18.5](https://github.com/Agoric/agoric-sdk/compare/@agoric/[email protected]...@agoric/[email protected]) (2024-12-17) **Note:** Version bump only for package @agoric/builders --- a/packages/casting/CHANGELOG.md +++ b/packages/casting/CHANGELOG.md @@ -3,6 +3,15 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +### [0.4.3-u18.5](https://github.com/Agoric/agoric-sdk/compare/@agoric/[email protected]...@agoric/[email protected]) (2024-12-24) + + +### Features + +* makeTendermintRpcClient ([129516a](129516a)) + + + ### [0.4.3-u18.4](https://github.com/Agoric/agoric-sdk/compare/@agoric/[email protected]...@agoric/[email protected]) (2024-12-17) **Note:** Version bump only for package @agoric/casting --- a/packages/client-utils/CHANGELOG.md +++ b/packages/client-utils/CHANGELOG.md @@ -1 +1,41 @@ +# Change Log + +All notable changes to this project will be documented in this file. +See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. + +## 0.2.0-u18.0 (2024-12-24) + + +### ⚠ BREAKING CHANGES + +* remove agoricNames from VstorageKit + +### Features + +* client-utils package ([50af71f](50af71f)) +* export makeStargateClient ([186d268](186d268)) +* fetchEnvNetworkConfig ([9bdba57](9bdba57)) +* getCurrentWalletRecord ([2740748](2740748)) +* makeWalletUtils wo/spawn ([20083ae](20083ae)) +* ocap makeStargateClient ([c8f7407](c8f7407)) +* one marshaller per WalletUtils ([b141ce6](b141ce6)) +* **sync-tools:** add method to wait until offer exited ([c9370f2](c9370f2)) +* **types:** TypedPublished ([88939bf](88939bf)) +* vstorage without instance binding ([2c4e2e3](2c4e2e3)) +* VstorageKit ([71486d7](71486d7)) +* VstorageKit readPublished ([e48c53c](e48c53c)) + + +### Bug Fixes + +* **client-utils:** only call `fetch` as a function, not a method ([#10671](#10671)) ([fbae24c](fbae24c)), closes [/github.com/endojs/endo/issues/31#issuecomment-1255624116](https://github.com/Agoric//github.com/endojs/endo/issues/31/issues/issuecomment-1255624116) +* **client-utils:** Retry at least every other interval ([fd9394b](fd9394b)) + + +### Miscellaneous Chores + +* remove agoricNames from VstorageKit ([1c69d39](1c69d39)) + + + # Change Log --- a/packages/cosmic-proto/CHANGELOG.md +++ b/packages/cosmic-proto/CHANGELOG.md @@ -3,6 +3,21 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.5.0-u18.5](https://github.com/Agoric/agoric-sdk/compare/@agoric/[email protected]...@agoric/[email protected]) (2024-12-24) + + +### Features + +* **vats:** first cut of Address Hooks in JS ([dbad30b](dbad30b)) + + +### Bug Fixes + +* **address-hooks:** throw if the version is unsupported ([e3c2665](e3c2665)) +* **address-hooks:** use `harden` (or `freeze`) ([80fee60](80fee60)) + + + ## [0.5.0-u18.4](https://github.com/Agoric/agoric-sdk/compare/@agoric/[email protected]...@agoric/[email protected]) (2024-12-17) **Note:** Version bump only for package @agoric/cosmic-proto --- a/packages/cosmic-swingset/CHANGELOG.md +++ b/packages/cosmic-swingset/CHANGELOG.md @@ -3,6 +3,25 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.42.0-u18.6](https://github.com/Agoric/agoric-sdk/compare/@agoric/[email protected]...@agoric/[email protected]) (2024-12-24) + + +### Features + +* **cosmic-swingset:** Add support for testing blocks of a mock chain ([48b6405](48b6405)) +* **cosmic-swingset:** Allow `launch` to accept an already-open swingStore ([c65e5b1](c65e5b1)) +* **cosmic-swingset:** Update parseParams to read and validate vat cleanup budget data ([80bcca0](80bcca0)), closes [#8928](#8928) +* **cosmic-swingset:** Use vat cleanup budget values to allow slow cleanup ([508ea8e](508ea8e)), closes [#8928](#8928) +* **internal:** Introduce deepCopyJsonable ([f875bb0](f875bb0)) +* **x/swingset:** Define default vat cleanup budget as { default: 5, kv: 50 } ([d86ee6d](d86ee6d)) + + +### Bug Fixes + +* **cosmic-swingset:** expect chain --halt-height exit status > 1 ([c025cb7](c025cb7)) + + + ## [0.42.0-u18.5](https://github.com/Agoric/agoric-sdk/compare/@agoric/[email protected]...@agoric/[email protected]) (2024-12-17) --- a/packages/fast-usdc/CHANGELOG.md +++ b/packages/fast-usdc/CHANGELOG.md @@ -3,6 +3,128 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## 0.2.0-u18.0 (2024-12-24) + + +### Features + +* error on conflicting evidence ([cd2a40c](cd2a40c)) +* **fast-usdc:** add FastLP/ufastlp to vbank ([ae1963e](ae1963e)) +* **fast-usdc:** detect transfer completion in cli ([2828444](2828444)) +* **fast-usdc:** support risk assessment arg ([ff6737a](ff6737a)) +* operator majority logic ([bc28201](bc28201)) +* record fee split in transaction ([8846972](8846972)) + +## 0.35.0-u18.4 (2024-12-17) + + +### ⚠ BREAKING CHANGES + +* remove agoricNames from VstorageKit + +### Features + +* consistent publishTxnRecord (record) ([dbf3934](dbf3934)) +* deleteCompletedTxs ([f0078ee](f0078ee)) +* **fast-usdc:** cli for lp deposit and withdraw ([4c0c372](4c0c372)) +* **fast-usdc:** limited operation before connecting to noble ([eb82ae3](eb82ae3)) +* include 'sender' in CctpTxEvidence ([f99e7b8](f99e7b8)) +* publish CctpTxEvidence ([2916c8f](2916c8f)) +* publish OBSERVED with first evidence ([7e62d8f](7e62d8f)) +* simplify seenTxs key ([fd05a7e](fd05a7e)) +* **types:** TransactionRecord ([ccb9e28](ccb9e28)) +* vstorage status --> txns ([aebb4d7](aebb4d7)) + + +### Bug Fixes + +* do not stringify logs ([d04c5ea](d04c5ea)) +* vstorage fastUsdc path ([1f47164](1f47164)) + + +### Miscellaneous Chores + +* remove agoricNames from VstorageKit ([1c69d39](1c69d39)) + +## 0.35.0-u18.3 (2024-12-09) + + +### ⚠ BREAKING CHANGES + +* `getAsset` and `getDenomInfo` require `srcChainName` param + +### Features + +* `getAsset` and `getDenomInfo` require `srcChainName` param ([fc802ad](fc802ad)) +* assetInfo as array of entries ([51e7a9c](51e7a9c)) +* **fast-usdc:** core-eval to update feed policy ([db283e1](db283e1)) +* **fast-usdc:** operator attest cli command ([448aa3a](448aa3a)) +* **fast-usdc:** publish feeConfig to vstorage ([08b2e13](08b2e13)) +* **fast-usdc:** settler disburses or forwards funds ([17b0423](17b0423)) +* **fast-usdc:** write chain policies to vstorage ([#10532](#10532)) ([9d6cff1](9d6cff1)) +* **fast-usdc:** write status updates to vstorage ([#10552](#10552)) ([419df4e](419df4e)) +* operator accept cmd ([ae2cf1e](ae2cf1e)) +* parameterize fusdc with chainInfo and assetInfo ([e5a8b64](e5a8b64)) +* scaffold operator commands ([36375fd](36375fd)) + + +### Bug Fixes + +* `brandKey` not part of `DenomDetail` ([9a65478](9a65478)) + +## 0.35.0-u18.2 (2024-11-21) + + +### Features + +* `Advancer` uses `borrower` facet ([35eb7ad](35eb7ad)) +* integrate `Advancer` with contract ([c5d67af](c5d67af)) +* liquidity pool borrower and repayer facets ([3117eef](3117eef)) + +## 0.35.0-u18.1 (2024-11-19) + + +### Features + +* `Advancer` exo behaviors ([4cd2f3f](4cd2f3f)), closes [#10390](#10390) +* `CctpTxEvidenceShape`, `PendingTxShape` typeGuards ([5a7b3d2](5a7b3d2)) +* `getQueryParams` takes shape parameter ([99707ef](99707ef)) +* `StatusManager` scaffold ([980463f](980463f)) +* `StatusManager` tracks `seenTxs` ([f3d1e36](f3d1e36)) +* `TxStatus` const for `StatusManager` states ([1376020](1376020)) +* advancer with fees ([087f3a8](087f3a8)) +* defineInertInvitation ([f756412](f756412)) +* **fast-usdc:** .start.js core-eval w/oracle invitations ([7b6820a](7b6820a)) +* **fast-usdc:** add cli config and args for deposit and withdraw ([#10487](#10487)) ([fb2d05c](fb2d05c)) +* **fast-usdc:** deposit, withdraw liquidity in exchange for shares ([5ae543d](5ae543d)) +* **fast-usdc:** implement config cli command ([d121e1d](d121e1d)) +* **fast-usdc:** implement transfer cli command ([504818f](504818f)) +* **fast-usdc:** stub config cli command ([81e14b2](81e14b2)) +* **fast-usdc:** stub transfer cli command ([1b64d82](1b64d82)) +* feed access controls ([8f4a66d](8f4a66d)) +* makeTestPushInvitation handles evidence ([7e99cfa](7e99cfa)) +* minimal `addressTools` for query param parsing ([6f97e13](6f97e13)) +* operators evidence flows through feed ([2161a6f](2161a6f)) +* publish when all oracle operators agree ([d06ae2b](d06ae2b)) +* TransactionFeedKit ([8eb7dee](8eb7dee)) +* uniform configuration with LegibleCapData ([968903a](968903a)) + + +### Bug Fixes + +* **fast-usdc:** ensure cli non-zero exit code on failure ([6c0e77b](6c0e77b)) +* **fast-usdc:** fix url encoding ([d46cefd](d46cefd)) +* **fast-usdc:** use correct address format in cli ([d225974](d225974)) + +## 0.35.0-u18.0 (2024-10-31) + + +### Features + +* add CLI for fast-usdc package ([92bc5b1](92bc5b1)) + + + ### [0.1.1-u18.5](https://github.com/Agoric/agoric-sdk/compare/[email protected]@0.1.1-u18.5) (2024-12-17) **Note:** Version bump only for package fast-usdc --- a/packages/governance/CHANGELOG.md +++ b/packages/governance/CHANGELOG.md @@ -3,6 +3,15 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +### [0.10.4-u18.1](https://github.com/Agoric/agoric-sdk/compare/@agoric/[email protected]...@agoric/[email protected]) (2024-12-24) + + +### Bug Fixes + +* **orchestration:** harden exported patterns ([#10470](#10470)) ([47bebb8](47bebb8)), closes [#10456](#10456) + + + ### [0.10.4-u18.0](https://github.com/Agoric/agoric-sdk/compare/@agoric/[email protected]...@agoric/[email protected]) (2024-10-31) --- a/packages/inter-protocol/CHANGELOG.md +++ b/packages/inter-protocol/CHANGELOG.md @@ -3,6 +3,23 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.17.0-u18.6](https://github.com/Agoric/agoric-sdk/compare/@agoric/[email protected]...@agoric/[email protected]) (2024-12-24) + + +### Features + +* add an accessor for the vaultDirector's parameters ([32f1398](32f1398)) +* record instances that will be replaced so we can manage them ([c883c39](c883c39)) +* save the outgoing EC Charter instance and kit ([c2c9be3](c2c9be3)) + + +### Bug Fixes + +* makeReserveTerms ([27ce0b0](27ce0b0)) +* remove addInstance call from add-auction.js ([d16781f](d16781f)) + + + ## [0.17.0-u18.5](https://github.com/Agoric/agoric-sdk/compare/@agoric/[email protected]...@agoric/[email protected]) (2024-12-17) **Note:** Version bump only for package @agoric/inter-protocol --- a/packages/internal/CHANGELOG.md +++ b/packages/internal/CHANGELOG.md @@ -3,6 +3,21 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.4.0-u18.1](https://github.com/Agoric/agoric-sdk/compare/@agoric/[email protected]...@agoric/[email protected]) (2024-12-24) + + +### Features + +* consistent publishTxnRecord (record) ([dbf3934](dbf3934)) +* defaultSerializer util ([19d5e03](19d5e03)) +* getValues for sequence nodes ([b5698ce](b5698ce)) +* **internal:** Introduce deepCopyJsonable ([f875bb0](f875bb0)) +* pureDataMarshaller ([6df7f1f](6df7f1f)) +* showValue option for documentStorageSchema ([07d12d4](07d12d4)) +* storage-test-utils report missing data ([02c111b](02c111b)) + + + ## [0.4.0-u18.0](https://github.com/Agoric/agoric-sdk/compare/@agoric/[email protected]...@agoric/[email protected]) (2024-10-31) --- a/packages/orchestration/CHANGELOG.md +++ b/packages/orchestration/CHANGELOG.md @@ -3,6 +3,48 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.2.0-u18.5](https://github.com/Agoric/agoric-sdk/compare/@agoric/[email protected]...@agoric/[email protected]) (2024-12-24) + + +### ⚠ BREAKING CHANGES + +* `getAsset` and `getDenomInfo` require `srcChainName` param + +### Features + +* `assetOn` `DenomDetail` helper ([05fe515](05fe515)) +* `chainHub.makeTransferRoute` ([0215b6f](0215b6f)) +* `ForwardOpts` accepts `intermediateRecipient` ([eb975f1](eb975f1)) +* `ForwardOptsShape` ([50b1717](50b1717)) +* `getAsset` and `getDenomInfo` require `srcChainName` param ([fc802ad](fc802ad)) +* `withOrchestration` returns `baggage` ([e4a6c6d](e4a6c6d)) +* add `bech32Prefix?: string` to `CosmosChainInfo` ([cb9e1ee](cb9e1ee)) +* assetInfo as array of entries ([51e7a9c](51e7a9c)) +* chain-capabilities.js constants ([52ff70a](52ff70a)) +* **chainHub:** `getChainInfoByAddress` helper ([d6c487c](d6c487c)) +* **cosmos-orch-account:** expose `.executeEncodedTx` ([9d10be1](9d10be1)) +* CosmosChainInfo includes `pfmEnabled?: boolean` ([e1c35da](e1c35da)) +* export `DenomDetailShape` ([2dfddb3](2dfddb3)) +* export `OrchestrationPowersShape` ([34b61ea](34b61ea)) +* **local-orchestration-account:** support multi-hop pfm transfers ([c35fac7](c35fac7)) +* registerChainsAndAssets ([e72782d](e72782d)) +* send-anywhere inits chainHub ([2fa2f75](2fa2f75)) + + +### Bug Fixes + +* `brandKey` not part of `DenomDetail` ([9a65478](9a65478)) +* `convertChainInfo` connection sorting ([8ba4699](8ba4699)) +* do not stringify logs ([d04c5ea](d04c5ea)) +* **orchestration:** denomAmounts must be non-negative ([#10458](#10458)) ([40e0e4e](40e0e4e)) +* **orchestration:** harden exported patterns ([#10470](#10470)) ([47bebb8](47bebb8)), closes [#10456](#10456) +* **orchestration:** harden result of reverseConnInfo ([5c1219c](5c1219c)) +* subscribeToTransfers atomically ([7b77993](7b77993)) +* use `asVow` in case `owned()` throws ([e67e86b](e67e86b)) +* yarn codegen script ([9eea3fd](9eea3fd)) + + + ## [0.2.0-u18.4](https://github.com/Agoric/agoric-sdk/compare/@agoric/[email protected]...@agoric/[email protected]) (2024-12-17) **Note:** Version bump only for package @agoric/orchestration --- a/packages/solo/CHANGELOG.md +++ b/packages/solo/CHANGELOG.md @@ -3,6 +3,15 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.11.0-u18.6](https://github.com/Agoric/agoric-sdk/compare/@agoric/[email protected]...@agoric/[email protected]) (2024-12-24) + + +### Features + +* **internal:** Introduce deepCopyJsonable ([f875bb0](f875bb0)) + + + ## [0.11.0-u18.5](https://github.com/Agoric/agoric-sdk/compare/@agoric/[email protected]...@agoric/[email protected]) (2024-12-17) **Note:** Version bump only for package @agoric/solo --- a/packages/swing-store/CHANGELOG.md +++ b/packages/swing-store/CHANGELOG.md @@ -3,6 +3,15 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.10.0-u18.1](https://github.com/Agoric/agoric-sdk/compare/@agoric/[email protected]...@agoric/[email protected]) (2024-12-24) + + +### Features + +* **cosmic-swingset:** Allow `launch` to accept an already-open swingStore ([c65e5b1](c65e5b1)) + + + ## [0.10.0-u18.0](https://github.com/Agoric/agoric-sdk/compare/@agoric/[email protected]...@agoric/[email protected]) (2024-10-31) --- a/packages/swingset-liveslots/CHANGELOG.md +++ b/packages/swingset-liveslots/CHANGELOG.md @@ -3,6 +3,15 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +### [0.10.3-u18.1](https://github.com/Agoric/agoric-sdk/compare/@agoric/[email protected]...@agoric/[email protected]) (2024-12-24) + + +### Bug Fixes + +* **liveslots:** avoid slotToVal memory leak for watched promises ([874196c](874196c)), closes [#10757](#10757) [#10756](#10756) [#10706](#10706) + + + ### [0.10.3-u18.0](https://github.com/Agoric/agoric-sdk/compare/@agoric/[email protected]...@agoric/[email protected]) (2024-10-31) --- a/packages/telemetry/CHANGELOG.md +++ b/packages/telemetry/CHANGELOG.md @@ -3,6 +3,18 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +### [0.6.3-u18.4](https://github.com/Agoric/agoric-sdk/compare/@agoric/[email protected]...@agoric/[email protected]) (2024-12-24) + + +### Bug Fixes + +* **telemetry:** add missing slog type ([1aec8d0](1aec8d0)) +* **telemetry:** Empty context persisted when remaining beans are negative after run finish ([#10635](#10635)) ([ad4e83e](ad4e83e)) +* **telemetry:** event name typo ([9e19321](9e19321)) +* **telemetry:** timer-poll run.id ([#10672](#10672)) ([3b478fb](3b478fb)), closes [#10357](#10357) [#10357](#10357) + + + ### [0.6.3-u18.3](https://github.com/Agoric/agoric-sdk/compare/@agoric/[email protected]...@agoric/[email protected]) (2024-12-13) --- a/packages/time/CHANGELOG.md +++ b/packages/time/CHANGELOG.md @@ -3,6 +3,15 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +### [0.3.3-u18.1](https://github.com/Agoric/agoric-sdk/compare/@agoric/[email protected]...@agoric/[email protected]) (2024-12-24) + + +### Bug Fixes + +* **orchestration:** harden exported patterns ([#10470](#10470)) ([47bebb8](47bebb8)), closes [#10456](#10456) + + + ### [0.3.3-u18.0](https://github.com/Agoric/agoric-sdk/compare/@agoric/[email protected]...@agoric/[email protected]) (2024-10-31) --- a/packages/vats/CHANGELOG.md +++ b/packages/vats/CHANGELOG.md @@ -3,6 +3,22 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.16.0-u18.5](https://github.com/Agoric/agoric-sdk/compare/@agoric/[email protected]...@agoric/[email protected]) (2024-12-24) + + +### Features + +* **cosmic-swingset:** Add support for testing blocks of a mock chain ([48b6405](48b6405)) +* upgrade v7-board and test it ([#10516](#10516)) ([d8a109e](d8a109e)), closes [#10394](#10394) + + +### Bug Fixes + +* **ERTP,vats:** fix 9407 AmountPatternShape ([#9863](#9863)) ([59b1a9f](59b1a9f)), closes [#9410](#9410) [#9407](#9407) [#9410](#9410) [#9407](#9407) [#9410](#9410) [#9407](#9407) [#9410](#9410) +* **vaultFactory:** fix proposal description ([bc1f87a](bc1f87a)) + + + ## [0.16.0-u18.4](https://github.com/Agoric/agoric-sdk/compare/@agoric/[email protected]...@agoric/[email protected]) (2024-12-17) **Note:** Version bump only for package @agoric/vats --- a/packages/wallet/CHANGELOG.md +++ b/packages/wallet/CHANGELOG.md @@ -3,6 +3,23 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.19.0-u18.1](https://github.com/Agoric/agoric-sdk/compare/@agoric/[email protected]...@agoric/[email protected]) (2024-12-24) + +## 0.35.0-u18.4 (2024-12-17) + +## 0.35.0-u18.3 (2024-12-09) + +## 0.35.0-u18.2 (2024-11-21) + +## 0.35.0-u18.1 (2024-11-19) + + +### Features + +* **internal:** Introduce deepCopyJsonable ([f875bb0](f875bb0)) + + + ## [0.19.0-u18.0](https://github.com/Agoric/agoric-sdk/compare/@agoric/[email protected]...@agoric/[email protected]) (2024-10-31) --- a/packages/wallet/api/CHANGELOG.md +++ b/packages/wallet/api/CHANGELOG.md @@ -3,6 +3,15 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.15.0-u18.5](https://github.com/Agoric/agoric/compare/@agoric/[email protected]...@agoric/[email protected]) (2024-12-24) + + +### Features + +* **internal:** Introduce deepCopyJsonable ([f875bb0](f875bb0)) + + + ## [0.15.0-u18.4](https://github.com/Agoric/agoric/compare/@agoric/[email protected]...@agoric/[email protected]) (2024-12-17) **Note:** Version bump only for package @agoric/wallet-backend --- a/packages/zoe/CHANGELOG.md +++ b/packages/zoe/CHANGELOG.md @@ -3,6 +3,15 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +### [0.26.3-u18.1](https://github.com/Agoric/agoric-sdk/compare/@agoric/[email protected]...@agoric/[email protected]) (2024-12-24) + + +### Bug Fixes + +* **orchestration:** harden exported patterns ([#10470](#10470)) ([47bebb8](47bebb8)), closes [#10456](#10456) + + + ### [0.26.3-u18.0](https://github.com/Agoric/agoric-sdk/compare/@agoric/[email protected]...@agoric/[email protected]) (2024-10-31) ```
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Liveslots has a bug (#10757) which leaks
slotToVal
entries. This will happen for any Promise/vpid pair when there are virtual-data references (vrm.getReachablePromiseRefcount(p) !== 0
) at the moment when liveslots notices the resolution of the promise (unregisterUnreferencedVPID
, as called by.then
handlers created byfollowForKernel
(for locally-decided promises) ornotify
(for kernel-decided promises). The root cause is a missing pillar-falling handler in theremoveReachableVref()
code that decrements the refcount: when that count reaches zero, it ought to be checking whether the Promise is resolved or not, but doesn't, and there are no other places whereslotToVal.delete(vref)
might be called, so the entry is leaked until the incarnation ends.This is currently consuming over 600MB in the mainnet v43-walletFactory right now. Restarting (upgrading) the vat will temporarily reduce the memory usage, but without fixing the leak, the problem will come back in a month or two.
The PromiseWatcher code triggers this bug, by virtue of the sequence of operations in
watchPromise
:The
maybeExportPromise
function (in liveslots.js) usesfollowForKernel
to set up the.then
handler which could delete theslotToVal
entry, if only the refcount were zero. ThepseudoThen
function sets up the promise-watcher handle which could remove the Promise from the merely-virtualpromiseRegistrations
table, which reduces the refcount, but doesn't attempt to delete the entry.The JavaScript spec says that handlers are executed in the order they were added.
p.then(handlerA); p.then(handlerB)
means that handlerA will run in an earlier turn than handlerB. So this bug should not depend upon which engine we're using (V8 vs XS), or random timing or whatever.While the full #10757 fix will make this sequence of operations safe (non-leaking), and will fix other cases that might get added in the future, it is likely to be somewhat invasive. Fortunately, there is an easy workaround: swap the order of these two calls. By calling
pseudoThen
first, andmaybeExportPromise
second, we can arrange for the refcount-reducing callback to be executed earlier, so the refcount should be zero by the timeunregisterUnreferencedVPID()
is called, so the latter will go ahead and delete theslotToVal
entry.And because this doesn't depend upon GC behavior or timing, we can satisfactorily unit-test this in
packages/swingset-liveslots
(under Node, not needingxsnap
), by just measuring theslotToVal.size
count. When the leak is present, a resolved watched promise will still have a vpid in that table, and the size will be higher. When the leak is fixed, the vpid will be missing, and the size will be lower.The text was updated successfully, but these errors were encountered: