Previously the containers were removed, now they are stopped/started. Unclear why.
As a result, MySqlBinlogClient is processing events (e.g. TABLE_MAP) that occurs before the schema was changed. As a result, the column ordering is no longer correct since the metadata query retrieves the current metadata - not what exists at the time of the event.
10:04:42.338 [blc-localhost:3306] INFO i.e.l.m.binlog.ColumnOrderExtractor - Table io.eventuate.common.jdbc.SchemaAndTable@4c242629[schema=eventuate,tableName=message] has these columns {creation_time=5, headers=2, payload=7, message_partition=4, destination=6, id=1, published=3}
10:04:42.340 [blc-localhost:3306] ERROR i.e.l.m.binlog.MySqlBinaryLogClient - Stopping due to exception
java.lang.IllegalArgumentException: Unexpected type class [B of column published, should be int or stringified int
at io.eventuate.local.common.BinlogEntry.getBooleanColumn(BinlogEntry.java:19)
at io.eventuate.tram.cdc.connector.BinlogEntryToMessageConverter.convert(BinlogEntryToMessageConverter.java:24)
at io.eventuate.local.common.BinlogEntryHandler.publish(BinlogEntryHandler.java:37)
at io.eventuate.local.mysql.binlog.MySqlBinaryLogClient.publish(MySqlBinaryLogClient.java:348)
at io.eventuate.local.mysql.binlog.MySqlBinaryLogClient.lambda$handleWriteRowsEvent$5(MySqlBinaryLogClient.java:331)
Action items:
Investigate plugin behavior. removeContainers = project.ext.removeContainers vs. removeContainers = project.ext.removeContainers.toBoolean()
dfae8b14d9fc833d0041089d53748f4aeaa69497 reverted by a3f1e0ea0743362868e4adc17d6c975eb66368bc
See failed build: https://app.circleci.com/pipelines/github/eventuate-foundation/eventuate-cdc/200/workflows/66dc6724-8d80-4ec2-8d3f-94d291a62984
Specifically: https://app.circleci.com/pipelines/github/eventuate-foundation/eventuate-cdc/200/workflows/66dc6724-8d80-4ec2-8d3f-94d291a62984/jobs/3605
This script is stopping/starting containers: https://github.com/eventuate-foundation/eventuate-cdc/blob/54ed5da3c56682c3e45df12165785a115b901e8f/scripts/build-and-test-all-database-id-jsonschema.sh#L72-L76
Previously the containers were removed, now they are stopped/started. Unclear why.
As a result, MySqlBinlogClient is processing events (e.g. TABLE_MAP) that occurs before the schema was changed. As a result, the column ordering is no longer correct since the metadata query retrieves the current metadata - not what exists at the time of the event.
Action items:
removeContainers = project.ext.removeContainers
vs.removeContainers = project.ext.removeContainers.toBoolean()