diff --git a/debezium-connector-mysql/src/main/java/io/debezium/connector/mysql/SnapshotReader.java b/debezium-connector-mysql/src/main/java/io/debezium/connector/mysql/SnapshotReader.java index a4e4792d1..fb9240460 100644 --- a/debezium-connector-mysql/src/main/java/io/debezium/connector/mysql/SnapshotReader.java +++ b/debezium-connector-mysql/src/main/java/io/debezium/connector/mysql/SnapshotReader.java @@ -699,6 +699,21 @@ protected void execute() { } } } catch (Throwable e) { + if (isLocked) { + try { + sql.set("UNLOCK TABLES"); + mysql.execute(sql.get()); + } + catch (Exception eUnlock) { + logger.error("Removing of table locks not completed successfully", eUnlock); + } + try { + mysql.connection().rollback(); + } + catch (Exception eRollback) { + logger.error("Execption while rollback is executed", eRollback); + } + } failed(e, "Aborting snapshot due to error when last running '" + sql.get() + "': " + e.getMessage()); } }