Arvid Heise created FLINK-36454:
-----------------------------------

             Summary: FlinkContainer always overwrites default config
                 Key: FLINK-36454
                 URL: https://issues.apache.org/jira/browse/FLINK-36454
             Project: Flink
          Issue Type: Bug
          Components: Test Infrastructure
    Affects Versions: 2.0-preview
            Reporter: Arvid Heise


Because FlinkContainer disregards the default config, some meaningful options 
are lost when executing container in tests. For example, because we overwrite 
env.java.opts.all, all --add-opens are lost leading to exceptions like


{code:java}
 10:26:26,171 [                main] ERROR 
org.apache.flink.connector.testframe.container.FlinkContainers [] - 
java.lang.ExceptionInInitializerError
        at 
org.apache.flink.client.ClientUtils.executeProgram(ClientUtils.java:109)
        at 
org.apache.flink.client.cli.CliFrontend.executeProgram(CliFrontend.java:1026)
        at org.apache.flink.client.cli.CliFrontend.run(CliFrontend.java:247)
        at 
org.apache.flink.client.cli.CliFrontend.parseAndRun(CliFrontend.java:1270)
        at 
org.apache.flink.client.cli.CliFrontend.lambda$mainInternal$10(CliFrontend.java:1367)
        at 
org.apache.flink.runtime.security.contexts.NoOpSecurityContext.runSecured(NoOpSecurityContext.java:28)
        at 
org.apache.flink.client.cli.CliFrontend.mainInternal(CliFrontend.java:1367)
        at org.apache.flink.client.cli.CliFrontend.main(CliFrontend.java:1335)
Caused by: java.lang.RuntimeException: Can not register process function 
transformation translator.
        at 
org.apache.flink.datastream.impl.ExecutionEnvironmentImpl.<clinit>(ExecutionEnvironmentImpl.java:98)
        ... 8 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 @771b8d5c
        at 
java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(Unknown 
Source)
        at 
java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(Unknown 
Source)
        at java.base/java.lang.reflect.Field.checkCanSetAccessible(Unknown 
Source)
        at java.base/java.lang.reflect.Field.setAccessible(Unknown Source)
        at 
org.apache.flink.streaming.runtime.translators.DataStreamV2SinkTransformationTranslator.registerSinkTransformationTranslator(DataStreamV2SinkTransformationTranslator.java:104)
        at 
org.apache.flink.datastream.impl.ExecutionEnvironmentImpl.<clinit>(ExecutionEnvironmentImpl.java:96)
        ... 8 more {code}

FlinkImageBuilder should read the default config and only overwrite the custom 
settings in
{code:java}
private Path createTemporaryFlinkConfFile(Configuration finalConfiguration, 
Path tempDirectory)
        throws IOException {
    Path flinkConfFile = 
tempDirectory.resolve(GlobalConfiguration.FLINK_CONF_FILENAME);
    Files.write(
            flinkConfFile,
            ConfigurationUtils.convertConfigToWritableLines(finalConfiguration, 
false));

    return flinkConfFile;
} {code}

The workaround is to set the option manually in the test but that may be 
outdated on version upgrade.

 



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to