Repository: kylin Updated Branches: refs/heads/KYLIN-2624 12251b6cf -> 0206d87e0
final fix Project: http://git-wip-us.apache.org/repos/asf/kylin/repo Commit: http://git-wip-us.apache.org/repos/asf/kylin/commit/0206d87e Tree: http://git-wip-us.apache.org/repos/asf/kylin/tree/0206d87e Diff: http://git-wip-us.apache.org/repos/asf/kylin/diff/0206d87e Branch: refs/heads/KYLIN-2624 Commit: 0206d87e0d0cc58e86a0b16721055f65931c97d0 Parents: 12251b6 Author: Yang Li <liy...@apache.org> Authored: Sat May 20 09:00:37 2017 +0800 Committer: Yang Li <liy...@apache.org> Committed: Sat May 20 09:00:37 2017 +0800 ---------------------------------------------------------------------- examples/test_case_data/localmeta/UUID | 1 + .../apache/kylin/job/BaseTestDistributedScheduler.java | 2 ++ .../storage/hbase/util/ZookeeperDistributedLock.java | 11 ++++++++--- 3 files changed, 11 insertions(+), 3 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/kylin/blob/0206d87e/examples/test_case_data/localmeta/UUID ---------------------------------------------------------------------- diff --git a/examples/test_case_data/localmeta/UUID b/examples/test_case_data/localmeta/UUID new file mode 100644 index 0000000..e3f5e6b --- /dev/null +++ b/examples/test_case_data/localmeta/UUID @@ -0,0 +1 @@ +$3591078f-9401-481a-a233-e7755c1142d0 \ No newline at end of file http://git-wip-us.apache.org/repos/asf/kylin/blob/0206d87e/kylin-it/src/test/java/org/apache/kylin/job/BaseTestDistributedScheduler.java ---------------------------------------------------------------------- diff --git a/kylin-it/src/test/java/org/apache/kylin/job/BaseTestDistributedScheduler.java b/kylin-it/src/test/java/org/apache/kylin/job/BaseTestDistributedScheduler.java index 6343dfa..1ea6507 100644 --- a/kylin-it/src/test/java/org/apache/kylin/job/BaseTestDistributedScheduler.java +++ b/kylin-it/src/test/java/org/apache/kylin/job/BaseTestDistributedScheduler.java @@ -113,6 +113,8 @@ public class BaseTestDistributedScheduler extends HBaseMetadataTestCase { @AfterClass public static void after() throws Exception { + jobLock1.purgeLocks(""); + if (scheduler1 != null) { scheduler1.shutdown(); scheduler1 = null; http://git-wip-us.apache.org/repos/asf/kylin/blob/0206d87e/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/ZookeeperDistributedLock.java ---------------------------------------------------------------------- diff --git a/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/ZookeeperDistributedLock.java b/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/ZookeeperDistributedLock.java index 05d3a5a..db65491 100644 --- a/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/ZookeeperDistributedLock.java +++ b/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/ZookeeperDistributedLock.java @@ -102,7 +102,7 @@ public class ZookeeperDistributedLock implements DistributedLock, JobLock { public Factory(KylinConfig config) { this.curator = getZKClient(config); - this.zkPathBase = dropDoubleSlash("/kylin/" + KylinConfig.getInstanceFromEnv().getMetadataUrlPrefix()); + this.zkPathBase = fixSlash("/kylin/" + KylinConfig.getInstanceFromEnv().getMetadataUrlPrefix()); } @Override @@ -284,10 +284,15 @@ public class ZookeeperDistributedLock implements DistributedLock, JobLock { if (!lockPath.startsWith(zkPathBase)) lockPath = zkPathBase + (lockPath.startsWith("/") ? "" : "/") + lockPath; - return dropDoubleSlash(lockPath); + return fixSlash(lockPath); } - public static String dropDoubleSlash(String path) { + private static String fixSlash(String path) { + if (!path.startsWith("/")) + path = "/" + path; + if (path.endsWith("/")) + path = path.substring(0, path.length() - 1); + for (int n = Integer.MAX_VALUE; n > path.length();) { n = path.length(); path = path.replace("//", "/");