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
---