From 70e6bdde02288cccbebdb51c0bc52898c6c8ee1a Mon Sep 17 00:00:00 2001 From: spccold Date: Sat, 5 May 2018 11:35:41 +0800 Subject: [PATCH 1/2] close zkclientx if necessary when stop canal --- .../com/alibaba/otter/canal/deployer/CanalController.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/deployer/src/main/java/com/alibaba/otter/canal/deployer/CanalController.java b/deployer/src/main/java/com/alibaba/otter/canal/deployer/CanalController.java index 9bf42bf1..08c0744d 100644 --- a/deployer/src/main/java/com/alibaba/otter/canal/deployer/CanalController.java +++ b/deployer/src/main/java/com/alibaba/otter/canal/deployer/CanalController.java @@ -454,6 +454,10 @@ public class CanalController { // 释放canal的工作节点 releaseCid(ZookeeperPathUtils.getCanalClusterNode(ip + ":" + port)); logger.info("## stop the canal server[{}:{}]", ip, port); + + if (zkclientx != null) { + zkclientx.close(); + } } private void initCid(String path) { From 7eb6fb3e8a263dee9fc93ce004900e665485914f Mon Sep 17 00:00:00 2001 From: spccold Date: Sun, 6 May 2018 21:50:34 +0800 Subject: [PATCH 2/2] fix CanalInstanceWithManager#doInitEventParser bug --- .../otter/canal/instance/manager/CanalInstanceWithManager.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/instance/manager/src/main/java/com/alibaba/otter/canal/instance/manager/CanalInstanceWithManager.java b/instance/manager/src/main/java/com/alibaba/otter/canal/instance/manager/CanalInstanceWithManager.java index 53196169..bca5ba13 100644 --- a/instance/manager/src/main/java/com/alibaba/otter/canal/instance/manager/CanalInstanceWithManager.java +++ b/instance/manager/src/main/java/com/alibaba/otter/canal/instance/manager/CanalInstanceWithManager.java @@ -263,7 +263,7 @@ public class CanalInstanceWithManager extends AbstractCanalInstance { mysqlEventParser.setMasterPosition(masterPosition); if (parameters.getPositions().size() > 1) { - EntryPosition standbyPosition = JsonUtils.unmarshalFromString(parameters.getPositions().get(0), + EntryPosition standbyPosition = JsonUtils.unmarshalFromString(parameters.getPositions().get(1), EntryPosition.class); mysqlEventParser.setStandbyPosition(standbyPosition); }