When the leader node is faulty, the flag for re-sharding cannot be set.
After the leader node is reselected, the re-sharding flag is not set. As a result, the faulty shard cannot be executed.
@TeslaCN
#1472
Solution:
class LeaderElectionJobListener implements DataChangedEventListener {
@Override
public void onChange(final DataChangedEvent event) {
if (!JobRegistry.getInstance().isShutdown(jobName) && (isActiveElection(event.getKey(), event.getValue()) || isPassiveElection(event.getKey(), event.getType()))) {
leaderService.electLeader();
// Trigger failover and set shard identifiers.
shardingService.setReshardingFlag();
failoverService.failoverIfNecessary();
}
}
}