S3 GET connection failed for

View: New views
2 Messages — Rating Filter:   Alert me  

S3 GET connection failed for

by Joe Moreno-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hi,

     I have some code that uploads thousands of objects into S3, using  
several threads at a time. For some reason, the code runs fine for for  
awhile and then it suddenly starts throwing exceptions that look like  
this:

[2009-06-01 02:19:34 PDT] <S3HTMLBucketThread-archive.adjix.com :  
4xpd-20090501-20090531-713e20e95a60410499d9b79ec596e7a5.csv>  
archive.adjix.com Exception writing HTML file to bucket =  
org.jets3t.service.S3ServiceException: S3 GET connection failed for '/'
org.jets3t.service.S3ServiceException: S3 GET connection failed for '/'
        at  
org
.jets3t
.service
.impl.rest.httpclient.RestS3Service.performRequest(RestS3Service.java:
516)
        at  
org
.jets3t
.service
.impl.rest.httpclient.RestS3Service.performRestGet(RestS3Service.java:
752)
        at  
org
.jets3t
.service
.impl
.rest.httpclient.RestS3Service.listAllBucketsImpl(RestS3Service.java:
1041)
        at org.jets3t.service.S3Service.listAllBuckets(S3Service.java:1348)
        at org.jets3t.service.S3Service.getBucket(S3Service.java:1578)
        at org.jets3t.service.S3Service.getOrCreateBucket(S3Service.java:1601)
        at com.woextras.S3Utilities.bucketNamed(S3Utilities.java:50)
        at com.woextras.S3HTMLBucketThread.run(S3HTMLBucketThread.java:82)
Caused by: java.net.SocketException: Invalid argument
        at java.net.SocketInputStream.socketRead0(Native Method)
        at java.net.SocketInputStream.read(SocketInputStream.java:129)
        at  
com.sun.net.ssl.internal.ssl.InputRecord.readFully(InputRecord.java:293)
        at com.sun.net.ssl.internal.ssl.InputRecord.read(InputRecord.java:331)
        at  
com
.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:
723)
        at  
com
.sun
.net.ssl.internal.ssl.SSLSocketImpl.waitForClose(SSLSocketImpl.java:
1366)
        at  
com
.sun
.net.ssl.internal.ssl.HandshakeOutStream.flush(HandshakeOutStream.java:
103)
        at com.sun.net.ssl.internal.ssl.Handshaker.kickstart(Handshaker.java:
528)
        at  
com
.sun
.net
.ssl.internal.ssl.SSLSocketImpl.kickstartHandshake(SSLSocketImpl.java:
1120)
        at  
com
.sun
.net
.ssl
.internal.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:
1029)
        at  
com
.sun.net.ssl.internal.ssl.SSLSocketImpl.writeRecord(SSLSocketImpl.java:
622)
        at  
com
.sun.net.ssl.internal.ssl.AppOutputStream.write(AppOutputStream.java:59)
        at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:
65)
        at java.io.BufferedOutputStream.flush(BufferedOutputStream.java:123)
        at  
org
.apache
.commons
.httpclient
.HttpConnection.flushRequestOutputStream(HttpConnection.java:828)
        at org.apache.commons.httpclient.MultiThreadedHttpConnectionManager
$
HttpConnectionAdapter
.flushRequestOutputStream(MultiThreadedHttpConnectionManager.java:1565
)
        at  
org
.apache
.commons.httpclient.HttpMethodBase.writeRequest(HttpMethodBase.java:
2116)
        at  
org
.apache.commons.httpclient.HttpMethodBase.execute(HttpMethodBase.java:
1096)
        at  
org
.apache
.commons
.httpclient
.HttpMethodDirector.executeWithRetry(HttpMethodDirector.java:398)
        at  
org
.apache
.commons
.httpclient.HttpMethodDirector.executeMethod(HttpMethodDirector.java:
171)
        at  
org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:
397)
        at  
org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:
323)
        at  
org
.jets3t
.service
.impl.rest.httpclient.RestS3Service.performRequest(RestS3Service.java:
342)
        ... 7 more


Any help would be appreciated.


- Joe

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@...
For additional commands, e-mail: users-help@...


Re: S3 GET connection failed for

by James Murty-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hi Joe,

I haven't come across this kind of error before so I'm afraid I don't have any solutions. I've done some Googling without finding a consistent explanation.

Are you running your application on Solaris with TCP No Delay enabled? If so, this bug report might be relevant:
http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6378870

I have come across a few other mentions of this issue but no solid fixes or work-arounds:
http://www.nabble.com/SocketException:-Connection-reset---Invalid-argument-td9478521.html
http://lists.apple.com/archives/Java-dev/2008/Jul/msg00089.html
http://www.innovation.ch/java/HTTPClient/errors.html

Reading between the lines of some of these discussions, it sounds like this exception *may* be something you can ignore as an intermittent connection problem -- despite the nasty exception message.

Some of the links even imply this exception indicates a server-side problem, though that seems unlikely given you're interacting with S3. I don't suppose there's a proxy between your client and S3? I notice that you're connecting with HTTPS, so probably not.

If you think it is acceptable to ignore these exceptions and just retry the operation, you may want to modify JetS3t RestS3Service class to catch these specific exceptions and retry the request using its built-in retry mechanism -- like it already does for Internal Server (500) errors from the S3 service. By default, this exception will be thrown by RestS3Service straight away and it won't retry the request.

Does anyone else have experience with this issue?

James

---
http://www.jamesmurty.com


On Mon, Jun 1, 2009 at 5:57 PM, Joe Moreno <joemoreno@...> wrote:
Hi,

   I have some code that uploads thousands of objects into S3, using several threads at a time. For some reason, the code runs fine for for awhile and then it suddenly starts throwing exceptions that look like this:

[2009-06-01 02:19:34 PDT] <S3HTMLBucketThread-archive.adjix.com : 4xpd-20090501-20090531-713e20e95a60410499d9b79ec596e7a5.csv> archive.adjix.com Exception writing HTML file to bucket = org.jets3t.service.S3ServiceException: S3 GET connection failed for '/'
org.jets3t.service.S3ServiceException: S3 GET connection failed for '/'
       at org.jets3t.service.impl.rest.httpclient.RestS3Service.performRequest(RestS3Service.java:516)
       at org.jets3t.service.impl.rest.httpclient.RestS3Service.performRestGet(RestS3Service.java:752)
       at org.jets3t.service.impl.rest.httpclient.RestS3Service.listAllBucketsImpl(RestS3Service.java:1041)
       at org.jets3t.service.S3Service.listAllBuckets(S3Service.java:1348)
       at org.jets3t.service.S3Service.getBucket(S3Service.java:1578)
       at org.jets3t.service.S3Service.getOrCreateBucket(S3Service.java:1601)
       at com.woextras.S3Utilities.bucketNamed(S3Utilities.java:50)
       at com.woextras.S3HTMLBucketThread.run(S3HTMLBucketThread.java:82)
Caused by: java.net.SocketException: Invalid argument
       at java.net.SocketInputStream.socketRead0(Native Method)
       at java.net.SocketInputStream.read(SocketInputStream.java:129)
       at com.sun.net.ssl.internal.ssl.InputRecord.readFully(InputRecord.java:293)
       at com.sun.net.ssl.internal.ssl.InputRecord.read(InputRecord.java:331)
       at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:723)
       at com.sun.net.ssl.internal.ssl.SSLSocketImpl.waitForClose(SSLSocketImpl.java:1366)
       at com.sun.net.ssl.internal.ssl.HandshakeOutStream.flush(HandshakeOutStream.java:103)
       at com.sun.net.ssl.internal.ssl.Handshaker.kickstart(Handshaker.java:528)
       at com.sun.net.ssl.internal.ssl.SSLSocketImpl.kickstartHandshake(SSLSocketImpl.java:1120)
       at com.sun.net.ssl.internal.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1029)
       at com.sun.net.ssl.internal.ssl.SSLSocketImpl.writeRecord(SSLSocketImpl.java:622)
       at com.sun.net.ssl.internal.ssl.AppOutputStream.write(AppOutputStream.java:59)
       at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:65)
       at java.io.BufferedOutputStream.flush(BufferedOutputStream.java:123)
       at org.apache.commons.httpclient.HttpConnection.flushRequestOutputStream(HttpConnection.java:828)
       at org.apache.commons.httpclient.MultiThreadedHttpConnectionManager$HttpConnectionAdapter.flushRequestOutputStream(MultiThreadedHttpConnectionManager.java:1565
)
       at org.apache.commons.httpclient.HttpMethodBase.writeRequest(HttpMethodBase.java:2116)
       at org.apache.commons.httpclient.HttpMethodBase.execute(HttpMethodBase.java:1096)
       at org.apache.commons.httpclient.HttpMethodDirector.executeWithRetry(HttpMethodDirector.java:398)
       at org.apache.commons.httpclient.HttpMethodDirector.executeMethod(HttpMethodDirector.java:171)
       at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:397)
       at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:323)
       at org.jets3t.service.impl.rest.httpclient.RestS3Service.performRequest(RestS3Service.java:342)
       ... 7 more


Any help would be appreciated.


- Joe

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@...
For additional commands, e-mail: users-help@...