LogTieringTask#commitRemoteLogManifest() may block forever when coordinator failover
- 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.6.0 (latest release)
### Please describe the bug 🐞
LogTieringTask#commitRemoteLogManifest() may block forever when coordinator failover.
It'll call method `coordinatorGateway.commitRemoteLogManifest(request).get()`, when coordinator server failover, the `get()` may block forever and will never return.
### Solution
TBH, I'm still wondering wy it'll block forever. Theoretical, when the coordinator server failover, the connection will break and cause the client return with a disconnection exception. But it may happen that it'll block and never return from phenomenon.
Anyway, #279 will introduce global timeout to solve the problem.
### Are you willing to submit a PR?
- [ ] I'm willing to submit a PR!
Contributor guide
No contributing guide indexed for this repository
Research direction
Start by tracing LogTieringTask#commitRemoteLogManifest() and the coordinatorGateway.commitRemoteLogManifest(request).get() call, then review issue #279's proposed global timeout. Confirm the failover path can return rather than wait indefinitely, and verify the behavior with the relevant coordinator failover tests.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- distributed-systems
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100