Closed
Description
I've noticed an issue with Java 16
time="2021-07-26T07:23:27.015" level=info msg="exec 'java' (cwd=/, handler=com.amazon.LambdaExample)"
time="2021-07-26T07:23:31.193" level=info msg="extensionsDisabledByLayer(/opt/disable-extensions-jwigqn8j) -> stat /opt/disable-extensions-jwigqn8j: no such file or directory"
time="2021-07-26T07:23:31.193" level=warning msg="Cannot list external agents" error="open /opt/extensions: no such file or directory"
START RequestId: 62765859-8b68-4bf4-b088-1dddcac0b1d1 Version: $LATEST
Exception in thread "main" java.lang.Error: java.lang.RuntimeException: java.lang.reflect.InaccessibleObjectException: Unable to make field private final java.util.Map java.util.Collections$UnmodifiableMap.m accessible: module java.base does not "opens java.util" to unnamed module @270fcfcc
at com.amazonaws.services.lambda.runtime.api.client.AWSLambda.startRuntime(AWSLambda.java:195)
at com.amazonaws.services.lambda.runtime.api.client.AWSLambda.main(AWSLambda.java:188)
Caused by: java.lang.RuntimeException: java.lang.reflect.InaccessibleObjectException: Unable to make field private final java.util.Map java.util.Collections$UnmodifiableMap.m accessible: module java.base does not "opens java.util" to unnamed module @270fcfcc
at com.amazonaws.services.lambda.runtime.api.client.util.EnvWriter.<init>(EnvWriter.java:26)
at com.amazonaws.services.lambda.runtime.api.client.AWSLambda.startRuntime(AWSLambda.java:210)
at com.amazonaws.services.lambda.runtime.api.client.AWSLambda.startRuntime(AWSLambda.java:193)
... 1 more
Caused by: java.lang.reflect.InaccessibleObjectException: Unable to make field private final java.util.Map java.util.Collections$UnmodifiableMap.m accessible: module java.base does not "opens java.util" to unnamed module @270fcfcc
at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:357)
at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:297)
at java.base/java.lang.reflect.Field.checkCanSetAccessible(Field.java:177)
at java.base/java.lang.reflect.Field.setAccessible(Field.java:171)
at com.amazonaws.services.lambda.runtime.api.client.util.EnvWriter.<init>(EnvWriter.java:21)
... 3 more
time="2021-07-26T07:23:31.291" level=warning msg="First fatal error stored in appctx: Runtime.ExitError"
time="2021-07-26T07:23:31.292" level=warning msg="Process 14(java) exited: Runtime exited with error: exit status 1"
time="2021-07-26T07:23:31.292" level=error msg="Init failed" InvokeID= error="Runtime exited with error: exit status 1"
time="2021-07-26T07:23:31.292" level=warning msg="Reset initiated: ReserveFail"
time="2021-07-26T07:23:31.292" level=warning msg="Cannot list external agents" error="open /opt/extensions: no such file or directory"
Exception in thread "main" java.lang.Error: java.lang.RuntimeException: java.lang.reflect.InaccessibleObjectException: Unable to make field private final java.util.Map java.util.Collections$UnmodifiableMap.m accessible: module java.base does not "opens java.util" to unnamed module @270fcfcc
at com.amazonaws.services.lambda.runtime.api.client.AWSLambda.startRuntime(AWSLambda.java:195)
at com.amazonaws.services.lambda.runtime.api.client.AWSLambda.main(AWSLambda.java:188)
Caused by: java.lang.RuntimeException: java.lang.reflect.InaccessibleObjectException: Unable to make field private final java.util.Map java.util.Collections$UnmodifiableMap.m accessible: module java.base does not "opens java.util" to unnamed module @270fcfcc
at com.amazonaws.services.lambda.runtime.api.client.util.EnvWriter.<init>(EnvWriter.java:26)
at com.amazonaws.services.lambda.runtime.api.client.AWSLambda.startRuntime(AWSLambda.java:210)
at com.amazonaws.services.lambda.runtime.api.client.AWSLambda.startRuntime(AWSLambda.java:193)
... 1 more
Caused by: java.lang.reflect.InaccessibleObjectException: Unable to make field private final java.util.Map java.util.Collections$UnmodifiableMap.m accessible: module java.base does not "opens java.util" to unnamed module @270fcfcc
at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:357)
at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:297)
at java.base/java.lang.reflect.Field.checkCanSetAccessible(Field.java:177)
at java.base/java.lang.reflect.Field.setAccessible(Field.java:171)
at com.amazonaws.services.lambda.runtime.api.client.util.EnvWriter.<init>(EnvWriter.java:21)
... 3 more
time="2021-07-26T07:23:31.376" level=warning msg="First fatal error stored in appctx: Runtime.ExitError"
time="2021-07-26T07:23:31.376" level=warning msg="Process 33(java) exited: Runtime exited with error: exit status 1"
END RequestId: 0b3081de-2ad5-4e90-8688-03cf43d6fedc
REPORT RequestId: 0b3081de-2ad5-4e90-8688-03cf43d6fedc Init Duration: 0.38 ms Duration: 182.94 ms Billed Duration: 183 ms Memory Size: 3008 MB Max Memory Used: 3008 MB
The Dockerfile is
FROM openjdk:16.0.2 as builder
RUN microdnf update \
&& microdnf -y upgrade
RUN microdnf install wget -y
RUN wget https://mirror.softaculous.com/apache/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz -P /tmp
RUN tar xf /tmp/apache-maven-3.6.3-bin.tar.gz -C /opt
RUN ln -s /opt/apache-maven-3.6.3 /opt/maven
ENV M2_HOME=/opt/maven
ENV MAVEN_HOME=/opt/maven
ENV PATH=${M2_HOME}/bin:${PATH}
COPY ./pom.xml ./pom.xml
COPY src ./src/
RUN mvn -Dmaven.test.skip=true clean package
FROM openjdk:16-slim
RUN apt-get update && apt-get upgrade -y
COPY --from=builder target/dependency/* /function/
COPY --from=builder target/LambdaExample.jar /function
ENTRYPOINT [ "java", "-cp", "/function/*", "com.amazonaws.services.lambda.runtime.api.client.AWSLambda" ]
CMD ["com.amazon.LambdaExample::handleRequest"]
With JDK 15 as runtime, everything works as expected.
Metadata
Metadata
Assignees
Labels
No labels