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]
