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]

Reply via email to