This is an automated email from the ASF dual-hosted git repository.
yiguolei pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/master by this push:
new e4c55cc5aa [fix](web): field in Controller is singleton, which would
introduce thread safe problem, so remove it (#24667)
e4c55cc5aa is described below
commit e4c55cc5aa3aa405123e51808c5b9fb13863ce88
Author: xu tao <[email protected]>
AuthorDate: Fri Sep 22 08:58:01 2023 +0800
[fix](web): field in Controller is singleton, which would introduce thread
safe problem, so remove it (#24667)
Co-authored-by: yiguolei <[email protected]>
---
.../doris/httpv2/controller/HelpController.java | 20 +++++++++-----------
.../doris/httpv2/controller/LogController.java | 15 ++++++---------
.../apache/doris/httpv2/rest/GetLoadInfoAction.java | 7 ++-----
.../org/apache/doris/httpv2/rest/MultiAction.java | 20 ++++++--------------
4 files changed, 23 insertions(+), 39 deletions(-)
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/httpv2/controller/HelpController.java
b/fe/fe-core/src/main/java/org/apache/doris/httpv2/controller/HelpController.java
index 1fa5abf5c8..3038d2eb4b 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/httpv2/controller/HelpController.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/httpv2/controller/HelpController.java
@@ -36,11 +36,9 @@ import javax.servlet.http.HttpServletRequest;
@RequestMapping("/rest/v1")
public class HelpController {
- private String queryString = null;
-
@RequestMapping(path = "/help", method = RequestMethod.GET)
public Object helpSearch(HttpServletRequest request) {
- this.queryString = request.getParameter("query");
+ String queryString = request.getParameter("query");
if (Strings.isNullOrEmpty(queryString)) {
// ATTN: according to Mysql protocol, the default query should be
"contents"
// when you want to get server side help.
@@ -49,17 +47,17 @@ public class HelpController {
queryString = queryString.trim();
}
Map<String, Object> result = new HashMap<>();
- appendHelpInfo(result);
+ appendHelpInfo(result, queryString);
return ResponseEntityBuilder.ok(result);
}
- private void appendHelpInfo(Map<String, Object> result) {
- appendExactMatchTopic(result);
- appendFuzzyMatchTopic(result);
- appendCategories(result);
+ private void appendHelpInfo(Map<String, Object> result, String
queryString) {
+ appendExactMatchTopic(result, queryString);
+ appendFuzzyMatchTopic(result, queryString);
+ appendCategories(result, queryString);
}
- private void appendExactMatchTopic(Map<String, Object> result) {
+ private void appendExactMatchTopic(Map<String, Object> result, String
queryString) {
HelpModule module = HelpModule.getInstance();
HelpTopic topic = module.getTopic(queryString);
if (topic == null) {
@@ -71,7 +69,7 @@ public class HelpController {
}
}
- private void appendFuzzyMatchTopic(Map<String, Object> result) {
+ private void appendFuzzyMatchTopic(Map<String, Object> result, String
queryString) {
HelpModule module = HelpModule.getInstance();
List<String> topics = module.listTopicByKeyword(queryString);
if (topics.isEmpty()) {
@@ -87,7 +85,7 @@ public class HelpController {
}
}
- private void appendCategories(Map<String, Object> result) {
+ private void appendCategories(Map<String, Object> result, String
queryString) {
HelpModule module = HelpModule.getInstance();
List<String> categories = module.listCategoryByName(queryString);
if (categories.isEmpty()) {
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/httpv2/controller/LogController.java
b/fe/fe-core/src/main/java/org/apache/doris/httpv2/controller/LogController.java
index 908f64814f..35656f5c4f 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/httpv2/controller/LogController.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/httpv2/controller/LogController.java
@@ -47,16 +47,13 @@ public class LogController {
private static final Logger LOG =
LogManager.getLogger(LogController.class);
private static final long WEB_LOG_BYTES = 1024 * 1024; // 1MB
- private String addVerboseName;
- private String delVerboseName;
-
@Autowired
private ReadEnvironment readEnvironment;
@RequestMapping(path = "/log", method = RequestMethod.GET)
- public Object log(HttpServletRequest request) {
+ public Object log() {
Map<String, Map<String, String>> map = new HashMap<>();
- appendLogConf(map);
+ appendLogConf(map, StringUtils.EMPTY, StringUtils.EMPTY);
appendLogInfo(map);
return ResponseEntityBuilder.ok(map);
}
@@ -65,14 +62,14 @@ public class LogController {
public Object logLevel(HttpServletRequest request) {
Map<String, Map<String, String>> map = new HashMap<>();
// get parameters
- addVerboseName = request.getParameter("add_verbose");
- delVerboseName = request.getParameter("del_verbose");
+ String addVerboseName = request.getParameter("add_verbose");
+ String delVerboseName = request.getParameter("del_verbose");
LOG.info("add verbose name: {}, del verbose name: {}", addVerboseName,
delVerboseName);
- appendLogConf(map);
+ appendLogConf(map, addVerboseName, delVerboseName);
return ResponseEntityBuilder.ok(map);
}
- private void appendLogConf(Map<String, Map<String, String>> content) {
+ private void appendLogConf(Map<String, Map<String, String>> content,
String addVerboseName, String delVerboseName) {
Map<String, String> map = new HashMap<>();
try {
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/httpv2/rest/GetLoadInfoAction.java
b/fe/fe-core/src/main/java/org/apache/doris/httpv2/rest/GetLoadInfoAction.java
index 40cf8be18e..018d523ceb 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/httpv2/rest/GetLoadInfoAction.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/httpv2/rest/GetLoadInfoAction.java
@@ -52,15 +52,12 @@ import javax.servlet.http.HttpServletResponse;
@RestController
public class GetLoadInfoAction extends RestBaseController {
- protected Env env;
-
@RequestMapping(path = "/api/{" + DB_KEY + "}/_load_info", method =
RequestMethod.GET)
public Object execute(
@PathVariable(value = DB_KEY) final String dbName,
HttpServletRequest request, HttpServletResponse response) {
executeCheckPassword(request, response);
- this.env = Env.getCurrentEnv();
String fullDbName = getFullDbName(dbName);
Load.JobInfo info = new Load.JobInfo(fullDbName,
@@ -82,7 +79,7 @@ public class GetLoadInfoAction extends RestBaseController {
}
try {
- env.getLoadInstance().getJobInfo(info);
+ Env.getCurrentEnv().getLoadInstance().getJobInfo(info);
if (info.tblNames.isEmpty()) {
checkDbAuth(ConnectContext.get().getCurrentUserIdentity(),
info.dbName, PrivPredicate.LOAD);
} else {
@@ -93,7 +90,7 @@ public class GetLoadInfoAction extends RestBaseController {
}
} catch (DdlException | MetaNotFoundException e) {
try {
- env.getLoadManager().getLoadJobInfo(info);
+ Env.getCurrentEnv().getLoadManager().getLoadJobInfo(info);
} catch (DdlException e1) {
return new RestBaseResult(e.getMessage());
}
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/httpv2/rest/MultiAction.java
b/fe/fe-core/src/main/java/org/apache/doris/httpv2/rest/MultiAction.java
index c4a3eb0d99..66522f7ece 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/httpv2/rest/MultiAction.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/httpv2/rest/MultiAction.java
@@ -44,7 +44,6 @@ import javax.servlet.http.HttpServletResponse;
// { "status" : "OK", "msg" : "some msg" }
@RestController
public class MultiAction extends RestBaseController {
- private ExecuteEnv execEnv;
private static final String SUB_LABEL_KEY = "sub_label";
@RequestMapping(path = "/api/{" + DB_KEY + "}/_multi_desc", method =
RequestMethod.POST)
@@ -58,7 +57,6 @@ public class MultiAction extends RestBaseController {
try {
executeCheckPassword(request, response);
- execEnv = ExecuteEnv.getInstance();
String label = request.getParameter(LABEL_KEY);
if (Strings.isNullOrEmpty(label)) {
return new RestBaseResult("No label selected");
@@ -73,9 +71,8 @@ public class MultiAction extends RestBaseController {
return redirectView;
}
- execEnv = ExecuteEnv.getInstance();
final List<String> labels = Lists.newArrayList();
- execEnv.getMultiLoadMgr().desc(fullDbName, label, labels);
+ ExecuteEnv.getInstance().getMultiLoadMgr().desc(fullDbName, label,
labels);
return new MultiLabelResult(labels);
} catch (Exception e) {
return new RestBaseResult(e.getMessage());
@@ -93,7 +90,6 @@ public class MultiAction extends RestBaseController {
try {
executeCheckPassword(request, response);
- execEnv = ExecuteEnv.getInstance();
String fullDbName = getFullDbName(dbName);
checkDbAuth(ConnectContext.get().getCurrentUserIdentity(),
fullDbName, PrivPredicate.LOAD);
@@ -105,7 +101,7 @@ public class MultiAction extends RestBaseController {
}
final List<String> labels = Lists.newArrayList();
- execEnv.getMultiLoadMgr().list(fullDbName, labels);
+ ExecuteEnv.getInstance().getMultiLoadMgr().list(fullDbName,
labels);
return new MultiLabelResult(labels);
} catch (Exception e) {
return new RestBaseResult(e.getMessage());
@@ -123,7 +119,6 @@ public class MultiAction extends RestBaseController {
try {
executeCheckPassword(request, response);
- execEnv = ExecuteEnv.getInstance();
String label = request.getParameter(LABEL_KEY);
if (Strings.isNullOrEmpty(label)) {
@@ -154,7 +149,7 @@ public class MultiAction extends RestBaseController {
properties.put(key, value);
}
}
- execEnv.getMultiLoadMgr().startMulti(fullDbName, label,
properties);
+ ExecuteEnv.getInstance().getMultiLoadMgr().startMulti(fullDbName,
label, properties);
return RestBaseResult.getOk();
} catch (Exception e) {
return new RestBaseResult(e.getMessage());
@@ -171,7 +166,6 @@ public class MultiAction extends RestBaseController {
try {
executeCheckPassword(request, response);
- execEnv = ExecuteEnv.getInstance();
String label = request.getParameter(LABEL_KEY);
if (Strings.isNullOrEmpty(label)) {
@@ -191,7 +185,7 @@ public class MultiAction extends RestBaseController {
return redirectView;
}
- execEnv.getMultiLoadMgr().unload(fullDbName, label, subLabel);
+ ExecuteEnv.getInstance().getMultiLoadMgr().unload(fullDbName,
label, subLabel);
return RestBaseResult.getOk();
} catch (Exception e) {
return new RestBaseResult(e.getMessage());
@@ -209,7 +203,6 @@ public class MultiAction extends RestBaseController {
try {
executeCheckPassword(request, response);
- execEnv = ExecuteEnv.getInstance();
String label = request.getParameter(LABEL_KEY);
if (Strings.isNullOrEmpty(label)) {
@@ -226,7 +219,7 @@ public class MultiAction extends RestBaseController {
return redirectView;
}
try {
- execEnv.getMultiLoadMgr().commit(fullDbName, label);
+ ExecuteEnv.getInstance().getMultiLoadMgr().commit(fullDbName,
label);
} catch (Exception e) {
return new RestBaseResult(e.getMessage());
}
@@ -247,7 +240,6 @@ public class MultiAction extends RestBaseController {
try {
executeCheckPassword(request, response);
- execEnv = ExecuteEnv.getInstance();
String label = request.getParameter(LABEL_KEY);
if (Strings.isNullOrEmpty(label)) {
@@ -263,7 +255,7 @@ public class MultiAction extends RestBaseController {
return redirectView;
}
- execEnv.getMultiLoadMgr().abort(fullDbName, label);
+ ExecuteEnv.getInstance().getMultiLoadMgr().abort(fullDbName,
label);
return RestBaseResult.getOk();
} catch (Exception e) {
return new RestBaseResult(e.getMessage());
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]