Feifan Wang created FLINK-26799:
-----------------------------------
Summary: StateChangeFormat#read not seek to offset correctly
Key: FLINK-26799
URL: https://issues.apache.org/jira/browse/FLINK-26799
Project: Flink
Issue Type: Bug
Components: Runtime / State Backends
Reporter: Feifan Wang
StateChangeFormat#read must seek to offset before read, current implement as
follows :
{code:java}
FSDataInputStream stream = handle.openInputStream();
DataInputViewStreamWrapper input = wrap(stream);
if (stream.getPos() != offset) {
LOG.debug("seek from {} to {}", stream.getPos(), offset);
input.skipBytesToRead((int) offset);
}{code}
But the if condition is incorrect, stream.getPos() return the position of
underlying stream which is different from position of input.
By the way, because of wrapped by BufferedInputStream, position of underlying
stream always at n*bufferSize or the end of file.
Actually, input is aways at position 0 at beginning, so I think we can seek to
the offset directly.
--
This message was sent by Atlassian Jira
(v8.20.1#820001)