Skip to content
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

Implement #1641 rpc call public functions as read-only #1992

Closed
wants to merge 2 commits into from

Conversation

psq
Copy link
Contributor

@psq psq commented Oct 23, 2020

In starting to look into implementing #1981, I stumbled upon the implementation of call-read and thought maybe there was a way to call the same function in a read only fashion if it was made public instead of read-only.

And turns out, that the implementation was quite simple by changing a parameter and checking whether the code made any writes, and fail if it did.

#1981 still forthcoming.

Not consensus altering, so can be merged to master directly.

@psq psq requested review from jcnelson and kantai October 23, 2020 03:18
@psq psq changed the title Implement #1641 Implement #1641 rpc call public functions as read-only Oct 23, 2020
@psq
Copy link
Contributor Author

psq commented Oct 23, 2020

couldn't link to #1641, but this will fix

@jcnelson
Copy link
Member

We will want to make sure that this works with multiple concurrent write operations. If this creates savepoints, and unwinds savepoints, we'll need to make sure that one RPC call terminating does not (a) error out or (b) cause other in-flight RPCs to error out due to savepoint unwinding. Consider using a HTTP load tester to simulate lots of concurrent requests. We should also add a test to make sure that the order in which savepoints are unwound does not cause other savepoints to be clobbered.

@psq
Copy link
Contributor Author

psq commented Mar 1, 2021

closing for now, will reopen when ready

@psq psq closed this Mar 1, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants