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]

Reply via email to