-
Notifications
You must be signed in to change notification settings - Fork 332
Replace CommitFailedException with CommitConflictException #2198
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
Replace CommitFailedException with CommitConflictException #2198
Conversation
In some cases, we were using CommitFailedException to represent commit conflicts, which returns the correct 409 response but is tied to Iceberg. However, some of these conflicts originate from Polaris, making CommitConflictException a more appropriate and accurate choice. This change updates those instances to improve clarity and exception handling semantics. Resolves apache#2168
dimas-b
left a comment
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.
Thanks for your contribution, @tmater ! The changes LGTM overall.
...e/common/src/main/java/org/apache/polaris/service/catalog/iceberg/IcebergCatalogHandler.java
Show resolved
Hide resolved
tmater
left a comment
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.
@dimas-b , thank you for the review!
Updated the change, LMK your thoughts.
...e/common/src/main/java/org/apache/polaris/service/catalog/iceberg/IcebergCatalogHandler.java
Show resolved
Hide resolved
dimas-b
left a comment
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.
LGTM 👍 Thanks, @tmater !
| $ref: '#/components/examples/NoSuchTableError' | ||
| '409': | ||
| description: Conflict - CommitFailedException, one or more requirements failed. The client may retry. | ||
| description: Conflict - Transaction commit failed due to concurrent modifications. The client may retry. |
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.
This file is generated; the change should go into the appropriate spec and then this file needs to be regenerated.
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.
Good point about spec change.
However, the code fix in this PR does not require spec changes. I believe the client-facing behaviour is not changed by this PR.
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.
@tmater : please rollback changes to this file.
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.
Makes sense, reverted it.
eric-maynard
left a comment
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.
The spec change here wasn't implemented correctly, but otherwise the change seems reasonable if inconsequential
* Simplify BaseMetaStoreManager.extractStorageConfiguration (apache#2194) as a static helper method its strongly preferable to not depend on the full `PolarisCallContext` if not necessary. * Remove PolarisCallContext from TreeMapMetaStore (apache#2195) * remove PolarisCallContext from TreeMapMetaStore methods * reset diagnosticServices in TreeMapMetaStore * simplify ensure methods * Remove getCurrentContext from InMemoryStorageIntegration (apache#2201) * Remove getCurrentContext from JWTBroker (apache#2202) * fix(deps): update dependency boto3 to v1.39.17 (apache#2211) * fix(deps): update dependency org.apache.commons:commons-compress to v1.28.0 (apache#2212) * Enable python client debug flag (apache#2154) * Enable python client debug flag * Move debug msg to stderr and move debug enable after option parsing * Remove postgres_latest as image tag (apache#2045) * Remove postgres_latest as image tag * Change image tag to latest for getting started examples * Change image tag to latest from helm * fix(deps): update dependency io.smallrye.common:smallrye-common-annotation to v2.13.8 (apache#2222) * Remove CallContextResolver (apache#2215) it seems like these were unused leftovers from previous changes * Replace CommitFailedException with CommitConflictException (apache#2198) * Replace CommitFailedException with CommitConflictException In some cases, we were using CommitFailedException to represent commit conflicts, which returns the correct 409 response but is tied to Iceberg. However, some of these conflicts originate from Polaris, making CommitConflictException a more appropriate and accurate choice. This change updates those instances to improve clarity and exception handling semantics. Resolves apache#2168 * JDBC: Include error code + SQL state in exception messages (apache#2220) * fix(deps): update dependency boto3 to v1.40.0 (apache#2225) * chore(deps): update actions/stale digest to 8f717f0 (apache#2224) * Fix Awaitility build configuration (apache#2232) * Fix compilation warnings in AzureCredentialStorageIntegrationTest (apache#2231) * Remove CallContext.CURRENT_CONTEXT (apache#2203) the last callers of `CallContext.getCurrentContext` had been removed in the following commits: - 756e535 - e7eb59f - 4d94745 thus we can now remove the `CURRENT_CONTEXT` threadlocal and all associated methods. * NoSQL: adoptions & cosmetics * Last merged commit 0449d9b --------- Co-authored-by: Christopher Lambert <xn137@gmx.de> Co-authored-by: Mend Renovate <bot@renovateapp.com> Co-authored-by: Yong Zheng <yongzheng0809@gmail.com> Co-authored-by: Tamas Mate <50709850+tmater@users.noreply.github.com> Co-authored-by: Alexandre Dutra <adutra@apache.org>
In some cases, we were using CommitFailedException to represent commit conflicts, which returns the correct 409 response but is tied to Iceberg.
However, some of these conflicts originate from Polaris, making CommitConflictException a more appropriate and accurate choice.
This change updates those instances to improve clarity and exception handling semantics.
Resolves #2168