[
https://issues.apache.org/jira/browse/FLINK-40441?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Zhuojun Jiang updated FLINK-40441:
----------------------------------
Description:
Packaging com.zaxxer:HikariCP into the postgres pipeline connector without
relocation can cause ClassLoader/class conflicts when multiple connectors are
used together (HikariCP duplicated on classpath).
Reproduction:
1. Build + package multiple connector modules that include HikariCP (e.g.,
mysql + postgres).
2. Run an application that loads both connectors — observe linkage/class
conflicts at runtime.
Root cause: pom.xml included com.zaxxer:HikariCP in the shade artifactSet but
did not add a relocation for the com.zaxxer package. Other connectors already
relocate HikariCP, leading to inconsistent namespaces and runtime conflicts.
Here are the typical error logs:
```
026-07-20 14:17:00,145 ERROR
org.apache.flink.runtime.entrypoint.ClusterEntrypoint [] - Fatal error
occurred in the cluster entrypoint.
java.util.concurrent.CompletionException:
org.apache.flink.client.deployment.application.ApplicationExecutionException:
Could not execute application.
at
java.util.concurrent.CompletableFuture.encodeThrowable(CompletableFuture.java:292)
~[?:1.8.0_352]
at
java.util.concurrent.CompletableFuture.completeThrowable(CompletableFuture.java:308)
~[?:1.8.0_352]
at
java.util.concurrent.CompletableFuture.uniCompose(CompletableFuture.java:957)
~[?:1.8.0_352]
at
java.util.concurrent.CompletableFuture$UniCompose.tryFire(CompletableFuture.java:940)
~[?:1.8.0_352]
at
java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:488)
~[?:1.8.0_352]
at
java.util.concurrent.CompletableFuture.completeExceptionally(CompletableFuture.java:1990)
~[?:1.8.0_352]
at
org.apache.flink.client.deployment.application.ApplicationDispatcherBootstrap.runApplicationEntryPoint(ApplicationDispatcherBootstrap.java:337)
~[flink-dist-1.20.1.jar:1.20.1]
at
org.apache.flink.client.deployment.application.ApplicationDispatcherBootstrap.lambda$runApplicationAsync$2(ApplicationDispatcherBootstrap.java:254)
~[flink-dist-1.20.1.jar:1.20.1]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
~[?:1.8.0_352]
at java.util.concurrent.FutureTask.run(FutureTask.java:266) ~[?:1.8.0_352]
at
org.apache.flink.runtime.concurrent.pekko.ActorSystemScheduledExecutorAdapter$ScheduledFutureTask.run(ActorSystemScheduledExecutorAdapter.java:172)
~[?:?]
at
org.apache.flink.runtime.concurrent.ClassLoadingUtils.runWithContextClassLoader(ClassLoadingUtils.java:68)
~[flink-dist-1.20.1.jar:1.20.1]
at
org.apache.flink.runtime.concurrent.ClassLoadingUtils.lambda$withContextClassLoader$0(ClassLoadingUtils.java:41)
~[flink-dist-1.20.1.jar:1.20.1]
at
org.apache.pekko.dispatch.TaskInvocation.run(AbstractDispatcher.scala:59)
[flink-rpc-akka1ce3455b-913b-4d52-b0bf-518e598f7860.jar:1.20.1]
at
org.apache.pekko.dispatch.ForkJoinExecutorConfigurator$PekkoForkJoinTask.exec(ForkJoinExecutorConfigurator.scala:61)
[flink-rpc-akka1ce3455b-913b-4d52-b0bf-518e598f7860.jar:1.20.1]
at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289)
[?:1.8.0_352]
at
java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1056)
[?:1.8.0_352]
at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1692)
[?:1.8.0_352]
at
java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:175)
[?:1.8.0_352]
Caused by:
org.apache.flink.client.deployment.application.ApplicationExecutionException:
Could not execute application.
... 13 more
Caused by: org.apache.flink.client.program.ProgramInvocationException: The main
method caused an error:
org.apache.flink.cdc.connectors.shaded.com.zaxxer.hikari.pool.HikariProxyConnection
cannot be cast to org.postgresql.core.BaseConnection
at
org.apache.flink.client.program.PackagedProgram.callMainMethod(PackagedProgram.java:373)
~[flink-dist-1.20.1.jar:1.20.1]
at
org.apache.flink.client.program.PackagedProgram.invokeInteractiveModeForExecution(PackagedProgram.java:223)
~[flink-dist-1.20.1.jar:1.20.1]
at org.apache.flink.client.ClientUtils.executeProgram(ClientUtils.java:113)
~[flink-dist-1.20.1.jar:1.20.1]
at
org.apache.flink.client.deployment.application.ApplicationDispatcherBootstrap.runApplicationEntryPoint(ApplicationDispatcherBootstrap.java:301)
~[flink-dist-1.20.1.jar:1.20.1]
... 12 more
Caused by: java.lang.ClassCastException:
org.apache.flink.cdc.connectors.shaded.com.zaxxer.hikari.pool.HikariProxyConnection
cannot be cast to org.postgresql.core.BaseConnection
at
io.debezium.connector.postgresql.TypeRegistry.getTypeInfo(TypeRegistry.java:510)
~[flink-cdc-pipeline-connector-postgres-cty-3.4-1.5.jar:cty-3.4-1.5]
at
io.debezium.connector.postgresql.TypeRegistry.access$100(TypeRegistry.java:40)
~[flink-cdc-pipeline-connector-postgres-cty-3.4-1.5.jar:cty-3.4-1.5]
at
io.debezium.connector.postgresql.TypeRegistry$SqlTypeMapper.<init>(TypeRegistry.java:440)
~[flink-cdc-pipeline-connector-postgres-cty-3.4-1.5.jar:cty-3.4-1.5]
at
io.debezium.connector.postgresql.TypeRegistry$SqlTypeMapper.<init>(TypeRegistry.java:410)
~[flink-cdc-pipeline-connector-postgres-cty-3.4-1.5.jar:cty-3.4-1.5]
at
io.debezium.connector.postgresql.TypeRegistry.<init>(TypeRegistry.java:121)
~[flink-cdc-pipeline-connector-postgres-cty-3.4-1.5.jar:cty-3.4-1.5]
at
io.debezium.connector.postgresql.connection.PostgresConnection.<init>(PostgresConnection.java:167)
~[flink-cdc-pipeline-connector-postgres-cty-3.4-1.5.jar:cty-3.4-1.5]
at
org.apache.flink.cdc.connectors.postgres.source.PostgresDialect.openJdbcConnection(PostgresDialect.java:90)
~[flink-cdc-pipeline-connector-postgres-cty-3.4-1.5.jar:cty-3.4-1.5]
at
org.apache.flink.cdc.connectors.postgres.source.PostgresDialect.openJdbcConnection(PostgresDialect.java:101)
~[flink-cdc-pipeline-connector-postgres-cty-3.4-1.5.jar:cty-3.4-1.5]
at
org.apache.flink.cdc.connectors.postgres.utils.PostgresSchemaUtils.listTables(PostgresSchemaUtils.java:76)
~[flink-cdc-pipeline-connector-postgres-cty-3.4-1.5.jar:cty-3.4-1.5]
at
org.apache.flink.cdc.connectors.postgres.factory.PostgresDataSourceFactory.createDataSource(PostgresDataSourceFactory.java:190)
~[flink-cdc-pipeline-connector-postgres-cty-3.4-1.5.jar:cty-3.4-1.5]
at
org.apache.flink.cdc.composer.flink.translator.DataSourceTranslator.createDataSource(DataSourceTranslator.java:101)
~[flink-cdc-dist-3.4.0.jar:cty-3.4-1.5]
at
org.apache.flink.cdc.composer.flink.FlinkPipelineComposer.translate(FlinkPipelineComposer.java:191)
~[flink-cdc-dist-3.4.0.jar:cty-3.4-1.5]
at
org.apache.flink.cdc.composer.flink.FlinkPipelineComposer.compose(FlinkPipelineComposer.java:110)
~[flink-cdc-dist-3.4.0.jar:cty-3.4-1.5]
at
org.apache.flink.cdc.cli.CliExecutor.deployWithComposer(CliExecutor.java:101)
~[flink-cdc-dist-3.4.0.jar:cty-3.4-1.5]
at org.apache.flink.cdc.cli.CliExecutor.run(CliExecutor.java:79)
~[flink-cdc-dist-3.4.0.jar:cty-3.4-1.5]
at org.apache.flink.cdc.cli.CliFrontend.main(CliFrontend.java:86)
~[flink-cdc-dist-3.4.0.jar:cty-3.4-1.5]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
~[?:1.8.0_352]
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
~[?:1.8.0_352]
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
~[?:1.8.0_352]
at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_352]
at
org.apache.flink.client.program.PackagedProgram.callMainMethod(PackagedProgram.java:356)
~[flink-dist-1.20.1.jar:1.20.1]
at
org.apache.flink.client.program.PackagedProgram.invokeInteractiveModeForExecution(PackagedProgram.java:223)
~[flink-dist-1.20.1.jar:1.20.1]
at org.apache.flink.client.ClientUtils.executeProgram(ClientUtils.java:113)
~[flink-dist-1.20.1.jar:1.20.1]
at
org.apache.flink.client.deployment.application.ApplicationDispatcherBootstrap.runApplicationEntryPoint(ApplicationDispatcherBootstrap.java:301)
~[flink-dist-1.20.1.jar:1.20.1]
... 12 more
```
was:
Packaging com.zaxxer:HikariCP into the postgres pipeline connector without
relocation can cause ClassLoader/class conflicts when multiple connectors are
used together (HikariCP duplicated on classpath).
Reproduction:
1. Build + package multiple connector modules that include HikariCP (e.g.,
mysql + postgres).
2. Run an application that loads both connectors — observe linkage/class
conflicts at runtime.
Root cause: pom.xml included com.zaxxer:HikariCP in the shade artifactSet but
did not add a relocation for the com.zaxxer package. Other connectors already
relocate HikariCP, leading to inconsistent namespaces and runtime conflicts.
> Shade com.zaxxer (HikariCP) for pg pipeline connector to avoid
> cross-connector conflicts
> ----------------------------------------------------------------------------------------
>
> Key: FLINK-40441
> URL: https://issues.apache.org/jira/browse/FLINK-40441
> Project: Flink
> Issue Type: Bug
> Components: Flink CDC
> Affects Versions: cdc-3.5.0, cdc-3.6.0, cdc-3.7.0
> Reporter: Zhuojun Jiang
> Priority: Major
>
> Packaging com.zaxxer:HikariCP into the postgres pipeline connector without
> relocation can cause ClassLoader/class conflicts when multiple connectors are
> used together (HikariCP duplicated on classpath).
>
> Reproduction:
> 1. Build + package multiple connector modules that include HikariCP (e.g.,
> mysql + postgres).
> 2. Run an application that loads both connectors — observe linkage/class
> conflicts at runtime.
> Root cause: pom.xml included com.zaxxer:HikariCP in the shade artifactSet
> but did not add a relocation for the com.zaxxer package. Other connectors
> already relocate HikariCP, leading to inconsistent namespaces and runtime
> conflicts.
>
> Here are the typical error logs:
> ```
> 026-07-20 14:17:00,145 ERROR
> org.apache.flink.runtime.entrypoint.ClusterEntrypoint [] - Fatal error
> occurred in the cluster entrypoint.
> java.util.concurrent.CompletionException:
> org.apache.flink.client.deployment.application.ApplicationExecutionException:
> Could not execute application.
> at
> java.util.concurrent.CompletableFuture.encodeThrowable(CompletableFuture.java:292)
> ~[?:1.8.0_352]
> at
> java.util.concurrent.CompletableFuture.completeThrowable(CompletableFuture.java:308)
> ~[?:1.8.0_352]
> at
> java.util.concurrent.CompletableFuture.uniCompose(CompletableFuture.java:957)
> ~[?:1.8.0_352]
> at
> java.util.concurrent.CompletableFuture$UniCompose.tryFire(CompletableFuture.java:940)
> ~[?:1.8.0_352]
> at
> java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:488)
> ~[?:1.8.0_352]
> at
> java.util.concurrent.CompletableFuture.completeExceptionally(CompletableFuture.java:1990)
> ~[?:1.8.0_352]
> at
> org.apache.flink.client.deployment.application.ApplicationDispatcherBootstrap.runApplicationEntryPoint(ApplicationDispatcherBootstrap.java:337)
> ~[flink-dist-1.20.1.jar:1.20.1]
> at
> org.apache.flink.client.deployment.application.ApplicationDispatcherBootstrap.lambda$runApplicationAsync$2(ApplicationDispatcherBootstrap.java:254)
> ~[flink-dist-1.20.1.jar:1.20.1]
> at
> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
> ~[?:1.8.0_352]
> at java.util.concurrent.FutureTask.run(FutureTask.java:266) ~[?:1.8.0_352]
> at
> org.apache.flink.runtime.concurrent.pekko.ActorSystemScheduledExecutorAdapter$ScheduledFutureTask.run(ActorSystemScheduledExecutorAdapter.java:172)
> ~[?:?]
> at
> org.apache.flink.runtime.concurrent.ClassLoadingUtils.runWithContextClassLoader(ClassLoadingUtils.java:68)
> ~[flink-dist-1.20.1.jar:1.20.1]
> at
> org.apache.flink.runtime.concurrent.ClassLoadingUtils.lambda$withContextClassLoader$0(ClassLoadingUtils.java:41)
> ~[flink-dist-1.20.1.jar:1.20.1]
> at
> org.apache.pekko.dispatch.TaskInvocation.run(AbstractDispatcher.scala:59)
> [flink-rpc-akka1ce3455b-913b-4d52-b0bf-518e598f7860.jar:1.20.1]
> at
> org.apache.pekko.dispatch.ForkJoinExecutorConfigurator$PekkoForkJoinTask.exec(ForkJoinExecutorConfigurator.scala:61)
> [flink-rpc-akka1ce3455b-913b-4d52-b0bf-518e598f7860.jar:1.20.1]
> at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289)
> [?:1.8.0_352]
> at
> java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1056)
> [?:1.8.0_352]
> at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1692)
> [?:1.8.0_352]
> at
> java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:175)
> [?:1.8.0_352]
> Caused by:
> org.apache.flink.client.deployment.application.ApplicationExecutionException:
> Could not execute application.
> ... 13 more
> Caused by: org.apache.flink.client.program.ProgramInvocationException: The
> main method caused an error:
> org.apache.flink.cdc.connectors.shaded.com.zaxxer.hikari.pool.HikariProxyConnection
> cannot be cast to org.postgresql.core.BaseConnection
> at
> org.apache.flink.client.program.PackagedProgram.callMainMethod(PackagedProgram.java:373)
> ~[flink-dist-1.20.1.jar:1.20.1]
> at
> org.apache.flink.client.program.PackagedProgram.invokeInteractiveModeForExecution(PackagedProgram.java:223)
> ~[flink-dist-1.20.1.jar:1.20.1]
> at
> org.apache.flink.client.ClientUtils.executeProgram(ClientUtils.java:113)
> ~[flink-dist-1.20.1.jar:1.20.1]
> at
> org.apache.flink.client.deployment.application.ApplicationDispatcherBootstrap.runApplicationEntryPoint(ApplicationDispatcherBootstrap.java:301)
> ~[flink-dist-1.20.1.jar:1.20.1]
> ... 12 more
> Caused by: java.lang.ClassCastException:
> org.apache.flink.cdc.connectors.shaded.com.zaxxer.hikari.pool.HikariProxyConnection
> cannot be cast to org.postgresql.core.BaseConnection
> at
> io.debezium.connector.postgresql.TypeRegistry.getTypeInfo(TypeRegistry.java:510)
> ~[flink-cdc-pipeline-connector-postgres-cty-3.4-1.5.jar:cty-3.4-1.5]
> at
> io.debezium.connector.postgresql.TypeRegistry.access$100(TypeRegistry.java:40)
> ~[flink-cdc-pipeline-connector-postgres-cty-3.4-1.5.jar:cty-3.4-1.5]
> at
> io.debezium.connector.postgresql.TypeRegistry$SqlTypeMapper.<init>(TypeRegistry.java:440)
> ~[flink-cdc-pipeline-connector-postgres-cty-3.4-1.5.jar:cty-3.4-1.5]
> at
> io.debezium.connector.postgresql.TypeRegistry$SqlTypeMapper.<init>(TypeRegistry.java:410)
> ~[flink-cdc-pipeline-connector-postgres-cty-3.4-1.5.jar:cty-3.4-1.5]
> at
> io.debezium.connector.postgresql.TypeRegistry.<init>(TypeRegistry.java:121)
> ~[flink-cdc-pipeline-connector-postgres-cty-3.4-1.5.jar:cty-3.4-1.5]
> at
> io.debezium.connector.postgresql.connection.PostgresConnection.<init>(PostgresConnection.java:167)
> ~[flink-cdc-pipeline-connector-postgres-cty-3.4-1.5.jar:cty-3.4-1.5]
> at
> org.apache.flink.cdc.connectors.postgres.source.PostgresDialect.openJdbcConnection(PostgresDialect.java:90)
> ~[flink-cdc-pipeline-connector-postgres-cty-3.4-1.5.jar:cty-3.4-1.5]
> at
> org.apache.flink.cdc.connectors.postgres.source.PostgresDialect.openJdbcConnection(PostgresDialect.java:101)
> ~[flink-cdc-pipeline-connector-postgres-cty-3.4-1.5.jar:cty-3.4-1.5]
> at
> org.apache.flink.cdc.connectors.postgres.utils.PostgresSchemaUtils.listTables(PostgresSchemaUtils.java:76)
> ~[flink-cdc-pipeline-connector-postgres-cty-3.4-1.5.jar:cty-3.4-1.5]
> at
> org.apache.flink.cdc.connectors.postgres.factory.PostgresDataSourceFactory.createDataSource(PostgresDataSourceFactory.java:190)
> ~[flink-cdc-pipeline-connector-postgres-cty-3.4-1.5.jar:cty-3.4-1.5]
> at
> org.apache.flink.cdc.composer.flink.translator.DataSourceTranslator.createDataSource(DataSourceTranslator.java:101)
> ~[flink-cdc-dist-3.4.0.jar:cty-3.4-1.5]
> at
> org.apache.flink.cdc.composer.flink.FlinkPipelineComposer.translate(FlinkPipelineComposer.java:191)
> ~[flink-cdc-dist-3.4.0.jar:cty-3.4-1.5]
> at
> org.apache.flink.cdc.composer.flink.FlinkPipelineComposer.compose(FlinkPipelineComposer.java:110)
> ~[flink-cdc-dist-3.4.0.jar:cty-3.4-1.5]
> at
> org.apache.flink.cdc.cli.CliExecutor.deployWithComposer(CliExecutor.java:101)
> ~[flink-cdc-dist-3.4.0.jar:cty-3.4-1.5]
> at org.apache.flink.cdc.cli.CliExecutor.run(CliExecutor.java:79)
> ~[flink-cdc-dist-3.4.0.jar:cty-3.4-1.5]
> at org.apache.flink.cdc.cli.CliFrontend.main(CliFrontend.java:86)
> ~[flink-cdc-dist-3.4.0.jar:cty-3.4-1.5]
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> ~[?:1.8.0_352]
> at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
> ~[?:1.8.0_352]
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> ~[?:1.8.0_352]
> at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_352]
> at
> org.apache.flink.client.program.PackagedProgram.callMainMethod(PackagedProgram.java:356)
> ~[flink-dist-1.20.1.jar:1.20.1]
> at
> org.apache.flink.client.program.PackagedProgram.invokeInteractiveModeForExecution(PackagedProgram.java:223)
> ~[flink-dist-1.20.1.jar:1.20.1]
> at
> org.apache.flink.client.ClientUtils.executeProgram(ClientUtils.java:113)
> ~[flink-dist-1.20.1.jar:1.20.1]
> at
> org.apache.flink.client.deployment.application.ApplicationDispatcherBootstrap.runApplicationEntryPoint(ApplicationDispatcherBootstrap.java:301)
> ~[flink-dist-1.20.1.jar:1.20.1]
> ... 12 more
> ```
--
This message was sent by Atlassian Jira
(v8.20.10#820010)