MAPREDUCE-6621. Memory Leak in JobClient#submitJobInternal(). Contributed by Xuan Gong

(cherry picked from commit 43e669b22d)
This commit is contained in:
Jason Lowe 2016-02-02 19:30:45 +00:00
parent c4c94e1cf2
commit 1d322ca5cc
2 changed files with 14 additions and 0 deletions

View File

@ -436,6 +436,9 @@ Release 2.7.3 - UNRELEASED
MAPREDUCE-6618. YarnClientProtocolProvider leaking the YarnClient thread. MAPREDUCE-6618. YarnClientProtocolProvider leaking the YarnClient thread.
(Xuan Gong via jlowe) (Xuan Gong via jlowe)
MAPREDUCE-6621. Memory Leak in JobClient#submitJobInternal() (Xuan Gong
via jlowe)
Release 2.7.2 - 2016-01-25 Release 2.7.2 - 2016-01-25
INCOMPATIBLE CHANGES INCOMPATIBLE CHANGES
@ -741,6 +744,9 @@ Release 2.6.4 - UNRELEASED
MAPREDUCE-6618. YarnClientProtocolProvider leaking the YarnClient thread. MAPREDUCE-6618. YarnClientProtocolProvider leaking the YarnClient thread.
(Xuan Gong via jlowe) (Xuan Gong via jlowe)
MAPREDUCE-6621. Memory Leak in JobClient#submitJobInternal() (Xuan Gong
via jlowe)
Release 2.6.3 - 2015-12-17 Release 2.6.3 - 2015-12-17
INCOMPATIBLE CHANGES INCOMPATIBLE CHANGES

View File

@ -576,10 +576,18 @@ public class JobClient extends CLI {
return job; return job;
} }
}); });
Cluster prev = cluster;
// update our Cluster instance with the one created by Job for submission // update our Cluster instance with the one created by Job for submission
// (we can't pass our Cluster instance to Job, since Job wraps the config // (we can't pass our Cluster instance to Job, since Job wraps the config
// instance, and the two configs would then diverge) // instance, and the two configs would then diverge)
cluster = job.getCluster(); cluster = job.getCluster();
// It is important to close the previous cluster instance
// to cleanup resources.
if (prev != null) {
prev.close();
}
return new NetworkedJob(job); return new NetworkedJob(job);
} catch (InterruptedException ie) { } catch (InterruptedException ie) {
throw new IOException("interrupted", ie); throw new IOException("interrupted", ie);