[
https://issues.apache.org/jira/browse/FLINK-36619?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
linqigeng updated FLINK-36619:
------------------------------
Description:
#CDC 3.2:
If some tables are removed from the `tables` parameter and then re-added, the
`CreateTableEvent` will be ignored and not sent to downstream.
This way to reproduce:
# set `tables` to `{*}test_db.\.{*},test_db2.\.{*}{{*}}`
# remove `test_db2.\.*` from `tables` and restart pipeline job
# re-add `test_db2.\.*` to `tables` and restart pipeline job
!image-2024-10-29-11-52-41-353.png!
#CDC 3.3
CreateTableEvent could be sent, but another exception occured in TM.
{code:java}
2025-01-21 19:11:49,934 ERROR
io.debezium.connector.mysql.MySqlStreamingChangeEventSource [] - Encountered
change event 'Event{header=EventHeaderV4{timestamp=1737457909000,
eventType=TABLE_MAP, serverId=1, headerLength=19, dataLength=79,
nextPosition=945183051, flags=0}, data=TableMapEventData{tableId=2859,
database='test_db2', table='t1', columnTypes=8, 15, 1, 15, 18, 18, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, columnMetadata=0, 765, 0, 765, 0, 0, 2295,
765, 765, 765, 765, 765, 765, 765, 765, 765, 765, 765, columnNullability={1, 3,
6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17}, eventMetadata=null}}' at offset
{transaction_id=null, ts_sec=1737457863, file=mysql-bin.000036, pos=945182869,
server_id=1, event=1} for table test_db2.t1 whose schema isn't known to this
connector. One possible cause is an incomplete database history topic. Take a
new snapshot in this case.Use the mysqlbinlog tool to view the problematic
event: mysqlbinlog --start-position=945182953 --stop-position=945183051
--verbose mysql-bin.0000362025-01-21 19:11:49,935 ERROR
io.debezium.connector.mysql.MySqlStreamingChangeEventSource [] - Error during
binlog processing. Last offset stored = {transaction_id=null,
ts_sec=1737457863, file=mysql-bin.000036, pos=945182869, server_id=1, event=1},
binlog reader near position = mysql-bin.000036/9451829532025-01-21 19:12:15,472
INFO org.apache.doris.flink.sink.batch.DorisBatchWriter [] -
checkpoint flush triggered.2025-01-21 19:12:15,481 INFO
org.apache.flink.cdc.connectors.mysql.source.reader.MySqlSourceReader [] -
Binlog offset on checkpoint 5: {transaction_id=null, ts_sec=1737457863,
file=mysql-bin.000036, pos=945192687, kind=SPECIFIC, row=0, event=0,
server_id=1} {code}
was:
## CDC 3.2:
If some tables are removed from the `tables` parameter and then re-added, the
`CreateTableEvent` will be ignored and not sent to downstream.
This way to reproduce:
# set `tables` to `{*}test_db.\.*,test_db2.\.*{*}`
# remove `test_db2.\.*` from `tables` and restart pipeline job
# re-add `test_db2.\.*` to `tables` and restart pipeline job
!image-2024-10-29-11-52-41-353.png!
## CDC 3.3
CreateTableEvent could be sent, but another exception occured in TM.
{code:java}
2025-01-21 19:11:49,934 ERROR
io.debezium.connector.mysql.MySqlStreamingChangeEventSource [] - Encountered
change event 'Event{header=EventHeaderV4{timestamp=1737457909000,
eventType=TABLE_MAP, serverId=1, headerLength=19, dataLength=79,
nextPosition=945183051, flags=0}, data=TableMapEventData{tableId=2859,
database='test_db2', table='t1', columnTypes=8, 15, 1, 15, 18, 18, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, columnMetadata=0, 765, 0, 765, 0, 0, 2295,
765, 765, 765, 765, 765, 765, 765, 765, 765, 765, 765, columnNullability={1, 3,
6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17}, eventMetadata=null}}' at offset
{transaction_id=null, ts_sec=1737457863, file=mysql-bin.000036, pos=945182869,
server_id=1, event=1} for table test_db2.t1 whose schema isn't known to this
connector. One possible cause is an incomplete database history topic. Take a
new snapshot in this case.Use the mysqlbinlog tool to view the problematic
event: mysqlbinlog --start-position=945182953 --stop-position=945183051
--verbose mysql-bin.0000362025-01-21 19:11:49,935 ERROR
io.debezium.connector.mysql.MySqlStreamingChangeEventSource [] - Error during
binlog processing. Last offset stored = {transaction_id=null,
ts_sec=1737457863, file=mysql-bin.000036, pos=945182869, server_id=1, event=1},
binlog reader near position = mysql-bin.000036/9451829532025-01-21 19:12:15,472
INFO org.apache.doris.flink.sink.batch.DorisBatchWriter [] -
checkpoint flush triggered.2025-01-21 19:12:15,481 INFO
org.apache.flink.cdc.connectors.mysql.source.reader.MySqlSourceReader [] -
Binlog offset on checkpoint 5: {transaction_id=null, ts_sec=1737457863,
file=mysql-bin.000036, pos=945192687, kind=SPECIFIC, row=0, event=0,
server_id=1} {code}
> Downstream lost the CreateTableEvent when tables were removed and then
> re-added
> -------------------------------------------------------------------------------
>
> Key: FLINK-36619
> URL: https://issues.apache.org/jira/browse/FLINK-36619
> Project: Flink
> Issue Type: Bug
> Components: Flink CDC
> Affects Versions: cdc-3.2.0, cdc-3.3.0
> Reporter: linqigeng
> Priority: Major
> Attachments: image-2024-10-29-11-52-41-353.png,
> image-2024-10-29-12-04-26-718.png
>
>
> #CDC 3.2:
> If some tables are removed from the `tables` parameter and then re-added, the
> `CreateTableEvent` will be ignored and not sent to downstream.
> This way to reproduce:
> # set `tables` to `{*}test_db.\.{*},test_db2.\.{*}{{*}}`
> # remove `test_db2.\.*` from `tables` and restart pipeline job
> # re-add `test_db2.\.*` to `tables` and restart pipeline job
> !image-2024-10-29-11-52-41-353.png!
>
> #CDC 3.3
> CreateTableEvent could be sent, but another exception occured in TM.
> {code:java}
> 2025-01-21 19:11:49,934 ERROR
> io.debezium.connector.mysql.MySqlStreamingChangeEventSource [] - Encountered
> change event 'Event{header=EventHeaderV4{timestamp=1737457909000,
> eventType=TABLE_MAP, serverId=1, headerLength=19, dataLength=79,
> nextPosition=945183051, flags=0}, data=TableMapEventData{tableId=2859,
> database='test_db2', table='t1', columnTypes=8, 15, 1, 15, 18, 18, 15, 15,
> 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, columnMetadata=0, 765, 0, 765, 0, 0,
> 2295, 765, 765, 765, 765, 765, 765, 765, 765, 765, 765, 765,
> columnNullability={1, 3, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17},
> eventMetadata=null}}' at offset {transaction_id=null, ts_sec=1737457863,
> file=mysql-bin.000036, pos=945182869, server_id=1, event=1} for table
> test_db2.t1 whose schema isn't known to this connector. One possible cause is
> an incomplete database history topic. Take a new snapshot in this case.Use
> the mysqlbinlog tool to view the problematic event: mysqlbinlog
> --start-position=945182953 --stop-position=945183051 --verbose
> mysql-bin.0000362025-01-21 19:11:49,935 ERROR
> io.debezium.connector.mysql.MySqlStreamingChangeEventSource [] - Error
> during binlog processing. Last offset stored = {transaction_id=null,
> ts_sec=1737457863, file=mysql-bin.000036, pos=945182869, server_id=1,
> event=1}, binlog reader near position = mysql-bin.000036/9451829532025-01-21
> 19:12:15,472 INFO org.apache.doris.flink.sink.batch.DorisBatchWriter
> [] - checkpoint flush triggered.2025-01-21 19:12:15,481 INFO
> org.apache.flink.cdc.connectors.mysql.source.reader.MySqlSourceReader [] -
> Binlog offset on checkpoint 5: {transaction_id=null, ts_sec=1737457863,
> file=mysql-bin.000036, pos=945192687, kind=SPECIFIC, row=0, event=0,
> server_id=1} {code}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)