jw-itq opened a new issue, #8522:
URL: https://github.com/apache/seatunnel/issues/8522

   ### Search before asking
   
   - [x] I had searched in the 
[issues](https://github.com/apache/seatunnel/issues?q=is%3Aissue+label%3A%22bug%22)
 and found no similar issues.
   
   
   ### What happened
   
   the current situation is:
   1,the result of mysql executing show master status is
   <img width="1180" alt="Image" 
src="https://github.com/user-attachments/assets/7d5b9d8b-c168-48cb-be05-0b058e68f534";
 />
   2,the result of mysql executing show binary logs is
   <img width="368" alt="Image" 
src="https://github.com/user-attachments/assets/a57f0187-ede1-4de6-a5c0-d96692d79966";
 />
   3,the key steps for executing seatunnel are: a. set startup.mode="earliest" 
in mysql-cdc. b. use savepoint to stop normally. c. use - r to restore. 
afterwards, there will definitely be an error and it cannot be restored
   4,It shouldn't be an issue with mysql, as I can resume breakpoints normally 
in flink,
   5,additionally, this question seems to be very similar to this one:
   https://github.com/apache/flink-cdc/issues/1944
   
   ### SeaTunnel Version
   
   2.3.9 and dev
   
   ### SeaTunnel Config
   
   ```conf
   env {
     # You can set engine configuration here
     #parallelism = 4
     job.mode = "STREAMING"
     checkpoint.interval = 2000
     checkpoint.timeout=1800000
     #read_limit.bytes_per_second=7000000
     #read_limit.rows_per_second=100000
     job.name = "mysql_to_starrocks_test"
     #job.retry.times=3
     #job.retry.interval.seconds=30
   }
   
   source {
     MySQL-CDC {
       schema-changes.enabled = true
       username = "****"
       password = "****"
       base-url = 
"jdbc:mysql://****?useUnicode=true&characterEncoding=UTF-8&serverTimezone=GMT%2B8&autoReconnect=true&zeroDateTimeBehavior=convertToNull&useSSL=false"
       startup.mode = "earliest"
       server-id = 6671
       #startup.specific-offset.file = "mysql-bin.020789" 
       #startup.specific-offset.pos = "4"
       table-names = [
          "test.admin"
       ]
     }
   }
   
   transform {
   }
   
   
   sink {
     StarRocks {
       nodeUrls = ["*****:8030"]
       username = "****"
       password = "****"
       database = "test"
       table = "ts_${table_name}"
       base-url = "jdbc:mysql://*****:9030/test"
       max_retries = 3
       enable_upsert_delete = true
       "schema_save_mode"="RECREATE_SCHEMA"
       "data_save_mode"="DROP_DATA"
       save_mode_create_template = """
       CREATE TABLE IF NOT EXISTS test.`${table_name}` (
           ${rowtype_primary_key},
           ${rowtype_fields}
           ) ENGINE=OLAP
           PRIMARY KEY (${rowtype_primary_key})
           DISTRIBUTED BY HASH (${rowtype_primary_key})
           PROPERTIES (
                   "replication_num" = "3",
                   "in_memory" = "false",
                   "enable_persistent_index" = "true",
                   "replicated_storage" = "true",
                   "compression" = "LZ4"
             )
       """
     }
   
   }
   ```
   
   ### Running Command
   
   ```shell
   1,seatunnel.sh -c mysql_to_starrocks_test.conf --async
   
   2,seatunnel.sh -s 931718572785270787
   
   3,seatunnel.sh -c mysql_to_starrocks_test.conf -r 931718572785270787 --async
   ```
   
   ### Error Exception
   
   ```log
   2025-01-15 09:19:01,630 ERROR [o.a.s.c.s.SeaTunnel           ] [main] - 
Fatal Error, 
   
   2025-01-15 09:19:01,630 ERROR [o.a.s.c.s.SeaTunnel           ] [main] - 
Please submit bug report in https://github.com/apache/seatunnel/issues
   
   2025-01-15 09:19:01,630 ERROR [o.a.s.c.s.SeaTunnel           ] [main] - 
Reason:SeaTunnel job executed failed 
   
   2025-01-15 09:19:01,631 ERROR [o.a.s.c.s.SeaTunnel           ] [main] - 
Exception 
StackTrace:org.apache.seatunnel.core.starter.exception.CommandExecuteException: 
SeaTunnel job executed failed
           at 
org.apache.seatunnel.core.starter.seatunnel.command.ClientExecuteCommand.execute(ClientExecuteCommand.java:228)
           at org.apache.seatunnel.core.starter.SeaTunnel.run(SeaTunnel.java:40)
           at 
org.apache.seatunnel.core.starter.seatunnel.SeaTunnelClient.main(SeaTunnelClient.java:34)
   Caused by: 
org.apache.seatunnel.engine.common.exception.SeaTunnelEngineException: 
java.lang.RuntimeException: One or more fetchers have encountered exception
           at 
org.apache.seatunnel.connectors.seatunnel.common.source.reader.fetcher.SplitFetcherManager.checkErrors(SplitFetcherManager.java:147)
           at 
org.apache.seatunnel.connectors.seatunnel.common.source.reader.SourceReaderBase.getNextFetch(SourceReaderBase.java:167)
           at 
org.apache.seatunnel.connectors.seatunnel.common.source.reader.SourceReaderBase.pollNext(SourceReaderBase.java:93)
           at 
org.apache.seatunnel.connectors.cdc.base.source.reader.IncrementalSourceReader.pollNext(IncrementalSourceReader.java:119)
           at 
org.apache.seatunnel.engine.server.task.flow.SourceFlowLifeCycle.collect(SourceFlowLifeCycle.java:159)
           at 
org.apache.seatunnel.engine.server.task.SourceSeaTunnelTask.collect(SourceSeaTunnelTask.java:127)
           at 
org.apache.seatunnel.engine.server.task.SeaTunnelTask.stateProcess(SeaTunnelTask.java:169)
           at 
org.apache.seatunnel.engine.server.task.SourceSeaTunnelTask.call(SourceSeaTunnelTask.java:132)
           at 
org.apache.seatunnel.engine.server.TaskExecutionService$BlockingWorker.run(TaskExecutionService.java:694)
           at 
org.apache.seatunnel.engine.server.TaskExecutionService$NamedTaskWrapper.run(TaskExecutionService.java:1019)
           at 
org.apache.seatunnel.api.tracing.MDCRunnable.run(MDCRunnable.java:43)
           at 
java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
           at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
           at 
java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
           at 
java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
           at java.base/java.lang.Thread.run(Thread.java:834)
   Caused by: java.lang.RuntimeException: SplitFetcher thread 0 received 
unexpected exception while polling the records
           at 
org.apache.seatunnel.connectors.seatunnel.common.source.reader.fetcher.SplitFetcher.runOnce(SplitFetcher.java:165)
           at 
org.apache.seatunnel.connectors.seatunnel.common.source.reader.fetcher.SplitFetcher.run(SplitFetcher.java:81)
           ... 5 more
   Caused by: org.apache.kafka.connect.errors.ConnectException: An exception 
occurred in the change event producer. This connector will be stopped.
           at 
io.debezium.pipeline.ErrorHandler.setProducerThrowable(ErrorHandler.java:50)
           at 
io.debezium.connector.mysql.MySqlStreamingChangeEventSource$ReaderThreadLifecycleListener.onCommunicationFailure(MySqlStreamingChangeEventSource.java:1239)
           at 
com.github.shyiko.mysql.binlog.BinaryLogClient.listenForEventPackets(BinaryLogClient.java:1079)
           at 
com.github.shyiko.mysql.binlog.BinaryLogClient.connect(BinaryLogClient.java:631)
           at 
com.github.shyiko.mysql.binlog.BinaryLogClient$7.run(BinaryLogClient.java:932)
           ... 1 more
   Caused by: io.debezium.DebeziumException: The slave is connecting using 
CHANGE MASTER TO MASTER_AUTO_POSITION = 1, but the master has purged binary 
logs containing GTIDs that the slave requires. Replicate the missing 
transactions from elsewhere, or provision a new slave from backup. Consider 
increasing the master's binary log expiration period. The GTID sets and the 
missing purged transactions are too long to print in this message. For more 
information, please see the master's error log or the manual for GTID_SUBTRACT. 
Error code: 1236; SQLSTATE: HY000.
           at 
io.debezium.connector.mysql.MySqlStreamingChangeEventSource.wrap(MySqlStreamingChangeEventSource.java:1194)
           ... 5 more
   Caused by: com.github.shyiko.mysql.binlog.network.ServerException: The slave 
is connecting using CHANGE MASTER TO MASTER_AUTO_POSITION = 1, but the master 
has purged binary logs containing GTIDs that the slave requires. Replicate the 
missing transactions from elsewhere, or provision a new slave from backup. 
Consider increasing the master's binary log expiration period. The GTID sets 
and the missing purged transactions are too long to print in this message. For 
more information, please see the master's error log or the manual for 
GTID_SUBTRACT.
           at 
com.github.shyiko.mysql.binlog.BinaryLogClient.listenForEventPackets(BinaryLogClient.java:1043)
           ... 3 more
   
           at 
org.apache.seatunnel.core.starter.seatunnel.command.ClientExecuteCommand.execute(ClientExecuteCommand.java:220)
           ... 2 more
   ```
   
   ### Zeta or Flink or Spark Version
   
   zeta
   
   ### Java or Scala Version
   
   jdk11
   
   ### Screenshots
   
   _No response_
   
   ### Are you willing to submit PR?
   
   - [ ] Yes I am willing to submit a PR!
   
   ### Code of Conduct
   
   - [x] I agree to follow this project's [Code of 
Conduct](https://www.apache.org/foundation/policies/conduct)
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to