The simplest answer is that they are in fact not equal; maybe it is a jar of an older version of your setup?

Can you give some details on the NoSuchMethodException? Specifically whether it tries to access something from the Kafka connector, or from your own user code.

On 25/08/2020 21:27, Yuval Itzchakov wrote:
OK, I think I figured it out. It looks like the uber-jar is also being placed under `lib`, which is probably the cause of the problem.

Question is, why does it identify it as two different versions? It's exactly the same JAR.

On Tue, Aug 25, 2020 at 10:22 PM Yuval Itzchakov <yuva...@gmail.com <mailto:yuva...@gmail.com>> wrote:

    I'm afraid it's not being printed out due to different log levels :(

    Yes, I build the image myself. It takes the tar file from
    https://archive.apache.org/dist/flink/flink-1.9.0/
    <https://archive.apache.org/dist/flink/flink-1.9.1/> and unpacks
    it into the image.
    I've ran:

    find . -iname "*.jar" | xargs -n 1 jar tf | grep -i producerrecord
    find . -iname "*.jar" | xargs -n 1 jar tf | grep -i kafka

    Both from within /lib, they both produce no results.

    On Tue, Aug 25, 2020 at 10:07 PM Chesnay Schepler
    <ches...@apache.org <mailto:ches...@apache.org>> wrote:

        The NoSuchMethodException shows that the class is still on the
        classpath, but with a different version than your code is
        expecting. Otherwise you would've gotten a different error.
        This implies that there are 2 versions of the kafka
        dependencies on the classpath in your original run; it
        suddenly working with parent-first classloading reinforces the
        suspicion that they are present in the distribution.

        As Arvid mentioned, the classpath log entry (at the very start
        of the log file) would be interesting.

        Did you build the Flink yourself distribution, or are you
        relying on one of the existing Flink binaries/images?

        On 25/08/2020 20:51, Yuval Itzchakov wrote:
        Hi Arvid,
        I'm running Flink in a job cluster on k8s using the Lyft
        Operator.

        The flink image that I'm building does not have the
        flink-connector-kafka library in it's JAR, I've made sure of
        this using `jar -tf`. Additionally, once I removed the
        dependency from my uber jar, it failed with a
        "NoSuchMethodException" at runtime for one of the arbitrary
        methods.

        I used classloader.resolve-order: parent-first and it
        resolved the issue somehow. I still don't know why though.

        On Tue, Aug 25, 2020 at 6:13 PM Arvid Heise
        <ar...@ververica.com <mailto:ar...@ververica.com>> wrote:

            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 <mailto: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
                
<http://java.net>.URLClassLoader.defineClass(URLClassLoader.java:468)
                    at java.net
                
<http://java.net>.URLClassLoader.access$100(URLClassLoader.java:74)
                    at java.net
                <http://java.net>.URLClassLoader$1.run(URLClassLoader.java:369)
                    at java.net
                <http://java.net>.URLClassLoader$1.run(URLClassLoader.java:363)
                    at
                java.security.AccessController.doPrivileged(Native
                Method)
                    at java.net
                
<http://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
                
<http://java.io>.ObjectStreamClass.getPrivateMethod(ObjectStreamClass.java:1629)
                    at java.io
                
<http://java.io>.ObjectStreamClass.access$1700(ObjectStreamClass.java:79)
                    at java.io
                
<http://java.io>.ObjectStreamClass$3.run(ObjectStreamClass.java:520)
                    at java.io
                
<http://java.io>.ObjectStreamClass$3.run(ObjectStreamClass.java:494)
                    at
                java.security.AccessController.doPrivileged(Native
                Method)
                    at java.io
                
<http://java.io>.ObjectStreamClass.<init>(ObjectStreamClass.java:494)
                    at java.io
                
<http://java.io>.ObjectStreamClass.lookup(ObjectStreamClass.java:391)
                    at java.io
                
<http://java.io>.ObjectStreamClass.initNonProxy(ObjectStreamClass.java:681)
                    at java.io
                
<http://java.io>.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1885)
                    at java.io
                
<http://java.io>.ObjectInputStream.readClassDesc(ObjectInputStream.java:1751)
                    at java.io
                
<http://java.io>.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2042)
                    at java.io
                
<http://java.io>.ObjectInputStream.readObject0(ObjectInputStream.java:1573)
                    at java.io
                
<http://java.io>.ObjectInputStream.defaultReadFields(ObjectInputStream.java:2287)
                    at java.io
                
<http://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
                
<http://java.io>.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:1170)
                    at java.io
                
<http://java.io>.ObjectInputStream.readSerialData(ObjectInputStream.java:2178)
                    at java.io
                
<http://java.io>.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2069)
                    at java.io
                
<http://java.io>.ObjectInputStream.readObject0(ObjectInputStream.java:1573)
                    at java.io
                
<http://java.io>.ObjectInputStream.defaultReadFields(ObjectInputStream.java:2287)
                    at java.io
                
<http://java.io>.ObjectInputStream.readSerialData(ObjectInputStream.java:2211)
                    at java.io
                
<http://java.io>.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2069)
                    at java.io
                
<http://java.io>.ObjectInputStream.readObject0(ObjectInputStream.java:1573)
                    at java.io
                
<http://java.io>.ObjectInputStream.defaultReadFields(ObjectInputStream.java:2287)
                    at java.io
                
<http://java.io>.ObjectInputStream.readSerialData(ObjectInputStream.java:2211)
                    at java.io
                
<http://java.io>.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2069)
                    at java.io
                
<http://java.io>.ObjectInputStream.readObject0(ObjectInputStream.java:1573)
                    at java.io
                
<http://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 FlinkConference

            Stream Processing | Event Driven | Real Time

            --

            Ververica GmbH | Invalidenstrasse 115, 10115 Berlin, Germany

            --

            Ververica GmbHRegistered at Amtsgericht Charlottenburg:
            HRB 158244 BManaging Directors: Timothy Alexander
            Steinert, Yip Park Tung Jason, Ji (Toni) Cheng



-- Best Regards,
        Yuval Itzchakov.




-- Best Regards,
    Yuval Itzchakov.



--
Best Regards,
Yuval Itzchakov.


Reply via email to