You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@flink.apache.org by "Feifan Wang (Jira)" <ji...@apache.org> on 2022/03/22 08:09:00 UTC
[jira] [Created] (FLINK-26799) StateChangeFormat#read not seek to offset correctly
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)