[ 
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)

Reply via email to