Flink CDC Issue Import created FLINK-34756:
----------------------------------------------

             Summary: [MySQL-CDC] serverId parameter out of Integer range
                 Key: FLINK-34756
                 URL: https://issues.apache.org/jira/browse/FLINK-34756
             Project: Flink
          Issue Type: Bug
          Components: Flink CDC
            Reporter: Flink CDC Issue Import


**Describe the bug(Please use English)**
Now the 'server_id' is store as int, but the value of parameter 'server_id' 
would be larger than INT_MAX, this would cause IntegerParseException

**Environment :**
 - Flink version :  1.16
 - Flink CDC version: 2.3.0
 - Database and version: mysql 5.7

**To Reproduce**
Steps to reproduce the behavior:
1. The test data :
MySQL instance in Aliyun Cloud, with a large server_id (out of INT range)
```bash
mysql> show variables like '%server_id%';
+----------------+------------+
| Variable_name  | Value      |
+----------------+------------+
| server_id      | 2437466879 |
| server_id_bits | 32         |
+----------------+------------+

```

2. The test code :
```java
public class MySqlSourceExample {
  public static void main(String[] args) throws Exception {
    MySqlSource<String> mySqlSource = MySqlSource.<String>builder()
      .hostname("host")
      .port(3306)
      .databaseList("dbs") // set captured database
      .tableList("tables") // set captured table
      .username("user")
      .password("password")
      .serverId("1-2437466879")
      .deserializer(new JsonDebeziumDeserializationSchema()) // converts 
SourceRecord to JSON String
      .build();

    StreamExecutionEnvironment env = 
StreamExecutionEnvironment.getExecutionEnvironment();

    env
      .fromSource(mySqlSource, WatermarkStrategy.noWatermarks(), "MySQL Source")
      // set 4 parallel source tasks
      .setParallelism(4)
      .print().setParallelism(1); // use parallelism 1 for sink to keep message 
ordering

     env.execute("Print MySQL Snapshot + Binlog");
  }
}
```

3. The error :
```bash
Exception in thread "main" java.lang.IllegalStateException: The server id 
2437466879 is not a valid numeric.
        at 
com.ververica.cdc.connectors.mysql.source.config.ServerIdRange.parseServerId(ServerIdRange.java:108)
        at 
com.ververica.cdc.connectors.mysql.source.config.ServerIdRange.from(ServerIdRange.java:96)
        at 
com.ververica.cdc.connectors.mysql.source.config.MySqlSourceConfigFactory.serverId(MySqlSourceConfigFactory.java:130)
        at 
com.ververica.cdc.connectors.mysql.source.MySqlSourceBuilder.serverId(MySqlSourceBuilder.java:108)
        at 
com.bytedance.openplatform.flink.cdc.examples.MySqlSourceExample.main(MySqlSourceExample.java:25)
Caused by: java.lang.NumberFormatException: For input string: "2437466879"
        at 
java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
        at java.lang.Integer.parseInt(Integer.java:583)
        at java.lang.Integer.parseInt(Integer.java:615)
        at 
com.ververica.cdc.connectors.mysql.source.config.ServerIdRange.parseServerId(ServerIdRange.java:105)
        ... 4 more
```

**Additional Description**
If applicable, add screenshots to help explain your problem.


---------------- Imported from GitHub ----------------
Url: https://github.com/apache/flink-cdc/issues/1770
Created by: [legendtkl|https://github.com/legendtkl]
Labels: bug, 
Created at: Wed Nov 23 17:36:24 CST 2022
State: open




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

Reply via email to