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

View File

@ -576,10 +576,18 @@ public Job run() throws IOException, ClassNotFoundException,
return job;
}
});
Cluster prev = cluster;
// 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
// instance, and the two configs would then diverge)
cluster = job.getCluster();
// It is important to close the previous cluster instance
// to cleanup resources.
if (prev != null) {
prev.close();
}
return new NetworkedJob(job);
} catch (InterruptedException ie) {
throw new IOException("interrupted", ie);