Skip to content

[rust] Stop retrying writes after a cached table is dropped#4136

Description

@beryllw

Search before asking

  • I searched in the issues and found nothing similar.

Fluss version

main (development)

Please describe the bug 馃悶

When the Rust client has cached table metadata and the table is later dropped, subsequent writes keep retrying UnknownTableOrBucketException until the caller's deadline instead of returning TableNotExist.

To reproduce, create a table, write once to warm the metadata cache, drop the table, and write again. The second write should fail promptly with TableNotExist, and the stale table metadata should be removed.

Solution

After UnknownTableOrBucketException, force-refresh the table metadata and compare the current table_id with the writer's table identity. If the table is missing or has been recreated with a different ID, evict the stale metadata, stop retrying, and complete the pending writes with TableNotExist; otherwise, continue the normal metadata retry.

Are you willing to submit a PR?

  • I'm willing to submit a PR!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions