mirror of
https://github.com/alibaba/canal.git
synced 2026-11-04 00:30:15 +08:00
fixed issue #724 , retry for broke pipe
This commit is contained in:
@@ -298,7 +298,17 @@ public class DatabaseTableMeta implements TableMetaTSDB {
|
|||||||
createDDL = packet.getFieldValues().get(1);
|
createDDL = packet.getFieldValues().get(1);
|
||||||
tableMetaFromDB.setFields(TableMetaCache.parseTableMeta(schema, table, packet));
|
tableMetaFromDB.setFields(TableMetaCache.parseTableMeta(schema, table, packet));
|
||||||
}
|
}
|
||||||
} catch (IOException e) {
|
} catch (Throwable e) {
|
||||||
|
try {
|
||||||
|
// retry for broke pipe, see:
|
||||||
|
// https://github.com/alibaba/canal/issues/724
|
||||||
|
connection.reconnect();
|
||||||
|
ResultSetPacket packet = connection.query("show create table " + getFullName(schema, table));
|
||||||
|
if (packet.getFieldValues().size() > 1) {
|
||||||
|
createDDL = packet.getFieldValues().get(1);
|
||||||
|
tableMetaFromDB.setFields(TableMetaCache.parseTableMeta(schema, table, packet));
|
||||||
|
}
|
||||||
|
} catch (IOException e1) {
|
||||||
if (e.getMessage().contains("errorNumber=1146")) {
|
if (e.getMessage().contains("errorNumber=1146")) {
|
||||||
logger.error("table not exist in db , pls check :" + getFullName(schema, table) + " , mem : "
|
logger.error("table not exist in db , pls check :" + getFullName(schema, table) + " , mem : "
|
||||||
+ tableMetaFromMem);
|
+ tableMetaFromMem);
|
||||||
@@ -306,6 +316,7 @@ public class DatabaseTableMeta implements TableMetaTSDB {
|
|||||||
}
|
}
|
||||||
throw new CanalParseException(e);
|
throw new CanalParseException(e);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
boolean result = compareTableMeta(tableMetaFromMem, tableMetaFromDB);
|
boolean result = compareTableMeta(tableMetaFromMem, tableMetaFromDB);
|
||||||
if (!result) {
|
if (!result) {
|
||||||
|
|||||||
Reference in New Issue
Block a user