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)

Reply via email to