-
Notifications
You must be signed in to change notification settings - Fork 207
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
Continued implementation of resolved promise pruning #930
Conversation
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.
Please move the kernel-side retirement one step earlier as noted. I'll look at the tests and see if there's an easy way to add an assertion for this (it'll mean getting control in the middle of a dispatch
and checking the kernel tables at that point).
We need an additional assertion: the upcoming promise-retirement change should remove the kernel c-list entries *before* the vat is notified about incoming resolutions, not afterwards. This adds a test which looks at the c-lists during that notification, so we have a place to update when the change lands. refs #930
We need an additional assertion: the upcoming promise-retirement change should remove the kernel c-list entries *before* the vat is notified about incoming resolutions, not afterwards. This adds a test which looks at the c-lists during that notification, so we have a place to update when the change lands. refs #930
@@ -300,52 +303,24 @@ async function doVatResolveCase23(t, which, mode) { | |||
// now it sends three() with the promise. For now, we expect the same vpid |
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.
I think this comment is stale: once promises are retired, we expect a new vpid in the post-resolution messages
We need an additional assertion: the upcoming promise-retirement change should remove the kernel c-list entries *before* the vat is notified about incoming resolutions, not afterwards. This adds a test which looks at the c-lists during that notification, so we have a place to update when the change lands. refs #930
We need an additional assertion: the upcoming promise-retirement change should remove the kernel c-list entries *before* the vat is notified about incoming resolutions, not afterwards. This adds a test which looks at the c-lists during that notification, so we have a place to update when the change lands. refs #930
We need an additional assertion: the upcoming promise-retirement change should remove the kernel c-list entries *before* the vat is notified about incoming resolutions, not afterwards. This adds a test which looks at the c-lists during that notification, so we have a place to update when the change lands. refs #930
with #1068 landed, this should be unblocked.. you'll need to rewrite things, but the core HandledPromise stale-vpid problem should be fixed |
3b73783
to
3a5a6db
Compare
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.
everything looks great, but I'd feel better if we have those extra tests on the kernel side (test-vpid-kernel for the promise-data
/promise-reject
cases) as we land this
[p2, r2] = makePR(); | ||
return p2; | ||
}, | ||
usePromises(pa, pb) { |
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.
these demos are great.. do we have a test of cyclic resolution in swingset proper?
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.
I think we still need a unit test for this in swingset
2ed0876
to
cad4119
Compare
@warner Most of the touchups from your review were straightforward, but the revisions and additions to |
[p2, r2] = makePR(); | ||
return p2; | ||
}, | ||
usePromises(pa, pb) { |
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.
I think we still need a unit test for this in swingset
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.
New tests are great. I still want a resolve-to-cycle test in swingset proper. Minor changes otherwise:
- test-vpid-kernel should check both sides of the
expectedRetirement
case - call tests in a loop
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.
get rid of that one test.only
and we're good to go!
e1e6c9a
to
c8d870b
Compare
c8d870b
to
e98d720
Compare
These changes implement the c-list cleanup and liveslots table cleanup portions of getting rid of resolved promises.