You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@impala.apache.org by st...@apache.org on 2023/08/02 23:29:34 UTC
[impala] 01/03: IMPALA-12326: Add WaitForLocalServer in StatestoreSubscriber::Start
This is an automated email from the ASF dual-hosted git repository.
stigahuang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/impala.git
commit b510e437de454debd4560cea340f9f1fd8af5e5a
Author: Riza Suminto <ri...@cloudera.com>
AuthorDate: Mon Jul 31 16:04:53 2023 -0700
IMPALA-12326: Add WaitForLocalServer in StatestoreSubscriber::Start
The Impala daemons start the statestore subscriber service before the
Thrift heartbeat rpc service is ready. As a result, there is a small
window where statestore could try to connect with Impala daemons, but
the rpc service isn't ready and so statestore logs get filled with
thrift timeout errors.
This patch add WaitForLocalServer in StatestoreSubscriber::Start. The
wait time is hardcoded to 10 second (10x retries of 1 second period).
Testing:
- Pass core tests.
Change-Id: Iec73e9d0517df2292270e436c1579ad6ddc90558
Reviewed-on: http://gerrit.cloudera.org:8080/20297
Reviewed-by: Wenzhe Zhou <wz...@cloudera.com>
Reviewed-by: Andrew Sherman <as...@cloudera.com>
Tested-by: Impala Public Jenkins <im...@cloudera.com>
---
be/src/statestore/statestore-subscriber.cc | 2 ++
1 file changed, 2 insertions(+)
diff --git a/be/src/statestore/statestore-subscriber.cc b/be/src/statestore/statestore-subscriber.cc
index f0f9f3ce5..2ef1ac5ee 100644
--- a/be/src/statestore/statestore-subscriber.cc
+++ b/be/src/statestore/statestore-subscriber.cc
@@ -238,6 +238,8 @@ Status StatestoreSubscriber::Start() {
RETURN_IF_ERROR(builder.Build(&server));
heartbeat_server_.reset(server);
RETURN_IF_ERROR(heartbeat_server_->Start());
+ RETURN_IF_ERROR(WaitForLocalServer(
+ *heartbeat_server_, /* num_retries */ 10, /* retry_interval_ms */ 1000));
// Specify the port which the heartbeat server is listening on.
heartbeat_address_.port = heartbeat_server_->port();