Skip to content

HMS catalog fails against Hive 4 metastores: get_table thrift method was removed #3186

Description

@kevinjqliu

Apache Iceberg Rust version

main

Describe the bug

Hive 4.0.1 removed the get_table thrift method from the metastore service (it is absent from the 4.x hive_metastore.thrift; only get_table_req remains). The HMS catalog still calls get_table in load_table, table_exists, and rename_table, so every table operation fails against a Hive 4 metastore:

Error: Unexpected => Operation failed for hitting thrift error
Source: thrift error: Application(ApplicationException { kind: ApplicationExceptionKind(1), message: "Invalid method name: 'get_table'" })

The integration tests run against apache/hive:3.1.3, which still serves get_table, so CI does not catch this. PyIceberg hit the same problem and fixed it in apache/iceberg-python#3924.

To Reproduce

  1. Start apache/hive:4.2.1 as a metastore (SERVICE_NAME=metastore).
  2. Point HmsCatalog at it and call load_table on any table.

Expected behavior

Table operations succeed against Hive 4 metastores. get_table_req exists in every Hive release since 2.3, so switching to it keeps older metastores working.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions