yuqi1129 opened a new pull request, #13930: URL: https://github.com/apache/gravitino/pull/13930
### What changes were proposed in this pull request? - Skip table-version writes when the existing conditional table-meta update affects no rows, matching the existing guard for column writes. - During load-time column repair only, recognize the existing table-update conflict message, log a warning, and retain the metadata snapshot already read by that load. Other failures keep their existing handling. ### Why are the changes needed? A concurrent metadata update can win after a table load reads its snapshot. On branch-1.3, the losing update still writes the version payload before reporting a conflict, potentially overwriting the winner. The load then drops its Gravitino metadata because the best-effort repair failed. This is a limited branch-1.3 fix. It preserves the existing conditional-update mechanism without backporting the OCC framework or replaying external DDL. The returned metadata snapshot can temporarily be stale; broader HA read consistency and stale catalog snapshots remain outside this patch. ### Does this PR introduce _any_ user-facing change? Table loads retain their already-read Gravitino metadata when column repair loses a concurrent update. No API, configuration, or schema changes. ### How was this patch tested? - Focused `TestTableMetaService` and `TestTableOperationDispatcher` suites: 34 passed. - Full core non-Docker unit tests: 1,656 passed, 2 skipped on the final rerun. - `TestTableMetaService` with H2, MySQL, and PostgreSQL backends: all 21 passed. - Mutation verification: reverting the production fixes makes both new regression tests fail (lost load metadata and overwritten winning version). - Core Spotless checks. An initial full-core run hit three metrics initialization failures. A separate same-JVM probe using unmodified branch-1.3 service code/tests reproduced the existing fixture ordering dependency (JDBC tests leave a mock global Config without the metrics parameter). The final full-core rerun passed. -- 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]
