You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tez.apache.org by ab...@apache.org on 2020/10/06 10:07:29 UTC
[tez] branch branch-0.9 updated: TEZ-4238: Check null mrReader in MRInput.close (László Bodor reviewed by Hadoop QA, Jonathan Turner Eagles, Hadoop QA)
This is an automated email from the ASF dual-hosted git repository.
abstractdog pushed a commit to branch branch-0.9
in repository https://gitbox.apache.org/repos/asf/tez.git
The following commit(s) were added to refs/heads/branch-0.9 by this push:
new 97a2e0c TEZ-4238: Check null mrReader in MRInput.close (László Bodor reviewed by Hadoop QA, Jonathan Turner Eagles, Hadoop QA)
97a2e0c is described below
commit 97a2e0c7742ede9e91d85b872a7193fc68282b59
Author: László Bodor <bo...@gmail.com>
AuthorDate: Tue Oct 6 12:00:17 2020 +0200
TEZ-4238: Check null mrReader in MRInput.close (László Bodor reviewed by Hadoop QA, Jonathan Turner Eagles, Hadoop QA)
Signed-off-by: Laszlo Bodor <bo...@gmail.com>
---
.../org/apache/tez/mapreduce/input/MRInput.java | 5 ++++-
.../apache/tez/mapreduce/input/TestMRInput.java | 22 ++++++++++++++++++++++
2 files changed, 26 insertions(+), 1 deletion(-)
diff --git a/tez-mapreduce/src/main/java/org/apache/tez/mapreduce/input/MRInput.java b/tez-mapreduce/src/main/java/org/apache/tez/mapreduce/input/MRInput.java
index 5c8ad4e..891249b 100644
--- a/tez-mapreduce/src/main/java/org/apache/tez/mapreduce/input/MRInput.java
+++ b/tez-mapreduce/src/main/java/org/apache/tez/mapreduce/input/MRInput.java
@@ -592,7 +592,10 @@ public class MRInput extends MRInputBase {
@Override
public List<Event> close() throws IOException {
- mrReader.close();
+ if (mrReader != null) {
+ mrReader.close();
+ mrReader = null;
+ }
long inputRecords = getContext().getCounters()
.findCounter(TaskCounter.INPUT_RECORDS_PROCESSED).getValue();
getContext().getStatisticsReporter().reportItemsProcessed(inputRecords);
diff --git a/tez-mapreduce/src/test/java/org/apache/tez/mapreduce/input/TestMRInput.java b/tez-mapreduce/src/test/java/org/apache/tez/mapreduce/input/TestMRInput.java
index 9109cd9..9249d3b 100644
--- a/tez-mapreduce/src/test/java/org/apache/tez/mapreduce/input/TestMRInput.java
+++ b/tez-mapreduce/src/test/java/org/apache/tez/mapreduce/input/TestMRInput.java
@@ -47,6 +47,7 @@ import org.apache.tez.mapreduce.hadoop.MRInputHelpers;
import org.apache.tez.mapreduce.protos.MRRuntimeProtos;
import org.apache.tez.runtime.api.Event;
import org.apache.tez.runtime.api.InputContext;
+import org.apache.tez.runtime.api.InputStatisticsReporter;
import org.apache.tez.runtime.api.events.InputDataInformationEvent;
import org.junit.Test;
@@ -147,6 +148,16 @@ public class TestMRInput {
assertTrue(TestInputFormat.invoked.get());
}
+ @Test
+ public void testMRInputCloseWithUnintializedReader() throws IOException {
+ InputContext inputContext = mock(InputContext.class);
+ doReturn(new TezCounters()).when(inputContext).getCounters();
+ doReturn(new InputStatisticsReporterImplForTest()).when(inputContext).getStatisticsReporter();
+
+ MRInput mrInput = new MRInput(inputContext, 0);
+ mrInput.close(); // shouldn't throw NPE
+ }
+
/**
* Test class to verify
*/
@@ -237,4 +248,15 @@ public class TestMRInput {
}
}
+
+ public static class InputStatisticsReporterImplForTest implements InputStatisticsReporter {
+
+ @Override
+ public synchronized void reportDataSize(long size) {
+ }
+
+ @Override
+ public void reportItemsProcessed(long items) {
+ }
+ }
}