[ 
https://issues.apache.org/jira/browse/FLINK-39429?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18073867#comment-18073867
 ] 

peiyu commented on FLINK-39429:
-------------------------------

I referenced the Fluss project, which is compatible with both Flink 1.x and 
Flink 2.x versions. For Guava, it implements a separate, specific shade package.
see: https://github.com/apache/fluss-shaded

The flink-cdc project uses flink-shaded, but the versions of flink-shaded are 
different in flink 1.x and flink 2.x, and the package names are also different.

Can we also provide a specific shaded package to solve this problem, similar to 
flink-cdc-shaded?

> NoClassDefFoundError for flink-shaded-guava31 in 
> IncrementalSourceStreamFetcher (Flink 2.2 / CDC 3.6.0)
> -------------------------------------------------------------------------------------------------------
>
>                 Key: FLINK-39429
>                 URL: https://issues.apache.org/jira/browse/FLINK-39429
>             Project: Flink
>          Issue Type: Bug
>          Components: Flink CDC
>            Reporter: João Boto
>            Priority: Major
>
> When running a Flink CDC pipeline on Flink 2.2 using Flink CDC 3.6.0, the job 
> crashes with a java.lang.NoClassDefFoundError: 
> org/apache/flink/shaded/guava31/com/google/common/util/concurrent/ThreadFactoryBuilder.
> This occurs specifically when scan.incremental.snapshot.enabled is set to 
> true, as the IncrementalSourceStreamFetcher and IncrementalSourceScanFetcher 
> are strictly looking for the guava31 shade, which seems to be missing or 
> incompatible with the default Flink 2.2 classpath environment.
> *Environment:*
> Flink version: 2.2
> Flink CDC version: 3.6.0
> Database / Connector: PostgreSQL
> Java version: 21
> Deployment mode: Kubernetes
> *Steps to reproduce*:
> Configure a CDC source using Flink CDC 3.6.0.
> Ensure incremental snapshots are enabled: 
> this.debeziumProps.setProperty("scan.incremental.snapshot.enabled", "true");
> Deploy the job to a Flink 2.2 cluster.
> The job fails immediately during the fetcher initialization.
> *Expected behavior:*
> The Flink CDC connector should successfully initialize the 
> IncrementalSourceStreamFetcher and perform lock-free incremental snapshots 
> without missing shaded Guava dependencies out of the box. If a specific 
> shaded Guava jar is required for Flink 2.2 compatibility, it should be 
> bundled or explicitly documented.
> *Actual behavior / Stack trace:*
> {code:java}
> java.lang.RuntimeException: One or more fetchers have encountered exception
>     at 
> org.apache.flink.connector.base.source.reader.fetcher.SplitFetcherManager.checkErrors(SplitFetcherManager.java:307)
>     at 
> org.apache.flink.connector.base.source.reader.SourceReaderBase.getNextFetch(SourceReaderBase.java:269)
>     at 
> org.apache.flink.connector.base.source.reader.SourceReaderBase.pollNext(SourceReaderBase.java:181)
>     ...
>     at java.base/java.lang.Thread.run(Unknown Source)
> Caused by: java.lang.NoClassDefFoundError: 
> org/apache/flink/shaded/guava31/com/google/common/util/concurrent/ThreadFactoryBuilder
>     at 
> org.apache.flink.cdc.connectors.base.source.reader.external.IncrementalSourceStreamFetcher.<init>(IncrementalSourceStreamFetcher.java:77)
>     at 
> org.apache.flink.cdc.connectors.base.source.reader.IncrementalSourceSplitReader.getStreamFetcher(IncrementalSourceSplitReader.java:272)
>     at 
> org.apache.flink.cdc.connectors.base.source.reader.IncrementalSourceSplitReader.submitStreamSplit(IncrementalSourceSplitReader.java:254)
>     at 
> org.apache.flink.cdc.connectors.base.source.reader.IncrementalSourceSplitReader.pollSplitRecords(IncrementalSourceSplitReader.java:153)
>     at 
> org.apache.flink.cdc.connectors.base.source.reader.IncrementalSourceSplitReader.fetch(IncrementalSourceSplitReader.java:98)
>     at 
> org.apache.flink.connector.base.source.reader.fetcher.FetchTask.run(FetchTask.java:58)
>     at 
> org.apache.flink.connector.base.source.reader.fetcher.SplitFetcher.runOnce(SplitFetcher.java:193)
>     ...
> Caused by: java.lang.ClassNotFoundException: 
> org.apache.flink.shaded.guava31.com.google.common.util.concurrent.ThreadFactoryBuilder
>     ... 13 more
> {code}



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

Reply via email to