-
Notifications
You must be signed in to change notification settings - Fork 221
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
chore(swingset): add failing test of #3482 object retention
The new test, 'forward to fake zoe', mimics an execution pathway in the tap-fungible-faucet load-generator task. In the loadgen task, the client asks a fungible-faucet contract (an instance of packages/zoe/src/contracts/mintPayments.js) for an Invitation. The method in the faucet contract immediately sends off a requests to Zoe (through the zcf facet) and returns the result Promise. In my analysis of the loadgen slogfile, the Invitation object (a Zoe Invitation payment) is imported into the faucet contract vat, sent back out again as the resolution of its result promise, but then never dropped. I see no good reason for the faucet contract to hold onto the object: the code doesn't even have a place to put it. I initially thought this was a problem with XS (#3406), but when I reproduced the issue in a unit test and changed it to use a Node.js worker, the problem remained. We traced it down to a problem in liveslots (#3482), which will be fixed by the upcoming commit. This test will fail until that commit. The test first talks to a fake Zoe vat to export the simulated Invitation object and learn its kref. Then it instructs the bootstrap vat to ask vat-target for an invitation, and vat-target delegates to vat-fake-zoe. Once the kernel is done, and vat-target should have dropped the kref, the test examines the clists. The test would pass if the vat-target clist did not include the Invitation object's kref. Instead, vat-target still references the kref, so the test fails.
- Loading branch information
Showing
3 changed files
with
86 additions
and
1 deletion.
There are no files selected for viewing
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
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
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