Skip to content

Commit

Permalink
[Bug](http-api) fix core dump on API check_rpc_channel coz exec_env n…
Browse files Browse the repository at this point in the history
…ot initialized #39519
  • Loading branch information
Vallishp committed Aug 17, 2024
1 parent 9d87bbf commit 211a7ae
Show file tree
Hide file tree
Showing 7 changed files with 48 additions and 8 deletions.
1 change: 1 addition & 0 deletions be/src/http/action/check_rpc_channel_action.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@ namespace doris {
CheckRPCChannelAction::CheckRPCChannelAction(ExecEnv* exec_env, TPrivilegeHier::type hier,
TPrivilegeType::type type)
: HttpHandlerWithAuth(exec_env, hier, type) {}

void CheckRPCChannelAction::handle(HttpRequest* req) {
std::string req_ip = req->param("ip");
std::string req_port = req->param("port");
Expand Down
3 changes: 0 additions & 3 deletions be/src/http/action/check_rpc_channel_action.h
Original file line number Diff line number Diff line change
Expand Up @@ -31,8 +31,5 @@ class CheckRPCChannelAction : public HttpHandlerWithAuth {
~CheckRPCChannelAction() override = default;

void handle(HttpRequest* req) override;

private:
ExecEnv* _exec_env;
};
} // namespace doris
3 changes: 2 additions & 1 deletion be/src/http/action/reset_rpc_channel_action.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,8 @@
namespace doris {
ResetRPCChannelAction::ResetRPCChannelAction(ExecEnv* exec_env, TPrivilegeHier::type hier,
TPrivilegeType::type type)
: HttpHandlerWithAuth(exec_env, hier, type), _exec_env(exec_env) {}
: HttpHandlerWithAuth(exec_env, hier, type) {}

void ResetRPCChannelAction::handle(HttpRequest* req) {
std::string endpoints = req->param("endpoints");
if (iequal(endpoints, "all")) {
Expand Down
3 changes: 0 additions & 3 deletions be/src/http/action/reset_rpc_channel_action.h
Original file line number Diff line number Diff line change
Expand Up @@ -31,8 +31,5 @@ class ResetRPCChannelAction : public HttpHandlerWithAuth {
~ResetRPCChannelAction() override = default;

void handle(HttpRequest* req) override;

private:
ExecEnv* _exec_env;
};
} // namespace doris
4 changes: 3 additions & 1 deletion be/src/http/http_handler_with_auth.h
Original file line number Diff line number Diff line change
Expand Up @@ -51,8 +51,10 @@ class HttpHandlerWithAuth : public HttpHandler {
return true;
}

private:
protected:
ExecEnv* _exec_env;

private:
TPrivilegeHier::type _hier;
TPrivilegeType::type _type;
};
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -939,6 +939,19 @@ class Suite implements GroovyInterceptable {
return;
}

void getBackendIpHttpAndBrpcPort(Map<String, String> backendId_to_backendIP,
Map<String, String> backendId_to_backendHttpPort, Map<String, String> backendId_to_backendBrpcPort) {

List<List<Object>> backends = sql("show backends");
for (List<Object> backend : backends) {
backendId_to_backendIP.put(String.valueOf(backend[0]), String.valueOf(backend[1]));
backendId_to_backendHttpPort.put(String.valueOf(backend[0]), String.valueOf(backend[4]));
backendId_to_backendBrpcPort.put(String.valueOf(backend[0]), String.valueOf(backend[5]));
}
return;
}


int getTotalLine(String filePath) {
def file = new File(filePath)
int lines = 0;
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@

// Licensed to the Apache Software Foundation (ASF) under one
// or more contributor license agreements. See the NOTICE file
// distributed with this work for additional information
// regarding copyright ownership. The ASF licenses this file
// to you under the Apache License, Version 2.0 (the
// "License"); you may not use this file except in compliance
// with the License. You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing,
// software distributed under the License is distributed on an
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
// KIND, either express or implied. See the License for the
// specific language governing permissions and limitations
// under the License.

suite('check_rpc_channel') {
def backendId_to_backendIP = [:]
def backendId_to_backendHttpPort = [:]
def backendId_to_backendBrpcPort = [:]

getBackendIpHttpAndBrpcPort(backendId_to_backendIP, backendId_to_backendHttpPort, backendId_to_backendBrpcPort);
for (int i=0;i<backendId_to_backendIP.size();i++){
def beHttpAddress =backendId_to_backendIP.entrySet()[i].getValue()+":"+backendId_to_backendHttpPort.entrySet()[i].getValue()
curl("POST",beHttpAddress+"/api/check_rpc_channel/"+backendId_to_backendIP.entrySet()[i].getValue()+"/"+backendId_to_backendBrpcPort.entrySet()[i].getValue()+"/1024000")
}
}

0 comments on commit 211a7ae

Please sign in to comment.