Open luyee opened 6 years ago
加了log,这个DataMedia为null了。看到是ddl相关的(源/目标库名,表名均相同),关闭ddl与跳过ddl异常,正常后,再开启 ddl 恢复了
DataMedia dataMedia = ConfigHelper.findSourceDataMedia(pipeline,
schemaName,
tableName,
notExistReturnNull);
logger.warn("##### schemaName: "+schemaName+" tableName: "+tableName+" notExistReturnNull "+notExistReturnNull+" dataMedia:"+ JSON.toJSONString(dataMedia));
// 如果EventType是CREATE/ALTER,需要reload
// DataMediaInfo;并且把CREATE/ALTER类型的事件丢弃掉.
if (dataMedia != null && (eventType.isCreate() || eventType.isAlter() || eventType.isRename())) {
DbDialect dbDialect = dbDialectFactory.getDbDialect(pipeline.getId(),
(DbMediaSource) dataMedia.getSource());
dbDialect.reloadTable(schemaName, tableName);// 更新下meta信息
}
boolean ddlSync = pipeline.getParameters().getDdlSync();
if (ddlSync) {
// 处理下ddl操作
EventData eventData = new EventData();
eventData.setSchemaName(schemaName);
eventData.setTableName(tableName);
eventData.setEventType(eventType);
eventData.setExecuteTime(entry.getHeader().getExecuteTime());
eventData.setSql(rowChange.getSql());
eventData.setDdlSchemaName(rowChange.getDdlSchemaName());
eventData.setTableId(dataMedia.getId());
return Arrays.asList(eventData);
解决了吗兄弟,什么原因,遇到了类似的错误
有两个pipeline(单向,mysql5.7.16-log)跑着跑着突然就挂起,报了这个错,没找到其他相关日志。。