Skip to content

Issue with Java 16 #261

Closed
Closed
@smoell

Description

@smoell

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

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions