[ASTERIXDB-1982][FAIL] Fix DatasetPartitionWriter fail behavior
- user model changes: no
- storage format changes: no
- interface changes: no
Details:
- Do not write an empty result partition on pipeline failure.
Change-Id: I1e065fd7e4204773e17d809b6e44059c709eb27b
Reviewed-on: https://asterix-gerrit.ics.uci.edu/1891
Sonar-Qube: Jenkins <jenkins@fulliautomatix.ics.uci.edu>
Tested-by: Jenkins <jenkins@fulliautomatix.ics.uci.edu>
BAD: Jenkins <jenkins@fulliautomatix.ics.uci.edu>
Integration-Tests: Jenkins <jenkins@fulliautomatix.ics.uci.edu>
Reviewed-by: Yingyi Bu <buyingyi@gmail.com>
diff --git a/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-nc/src/main/java/org/apache/hyracks/control/nc/dataset/DatasetPartitionWriter.java b/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-nc/src/main/java/org/apache/hyracks/control/nc/dataset/DatasetPartitionWriter.java
index 81f5551..0189735 100644
--- a/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-nc/src/main/java/org/apache/hyracks/control/nc/dataset/DatasetPartitionWriter.java
+++ b/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-nc/src/main/java/org/apache/hyracks/control/nc/dataset/DatasetPartitionWriter.java
@@ -98,14 +98,9 @@
@Override
public void fail() throws HyracksDataException {
- try {
- failed = true;
- resultState.closeAndDelete();
- resultState.abort();
- registerResultPartitionLocation(false);
- } catch (HyracksException e) {
- throw new HyracksDataException(e);
- }
+ failed = true;
+ resultState.closeAndDelete();
+ resultState.abort();
}
@Override
@@ -121,7 +116,9 @@
resultState.close();
}
try {
- manager.reportPartitionWriteCompletion(jobId, resultSetId, partition);
+ if (partitionRegistered) {
+ manager.reportPartitionWriteCompletion(jobId, resultSetId, partition);
+ }
} catch (HyracksException e) {
throw new HyracksDataException(e);
}