Thanks Ignasi for your quick response In one of our modules apachehc driver is being used as a HTTP client. I tired to initialize my module with this driver and this time it was successful and did not throw any IOException during put blob.
https://github.com/jclouds/jclouds/tree/master/drivers/apachehc I will try using the OKHttp driver and check its behavior as well Thanks again ~Arunagiri On Fri, Mar 3, 2017 at 4:37 PM, Ignasi Barrera <n...@apache.org> wrote: > Hi Arunagiri, > > Not sure what can be going on. Just to test and verify if it is an > HTTP issue, could you configure a different HTTP driver in your > application, such as the OkHttp driver [1], which has a different way > of dealing with uploads? You just need to declare the module when you > create the connection and test again. > > I. > > [1] https://github.com/jclouds/jclouds/tree/master/drivers/okhttp > > On 2 March 2017 at 19:40, Arunagiri Rajasekaran > <arunagiri.santh...@gmail.com> wrote: > > Hi, > > > > I am trying to transfer some 100 MB data to S3 region ap-northeast-1. > > Multipart upload is enabled and the value is set to 32 MB. However after > > writing approx. 8 MB out of 32 MB, put fails with IOException. The > exception > > is pasted below after enabling jclouds logs, > > > > 2017-02-27@05:46:58.779 E [validate-47 ] > > pCommandExecutorService:logError - error after writing 8785920/33554432 > > bytes to > > https://mcstore-ttv-validator-155b8afa-404b-499b-8708- > 10d393e7f313.s3.amazonaws.com/datathroughput?partNumber=1&uploadId= > DeKeiT8KtfZS2gxx9R4klBrnqmnhknARLiU9Kt9DCAxpOP899o74LhgLWUys4u20ASe1dCN_ > H3yzqXFGTnOMI7nmwroqJU6QxI3bQ7dFy9HD5QJ3Ry7vDXOP3tz7qN0PVgRK > 4pZ6f5w8iPEg6dckig-- > > java.io.IOException: Error writing request body to server > > at > > sun.net.www.protocol.http.HttpURLConnection$StreamingOutputStream. > checkError(HttpURLConnection.java:3494) > > ~[na:1.8.0-internal] > > at > > sun.net.www.protocol.http.HttpURLConnection$StreamingOutputStream.write( > HttpURLConnection.java:3477) > > ~[na:1.8.0-internal] > > at > > com.google.common.io.CountingOutputStream.write( > CountingOutputStream.java:53) > > ~[guava-17.0.jar:na] > > at com.google.common.io.ByteStreams.copy(ByteStreams.java:179) > > ~[guava-17.0.jar:na] > > at > > org.jclouds.http.internal.JavaUrlHttpCommandExecutorServ > ice.writePayloadToConnection(JavaUrlHttpCommandExecutorService.java:297) > > [jclouds-core-1.9.1.jar:1.9.1] > > at > > org.jclouds.http.internal.JavaUrlHttpCommandExecutorService.convert( > JavaUrlHttpCommandExecutorService.java:170) > > [jclouds-core-1.9.1.jar:1.9.1] > > at > > org.jclouds.http.internal.JavaUrlHttpCommandExecutorService.convert( > JavaUrlHttpCommandExecutorService.java:64) > > [jclouds-core-1.9.1.jar:1.9.1] > > at > > org.jclouds.http.internal.BaseHttpCommandExecutorService.invoke( > BaseHttpCommandExecutorService.java:95) > > [jclouds-core-1.9.1.jar:1.9.1] > > at > > org.jclouds.rest.internal.InvokeHttpMethod.invoke( > InvokeHttpMethod.java:90) > > [jclouds-core-1.9.1.jar:1.9.1] > > at > > org.jclouds.rest.internal.InvokeHttpMethod.apply( > InvokeHttpMethod.java:73) > > [jclouds-core-1.9.1.jar:1.9.1] > > at > > org.jclouds.rest.internal.InvokeHttpMethod.apply( > InvokeHttpMethod.java:44) > > [jclouds-core-1.9.1.jar:1.9.1] > > at > > org.jclouds.rest.internal.DelegatesToInvocationFunction.handle( > DelegatesToInvocationFunction.java:156) > > [jclouds-core-1.9.1.jar:1.9.1] > > at > > org.jclouds.rest.internal.DelegatesToInvocationFunction.invoke( > DelegatesToInvocationFunction.java:123) > > [jclouds-core-1.9.1.jar:1.9.1] > > at com.sun.proxy.$Proxy42.uploadPart(Unknown Source) > > [na:1.8.0-internal] > > at > > org.jclouds.s3.blobstore.strategy.internal. > SequentialMultipartUploadStrategy.prepareUploadPart( > SequentialMultipartUploadStrategy.java:111) > > [s3-1.9.1.jar:1.9.1] > > at > > org.jclouds.s3.blobstore.strategy.internal. > SequentialMultipartUploadStrategy.execute(SequentialMultipartUploadStrat > egy.java:93) > > [s3-1.9.1.jar:1.9.1] > > at > > org.jclouds.aws.s3.blobstore.AWSS3BlobStore.putBlob( > AWSS3BlobStore.java:87) > > [aws-s3-1.9.1.jar:1.9.1] > > at > > com.ibm.icstore.modules.BlobStoreConnection$BSCDoneHandler.run( > BlobStoreConnection.java:749) > > [icstore-core-0.30.0-SNAPSHOT.jar:na] > > at > > java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) > > [na:1.8.0-internal] > > at java.util.concurrent.FutureTask.run(FutureTask.java:267) > > [na:1.8.0-internal] > > at > > java.util.concurrent.ThreadPoolExecutor.runWorker( > ThreadPoolExecutor.java:1143) > > [na:1.8.0-internal] > > at > > java.util.concurrent.ThreadPoolExecutor$Worker.run( > ThreadPoolExecutor.java:618) > > [na:1.8.0-internal] > > at java.lang.Thread.run(Thread.java:785) [na:1.8.0-internal] > > > > The same code works fine for the default S3 location but fails when > pointed > > towards specific regions like ap-northeast-1, ap-southeast-1 etc.. > > > > Further debugging showed that the inputstream we used to generate data > > closed after reading 32 MB of data whereas in the working case for > default > > region it got closed only after reading 100 MB of data. > > > > Could someone throw some light on what is going wrong here? > > > > Thanks, > > Arunagiri > > > > >