github-actions[bot] commented on code in PR #68187: URL: https://github.com/apache/doris/pull/68187#discussion_r4045666047
########## fe/fe-core/src/test/java/org/apache/doris/nereids/trees/plans/distribute/DistributePlannerReceiverDestinationTest.java: ########## @@ -0,0 +1,120 @@ +// 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. + +package org.apache.doris.nereids.trees.plans.distribute; + +import org.apache.doris.nereids.StatementContext; +import org.apache.doris.nereids.trees.plans.distribute.worker.DistributedPlanWorker; +import org.apache.doris.nereids.trees.plans.distribute.worker.job.AssignedJob; +import org.apache.doris.nereids.trees.plans.distribute.worker.job.LocalShuffleAssignedJob; +import org.apache.doris.planner.ExchangeNode; +import org.apache.doris.planner.PlanFragment; +import org.apache.doris.qe.ConnectContext; + +import com.google.common.collect.Lists; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; +import org.mockito.Mockito; + +import java.util.List; + +/** + * Verifies that DistributePlanner picks the receiver instances a remote sender addresses + * based on whether the exchange is serial on BE -- not on whether the receiver fragment + * happens to use local shuffle. + * + * A non-serial exchange runs a live receiver on every instance, so the sender must address + * them all. Funneling such an exchange to the first instance per worker leaves the other + * instances waiting forever for an EOS that no sender sends (query hangs until timeout). + */ +public class DistributePlannerReceiverDestinationTest { + + private DistributePlanner newPlanner() { + List<PlanFragment> noFragments = Lists.newArrayList(); + return new DistributePlanner(Mockito.mock(StatementContext.class), noFragments, false, false); Review Comment: [P1] Pass the branch's fifth constructor argument `DistributePlanner` has only the five-argument constructor `(StatementContext, List<PlanFragment>, boolean, boolean, boolean)` on this branch, so this new four-argument call cannot compile and none of these regression assertions can run. Please pass the missing `useLoadBackendSelection` value (`false` for this isolated test). ```suggestion return new DistributePlanner(Mockito.mock(StatementContext.class), noFragments, false, false, false); ``` -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
