yuqi1129 commented on PR #13198: URL: https://github.com/apache/gravitino/pull/13198#issuecomment-5794842996
Thanks for the review. I fixed the two concurrency issues in 65d47f5901. 1. Orphaned-schema cleanup previously checked the external catalog and then deleted the store row by name, with cascade. In HA, another server could re-create that schema between those steps; cleanup could delete the new registration and all its descendants. It now observes the registration before the external existence probe and deletes only that observed identity. A conflict is logged and swallowed because cleanup is best-effort and the primary drop has already succeeded. I added a regression test for re-creation during the probe. 2. The pre-external-call version should not be a delete precondition. The same entity may be altered while the external drop is running; rejecting that version change after the external drop succeeds leaves a stale Gravitino registration. The observed ID still fences a different incarnation under the same name, while the relational delete uses the current row version in its internal CAS to protect concurrent store writes. The table test now performs a real same-ID update between observation and deletion. I also clarified the Function scope in the PR description: its versioned storage branch is preparatory; `ManagedFunctionOperations.dropFunction` does not currently use the external-backed drop path. -- 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]
