-
Notifications
You must be signed in to change notification settings - Fork 43
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
Module cache followup #1375
Merged
Merged
Module cache followup #1375
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
dmkozh
reviewed
Mar 28, 2024
graydon
force-pushed
the
module-cache-followup
branch
from
March 28, 2024 19:25
deedd1e
to
bdbd053
Compare
graydon
force-pushed
the
module-cache-followup
branch
3 times, most recently
from
March 29, 2024 06:44
3f3c80b
to
6a4db8c
Compare
graydon
force-pushed
the
module-cache-followup
branch
from
March 29, 2024 07:38
6a4db8c
to
bcd4546
Compare
graydon
commented
Mar 29, 2024
dmkozh
reviewed
Mar 29, 2024
dmkozh
previously approved these changes
Apr 2, 2024
dmkozh
dismissed
their stale review
April 2, 2024 18:50
There is seemingly one more deadlock that has to be fixed before merging this
I've actually accidentally picked up the old revision of this PR. I've double-checked that in the current state it doesn't deadlock. Sorry for confusion. |
dmkozh
approved these changes
Apr 2, 2024
jayz22
reviewed
Apr 2, 2024
github-merge-queue bot
pushed a commit
that referenced
this pull request
Apr 4, 2024
This covers a two cases I failed to cover in #1375 that @dmkozh and @sisuresh have identified: - User calls contract without putting wasm for call in footprint or storage - User calls `upload_contract` (or its equivalent, `update_current_contract_wasm`) mid-execution and then calls the updated-or-new contract As well as a third case that is, as far as I know, not possible; but it seems to me it doesn't hurt to be defensive since someone could make it possible in the future fairly easily and forget to cover this case in the cache code: - User deletes wasm in transaction, and then tries to call it. As always, there is probably room for a bit more testing here, but I wanted to get these cases covered and fixed asap. This should make-redundant PR #1380
This was referenced Apr 8, 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.
This is a set of followups to #1359 to cover missing testing and wiring around the module cache. It includes calibration of the
VmCachedInstantiation
cost type, a shift to using a single shared linker when using a module cache (this turns out to be critical -- the existing code deadlocks on cross-contract calls) and some fairly subtle wiring to patch up costs in recording mode, along with some tests to check that it's mostly working.Several tests remain broken with --feature=next, so I wouldn't say it's quite ready yet. I tried, but am out of time for tonight.