[
https://issues.apache.org/jira/browse/JCLOUDS-1366?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16734680#comment-16734680
]
ASF subversion and git services commented on JCLOUDS-1366:
----------------------------------------------------------
Commit 2393c7920b65be5f42fae3376b34810c7e96815f in jclouds's branch
refs/heads/master from Andrew Gaul
[ https://git-wip-us.apache.org/repos/asf?p=jclouds.git;h=2393c79 ]
JCLOUDS-1366: JCLOUDS-1472: Fix InputStream MPU
Previously jclouds attempted to slice non-repeatable InputStream
Payloads in order to upload sequentially. This never worked due to
mutating the single stream via skip and close. Also backfill test
which spuriously succeeded.
> OutOfMemory when InputStream referencing to big file is used as payload
> -----------------------------------------------------------------------
>
> Key: JCLOUDS-1366
> URL: https://issues.apache.org/jira/browse/JCLOUDS-1366
> Project: jclouds
> Issue Type: Bug
> Components: jclouds-blobstore
> Affects Versions: 2.0.0, 2.0.3
> Environment: Linux and Windows
> Reporter: Deyan
> Priority: Critical
>
> If I use InputStream which source is large file (lets say 3GB) I am getting
> OOE. This is with default java VM options.
> Here is the code I am using to construct the blob:
> {code:java}
> File bigFile = new File(file);
> try (InputStream inputStream = new FileInputStream(f)) {
> Blob b = blobStore.blobBuilder(blobName)
> .payload(inputStream).contentLength(f.length())
> .contentDisposition(blobName)
> .contentType(
> MediaType.OCTET_STREAM)
> .userMetadata(ImmutableMap.of("a", "b", "test",
> "beta"))
> .build();
> blobStore.putBlob("test", bbbbb, multipart());
> }
> {code}
> Stacktrace:
> {code:java}
> java.lang.OutOfMemoryError: Java heap space
> at
> org.jclouds.io.internal.BasePayloadSlicer$InputStreamPayloadIterator.getNextPayload(BasePayloadSlicer.java:101)
> at
> org.jclouds.io.internal.BasePayloadSlicer$InputStreamPayloadIterator.next(BasePayloadSlicer.java:90)
> at
> org.jclouds.io.internal.BasePayloadSlicer$InputStreamPayloadIterator.next(BasePayloadSlicer.java:63)
> at
> org.jclouds.blobstore.internal.BaseBlobStore.putMultipartBlob(BaseBlobStore.java:363)
> at
> org.jclouds.blobstore.internal.BaseBlobStore.putMultipartBlob(BaseBlobStore.java:349)
> at org.jclouds.s3.blobstore.S3BlobStore.putBlob(S3BlobStore.java:262)
> {code}
> If 'bigFile' is used as payload the bug is not reproducible.
>
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)