-
Notifications
You must be signed in to change notification settings - Fork 115
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
failure indicating commitments #3391
Conversation
d5d902f
to
c2df984
Compare
3cee767
to
5442a19
Compare
Codecov Report
@@ Coverage Diff @@
## master #3391 +/- ##
==========================================
- Coverage 66.03% 65.93% -0.10%
==========================================
Files 371 371
Lines 33285 33367 +82
==========================================
+ Hits 21979 22002 +23
- Misses 8075 8127 +52
- Partials 3231 3238 +7
Continue to review full report at Codecov.
|
60c624f
to
cdf79b1
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.
We should also probably submit a failure in case the runtime fails to process a batch, e.g. here:
n.abortBatchLocked(errRuntimeAborted) |
87b571b
to
e79973c
Compare
e79973c
to
36fba86
Compare
Added, not sure how to best test these cases maybe with byzantine-storage tests, need to think about it a bit, but probably can be done in a separate PR. |
Yeah we should add Byzantine tests for all these cases, can you open an issue for it? |
36fba86
to
8f71c9e
Compare
|
8f71c9e
to
f2b8be8
Compare
n.abortBatchLocked(err) | ||
return | ||
} | ||
|
||
// Sign the commitment and submit. | ||
commit, err := commitment.SignExecutorCommitment(n.commonNode.Identity.NodeSigner, proposedResults) | ||
// TODO: Add crash point. |
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 don't think we need one as there is one below and nothing interesting happens inbetween.
return | ||
} | ||
|
||
if batch == nil || batch.computed == nil { |
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.
Since this body is longer, maybe invert the check so less stuff is indented?
f2b8be8
to
82f876d
Compare
82f876d
to
66063cc
Compare
The E2E tests with increased epoch times (#3322) discovered a failure edge case that can happen if the storage committee becomes unavailable after proposer already proposes a batch, but before any of the nodes submit a commitment. In that case the nodes currently abort the processing and wait for a round failure. Since there is no submitted commitments the round failure only happens at the next epoch transition.
This PR adds support for failure indicating commitments (which were first proposed as part of the ADR 0005), which solve the above mentioned issue since compute nodes can now submit a failure indicating commitment and with it trigger a round failure.
NOTE: only the subset (support for failure indicating commitments) of the mentioned ADR is implemented here.
TODO: