soabase / exhibitor

ZooKeeper co-process for instance monitoring, backup/recovery, cleanup and visualization.

Home Page:https://groups.google.com/forum/#!topic/exhibitor-users/PVkcd88mk8c

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

S3 Sync fails on 1.5.5 due to missing Date header

robzienert opened this issue · comments

While trying to sync configs on 1.5.5 (using AWS Instance Profiles), the following exception is thrown:

[2015-09-09 18:46:11,472] ERROR Unhandled exception in repeating activity (AutomaticInstanceManagement) - re-queueing (com.netflix.exhibitor.core.activity.ActivityLog)
com.amazonaws.services.s3.model.AmazonS3Exception: AWS authentication requires a valid Date or x-amz-date header (Service: Amazon S3; Status Code: 403; Error Code: AccessDenied; Request ID: xxxxxxx), S3 Extended Request ID: xxxxxxx
    at com.amazonaws.http.AmazonHttpClient.handleErrorResponse(AmazonHttpClient.java:1071)
    at com.amazonaws.http.AmazonHttpClient.executeOneRequest(AmazonHttpClient.java:719)
    at com.amazonaws.http.AmazonHttpClient.executeHelper(AmazonHttpClient.java:454)
    at com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:294)
    at com.amazonaws.services.s3.AmazonS3Client.invoke(AmazonS3Client.java:3658)
    at com.amazonaws.services.s3.AmazonS3Client.putObject(AmazonS3Client.java:1425)
    at com.netflix.exhibitor.core.s3.S3ClientImpl.putObject(S3ClientImpl.java:118)
    at com.netflix.exhibitor.core.config.s3.S3PseudoLock.createFile(S3PseudoLock.java:72)
    at com.netflix.exhibitor.core.config.PseudoLockBase.lock(PseudoLockBase.java:107)
    at com.netflix.exhibitor.core.automanage.AutomaticInstanceManagement.call(AutomaticInstanceManagement.java:93)
    at com.netflix.exhibitor.core.automanage.AutomaticInstanceManagement.call(AutomaticInstanceManagement.java:33)
    at com.netflix.exhibitor.core.activity.RepeatingActivityImpl$1.call(RepeatingActivityImpl.java:61)
    at com.netflix.exhibitor.core.activity.RepeatingActivityImpl$1.call(RepeatingActivityImpl.java:46)
    at com.netflix.exhibitor.core.activity.ActivityQueue$1.run(ActivityQueue.java:126)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)

Updating to the latest AWS SDK fixed this for me.

A PR would be appreciated.

Why would the AWS SDK stop working all of a sudden? Did they make a change in the S3 API that broke version 1.9.3 of the SDK?