docs: private void triggerMasterToAssignPartitions() {
          if (!shouldTriggerMasterToAssignPartitions()) {
              return;
          }
  
          ClusterServiceImpl clusterService = node.getClusterService();
  
          ClusterState clusterState = clusterService.getClusterState();
          if (!clusterState.isMigrationAllowed()) {
              logger.warning("Partitions can't be assigned since cluster-state=" + clusterState);
              return;
          }
  
          final Address masterAddress = clusterService.getMasterAddress();
          if (masterAddress == null || masterAddress.equals(node.getThisAddress())) {
              return;
          }
  
          if (masterTriggered.compareAndSet(false, true)) {
              InternalOperationService operationService = nodeEngine.getOperationService();
              ICompletableFuture<PartitionRuntimeState> future =
                      operationService.invokeOnTarget(SERVICE_NAME, new AssignPartitions(), masterAddress);
              future.andThen(new ExecutionCallback<PartitionRuntimeState>() {
                  @Override
                  public void onResponse(PartitionRuntimeState partitionState) {
                      resetMasterTriggeredFlag();
                      if (partitionState != null) {
                          partitionState.setMaster(masterAddress);
                          processPartitionRuntimeState(partitionState);
                      }
                  }
  
                  @Override
                  public void onFailure(Throwable t) {
                      resetMasterTriggeredFlag();
                      logger.severe(t);
                  }
              });
  
              masterTrigger.executeWithDelay();
          }
      }