Skip to content

Conversation

@LittleCadet
Copy link

What is the purpose of the change

fix: 当该appId的worker是单机运行 且 padding时, 导致Dispatcher分发任务处于死循环中, 致使无法分发任务,状态一直为运行中

Brief changelog

padding的生效条件: 在map || mapReduce 的情况下, 且是该appId的worker是 非单机运行时,才生效。 该问题可稳定复现。
伪代码如下:

public abstract class HeavyTaskTracker {
  private boolean taskNeedByPassTaskTracker(List<String> availablePtIps) {
      if (ExecuteType.MAP.equals(executeType) || ExecuteType.MAP_REDUCE.equals(executeType)) {
           return TaskTrackerBehavior.PADDLING.getV().equals(advancedRuntimeConfig.getTaskTrackerBehavior()) &&
                  availablePtIps.size() != 1;
          }
      return false;
 }
}

Verifying this change

场景复现:
代码分支:master:
用例场景: 创建map / mapReduce任务, 选择padding模式, 单机运行。
运行结果:
图片
图片

fix后的结果:
图片
图片

@LittleCadet LittleCadet reopened this May 30, 2024
@KFCFans
Copy link
Member

KFCFans commented Aug 10, 2024

感谢反馈问题并提供修复方案,会合并到下个版本

@KFCFans KFCFans merged commit 4f5ea6f into PowerJob:master Aug 11, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants