[
https://issues.apache.org/jira/browse/MAPREDUCE-7494?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17891247#comment-17891247
]
ASF GitHub Bot commented on MAPREDUCE-7494:
-------------------------------------------
zeekling commented on code in PR #7119:
URL: https://github.com/apache/hadoop/pull/7119#discussion_r1807794593
##########
hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/main/java/org/apache/hadoop/mapred/LineRecordReader.java:
##########
@@ -302,6 +302,8 @@ public synchronized void close() throws IOException {
try {
if (in != null) {
in.close();
+ } else if (fileIn != null) {
+ fileIn.close();
Review Comment:
why not do this in finally ?
> File stream leak when LineRecordReader is interrupted
> -----------------------------------------------------
>
> Key: MAPREDUCE-7494
> URL: https://issues.apache.org/jira/browse/MAPREDUCE-7494
> Project: Hadoop Map/Reduce
> Issue Type: Bug
> Components: client
> Affects Versions: 3.4.0, 3.3.6, 3.4.1
> Reporter: Davin Tjong
> Assignee: Davin Tjong
> Priority: Minor
> Labels: pull-request-available
> Fix For: 3.5.0
>
>
> In LineRecordReader, we may open a filestream:
> ```
> fileIn = FutureIO.awaitFuture(builder.build());
> ```
> However, we may be interrupted or otherwise throw an error before `in` is
> initialized, for example here:
> ```
> fileIn.seek(start);
> ```
> If this happens, the caller has no way to close this file stream causing it
> to leak.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]