apache / apache/fluss

Timeout for fetch log request

Open
#2,749 1 comment 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/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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.