[ 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)