[ 
https://issues.apache.org/jira/browse/FLINK-23117?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

zhouzhengde closed FLINK-23117.
-------------------------------
    Resolution: Not A Problem

> TaskExecutor.allocateSlot is a logical error
> --------------------------------------------
>
>                 Key: FLINK-23117
>                 URL: https://issues.apache.org/jira/browse/FLINK-23117
>             Project: Flink
>          Issue Type: Bug
>          Components: Runtime / Task
>    Affects Versions: 1.12.0, 1.12.2, 1.13.0, 1.13.1
>            Reporter: zhouzhengde
>            Priority: Minor
>
> (commit: 2020-04-22)TaskExecutor.allocateSlot at line 1109 has a logical 
> error. Use '!taskSlotTable.isAllocated(slotId.getSlotNumber(), jobId, 
> allocationId)' to judge TaskSlot is used by another job that is not correct.  
> if slot index not occupy, that will be have some problem. Please confirm that 
> is correct. The issue code follow: 
> - TaskExecutor.java
> ```java
> {color:red}} else if (!taskSlotTable.isAllocated(slotId.getSlotNumber(), 
> jobId, allocationId)) {{color}
>  final String message =
>  "The slot " + slotId + " has already been allocated for a different job.";
>  log.info(message);
>  final AllocationID allocationID =
>  taskSlotTable.getCurrentAllocation(slotId.getSlotNumber());
>  throw new SlotOccupiedException(
>  message, allocationID, taskSlotTable.getOwningJob(allocationID));
> }
> ```
> - TaskSlotTableImpl.java
> ```java
>     @Override
>     public boolean isAllocated(int index, JobID jobId, AllocationID 
> allocationId) {
>         TaskSlot<T> taskSlot = taskSlots.get(index);
>         if (taskSlot != null) {
>             return taskSlot.isAllocated(jobId, allocationId);
>         } else {
>             return false;
>         }
>     }
> ```



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to