Mohsen Rezaei created FLINK-36713: ------------------------------------- Summary: NoSuchMethodError: PostgresConnection with PostgresIncrementalSource ar runtime Key: FLINK-36713 URL: https://issues.apache.org/jira/browse/FLINK-36713 Project: Flink Issue Type: Bug Components: Flink CDC Affects Versions: cdc-3.2.0 Reporter: Mohsen Rezaei Fix For: cdc-3.3.0, cdc-3.2.1
Running into the following error while trying to read from Postgres with Flink CDC: {code:java} Caused by: java.lang.NoSuchMethodError: 'void io.debezium.connector.postgresql.connection.PostgresConnection.<init>(io.debezium.jdbc.JdbcConfiguration, io.debezium.connector.postgresql.connection.PostgresConnection$PostgresValueConverterBuilder, java.lang.String, io.debezium.jdbc.JdbcConnection$ConnectionFactory)' at org.apache.flink.cdc.connectors.postgres.source.PostgresDialect.openJdbcConnection(PostgresDialect.java:89) at org.apache.flink.cdc.connectors.postgres.source.PostgresDialect.discoverDataCollections(PostgresDialect.java:159) at org.apache.flink.cdc.connectors.postgres.source.PostgresDialect.discoverDataCollections(PostgresDialect.java:64) at org.apache.flink.cdc.connectors.postgres.source.PostgresSourceBuilder$PostgresIncrementalSource.createEnumerator(PostgresSourceBuilder.java:314) at org.apache.flink.cdc.connectors.postgres.source.PostgresSourceBuilder$PostgresIncrementalSource.createEnumerator(PostgresSourceBuilder.java:296) at org.apache.flink.runtime.source.coordinator.SourceCoordinator.start(SourceCoordinator.java:225) ... 34 common frames omitted {code} Reading through the code, it's documented that class containing the [{{PostgresConnection}} constructor|https://github.com/apache/flink-cdc/blob/d9ceee050bb1b6cf6bd8e2d285e22602a424d1c1/flink-cdc-connect/flink-cdc-source-connectors/flink-connector-postgres-cdc/src/main/java/io/debezium/connector/postgresql/connection/PostgresConnection.java#L143] that the job is complaining about, [was copied from the same {{io.debezium.connector.postgresql.connection}} package|https://github.com/apache/flink-cdc/blob/d9ceee050bb1b6cf6bd8e2d285e22602a424d1c1/flink-cdc-connect/flink-cdc-source-connectors/flink-connector-postgres-cdc/src/main/java/io/debezium/connector/postgresql/connection/PostgresConnection.java#L59] in the transitive dependency {{{}io.debezium:debezium-connector-postgres{}}}. This introduces an inconsistency at runtime depending on where the JARs end up in the JVM's classpath. What's the plan for resolving this issue and using a better practice to have a deterministic behavior at runtime? -- This message was sent by Atlassian Jira (v8.20.10#820010)