hi,

I am trying to upgrade my app to Flink 1.18.

I have tests that run my stream from/to Embedded (in-memory) Kafka.
I.e. They create a flink cluster thus:

val flinkCluster = new MiniClusterWithClientResource(new
MiniClusterResourceConfiguration.Builder()
  .setNumberSlotsPerTaskManager(2)
  .setNumberTaskManagers(1)
  .build)

before {
  flinkCluster.before()
}

after {
  flinkCluster.after()
}

get an execution env thus:

val env = StreamExecutionEnvironment.getExecutionEnvironment

build the pipeline and execute it.

These tests fail due to:

org.apache.flink.runtime.client.JobInitializationException: Could not start
the JobMaster.

at
org.apache.flink.runtime.jobmaster.DefaultJobMasterServiceProcess.lambda$new$0(DefaultJobMasterServiceProcess.java:97)

at
java.base/java.util.concurrent.CompletableFuture.uniWhenComplete(CompletableFuture.java:859)

at
java.base/java.util.concurrent.CompletableFuture$UniWhenComplete.tryFire(CompletableFuture.java:837)

at
java.base/java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:506)

at
java.base/java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1705)

at
java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)

at
java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)

at java.base/java.lang.Thread.run(Thread.java:829)

Caused by: java.util.concurrent.CompletionException:
java.lang.RuntimeException: java.lang.ClassNotFoundException:
org.apache.flink.api.common.ExecutionConfig

at
java.base/java.util.concurrent.CompletableFuture.encodeThrowable(CompletableFuture.java:314)

at
java.base/java.util.concurrent.CompletableFuture.completeThrowable(CompletableFuture.java:319)

at
java.base/java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1702)

... 3 more

Caused by: java.lang.RuntimeException: java.lang.ClassNotFoundException:
org.apache.flink.api.common.ExecutionConfig

at org.apache.flink.util.ExceptionUtils.rethrow(ExceptionUtils.java:321)

at
org.apache.flink.util.function.FunctionUtils.lambda$uncheckedSupplier$4(FunctionUtils.java:114)

at
java.base/java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1700)

... 3 more

Caused by: java.lang.ClassNotFoundException:
org.apache.flink.api.common.ExecutionConfig

at
java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:581)

at
java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)

at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:527)

at java.base/java.lang.Class.forName0(Native Method)

at java.base/java.lang.Class.forName(Class.java:398)

at
org.apache.flink.util.InstantiationUtil$ClassLoaderObjectInputStream.resolveClass(InstantiationUtil.java:78)

at
java.base/java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:2003)

at
java.base/java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1870)

at
java.base/java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2201)

at
java.base/java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1687)

at
java.base/java.io.ObjectInputStream.readObject(ObjectInputStream.java:489)

at
java.base/java.io.ObjectInputStream.readObject(ObjectInputStream.java:447)

at
org.apache.flink.util.InstantiationUtil.deserializeObject(InstantiationUtil.java:539)

at
org.apache.flink.util.InstantiationUtil.deserializeObject(InstantiationUtil.java:527)

at
org.apache.flink.util.SerializedValue.deserializeValue(SerializedValue.java:67)

at
org.apache.flink.runtime.scheduler.DefaultSchedulerFactory.createInstance(DefaultSchedulerFactory.java:101)

at
org.apache.flink.runtime.jobmaster.DefaultSlotPoolServiceSchedulerFactory.createScheduler(DefaultSlotPoolServiceSchedulerFactory.java:122)

at
org.apache.flink.runtime.jobmaster.JobMaster.createScheduler(JobMaster.java:379)

at org.apache.flink.runtime.jobmaster.JobMaster.<init>(JobMaster.java:356)

at
org.apache.flink.runtime.jobmaster.factories.DefaultJobMasterServiceFactory.internalCreateJobMasterService(DefaultJobMasterServiceFactory.java:128)

at
org.apache.flink.runtime.jobmaster.factories.DefaultJobMasterServiceFactory.lambda$createJobMasterService$0(DefaultJobMasterServiceFactory.java:100)

at
org.apache.flink.util.function.FunctionUtils.lambda$uncheckedSupplier$4(FunctionUtils.java:112)
... 4 more

My flink dependencies are:

val flinkDependencies = Seq(
//  "org.apache.flink" %% "flink-scala" % flinkVersion % Provided,
  "org.apache.flink" %% "flink-streaming-scala" % flinkVersion % Provided,
//  "org.apache.flink" % "flink-streaming-java" % flinkVersion % Provided,
  "org.apache.flink" % "flink-connector-base" % "1.18.0",
  "org.apache.flink" % "flink-connector-kafka" % "3.0.1-1.18")

val testFlinkDependencies = Seq(
  // flink-test-utils brings log4j-slf4j-impl, which causes
java.lang.NoSuchMethodError when running tests
  // 
https://stackoverflow.com/questions/75710149/java-lang-nosuchmethoderror-void-org-apache-logging-slf4j-log4jloggerfactory
  "org.apache.flink" % "flink-test-utils" % flinkVersion % Test excludeAll (
    ExclusionRule(organization = "org.apache.logging.log4j", name =
"log4j-slf4j-impl")
    ),
  "org.apache.flink" % "flink-runtime" % flinkVersion % Test,
  "org.apache.flink" % "flink-streaming-java" % flinkVersion % Test
classifier "tests"
)

 This used to work fine in Flink 1.13....

Does anyone have an idea what is causing this?

Reply via email to