mirror of https://github.com/apache/druid.git
Fix sporadic fail of io.druid.client.CoordinatorServerViewTest
This commit is contained in:
parent
e469655784
commit
ad3312171b
|
@ -23,7 +23,6 @@ import com.fasterxml.jackson.databind.ObjectMapper;
|
|||
import com.fasterxml.jackson.dataformat.smile.SmileFactory;
|
||||
import com.fasterxml.jackson.dataformat.smile.SmileGenerator;
|
||||
import com.google.common.base.Function;
|
||||
import com.google.common.base.Predicates;
|
||||
import com.google.common.collect.ImmutableList;
|
||||
import com.google.common.collect.ImmutableMap;
|
||||
import com.google.common.collect.ImmutableSet;
|
||||
|
@ -109,7 +108,7 @@ public class BrokerServerViewTest extends CuratorTestBase
|
|||
0
|
||||
);
|
||||
|
||||
setupZNodeForServer(druidServer);
|
||||
setupZNodeForServer(druidServer, zkPathsConfig, jsonMapper);
|
||||
|
||||
final DataSegment segment = dataSegmentWithIntervalAndVersion("2014-10-20T00:00:00Z/P1D", "v1");
|
||||
announceSegmentForServer(druidServer, segment);
|
||||
|
@ -179,7 +178,7 @@ public class BrokerServerViewTest extends CuratorTestBase
|
|||
);
|
||||
|
||||
for (DruidServer druidServer : druidServers) {
|
||||
setupZNodeForServer(druidServer);
|
||||
setupZNodeForServer(druidServer, zkPathsConfig, jsonMapper);
|
||||
}
|
||||
|
||||
final List<DataSegment> segments = Lists.transform(
|
||||
|
@ -369,33 +368,6 @@ public class BrokerServerViewTest extends CuratorTestBase
|
|||
baseView.start();
|
||||
}
|
||||
|
||||
private void setupZNodeForServer(DruidServer server) throws Exception
|
||||
{
|
||||
final String zNodePathAnnounce = ZKPaths.makePath(announcementsPath, server.getHost());
|
||||
final String zNodePathSegment = ZKPaths.makePath(inventoryPath, server.getHost());
|
||||
|
||||
/*
|
||||
* Explicitly check whether the zNodes we are about to create exist or not,
|
||||
* if exist, delete them to make sure we have a clean state on zookeeper.
|
||||
* Address issue: https://github.com/druid-io/druid/issues/1512
|
||||
*/
|
||||
if (curator.checkExists().forPath(zNodePathAnnounce) != null) {
|
||||
curator.delete().guaranteed().forPath(zNodePathAnnounce);
|
||||
}
|
||||
if (curator.checkExists().forPath(zNodePathSegment) != null) {
|
||||
curator.delete().guaranteed().forPath(zNodePathSegment);
|
||||
}
|
||||
curator.create()
|
||||
.creatingParentsIfNeeded()
|
||||
.forPath(
|
||||
zNodePathAnnounce,
|
||||
jsonMapper.writeValueAsBytes(server.getMetadata())
|
||||
);
|
||||
curator.create()
|
||||
.creatingParentsIfNeeded()
|
||||
.forPath(zNodePathSegment);
|
||||
}
|
||||
|
||||
private DataSegment dataSegmentWithIntervalAndVersion(String intervalStr, String version)
|
||||
{
|
||||
return DataSegment.builder()
|
||||
|
|
|
@ -21,7 +21,6 @@ package io.druid.client;
|
|||
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import com.google.common.base.Function;
|
||||
import com.google.common.base.Predicates;
|
||||
import com.google.common.collect.ImmutableList;
|
||||
import com.google.common.collect.ImmutableMap;
|
||||
import com.google.common.collect.ImmutableSet;
|
||||
|
@ -31,7 +30,6 @@ import com.metamx.common.Pair;
|
|||
import io.druid.curator.CuratorTestBase;
|
||||
import io.druid.jackson.DefaultObjectMapper;
|
||||
import io.druid.query.TableDataSource;
|
||||
import io.druid.segment.Segment;
|
||||
import io.druid.server.coordination.DruidServerMetadata;
|
||||
import io.druid.server.initialization.ZkPathsConfig;
|
||||
import io.druid.timeline.DataSegment;
|
||||
|
@ -49,7 +47,6 @@ import org.junit.Test;
|
|||
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
import java.util.concurrent.CountDownLatch;
|
||||
import java.util.concurrent.Executor;
|
||||
|
||||
|
@ -100,7 +97,7 @@ public class CoordinatorServerViewTest extends CuratorTestBase
|
|||
0
|
||||
);
|
||||
|
||||
setupZNodeForServer(druidServer);
|
||||
setupZNodeForServer(druidServer, zkPathsConfig, jsonMapper);
|
||||
|
||||
final DataSegment segment = dataSegmentWithIntervalAndVersion("2014-10-20T00:00:00Z/P1D", "v1");
|
||||
announceSegmentForServer(druidServer, segment);
|
||||
|
@ -168,7 +165,7 @@ public class CoordinatorServerViewTest extends CuratorTestBase
|
|||
);
|
||||
|
||||
for (DruidServer druidServer : druidServers) {
|
||||
setupZNodeForServer(druidServer);
|
||||
setupZNodeForServer(druidServer, zkPathsConfig, jsonMapper);
|
||||
}
|
||||
|
||||
final List<DataSegment> segments = Lists.transform(
|
||||
|
@ -350,19 +347,6 @@ public class CoordinatorServerViewTest extends CuratorTestBase
|
|||
baseView.start();
|
||||
}
|
||||
|
||||
private void setupZNodeForServer(DruidServer server) throws Exception
|
||||
{
|
||||
curator.create()
|
||||
.creatingParentsIfNeeded()
|
||||
.forPath(
|
||||
ZKPaths.makePath(announcementsPath, server.getHost()),
|
||||
jsonMapper.writeValueAsBytes(server.getMetadata())
|
||||
);
|
||||
curator.create()
|
||||
.creatingParentsIfNeeded()
|
||||
.forPath(ZKPaths.makePath(inventoryPath, server.getHost()));
|
||||
}
|
||||
|
||||
private DataSegment dataSegmentWithIntervalAndVersion(String intervalStr, String version)
|
||||
{
|
||||
return DataSegment.builder()
|
||||
|
|
|
@ -19,12 +19,16 @@
|
|||
|
||||
package io.druid.curator;
|
||||
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import com.metamx.common.guava.CloseQuietly;
|
||||
import io.druid.client.DruidServer;
|
||||
import io.druid.server.initialization.ZkPathsConfig;
|
||||
import org.apache.curator.framework.CuratorFramework;
|
||||
import org.apache.curator.framework.CuratorFrameworkFactory;
|
||||
import org.apache.curator.retry.RetryOneTime;
|
||||
import org.apache.curator.test.TestingServer;
|
||||
import org.apache.curator.test.Timing;
|
||||
import org.apache.curator.utils.ZKPaths;
|
||||
|
||||
/**
|
||||
*/
|
||||
|
@ -49,6 +53,38 @@ public class CuratorTestBase
|
|||
|
||||
}
|
||||
|
||||
protected void setupZNodeForServer(DruidServer server, ZkPathsConfig zkPathsConfig, ObjectMapper jsonMapper)
|
||||
throws Exception
|
||||
{
|
||||
final String announcementsPath = zkPathsConfig.getAnnouncementsPath();
|
||||
final String inventoryPath = zkPathsConfig.getLiveSegmentsPath();
|
||||
|
||||
final String zNodePathAnnounce = ZKPaths.makePath(announcementsPath, server.getHost());
|
||||
final String zNodePathSegment = ZKPaths.makePath(inventoryPath, server.getHost());
|
||||
|
||||
/*
|
||||
* Explicitly check whether the zNodes we are about to create exist or not,
|
||||
* if exist, delete them to make sure we have a clean state on zookeeper.
|
||||
* Address issue: https://github.com/druid-io/druid/issues/1512
|
||||
*/
|
||||
if (curator.checkExists().forPath(zNodePathAnnounce) != null) {
|
||||
curator.delete().guaranteed().forPath(zNodePathAnnounce);
|
||||
}
|
||||
if (curator.checkExists().forPath(zNodePathSegment) != null) {
|
||||
curator.delete().guaranteed().forPath(zNodePathSegment);
|
||||
}
|
||||
|
||||
curator.create()
|
||||
.creatingParentsIfNeeded()
|
||||
.forPath(
|
||||
ZKPaths.makePath(announcementsPath, server.getHost()),
|
||||
jsonMapper.writeValueAsBytes(server.getMetadata())
|
||||
);
|
||||
curator.create()
|
||||
.creatingParentsIfNeeded()
|
||||
.forPath(ZKPaths.makePath(inventoryPath, server.getHost()));
|
||||
}
|
||||
|
||||
protected void tearDownServerAndCurator()
|
||||
{
|
||||
CloseQuietly.close(curator);
|
||||
|
|
Loading…
Reference in New Issue