Samrat Deb created FLINK-39778:
----------------------------------

             Summary: Recoverable writer silently loses the in-flight tail on 
resume
                 Key: FLINK-39778
                 URL: https://issues.apache.org/jira/browse/FLINK-39778
             Project: Flink
          Issue Type: Sub-task
          Components: Connectors / FileSystem
            Reporter: Samrat Deb
             Fix For: 2.4.0


persist() uploads the un-parted tail to a side object 
<key>/.incomplete/<uploadId>/<uuid> and records incompleteObjectName in the 
NativeS3Recoverable. But recover() rebuilds

the stream from parts() + numBytesInParts() only — 
s3recoverable.incompleteObjectName() is never read:

return new NativeS3RecoverableFsDataOutputStream(
s3AccessHelper, s3recoverable.getObjectName(), s3recoverable.uploadId(),

localTmpDir, userDefinedMinPartSize,

s3recoverable.parts(), s3recoverable.numBytesInParts());

After resume from a checkpoint with a partial part, those bytes are silently 
dropped — exactly-once degrades to "at-most-once minus tail." 
cleanupRecoverableState() deletes

the side object, confirming the intent; recover() just forgot to read it back.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to