esmero / archipelago-docker-images

This holds our master docker images used in Archipelago deployment
GNU General Public License v3.0
2 stars 3 forks source link

AWS credentials exception for Cantaloupe 6.0.0 build on ARM64 #39

Open aksm opened 2 years ago

aksm commented 2 years ago

WHAT?

After running a multiarch build with

docker buildx build --platform linux/amd64,linux/arm64 -t user/repo:tag --push

e.g. https://hub.docker.com/layers/archipelago/aminmetro/archipelago/cantaloupe-6.0-multiarch/images/sha256-038d9f1c5438b9ec770187a3b76723958d14354be91b0e4e90861eca9c23bc68

everything seems to run fine on ARM64 except for a small exception in the debug logs:

19:30:27.028 [qtp1449263511-36] DEBUG e.i.l.c.s.S3Source - Requesting [endpoint: null] [region: null] [accessKeyID: null] [secretAccessKey: null] [bucket: esmero] [key: media/1e3/image-service-pnp-jpd-01500-01578v-fdc9b3f2-262e-420c-9148-f99685eaba77.jpg]
19:30:27.029 [qtp1449263511-36] DEBUG s.a.a.a.c.AwsCredentialsProviderChain - Unable to load credentials from SystemPropertyCredentialsProvider(): Unable to load credentials from system settings. Access key must be specified either via environment variable (AWS_ACCESS_KEY_ID) or system property (aws.accessKeyId).
software.amazon.awssdk.core.exception.SdkClientException: Unable to load credentials from system settings. Access key must be specified either via environment variable (AWS_ACCESS_KEY_ID) or system property (aws.accessKeyId).
    at software.amazon.awssdk.core.exception.SdkClientException$BuilderImpl.build(SdkClientException.java:98)
    at software.amazon.awssdk.auth.credentials.internal.SystemSettingsCredentialsProvider.resolveCredentials(SystemSettingsCredentialsProvider.java:58)
    at software.amazon.awssdk.auth.credentials.AwsCredentialsProviderChain.resolveCredentials(AwsCredentialsProviderChain.java:91)
    at software.amazon.awssdk.awscore.client.handler.AwsClientHandlerUtils.createExecutionContext(AwsClientHandlerUtils.java:76)
    at software.amazon.awssdk.awscore.client.handler.AwsSyncClientHandler.createExecutionContext(AwsSyncClientHandler.java:68)
    at software.amazon.awssdk.core.internal.handler.BaseSyncClientHandler.lambda$execute$0(BaseSyncClientHandler.java:74)
    at software.amazon.awssdk.core.internal.handler.BaseSyncClientHandler.measureApiCallSuccess(BaseSyncClientHandler.java:167)
    at software.amazon.awssdk.core.internal.handler.BaseSyncClientHandler.execute(BaseSyncClientHandler.java:62)
    at software.amazon.awssdk.core.client.handler.SdkSyncClientHandler.execute(SdkSyncClientHandler.java:52)
    at software.amazon.awssdk.awscore.client.handler.AwsSyncClientHandler.execute(AwsSyncClientHandler.java:62)
    at software.amazon.awssdk.services.s3.DefaultS3Client.getObject(DefaultS3Client.java:4361)
    at software.amazon.awssdk.services.s3.S3Client.getObject(S3Client.java:7635)
    at edu.illinois.library.cantaloupe.source.S3Source.newObjectInputStream(S3Source.java:294)
    at edu.illinois.library.cantaloupe.source.S3Source.newObjectInputStream(S3Source.java:265)
    at edu.illinois.library.cantaloupe.source.S3StreamFactory.newInputStream(S3StreamFactory.java:36)
    at edu.illinois.library.cantaloupe.processor.TurboJpegProcessor.setStreamFactory(TurboJpegProcessor.java:139)
    at edu.illinois.library.cantaloupe.processor.ProcessorConnector.connect(ProcessorConnector.java:213)
    at edu.illinois.library.cantaloupe.resource.ImageRequestHandler.handle(ImageRequestHandler.java:389)
    at edu.illinois.library.cantaloupe.resource.iiif.v2.ImageResource.doGET(ImageResource.java:136)
    at edu.illinois.library.cantaloupe.resource.HandlerServlet.handle(HandlerServlet.java:97)
    at edu.illinois.library.cantaloupe.resource.HandlerServlet.doGet(HandlerServlet.java:35)
    at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:500)
    at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:587)
    at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:764)
    at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:508)
    at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:221)
    at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1370)
    at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:176)
    at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:463)
    at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:174)
    at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1292)
    at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:129)
    at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:122)
    at org.eclipse.jetty.server.Server.handle(Server.java:562)
    at org.eclipse.jetty.server.HttpChannel.lambda$handle$0(HttpChannel.java:399)
    at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:656)
    at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:391)
    at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:282)
    at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:319)
    at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:100)
    at org.eclipse.jetty.io.SocketChannelEndPoint$1.run(SocketChannelEndPoint.java:101)
    at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:333)
    at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:310)
    at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:168)
    at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:126)
    at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:378)
    at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:894)
    at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1038)
    at java.base/java.lang.Thread.run(Thread.java:832)
19:30:27.029 [qtp1449263511-36] DEBUG s.a.a.a.c.AwsCredentialsProviderChain - Loading credentials from EnvironmentVariableCredentialsProvider()

Maybe a config issue? Bug? Loads right after as the last line shows.

aksm commented 2 years ago

Closing this because I misunderstood how things work. As Diego pointed out, this is due to local credentials being checked and isn't a problem.