[
https://issues.apache.org/jira/browse/FLINK-36124?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Gabor Somogyi closed FLINK-36124.
---------------------------------
> S3RecoverableFsDataOutputStream.sync closes the stream and further write
> operations throw exception
> ---------------------------------------------------------------------------------------------------
>
> Key: FLINK-36124
> URL: https://issues.apache.org/jira/browse/FLINK-36124
> Project: Flink
> Issue Type: Bug
> Components: Connectors / AWS
> Affects Versions: 2.0.0
> Reporter: Gabor Somogyi
> Assignee: Gabor Somogyi
> Priority: Blocker
> Labels: pull-request-available
> Fix For: 2.0.0
>
>
> This behaviour is introduced in FLINK-28513.
> Rationale why I think it's a bug:
> * `sync` method is defined in `FSDataOutputStream` with the following
> definition:
> {code:java}
> /**
> * Flushes the data all the way to the persistent non-volatile storage
> (for example disks). The
> * method behaves similar to the <i>fsync</i> function, forcing all data
> to be persistent on the
> * devices.
> *
> * @throws IOException Thrown if an I/O error occurs
> */
> {code}
> * In case `sync` method call user of the writer instance is expected to call
> further `write` methods
> * What is actually happening it's blowing up the next write with the
> following exception:
> {code:java}
> java.io.IOException: Stream closed.
> at
> org.apache.flink.core.fs.RefCountedFileWithStream.requireOpened(RefCountedFileWithStream.java:72)
> at
> org.apache.flink.core.fs.RefCountedFileWithStream.write(RefCountedFileWithStream.java:52)
> at
> org.apache.flink.core.fs.RefCountedBufferingFileStream.flush(RefCountedBufferingFileStream.java:104)
> at
> org.apache.flink.core.fs.RefCountedBufferingFileStream.write(RefCountedBufferingFileStream.java:87)
> at
> org.apache.flink.fs.s3.common.writer.S3RecoverableFsDataOutputStream.write(S3RecoverableFsDataOutputStream.java:112)
> at java.base/java.io.OutputStream.write(OutputStream.java:122)
> {code}
> * This can be super easily tested with
> `S3RecoverableFsDataOutputStreamTest.testSync`. Please remove the `expected =
> Exception.class` from the beginning of the test.
> * The following line in the test is testing nothing because never ever
> called:
> https://github.com/apache/flink/blob/56c81995d3b34ed9066b6771755407b93438f5ab/flink-filesystems/flink-s3-fs-base/src/test/java/org/apache/flink/fs/s3/common/writer/S3RecoverableFsDataOutputStreamTest.java#L264
--
This message was sent by Atlassian Jira
(v8.20.10#820010)