This is an automated email from the ASF dual-hosted git repository.
morningman pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-doris.git
The following commit(s) were added to refs/heads/master by this push:
new 9b5eeae Fix bug that DeployManager should start working after catalog
is ready. (#2244)
9b5eeae is described below
commit 9b5eeaec19d0c4dbf8fbb83e31f58a9f187f73e5
Author: Mingyu Chen <[email protected]>
AuthorDate: Wed Nov 20 09:49:09 2019 +0800
Fix bug that DeployManager should start working after catalog is ready.
(#2244)
Otherwise, it can not get master ip/port from not-ready catalog.
---
fe/src/main/java/org/apache/doris/deploy/DeployManager.java | 6 ++++++
fe/src/main/java/org/apache/doris/qe/Coordinator.java | 6 +++---
fe/src/main/java/org/apache/doris/qe/ResultReceiver.java | 4 ++--
fe/src/main/java/org/apache/doris/qe/SimpleScheduler.java | 2 +-
fe/src/test/java/org/apache/doris/qe/SimpleSchedulerTest.java | 6 +++---
5 files changed, 15 insertions(+), 9 deletions(-)
diff --git a/fe/src/main/java/org/apache/doris/deploy/DeployManager.java
b/fe/src/main/java/org/apache/doris/deploy/DeployManager.java
index 1db2a5d..4cf5ec3 100644
--- a/fe/src/main/java/org/apache/doris/deploy/DeployManager.java
+++ b/fe/src/main/java/org/apache/doris/deploy/DeployManager.java
@@ -323,6 +323,12 @@ public class DeployManager extends Daemon {
return;
}
+ if (!Catalog.getCurrentCatalog().isReady()) {
+ // this deploy manager thread is started before catalog is ready.
+ // so we have to wait the catalog to be ready.
+ return;
+ }
+
// 0. init
if (!init()) {
return;
diff --git a/fe/src/main/java/org/apache/doris/qe/Coordinator.java
b/fe/src/main/java/org/apache/doris/qe/Coordinator.java
index 9d61032..15bfd95 100644
--- a/fe/src/main/java/org/apache/doris/qe/Coordinator.java
+++ b/fe/src/main/java/org/apache/doris/qe/Coordinator.java
@@ -499,7 +499,7 @@ public class Coordinator {
case TIMEOUT:
throw new UserException("query timeout. backend
id: " + pair.first.backend.getId());
case THRIFT_RPC_ERROR:
-
SimpleScheduler.updateBlacklistBackends(pair.first.backend.getId());
+
SimpleScheduler.addToBlacklist(pair.first.backend.getId());
throw new
RpcException(pair.first.backend.getHost(), "rpc failed");
default:
throw new UserException(errMsg);
@@ -1334,7 +1334,7 @@ public class Coordinator {
} catch (RpcException e) {
LOG.warn("cancel plan fragment get a exception,
address={}:{}", brpcAddress.getHostname(),
brpcAddress.getPort());
-
SimpleScheduler.updateBlacklistBackends(addressToBackendID.get(brpcAddress));
+
SimpleScheduler.addToBlacklist(addressToBackendID.get(brpcAddress));
}
this.hasCanceled = true;
@@ -1373,7 +1373,7 @@ public class Coordinator {
try {
return
BackendServiceProxy.getInstance().execPlanFragmentAsync(brpcAddress, rpcParams);
} catch (RpcException e) {
- SimpleScheduler.updateBlacklistBackends(backend.getId());
+ SimpleScheduler.addToBlacklist(backend.getId());
throw e;
}
}
diff --git a/fe/src/main/java/org/apache/doris/qe/ResultReceiver.java
b/fe/src/main/java/org/apache/doris/qe/ResultReceiver.java
index c309414..857b76c 100644
--- a/fe/src/main/java/org/apache/doris/qe/ResultReceiver.java
+++ b/fe/src/main/java/org/apache/doris/qe/ResultReceiver.java
@@ -116,7 +116,7 @@ public class ResultReceiver {
} catch (RpcException e) {
LOG.warn("fetch result rpc exception, finstId={}", finstId, e);
status.setRpcStatus(e.getMessage());
- SimpleScheduler.updateBlacklistBackends(backendId);
+ SimpleScheduler.addToBlacklist(backendId);
} catch (ExecutionException e) {
LOG.warn("fetch result execution exception, finstId={}", finstId,
e);
if (e.getMessage().contains("time out")) {
@@ -124,7 +124,7 @@ public class ResultReceiver {
status.setStatus(new Status(TStatusCode.TIMEOUT,
e.getMessage()));
} else {
status.setRpcStatus(e.getMessage());
- SimpleScheduler.updateBlacklistBackends(backendId);
+ SimpleScheduler.addToBlacklist(backendId);
}
} catch (TimeoutException e) {
LOG.warn("fetch result timeout, finstId={}", finstId, e);
diff --git a/fe/src/main/java/org/apache/doris/qe/SimpleScheduler.java
b/fe/src/main/java/org/apache/doris/qe/SimpleScheduler.java
index 8db4f01..706fe47 100644
--- a/fe/src/main/java/org/apache/doris/qe/SimpleScheduler.java
+++ b/fe/src/main/java/org/apache/doris/qe/SimpleScheduler.java
@@ -130,7 +130,7 @@ public class SimpleScheduler {
return null;
}
- public static void updateBlacklistBackends(Long backendID) {
+ public static void addToBlacklist(Long backendID) {
if (backendID == null) {
return;
}
diff --git a/fe/src/test/java/org/apache/doris/qe/SimpleSchedulerTest.java
b/fe/src/test/java/org/apache/doris/qe/SimpleSchedulerTest.java
index eb4e7af..541f19b 100644
--- a/fe/src/test/java/org/apache/doris/qe/SimpleSchedulerTest.java
+++ b/fe/src/test/java/org/apache/doris/qe/SimpleSchedulerTest.java
@@ -189,12 +189,12 @@ public class SimpleSchedulerTest {
threeBackends.put((long) 102, backendC);
ImmutableMap<Long, Backend> immutableThreeBackends =
ImmutableMap.copyOf(threeBackends);
- SimpleScheduler.updateBlacklistBackends(Long.valueOf(100));
- SimpleScheduler.updateBlacklistBackends(Long.valueOf(101));
+ SimpleScheduler.addToBlacklist(Long.valueOf(100));
+ SimpleScheduler.addToBlacklist(Long.valueOf(101));
address = SimpleScheduler.getHost(immutableThreeBackends, ref);
// only backendc can work
Assert.assertEquals(address.hostname, "addressC");
- SimpleScheduler.updateBlacklistBackends(Long.valueOf(102));
+ SimpleScheduler.addToBlacklist(Long.valueOf(102));
// no backend can work
address = SimpleScheduler.getHost(immutableThreeBackends, ref);
Assert.assertNull(address);
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]