Hi Yuval, How do you execute Flink? Can you show us the log entry with the classpath?
I'm guessing that you have Kafka bundled in your uber-jar and additionally also have the connector in flink-dist/lib. If so, you simply need to remove it in one place. In general, if you use flink-dist, you'd not bundle any Flink dependencies in your uber-jar (use provided scope for them). If you have everything bundled in one uber-jar and execute it somehow without flink-dist, then I don't immediately see a solution. Then the log with the classpath would help. Best, Arvid On Sun, Aug 23, 2020 at 1:37 PM Yuval Itzchakov <yuva...@gmail.com> wrote: > Hi, > I'm trying to load a FlinkKafkaProducer sink alongside another custom > sink. While trying to restore > a running Flink app from the previous state, I get the error message below. > > I am running Flink 1.9.0 with the following SBT dependency added: > > "org.apache.flink" %% "flink-connector-kafka" % 1.9.0 > > And the app is deployed via a standard uber jar with all the dependencies. > W > Would appreciate the help > > java.lang.LinkageError: loader constraint violation: loader (instance of > org/apache/flink/util/ChildFirstClassLoader) previously initiated loading > for a different type with name > "org/apache/kafka/clients/producer/ProducerRecord" > at java.lang.ClassLoader.defineClass1(Native Method) > at java.lang.ClassLoader.defineClass(ClassLoader.java:763) > at java.security.SecureClassLoader.defineClass(SecureClassLoader.java: > 142) > at java.net.URLClassLoader.defineClass(URLClassLoader.java:468) > at java.net.URLClassLoader.access$100(URLClassLoader.java:74) > at java.net.URLClassLoader$1.run(URLClassLoader.java:369) > at java.net.URLClassLoader$1.run(URLClassLoader.java:363) > at java.security.AccessController.doPrivileged(Native Method) > at java.net.URLClassLoader.findClass(URLClassLoader.java:362) > at org.apache.flink.util.ChildFirstClassLoader.loadClass( > ChildFirstClassLoader.java:66) > at java.lang.ClassLoader.loadClass(ClassLoader.java:357) > at java.lang.Class.getDeclaredMethods0(Native Method) > at java.lang.Class.privateGetDeclaredMethods(Class.java:2701) > at java.lang.Class.getDeclaredMethod(Class.java:2128) > at java.io.ObjectStreamClass.getPrivateMethod(ObjectStreamClass.java: > 1629) > at java.io.ObjectStreamClass.access$1700(ObjectStreamClass.java:79) > at java.io.ObjectStreamClass$3.run(ObjectStreamClass.java:520) > at java.io.ObjectStreamClass$3.run(ObjectStreamClass.java:494) > at java.security.AccessController.doPrivileged(Native Method) > at java.io.ObjectStreamClass.<init>(ObjectStreamClass.java:494) > at java.io.ObjectStreamClass.lookup(ObjectStreamClass.java:391) > at java.io.ObjectStreamClass.initNonProxy(ObjectStreamClass.java:681) > at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java: > 1885) > at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1751 > ) > at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream > .java:2042) > at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1573) > at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java: > 2287) > at java.io.ObjectInputStream.defaultReadObject(ObjectInputStream.java: > 561) > at org.apache.flink.streaming.connectors.kafka.FlinkKafkaProducer > .readObject(FlinkKafkaProducer.java:1202) > at sun.reflect.GeneratedMethodAccessor358.invoke(Unknown Source) > at sun.reflect.DelegatingMethodAccessorImpl.invoke( > DelegatingMethodAccessorImpl.java:43) > at java.lang.reflect.Method.invoke(Method.java:498) > at java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java: > 1170) > at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java: > 2178) > at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream > .java:2069) > at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1573) > at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java: > 2287) > at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java: > 2211) > at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream > .java:2069) > at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1573) > at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java: > 2287) > at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java: > 2211) > at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream > .java:2069) > at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1573) > at java.io.ObjectInputStream.readObject(ObjectInputStream.java:431) > at org.apache.flink.util.InstantiationUtil.deserializeObject( > InstantiationUtil.java:576) > at org.apache.flink.util.InstantiationUtil.deserializeObject( > InstantiationUtil.java:562) > at org.apache.flink.util.InstantiationUtil.deserializeObject( > InstantiationUtil.java:550) > at org.apache.flink.util.InstantiationUtil.readObjectFromConfig( > InstantiationUtil.java:511) > at org.apache.flink.streaming.api.graph.StreamConfig > .getStreamOperatorFactory(StreamConfig.java:235) > at org.apache.flink.streaming.runtime.tasks.OperatorChain > .createChainedOperator(OperatorChain.java:427) > at org.apache.flink.streaming.runtime.tasks.OperatorChain > .createOutputCollector(OperatorChain.java:354) > at org.apache.flink.streaming.runtime.tasks.OperatorChain > .createChainedOperator(OperatorChain.java:418) > at org.apache.flink.streaming.runtime.tasks.OperatorChain > .createOutputCollector(OperatorChain.java:354) > at org.apache.flink.streaming.runtime.tasks.OperatorChain > .createChainedOperator(OperatorChain.java:418) > at org.apache.flink.streaming.runtime.tasks.OperatorChain > .createOutputCollector(OperatorChain.java:354) > at org.apache.flink.streaming.runtime.tasks.OperatorChain > .createChainedOperator(OperatorChain.java:418) > at org.apache.flink.streaming.runtime.tasks.OperatorChain > .createOutputCollector(OperatorChain.java:354) > at org.apache.flink.streaming.runtime.tasks.OperatorChain > .createChainedOperator(OperatorChain.java:418) > at org.apache.flink.streaming.runtime.tasks.OperatorChain > .createOutputCollector(OperatorChain.java:354) > at org.apache.flink.streaming.runtime.tasks.OperatorChain > .createChainedOperator(OperatorChain.java:418) > at org.apache.flink.streaming.runtime.tasks.OperatorChain > .createOutputCollector(OperatorChain.java:354) > at org.apache.flink.streaming.runtime.tasks.OperatorChain > .createChainedOperator(OperatorChain.java:418) > at org.apache.flink.streaming.runtime.tasks.OperatorChain > .createOutputCollector(OperatorChain.java:354) > at org.apache.flink.streaming.runtime.tasks.OperatorChain > .createChainedOperator(OperatorChain.java:418) > at org.apache.flink.streaming.runtime.tasks.OperatorChain > .createOutputCollector(OperatorChain.java:354) > at org.apache.flink.streaming.runtime.tasks.OperatorChain.<init>( > OperatorChain.java:144) > at org.apache.flink.streaming.runtime.tasks.StreamTask.invoke( > StreamTask.java:370) > at org.apache.flink.runtime.taskmanager.Task.doRun(Task.java:705) > at org.apache.flink.runtime.taskmanager.Task.run(Task.java:530) > at java.lang.Thread.run(Thread.java:748) > > > -- > Best Regards, > Yuval Itzchakov. > -- Arvid Heise | Senior Java Developer <https://www.ververica.com/> Follow us @VervericaData -- Join Flink Forward <https://flink-forward.org/> - The Apache Flink Conference Stream Processing | Event Driven | Real Time -- Ververica GmbH | Invalidenstrasse 115, 10115 Berlin, Germany -- Ververica GmbH Registered at Amtsgericht Charlottenburg: HRB 158244 B Managing Directors: Timothy Alexander Steinert, Yip Park Tung Jason, Ji (Toni) Cheng