This is an automated email from the ASF dual-hosted git repository.

dataroaring pushed a commit to branch branch-4.0-preview
in repository https://gitbox.apache.org/repos/asf/doris.git

commit 900607b6abbbabe16b5a6322d6f80ab6702852f6
Author: HHoflittlefish777 <[email protected]>
AuthorDate: Tue Apr 16 19:53:02 2024 +0800

    [fix](cloud) fix single stream multi table load can not work in cloud mode 
(#33659)
---
 .../org/apache/doris/load/StreamLoadHandler.java   | 53 ++++++++++------------
 1 file changed, 24 insertions(+), 29 deletions(-)

diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/load/StreamLoadHandler.java 
b/fe/fe-core/src/main/java/org/apache/doris/load/StreamLoadHandler.java
index ca87a657904..47f8ed05049 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/load/StreamLoadHandler.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/load/StreamLoadHandler.java
@@ -104,7 +104,7 @@ public class StreamLoadHandler {
             return;
         }
 
-        LOG.info("streamload put request: {}", request);
+        LOG.info("stream load put request: {}", request);
         // create connect context
         ConnectContext ctx = new ConnectContext();
         ctx.setEnv(Env.getCurrentEnv());
@@ -118,38 +118,33 @@ public class StreamLoadHandler {
             return;
         }
 
-        if (request.isSetAuthCode()) {
+        ctx.setRemoteIP(request.isSetAuthCode() ? clientAddr : 
request.getUserIp());
+        String userName = 
ClusterNamespace.getNameFromFullName(request.getUser());
+        if (!Strings.isNullOrEmpty(userName)) {
+            List<UserIdentity> currentUser = Lists.newArrayList();
+            try {
+                Env.getCurrentEnv().getAuth().checkPlainPassword(userName,
+                        request.getUserIp(), request.getPasswd(), currentUser);
+            } catch (AuthenticationException e) {
+                throw new UserException(e.formatErrMsg());
+            }
+            Preconditions.checkState(currentUser.size() == 1);
+            ctx.setCurrentUserIdentity(currentUser.get(0));
+        }
+        if (request.isSetAuthCode() && request.isSetBackendId()) {
             long backendId = request.getBackendId();
             Backend backend = Env.getCurrentSystemInfo().getBackend(backendId);
             Preconditions.checkNotNull(backend);
             ctx.setCloudCluster(backend.getCloudClusterName());
-            ctx.setRemoteIP(clientAddr);
-            LOG.info("streamLoadPutImpl set context: cluster {}", 
ctx.getCloudCluster());
-        } else {
-            ctx.setRemoteIP(request.getUserIp());
-            String userName = 
ClusterNamespace.getNameFromFullName(request.getUser());
-            if (!Strings.isNullOrEmpty(userName)) {
-                List<UserIdentity> currentUser = Lists.newArrayList();
-                try {
-                    Env.getCurrentEnv().getAuth().checkPlainPassword(userName,
-                            request.getUserIp(), request.getPasswd(), 
currentUser);
-                } catch (AuthenticationException e) {
-                    throw new UserException(e.formatErrMsg());
-                }
-                Preconditions.checkState(currentUser.size() == 1);
-                ctx.setCurrentUserIdentity(currentUser.get(0));
-            }
-            LOG.info("request user: {}, remote ip: {}, user ip: {}, passwd: 
{}, cluster: {}",
-                     request.getUser(), clientAddr, request.getUserIp(), 
request.getPasswd(),
-                     request.getCloudCluster());
-            if (!Strings.isNullOrEmpty(request.getCloudCluster())) {
-                if (Strings.isNullOrEmpty(request.getUser())) {
-                    // mysql load
-                    ctx.setCloudCluster(request.getCloudCluster());
-                } else {
-                    // stream load
-                    ((CloudEnv) 
Env.getCurrentEnv()).changeCloudCluster(request.getCloudCluster(), ctx);
-                }
+            return;
+        }
+        if (!Strings.isNullOrEmpty(request.getCloudCluster())) {
+            if (Strings.isNullOrEmpty(request.getUser())) {
+                // mysql load
+                ctx.setCloudCluster(request.getCloudCluster());
+            } else {
+                // stream load
+                ((CloudEnv) 
Env.getCurrentEnv()).changeCloudCluster(request.getCloudCluster(), ctx);
             }
         }
     }


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to