-
Notifications
You must be signed in to change notification settings - Fork 232
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
intermittent getBlob exception #303
Comments
This is an interesting stack trace! Closer raises an exception in while (!stack.isEmpty()) {
Closeable closeable = stack.removeFirst();
|
another one with a different backtrace:
This one causes the test to be stuck: https://travis-ci.org/kahing/goofys/jobs/583981057#L11071 |
Does this also happen in |
Actually the line
reveals the cause, a |
It looks like https://docs.oracle.com/javaee/6/api/javax/servlet/ServletResponse.html#isCommitted() |
If an error occurs when writing the body of a response, e.g., TimeoutException, previously S3Proxy would try to emit the AWS error code. Since this stream was already opened and closed, this failed and Jetty emitted this warning: Could not send response error 500: java.lang.IllegalStateException: STREAM References #303.
Similar symptom seen in s3fs CI:
|
This avoids a race condition due to sharing the same Closer instance and unbounded growth of its Closeable Deque. References gaul/s3proxy#303.
Fixed in S3Proxy 1.8.0. |
I still see this with S3Proxy 2.0.0:
|
Closer is not thread safe and lack of synchronization can throw ArrayIndexOutOfBoundsExceptions. Fixes gaul/s3proxy#303.
ByteSourcePayload's.openStream is not thread safe and lack of synchronization can throw ArrayIndexOutOfBoundsExceptions. Fixes gaul/s3proxy#303.
ByteSourcePayload.openStream is not thread safe and lack of synchronization can throw ArrayIndexOutOfBoundsExceptions. Instead deep copy the underlying Payload. Fixes gaul/s3proxy#303.
ByteSourcePayload.openStream is not thread safe and lack of synchronization can throw ArrayIndexOutOfBoundsExceptions. Instead deep copy the underlying Payload. Fixes gaul/s3proxy#303.
Needs jclouds 2.6.0 upgrade. |
I haven't narrowed down what triggers this yet, but goofys CI tests trigger this (unclear which test):
The text was updated successfully, but these errors were encountered: