Timeout for fetch log request
- 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/apache/fluss/issues) and found nothing similar.
### Fluss version
0.8.0 (latest release)
### Please describe the bug 🐞
When one tablet server restart, the log shows the following logs
```
2026-02-28 16:29:02,313 WARN org.apache.fluss.server.replica.fetcher.ReplicaFetcherThread [] - Error in response for fetch log request org.apache.fluss.rpc.messages.FetchLogRequest@747139e6
java.util.concurrent.TimeoutException: null
at java.util.concurrent.CompletableFuture.timedGet(CompletableFuture.java:1960) ~[?:?]
at java.util.concurrent.CompletableFuture.get(CompletableFuture.java:2095) ~[?:?]
at org.apache.fluss.server.replica.fetcher.ReplicaFetcherThread.processFetchLogRequest(ReplicaFetcherThread.java:227) ~[fluss-server-0.8.0-incubating.jar:0.8.0-incubating]
at java.util.Optional.ifPresent(Optional.java:178) [?:?]
at org.apache.fluss.server.replica.fetcher.ReplicaFetcherThread.maybeFetch(ReplicaFetcherThread.java:153) [fluss-server-0.8.0-incubating.jar:0.8.0-incubating]
at org.apache.fluss.server.replica.fetcher.ReplicaFetcherThread.doWork(ReplicaFetcherThread.java:124) [fluss-server-0.8.0-incubating.jar:0.8.0-incubating]
at org.apache.fluss.utils.concurrent.ShutdownableThread.run(ShutdownableThread.java:96) [fluss-server-0.8.0-incubating.jar:0.8.0-incubating]
```
And then I modify the following options, but it still retry like the above logs
```
log.replica.fetcher-number: 10
log.replica.fetch.wait-max-time: 20s
```
### Solution
_No response_
### 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 at ReplicaFetcherThread.java, especially processFetchLogRequest (line 227) and the fetch loop around maybeFetch (line 153), then inspect how log.replica.fetcher-number and log.replica.fetch.wait-max-time are applied. Reproduce the timeout during a tablet server restart and trace why retries continue despite those settings. Done means the timeout cause and expected configuration behavior are established with a regression test or clearly documented evidence.
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
- Needs clarification
- Newbie friendliness
- 32/100