apache / apache/fluss

Client receives unclear exception when accessing removed partitions

Open
#1,256 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Java
Stars
2.1k
Forks
625
Avg merge
3d 14h
Merged PRs (30d)
97

Description

### Search before asking

- [x] I searched in the [issues](https://github.com/alibaba/fluss/issues) and found nothing similar.

### Fluss version

0.7.0 (latest release)

### Please describe the bug 🐞

While we have implemented several latch mechanisms (e.g., Java locks) to protect atomicity in short critical sections, we still lack a proper database lock system to ensure ACID properties (specifically atomicity, consistency, and isolation) for DDL transactions. This allows concurrent operations to access intermediate states of DDL 'transactions', violating meta integrity.

For example:
- RemoteLogDownloader may throw "No such file or directory" exceptions during partition removal
- ReplicaManager may throw LogOffsetOutOfRangeException during concurrent reads on deleted partitions

Though full ACID support for DDL transactions may be considered in future, we should initially:
1. Fix the exception types thrown in these scenarios
2. Make user code clearly identify and handle such errors

### Solution

_No response_

### Are you willing to submit a PR?

- [x] I'm willing to submit a PR!

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by reading the RemoteLogDownloader and ReplicaManager paths involved when partitions are removed concurrently, then reproduce the reported failures during partition deletion and reads. Done means these scenarios expose clear, user-identifiable exception types instead of "No such file or directory" or LogOffsetOutOfRangeException, with the affected behavior verified.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
databases, distributed-systems
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.