laskoviymishka commented on code in PR #2100:
URL: https://github.com/apache/iceberg-go/pull/2100#discussion_r4389739168
##########
table/commit_refresh_replay_test.go:
##########
@@ -215,6 +220,288 @@ func TestDoCommit_ValidatorRejectsOnRefresh(t *testing.T)
{
"validator rejection on retry must abort before re-issuing
CommitTable")
}
+// Why: after a refresh, a rejection that does not depend on timing fails
+// every later attempt and every re-commit the same way, so the transaction
+// must become unusable rather than leave an errors.Is(ErrCommitFailed) loop
Review Comment:
Following up here now that dual-match is the rule: could every row assert
its side of it? Only the rows with `want` check `ErrCommitFailed` today, so the
tag-target, replaced-table and diverged-base rows would still pass if they
started matching it. A `NotErrorIs(err, ErrCommitFailed)` on those three pins
the half that stops the loop.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]