[ 
https://issues.apache.org/jira/browse/FLINK-31324?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

ASF GitHub Bot updated FLINK-31324:
-----------------------------------
    Labels: pull-request-available  (was: )

> Broken SingleThreadFetcherManager constructor API
> -------------------------------------------------
>
>                 Key: FLINK-31324
>                 URL: https://issues.apache.org/jira/browse/FLINK-31324
>             Project: Flink
>          Issue Type: Bug
>          Components: Connectors / Parent
>            Reporter: Yun Tang
>            Assignee: Yun Tang
>            Priority: Blocker
>              Labels: pull-request-available
>             Fix For: 1.17.0
>
>
> FLINK-28853 changed the default constructor of 
> {{SingleThreadFetcherManager}}. Though the {{SingleThreadFetcherManager}} is 
> annotated as {{Internal}}, it actually acts as some-degree public API, which 
> is widely used in many connector projects:
> [flink-cdc-connector|https://github.com/ververica/flink-cdc-connectors/blob/release-2.3.0/flink-connector-mysql-cdc/src/main/java/com/ververica/cdc/connectors/mysql/source/reader/MySqlSourceReader.java#L93],
>  
> [flink-connector-mongodb|https://github.com/apache/flink-connector-mongodb/blob/main/flink-connector-mongodb/src/main/java/org/apache/flink/connector/mongodb/source/reader/MongoSourceReader.java#L58]
>  and so on.
> Once flink-1.17 is released, all these existing connectors are broken and 
> cannot be used in new release version, and will throw exceptions like:
> {code:java}
> java.lang.NoSuchMethodError: 
> org.apache.flink.connector.base.source.reader.fetcher.SingleThreadFetcherManager.<init>(Lorg/apache/flink/connector/base/source/reader/synchronization/FutureCompletingBlockingQueue;Ljava/util/function/Supplier;)V
>       at 
> com.ververica.cdc.connectors.mysql.source.reader.MySqlSourceReader.<init>(MySqlSourceReader.java:91)
>  ~[flink-sql-connector-mysql-cdc-2.3.0.jar:2.3.0]
>       at 
> com.ververica.cdc.connectors.mysql.source.MySqlSource.createReader(MySqlSource.java:159)
>  ~[flink-sql-connector-mysql-cdc-2.3.0.jar:2.3.0]
>       at 
> org.apache.flink.streaming.api.operators.SourceOperator.initReader(SourceOperator.java:312)
>  ~[flink-dist-1.17-SNAPSHOT.jar:1.17-SNAPSHOT]
>       at 
> org.apache.flink.streaming.runtime.tasks.SourceOperatorStreamTask.init(SourceOperatorStreamTask.java:94)
>  ~[flink-dist-1.17-SNAPSHOT.jar:1.17-SNAPSHOT]
>       at 
> org.apache.flink.streaming.runtime.tasks.StreamTask.restoreInternal(StreamTask.java:699)
>  ~[flink-dist-1.17-SNAPSHOT.jar:1.17-SNAPSHOT]
>       at 
> org.apache.flink.streaming.runtime.tasks.StreamTask.restore(StreamTask.java:675)
>  ~[flink-dist-1.17-SNAPSHOT.jar:1.17-SNAPSHOT]
>       at 
> org.apache.flink.runtime.taskmanager.Task.runWithSystemExitMonitoring(Task.java:952)
>  ~[flink-dist-1.17-SNAPSHOT.jar:1.17-SNAPSHOT]
>       at 
> org.apache.flink.runtime.taskmanager.Task.restoreAndInvoke(Task.java:921) 
> ~[flink-dist-1.17-SNAPSHOT.jar:1.17-SNAPSHOT]
>       at org.apache.flink.runtime.taskmanager.Task.doRun(Task.java:745) 
> ~[flink-dist-1.17-SNAPSHOT.jar:1.17-SNAPSHOT]
>       at org.apache.flink.runtime.taskmanager.Task.run(Task.java:562) 
> ~[flink-dist-1.17-SNAPSHOT.jar:1.17-SNAPSHOT]
>       at java.lang.Thread.run(Thread.java:750) ~[?:1.8.0_362]
> {code}
> Thus, I suggest to make the original SingleThreadFetcherManager constructor 
> as depreacted instead of removing it.



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

Reply via email to