Github user kunal642 commented on a diff in the pull request:

    https://github.com/apache/carbondata/pull/1844#discussion_r163459325
  
    --- Diff: 
core/src/main/java/org/apache/carbondata/core/statusmanager/SegmentStatusManager.java
 ---
    @@ -700,11 +708,28 @@ public static Boolean 
checkIfAnyLoadInProgressForTable(CarbonTable carbonTable)
             SegmentStatus segmentStatus = loaddetail.getSegmentStatus();
             if (segmentStatus == SegmentStatus.INSERT_IN_PROGRESS ||
                     segmentStatus == 
SegmentStatus.INSERT_OVERWRITE_IN_PROGRESS) {
    -          loadInProgress = true;
    +          loadInProgress =
    +              
checkIfValidLoadInProgress(carbonTable.getAbsoluteTableIdentifier(),
    +                  loaddetail.getLoadName());
             }
           }
         }
         return loadInProgress;
       }
     
    +  public static Boolean checkIfValidLoadInProgress(AbsoluteTableIdentifier 
absoluteTableIdentifier,
    +      String loadId) {
    +    ICarbonLock segmentLock = 
CarbonLockFactory.getCarbonLockObj(absoluteTableIdentifier,
    +        CarbonTablePath.addSegmentPrefix(loadId) + LockUsage.LOCK);
    +    try {
    +      if (segmentLock.lockWithRetries(1, 5)) {
    --- End diff --
    
    return !segmentLock.lockWithRetries(1, 5) directly


---

Reply via email to