We are glad to announce the release of Apache Gravitino 1.2.1! This is a patch release that focuses on stability, correctness, and performance improvements. It includes bug fixes across the core server, authorization, Iceberg REST, Trino connector, Hive, and various catalog implementations.
Improvements
Core & Server
- Performance: Improve the performance of metadata object retrieval. #10459
- Batch operations: Support batch get owner for bundle of metadata objects. #9518
- Owner management: Clean zombie VIEW owner relations when deleting schema or catalog. #10458
Authorization
- Performance: Optimize JCasbin policy lookup for improved authorization performance when roles with large grants. #10907
Iceberg REST Catalog
- Spec compliance: Remove prefix from config endpoint per Iceberg REST spec. #10640
- Schema version: Change default Iceberg JDBC schema version to v1. #10851
- Error handling: Return JSON error body instead of HTML for pre-JAX-RS errors. #10667
Catalogs & Connectors
- Hive: Shrink the package size of Hive Metastore 2 and Hive Metastore 3 catalogs. #10457
- Paimon: Exclude unnecessary tomcat-embed-core transitive dependency from Paimon catalog. #10524
- Lance: Clean up redundant code in
GravitinoLanceTableOperations#createTable. #10496
Helm & Charts
- Launch script: Use
start-gravitino.shinstead ofgravitino.shto launch the service. #10557 - Kubernetes: Add serviceAccountName to pod spec in deployment.yaml. #10573
Build
- Package size: Remove testing jars from release package. #10331
- Module structure: Rename updater module to updaters for consistency. #10452
- Build tooling: Remove release task and centralize JDK 8 compatibility handling. #10262
- GitHub Actions: Update actions/upload-artifact from v4 to v7. #10646
Bug Fixes
Core & Server
- Fix batchSelect queries missing version-info JOIN and field aliases. #10444
- Fix missing partition path in getPartition error messages. #10175
- Fix rollback masking the original post-hook exception. #10217
- Fix missing @Param("metalakeId") in GroupRoleRelMapper.softDeleteGroupRoleRelByMetalakeId. #10657
- Avoid blocking dropCatalog on imported schemas. #10737
- Default
ifExiststotruewhen deleting a table index. #10380 - Close leaked EntityStore lifecycle to fix test flakiness. #10700
- Harden retention count assertions in TestFunctionMetaService and TestFilesetMetaService. #10700
Trino Connector
- Fix TrinoException when using catalog name with metalake. #10717
Iceberg REST Catalog
- Fix table scan planning failure due to incorrect SQL generation. #10841
- Fix IcebergTableHookDispatcher failure with NoSuchTableException for staged creates. #10766
Hive
- Fix Hive Metastore OOM by closing HiveClientFactory on pool shutdown. #10844
- Fix concurrent keytab symlink creation race condition in Hive Kerberos authentication. #10741
ClickHouse
- Fix ClickHouse alter-table bugs including autoIncrement issues. #10381
Web UI
- Preserve hidden properties when editing a catalog in web-v2. #10837
MCP Server
- Fix path encoding issues in MCP REST client for special characters. #10799
Common
- Lazy-initialize Version to fix TestVersion without jar task. #10762
- Block H2 JDBC URL and driver in catalog datasource creation. #10801
CI & Infrastructure
- Pin localstack docker image version to 4.14.0 to fix CI problem. #10527
- Pin docker/* GitHub Actions to SHA-based references (v4.0.0) to comply with ASF policy. #10504
Documentation
- Clarify verified JDBC compatibility matrix for ClickHouse. #10308
Acknowledgements
Thanks to everyone who contributed to the 1.2.1 work — code, reviews, tests, issue triage, design, and feedback.
@babumahesh, @bharos, @danhuawang, @diqiu50, @FANNG1, @geyanggang, @hdygxsj, @jerryshao, @laserninja, @mchades, @pandeysambhi, @pythaac, @roryqi, @sachinnn99, @yuw1, @yuqi1129