-
Bug
-
Resolution: Unresolved
-
Major
-
None
-
None
-
False
-
-
False
Bug report
RelationalSnapshotChangeEventSource the doExecute method "the Snapshot step 3 - Locking captured tables" lock for the database, However, the lock is released after saving the schema history. The schema history operation performed in between cannot be written to the database and will wait for the database to release the lock, thus causing the program to fail to start normally
What Debezium connector do you use and what version?
All versions between 2.7 and 3.3
What is the connector configuration?
final Properties props = new Properties();
props.setProperty("name", "engine");
props.setProperty("connector.class", "io.debezium.connector.mysql.MySqlConnector");
props.setProperty("offset.storage", JdbcOffsetBackingStore.class.getCanonicalName());
props.setProperty("offset.storage.jdbc.url", "jdbc:mysql://localhost:3306/study");
props.setProperty("offset.storage.jdbc.user", "root");
props.setProperty("offset.storage.jdbc.password", "******");
props.setProperty("database.hostname", "localhost");
props.setProperty("database.port", "3306");
props.setProperty("database.user", "****");
props.setProperty("database.password", "******");
props.setProperty("database.server.id", String.valueOf(randomServerId()));
props.setProperty("database.include.list", "study");
props.setProperty("table.include.list", "study.fine_authority");
props.setProperty("topic.prefix", "my-app-connector1");
props.setProperty("schema.history.internal", JdbcSchemaHistory.class.getCanonicalName());
props.setProperty("schema.history.internal.jdbc.url", "jdbc:mysql://localhost:3306/history");
props.setProperty("schema.history.internal.jdbc.user", "debezium");
props.setProperty("schema.history.internal.jdbc.password", "******");
props.setProperty("schema.history.internal.jdbc.schema.history.table.ddl","CREATE TABLE %s (\n" +
" id VARCHAR(36) NOT NULL primary key,\n" +
" history_data varchar(12000),\n" +
" history_data_seq INTEGER,\n" +
" record_insert_ts TIMESTAMP NOT NULL,\n" +
" record_insert_seq INTEGER NOT NULL\n" +
")");
props.setProperty("schema.history.internal.store.only.captured.tables.ddl","true");
What is the captured database version and mode of deployment?
database version: mysql 8.0.44
What behavior do you expect?
The program can start normally.
What behavior do you see?
The program is stuck in the "JdbcSchemaHistory.storeRecord" method, and there is a "Waiting for global read lock" issue in the database
Do you see the same behaviour using the latest released Debezium version?
yes