[
https://issues.apache.org/jira/browse/JCLOUDS-1626?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17822884#comment-17822884
]
ASF subversion and git services commented on JCLOUDS-1626:
----------------------------------------------------------
Commit 4c7fb2c8b9f36207cd0b04f6266521412e6678f3 in jclouds's branch
refs/heads/master from Andrew Gaul
[ https://gitbox.apache.org/repos/asf?p=jclouds.git;h=4c7fb2c8b9 ]
JCLOUDS-1626: Close stream in MultiBlobInputStream
Otherwise the inner FileInputStream will leak if the caller only reads
part of the stream before closing the outer MultiBlobInputStream.
> `FileInputStream` leak when using `filesystem` provider and performing a
> multipart upload
> -----------------------------------------------------------------------------------------
>
> Key: JCLOUDS-1626
> URL: https://issues.apache.org/jira/browse/JCLOUDS-1626
> Project: jclouds
> Issue Type: Bug
> Components: jclouds-blobstore
> Reporter: Ji Xinchi
> Priority: Critical
> Labels: filesystem
>
> I'm using gaul/s3proxy built on the latest jclouds. The provider
> configuration is "filesystem", and basedir configuration is a directory where
> a NFS is mounted.
>
> When I performed a multipart upload, I found that files such as
> ".nfs00000000100000bf00000005" remained in the directory after uploading.
> Each file corresponded to one part and the files could not be deleted. The
> error "Device Busy" was reported. These files will disappear automatically
> after restarting s3proxy.
>
> I found this PR, and tried to restore following snippet and it worked. But
> this is just a temporary fix.
> {code:java}
> InputStream is = blob.getPayload().openStream();
> if (is instanceof FileInputStream) {
> // except for FileInputStream since large MPU can open too many
> fds
> is.close();
> payload = blob.getPayload();
> } else {
> blob.resetPayload(/*release=*/ false);
> payload = new InputStreamPayload(is);
> } {code}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)