Skip to content

[client] Throw Exception when retry several times when downloading log.#1752

Open
loserwang1024 wants to merge 1 commit into
apache:mainfrom
loserwang1024:fix-dowload-deadlock
Open

[client] Throw Exception when retry several times when downloading log.#1752
loserwang1024 wants to merge 1 commit into
apache:mainfrom
loserwang1024:fix-dowload-deadlock

Conversation

@loserwang1024

Copy link
Copy Markdown
Contributor

Purpose

Linked issue: close #1751

Brief change log

Tests

API and Format

Documentation

@loserwang1024

Copy link
Copy Markdown
Contributor Author

@wuchong , CC

@loserwang1024 loserwang1024 force-pushed the fix-dowload-deadlock branch 2 times, most recently from a7076d3 to 21b2484 Compare March 3, 2026 09:09
@loserwang1024 loserwang1024 requested a review from Copilot March 3, 2026 09:14
@loserwang1024 loserwang1024 changed the title [client] Throw Exception when retry several times rather than release semaphore to avoid deadlock. [client] Throw Exception when retry several times when downloading log. Mar 3, 2026

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR aims to address issue #1751 (RemoteLogDownloader deadlock on download failures) by changing remote log download failure handling to retry a fixed number of times and then surface an exception to the client, plus plumbing failures through the fetch buffer/collector so the scanner can fail instead of stalling.

Changes:

  • Add retry + exception propagation for remote log segment download failures.
  • Propagate pending-fetch completion failures through LogFetchBuffer via FetchException.
  • Add/extend unit tests covering fetch exception behavior in downloader/buffer/collector.

Reviewed changes

Copilot reviewed 6 out of 6 changed files in this pull request and generated 6 comments.

Show a summary per file
File Description
fluss-client/src/main/java/org/apache/fluss/client/table/scanner/log/RemoteLogDownloader.java Adds retry/error handling path for remote downloads (but currently has retry logic issues).
fluss-client/src/main/java/org/apache/fluss/client/table/scanner/log/LogFetchBuffer.java Adds exception propagation via stored throwable and throws FetchException from peek/poll.
fluss-client/src/main/java/org/apache/fluss/client/table/scanner/log/LogFetcher.java Updates collectFetch signature and (implicitly) relies on new exception propagation behavior.
fluss-client/src/test/java/org/apache/fluss/client/table/scanner/log/RemoteLogDownloaderTest.java Adds test for downloader failure behavior (contains an unused variable).
fluss-client/src/test/java/org/apache/fluss/client/table/scanner/log/LogFetchCollectorTest.java Adds test ensuring fetch exceptions propagate out of the collector.
fluss-client/src/test/java/org/apache/fluss/client/table/scanner/log/LogFetchBufferTest.java Adds test ensuring buffer surfaces exceptions on peek/poll.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@loserwang1024 loserwang1024 force-pushed the fix-dowload-deadlock branch 2 times, most recently from a7f0c1a to 737b2a1 Compare March 3, 2026 11:50
@loserwang1024

Copy link
Copy Markdown
Contributor Author

@wuchong , fix this test

@loserwang1024

Copy link
Copy Markdown
Contributor Author

@wuchong , CC, it's important for me.

@loserwang1024 loserwang1024 force-pushed the fix-dowload-deadlock branch from 416c8e7 to 0d91d8b Compare June 12, 2026 08:44
@loserwang1024

Copy link
Copy Markdown
Contributor Author

@swuferhong , I have rebased this PR, CC

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

RemoteLogDownloader deadlock when met exception.

2 participants