Details
-
Sub-task
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
None
-
None
-
None
-
None
Description
With the current implementation, RawSnapshotReader are created and closed by the KafkaRaftClient as needed to satisfy FetchSnapshot requests. This means that for FileRawSnapshotReader they are closed before the network client has had a chance to send the bytes over the network.
One way to fix this is to make the KafkaMetadataLog the owner of the FileRawSnapshotReader. Once a FileRawSnapshotReader is created it will stay open until the snapshot is deleted by ReplicatedLog::deleteBeforeSnapshot.