leekeiabstraction commented on PR #102: URL: https://github.com/apache/fluss-rust/pull/102#issuecomment-3684532086
> @leekeiabstraction Thanks for the pr. Besides, I think we should add https://github.com/apache/fluss/blob/main/fluss-client/src/main/java/org/apache/fluss/client/table/scanner/log/LogFetcher.java#L173 to update metadata if leader is not found. Othwise, we'll never be able to fetch the bucket if the the leader is not found at first. Retry should get the leader and make it's possible to fetch the bucket I've pushed the changes to handle this specific case. However, I am not certain on how to simulate the particular scenario. When using a local cluster: 1. Scenario A, stop tablet server in between polls: If I understand correctly, the current Java implementation of `checkAndUpdateMetadata()` (of which we're following) does not update metadata if bucket leader was previously available, it only updates it if bucket leader was previously unavailable. Additionally, [LogFetcher.send_fetches() currently just logs fetch failures](https://github.com/apache/fluss-rust/blob/main/crates/fluss/src/client/table/scanner.rs#L372-L376), leader status is not updated. 1. Scenario B, start LogScanner with tablet server down: I run into issue before instantiating LogScanner when calling admin.get_table(): `Error: FlussAPIError { api_error: ApiError { code: 17, message: "Replication factor: 1 larger than available tablet servers: 0." } }`. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
