<!--
   Licensed to the Apache Software Foundation (ASF) under one or more
   contributor license agreements.  See the NOTICE file distributed with
   this work for additional information regarding copyright ownership.
   The ASF licenses this file to You under the Apache License, Version 2.0
   (the "License"); you may not use this file except in compliance with
   the License.  You may obtain a copy of the License at

       http://www.apache.org/licenses/LICENSE-2.0

   Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License.
-->
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Hadoop  2.1.1-beta Release Notes</title>
<STYLE type="text/css">
	H1 {font-family: sans-serif}
	H2 {font-family: sans-serif; margin-left: 7mm}
	TABLE {margin-left: 7mm}
</STYLE>
</head>
<body>
<h1>Hadoop  2.1.1-beta Release Notes</h1>
These release notes include new developer and user-facing incompatibilities, features, and major improvements. 
<a name="changes"/>
<h2>Changes since Hadoop 2.1.0-beta</h2>
<ul>
<li> <a href="https://issues.apache.org/jira/browse/YARN-1194">YARN-1194</a>.
     Minor bug reported by Roman Shaposhnik and fixed by Roman Shaposhnik (nodemanager)<br>
     <b>TestContainerLogsPage fails with native builds</b><br>
     <blockquote>Running TestContainerLogsPage on trunk while Native IO is enabled makes it fail</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-1189">YARN-1189</a>.
     Blocker bug reported by Jason Lowe and fixed by Omkar Vinit Joshi <br>
     <b>NMTokenSecretManagerInNM is not being told when applications have finished </b><br>
     <blockquote>The {{appFinished}} method is not being called when applications have finished.  This causes a couple of leaks as {{oldMasterKeys}} and {{appToAppAttemptMap}} are never being pruned.
</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-1184">YARN-1184</a>.
     Major bug reported by J.Andreina and fixed by Chris Douglas (capacityscheduler , resourcemanager)<br>
     <b>ClassCastException is thrown during preemption When a huge job is submitted to a queue B whose resources is used by a job in queueA</b><br>
     <blockquote>preemption is enabled.
Queue = a,b
a capacity = 30%
b capacity = 70%

Step 1: Assign a big job to queue a ( so that job_a will utilize some resources from queue b)
Step 2: Assigne a big job to queue b.

Following exception is thrown at Resource Manager
{noformat}
2013-09-12 10:42:32,535 ERROR [SchedulingMonitor (ProportionalCapacityPreemptionPolicy)] yarn.YarnUncaughtExceptionHandler (YarnUncaughtExceptionHandler.java:uncaughtException(68)) - Thread Thread[SchedulingMonitor (ProportionalCapacityPreemptionPolicy),5,main] threw an Exception.
java.lang.ClassCastException: java.util.Collections$UnmodifiableSet cannot be cast to java.util.NavigableSet
	at org.apache.hadoop.yarn.server.resourcemanager.monitor.capacity.ProportionalCapacityPreemptionPolicy.getContainersToPreempt(ProportionalCapacityPreemptionPolicy.java:403)
	at org.apache.hadoop.yarn.server.resourcemanager.monitor.capacity.ProportionalCapacityPreemptionPolicy.containerBasedPreemptOrKill(ProportionalCapacityPreemptionPolicy.java:202)
	at org.apache.hadoop.yarn.server.resourcemanager.monitor.capacity.ProportionalCapacityPreemptionPolicy.editSchedule(ProportionalCapacityPreemptionPolicy.java:173)
	at org.apache.hadoop.yarn.server.resourcemanager.monitor.SchedulingMonitor.invokePolicy(SchedulingMonitor.java:72)
	at org.apache.hadoop.yarn.server.resourcemanager.monitor.SchedulingMonitor$PreemptionChecker.run(SchedulingMonitor.java:82)
	at java.lang.Thread.run(Thread.java:662)

{noformat}</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-1176">YARN-1176</a>.
     Critical bug reported by Thomas Graves and fixed by Jonathan Eagles (resourcemanager)<br>
     <b>RM web services ClusterMetricsInfo total nodes doesn't include unhealthy nodes</b><br>
     <blockquote>In the web services api for the cluster/metrics, the totalNodes reported doesn't include the unhealthy nodes.

this.totalNodes = activeNodes + lostNodes + decommissionedNodes
	        + rebootedNodes;</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-1170">YARN-1170</a>.
     Blocker bug reported by Arun C Murthy and fixed by Binglin Chang <br>
     <b>yarn proto definitions should specify package as 'hadoop.yarn'</b><br>
     <blockquote>yarn proto definitions should specify package as 'hadoop.yarn' similar to protos with 'hadoop.common' &amp; 'hadoop.hdfs' in Common &amp; HDFS respectively.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-1152">YARN-1152</a>.
     Blocker bug reported by Jason Lowe and fixed by Jason Lowe (resourcemanager)<br>
     <b>Invalid key to HMAC computation error when getting application report for completed app attempt</b><br>
     <blockquote>On a secure cluster, an invalid key to HMAC error is thrown when trying to get an application report for an application with an attempt that has unregistered.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-1144">YARN-1144</a>.
     Critical bug reported by Alejandro Abdelnur and fixed by Alejandro Abdelnur (resourcemanager)<br>
     <b>Unmanaged AMs registering a tracking URI should not be proxy-fied</b><br>
     <blockquote>Unmanaged AMs do not run in the cluster, their tracking URL should not be proxy-fied.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-1137">YARN-1137</a>.
     Major improvement reported by Alejandro Abdelnur and fixed by Roman Shaposhnik (nodemanager)<br>
     <b>Add support whitelist for system users to Yarn container-executor.c</b><br>
     <blockquote>Currently container-executor.c has a banned set of users (mapred, hdfs &amp; bin) and configurable min.user.id (defaulting to 1000).

This presents a problem for systems that run as system users (below 1000) if these systems want to start containers.

Systems like Impala fit in this category. A (local) 'impala' system user is created when installing Impala on the nodes. 

Note that the same thing happens when installing system like HDFS, Yarn, Oozie, from packages (Bigtop); local system users are created.

For Impala to be able to run containers in a secure cluster, the 'impala' system user must whitelisted. 

For this, adding a configuration 'allowed.system.users' option in the container-executor.cfg and the logic in container-executor.c would allow the usernames in that list.

Because system users are not guaranteed to have the same UID in different machines, the 'allowed.system.users' property should use usernames and not UIDs.
</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-1124">YARN-1124</a>.
     Blocker bug reported by Omkar Vinit Joshi and fixed by Xuan Gong <br>
     <b>By default yarn application -list should display all the applications in a state other than FINISHED / FAILED</b><br>
     <blockquote>Today we are just listing application in RUNNING state by default for "yarn application -list". Instead we should show all the applications which are either submitted/accepted/running.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-1120">YARN-1120</a>.
     Minor bug reported by Chuan Liu and fixed by Chuan Liu <br>
     <b>Make ApplicationConstants.Environment.USER definition OS neutral</b><br>
     <blockquote>In YARN-557, we added some code to make {{ApplicationConstants.Environment.USER}} has OS-specific definition in order to fix the unit test TestUnmanagedAMLauncher. In YARN-571, the relevant test code was corrected. In YARN-602, we actually will explicitly set the environment variables for the child containers. With these changes, I think we can revert the YARN-557 change to make {{ApplicationConstants.Environment.USER}} OS neutral. The main benefit is that we can use the same method over the Enum constants. This should also fix the TestContainerLaunch#testContainerEnvVariables failure on Windows. </blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-1117">YARN-1117</a>.
     Major improvement reported by Tassapol Athiapinya and fixed by Xuan Gong (client)<br>
     <b>Improve help message for $ yarn applications and $yarn node</b><br>
     <blockquote>There is standardization of help message in YARN-1080. It is nice to have similar changes for $ yarn appications and yarn node</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-1116">YARN-1116</a>.
     Major sub-task reported by Jian He and fixed by Jian He (resourcemanager)<br>
     <b>Populate AMRMTokens back to AMRMTokenSecretManager after RM restarts</b><br>
     <blockquote>The AMRMTokens are now only saved in RMStateStore and not populated back to AMRMTokenSecretManager after RM restarts. This is more needed now since AMRMToken also becomes used in non-secure env.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-1107">YARN-1107</a>.
     Blocker bug reported by Arpit Gupta and fixed by Omkar Vinit Joshi (resourcemanager)<br>
     <b>Job submitted with Delegation token in secured environment causes RM to fail during RM restart</b><br>
     <blockquote>If secure RM with recovery enabled is restarted while oozie jobs are running rm fails to come up.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-1101">YARN-1101</a>.
     Major bug reported by Robert Parker and fixed by Robert Parker (resourcemanager)<br>
     <b>Active nodes can be decremented below 0</b><br>
     <blockquote>The issue is in RMNodeImpl where both RUNNING and UNHEALTHY states that transition to a deactive state (LOST, DECOMMISSIONED, REBOOTED) use the same DeactivateNodeTransition class.  The DeactivateNodeTransition class naturally decrements the active node, however the in cases where the node has transition to UNHEALTHY the active count has already been decremented.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-1094">YARN-1094</a>.
     Blocker bug reported by Yesha Vora and fixed by Vinod Kumar Vavilapalli <br>
     <b>RM restart throws Null pointer Exception in Secure Env</b><br>
     <blockquote>Enable rmrestart feature And restart Resorce Manager while a job is running.

Resorce Manager fails to start with below error

2013-08-23 17:57:40,705 INFO  resourcemanager.RMAppManager (RMAppManager.java:recover(370)) - Recovering application application_1377280618693_0001
2013-08-23 17:57:40,763 ERROR resourcemanager.ResourceManager (ResourceManager.java:serviceStart(617)) - Failed to load/recover state
java.lang.NullPointerException
        at org.apache.hadoop.yarn.server.resourcemanager.security.DelegationTokenRenewer.setTimerForTokenRenewal(DelegationTokenRenewer.java:371)
        at org.apache.hadoop.yarn.server.resourcemanager.security.DelegationTokenRenewer.addApplication(DelegationTokenRenewer.java:307)
        at org.apache.hadoop.yarn.server.resourcemanager.RMAppManager.submitApplication(RMAppManager.java:291)
        at org.apache.hadoop.yarn.server.resourcemanager.RMAppManager.recover(RMAppManager.java:371)
        at org.apache.hadoop.yarn.server.resourcemanager.ResourceManager.recover(ResourceManager.java:819)
        at org.apache.hadoop.yarn.server.resourcemanager.ResourceManager.serviceStart(ResourceManager.java:613)
        at org.apache.hadoop.service.AbstractService.start(AbstractService.java:193)
        at org.apache.hadoop.yarn.server.resourcemanager.ResourceManager.main(ResourceManager.java:832)
2013-08-23 17:57:40,766 INFO  util.ExitUtil (ExitUtil.java:terminate(124)) - Exiting with status 1
                                                                                                    

</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-1093">YARN-1093</a>.
     Major bug reported by Wing Yew Poon and fixed by  (documentation)<br>
     <b>Corrections to Fair Scheduler documentation</b><br>
     <blockquote>The fair scheduler is still evolving, but the current documentation contains some inaccuracies.


</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-1085">YARN-1085</a>.
     Blocker task reported by Jaimin D Jetly and fixed by Omkar Vinit Joshi (nodemanager , resourcemanager)<br>
     <b>Yarn and MRv2 should do HTTP client authentication in kerberos setup.</b><br>
     <blockquote>In kerberos setup it's expected for a http client to authenticate to kerberos before allowing user to browse any information.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-1083">YARN-1083</a>.
     Major bug reported by Yesha Vora and fixed by Zhijie Shen (resourcemanager)<br>
     <b>ResourceManager should fail when yarn.nm.liveness-monitor.expiry-interval-ms is set less than heartbeat interval</b><br>
     <blockquote>if 'yarn.nm.liveness-monitor.expiry-interval-ms' is set to less than heartbeat iterval, all the node managers will be added in 'Lost Nodes'

Instead, Resource Manager should validate these property and It should fail to start if combination of such property is invalid.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-1082">YARN-1082</a>.
     Blocker bug reported by Arpit Gupta and fixed by Vinod Kumar Vavilapalli (resourcemanager)<br>
     <b>Secure RM with recovery enabled and rm state store on hdfs fails with gss exception</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-1081">YARN-1081</a>.
     Minor improvement reported by Tassapol Athiapinya and fixed by Akira AJISAKA (client)<br>
     <b>Minor improvement to output header for $ yarn node -list</b><br>
     <blockquote>Output of $ yarn node -list shows number of running containers at each node. I found a case when new user of YARN thinks that this is container ID, use it later in other YARN commands and find an error due to misunderstanding.

{code:title=current output}
2013-07-31 04:00:37,814|beaver.machine|INFO|RUNNING: /usr/bin/yarn node -list
2013-07-31 04:00:38,746|beaver.machine|INFO|Total Nodes:1
2013-07-31 04:00:38,747|beaver.machine|INFO|Node-Id	Node-State	Node-Http-Address	Running-Containers
2013-07-31 04:00:38,747|beaver.machine|INFO|myhost:45454	   RUNNING	myhost:50060	   2
{code}

{code:title=proposed output}
2013-07-31 04:00:37,814|beaver.machine|INFO|RUNNING: /usr/bin/yarn node -list
2013-07-31 04:00:38,746|beaver.machine|INFO|Total Nodes:1
2013-07-31 04:00:38,747|beaver.machine|INFO|Node-Id	Node-State	Node-Http-Address	Number-of-Running-Containers
2013-07-31 04:00:38,747|beaver.machine|INFO|myhost:45454	   RUNNING	myhost:50060	   2
{code}</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-1080">YARN-1080</a>.
     Major improvement reported by Tassapol Athiapinya and fixed by Xuan Gong (client)<br>
     <b>Improve help message for $ yarn logs</b><br>
     <blockquote>There are 2 parts I am proposing in this jira. They can be fixed together in one patch.

1. Standardize help message for required parameter of $ yarn logs
YARN CLI has a command "logs" ($ yarn logs). The command always requires a parameter of "-applicationId &lt;arg&gt;". However, help message of the command does not make it clear. It lists -applicationId as optional parameter. If I don't set it, YARN CLI will complain this is missing. It is better to use standard required notation used in other Linux command for help message. Any user familiar to the command can understand that this parameter is needed more easily.

{code:title=current help message}
-bash-4.1$ yarn logs
usage: general options are:
 -applicationId &lt;arg&gt;   ApplicationId (required)
 -appOwner &lt;arg&gt;        AppOwner (assumed to be current user if not
                        specified)
 -containerId &lt;arg&gt;     ContainerId (must be specified if node address is
                        specified)
 -nodeAddress &lt;arg&gt;     NodeAddress in the format nodename:port (must be
                        specified if container id is specified)
{code}

{code:title=proposed help message}
-bash-4.1$ yarn logs
usage: yarn logs -applicationId &lt;application ID&gt; [OPTIONS]
general options are:
 -appOwner &lt;arg&gt;        AppOwner (assumed to be current user if not
                        specified)
 -containerId &lt;arg&gt;     ContainerId (must be specified if node address is
                        specified)
 -nodeAddress &lt;arg&gt;     NodeAddress in the format nodename:port (must be
                        specified if container id is specified)
{code}

2. Add description for help command. As far as I know, a user cannot get logs for running job. Since I spent some time trying to get logs of running applications, it should be nice to say this in command description.
{code:title=proposed help}
Retrieve logs for completed/killed YARN application
usage: general options are...
{code}
</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-1078">YARN-1078</a>.
     Minor bug reported by Chuan Liu and fixed by Chuan Liu <br>
     <b>TestNodeManagerResync, TestNodeManagerShutdown, and TestNodeStatusUpdater fail on Windows</b><br>
     <blockquote>The three unit tests fail on Windows due to host name resolution differences on Windows, i.e. 127.0.0.1 does not resolve to host name "localhost".

{noformat}
org.apache.hadoop.security.token.SecretManager$InvalidToken: Given Container container_0_0000_01_000000 identifier is not valid for current Node manager. Expected : 127.0.0.1:12345 Found : localhost:12345
{noformat}

{noformat}
testNMConnectionToRM(org.apache.hadoop.yarn.server.nodemanager.TestNodeStatusUpdater)  Time elapsed: 8343 sec  &lt;&lt;&lt; FAILURE!
org.junit.ComparisonFailure: expected:&lt;[localhost]:12345&gt; but was:&lt;[127.0.0.1]:12345&gt;
	at org.junit.Assert.assertEquals(Assert.java:125)
	at org.junit.Assert.assertEquals(Assert.java:147)
	at org.apache.hadoop.yarn.server.nodemanager.TestNodeStatusUpdater$MyResourceTracker6.registerNodeManager(TestNodeStatusUpdater.java:712)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at org.apache.hadoop.io.retry.RetryInvocationHandler.invokeMethod(RetryInvocationHandler.java:187)
	at org.apache.hadoop.io.retry.RetryInvocationHandler.invoke(RetryInvocationHandler.java:101)
	at $Proxy26.registerNodeManager(Unknown Source)
	at org.apache.hadoop.yarn.server.nodemanager.NodeStatusUpdaterImpl.registerWithRM(NodeStatusUpdaterImpl.java:212)
	at org.apache.hadoop.yarn.server.nodemanager.NodeStatusUpdaterImpl.serviceStart(NodeStatusUpdaterImpl.java:149)
	at org.apache.hadoop.yarn.server.nodemanager.TestNodeStatusUpdater$MyNodeStatusUpdater4.serviceStart(TestNodeStatusUpdater.java:369)
	at org.apache.hadoop.service.AbstractService.start(AbstractService.java:193)
	at org.apache.hadoop.service.CompositeService.serviceStart(CompositeService.java:101)
	at org.apache.hadoop.yarn.server.nodemanager.NodeManager.serviceStart(NodeManager.java:213)
	at org.apache.hadoop.service.AbstractService.start(AbstractService.java:193)
	at org.apache.hadoop.yarn.server.nodemanager.TestNodeStatusUpdater.testNMConnectionToRM(TestNodeStatusUpdater.java:985)
{noformat}</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-1077">YARN-1077</a>.
     Minor bug reported by Chuan Liu and fixed by Chuan Liu <br>
     <b>TestContainerLaunch fails on Windows</b><br>
     <blockquote>Several cases in this unit tests fail on Windows. (Append error log at the end.)

testInvalidEnvSyntaxDiagnostics fails because the difference between cmd and bash script error handling. If some command fails in the cmd script, cmd will continue execute the the rest of the script command. Error handling needs to be explicitly carried out in the script file. The error code of the last command will be returned as the error code of the whole script. In this test, some error happened in the middle of the cmd script, the test expect an exception and non-zero error code. In the cmd script, the intermediate errors are ignored. The last command "call" succeeded and there is no exception.

testContainerLaunchStdoutAndStderrDiagnostics fails due to wrong cmd commands used by the test.

testContainerEnvVariables and testDelayedKill fail due to a regression from YARN-906.

{noformat}
-------------------------------------------------------------------------------
Test set: org.apache.hadoop.yarn.server.nodemanager.containermanager.launcher.TestContainerLaunch
-------------------------------------------------------------------------------
Tests run: 7, Failures: 4, Errors: 0, Skipped: 0, Time elapsed: 11.526 sec &lt;&lt;&lt; FAILURE!
testInvalidEnvSyntaxDiagnostics(org.apache.hadoop.yarn.server.nodemanager.containermanager.launcher.TestContainerLaunch)  Time elapsed: 583 sec  &lt;&lt;&lt; FAILURE!
junit.framework.AssertionFailedError: Should catch exception
	at junit.framework.Assert.fail(Assert.java:50)
	at org.apache.hadoop.yarn.server.nodemanager.containermanager.launcher.TestContainerLaunch.testInvalidEnvSyntaxDiagnostics(TestContainerLaunch.java:269)
...

testContainerLaunchStdoutAndStderrDiagnostics(org.apache.hadoop.yarn.server.nodemanager.containermanager.launcher.TestContainerLaunch)  Time elapsed: 561 sec  &lt;&lt;&lt; FAILURE!
junit.framework.AssertionFailedError: Should catch exception
	at junit.framework.Assert.fail(Assert.java:50)
	at org.apache.hadoop.yarn.server.nodemanager.containermanager.launcher.TestContainerLaunch.testContainerLaunchStdoutAndStderrDiagnostics(TestContainerLaunch.java:314)
...

testContainerEnvVariables(org.apache.hadoop.yarn.server.nodemanager.containermanager.launcher.TestContainerLaunch)  Time elapsed: 4136 sec  &lt;&lt;&lt; FAILURE!
junit.framework.AssertionFailedError: expected:&lt;137&gt; but was:&lt;143&gt;
	at junit.framework.Assert.fail(Assert.java:50)
	at junit.framework.Assert.failNotEquals(Assert.java:287)
	at junit.framework.Assert.assertEquals(Assert.java:67)
	at junit.framework.Assert.assertEquals(Assert.java:199)
	at junit.framework.Assert.assertEquals(Assert.java:205)
	at org.apache.hadoop.yarn.server.nodemanager.containermanager.launcher.TestContainerLaunch.testContainerEnvVariables(TestContainerLaunch.java:500)
...

testDelayedKill(org.apache.hadoop.yarn.server.nodemanager.containermanager.launcher.TestContainerLaunch)  Time elapsed: 2744 sec  &lt;&lt;&lt; FAILURE!
junit.framework.AssertionFailedError: expected:&lt;137&gt; but was:&lt;143&gt;
	at junit.framework.Assert.fail(Assert.java:50)
	at junit.framework.Assert.failNotEquals(Assert.java:287)
	at junit.framework.Assert.assertEquals(Assert.java:67)
	at junit.framework.Assert.assertEquals(Assert.java:199)
	at junit.framework.Assert.assertEquals(Assert.java:205)
	at org.apache.hadoop.yarn.server.nodemanager.containermanager.launcher.TestContainerLaunch.testDelayedKill(TestContainerLaunch.java:601)
...
{noformat}
</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-1074">YARN-1074</a>.
     Major improvement reported by Tassapol Athiapinya and fixed by Xuan Gong (client)<br>
     <b>Clean up YARN CLI app list to show only running apps.</b><br>
     <blockquote>Once a user brings up YARN daemon, runs jobs, jobs will stay in output returned by $ yarn application -list even after jobs complete already. We want YARN command line to clean up this list. Specifically, we want to remove applications with FINISHED state(not Final-State) or KILLED state from the result.

{code}
[user1@host1 ~]$ yarn application -list
Total Applications:150
                Application-Id	    Application-Name	    Application-Type	      User	     Queue	             State       Final-State	       Progress	                       Tracking-URL
application_1374638600275_0109	           Sleep job	           MAPREDUCE	    user1	   default	            KILLED            KILLED	           100%	   host1:54059
application_1374638600275_0121	           Sleep job	           MAPREDUCE	    user1	   default	          FINISHED         SUCCEEDED	           100%	host1:19888/jobhistory/job/job_1374638600275_0121
application_1374638600275_0020	           Sleep job	           MAPREDUCE	    user1	   default	          FINISHED         SUCCEEDED	           100%	host1:19888/jobhistory/job/job_1374638600275_0020
application_1374638600275_0038	           Sleep job	           MAPREDUCE	    user1	   default	
....
{code}
</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-1049">YARN-1049</a>.
     Blocker bug reported by Alejandro Abdelnur and fixed by Alejandro Abdelnur (api)<br>
     <b>ContainerExistStatus should define a status for preempted containers</b><br>
     <blockquote>With the current behavior is impossible to determine if a container has been preempted or lost due to a NM crash.

Adding a PREEMPTED exit status (-102) will help an AM determine that a container has been preempted.

Note the change of scope from the original summary/description. The original scope proposed API/behavior changes. Because we are passed 2.1.0-beta I'm reducing the scope of this JIRA.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-1034">YARN-1034</a>.
     Trivial task reported by Sandy Ryza and fixed by Karthik Kambatla (documentation , scheduler)<br>
     <b>Remove "experimental" in the Fair Scheduler documentation</b><br>
     <blockquote>The YARN Fair Scheduler is largely stable now, and should no longer be declared experimental.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-1025">YARN-1025</a>.
     Major bug reported by Chris Nauroth and fixed by Chris Nauroth (nodemanager , resourcemanager)<br>
     <b>ResourceManager and NodeManager do not load native libraries on Windows.</b><br>
     <blockquote>ResourceManager and NodeManager do not have the correct setting for java.library.path when launched on Windows.  This prevents the processes from loading native code from hadoop.dll.  The native code is required for correct functioning on Windows (not optional), so this ultimately can cause failures.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-1008">YARN-1008</a>.
     Major bug reported by Alejandro Abdelnur and fixed by Alejandro Abdelnur (nodemanager)<br>
     <b>MiniYARNCluster with multiple nodemanagers, all nodes have same key for allocations</b><br>
     <blockquote>While the NMs are keyed using the NodeId, the allocation is done based on the hostname. 

This makes the different nodes indistinguishable to the scheduler.

There should be an option to enabled the host:port instead just port for allocations. The nodes reported to the AM should report the 'key' (host or host:port). 
</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-1006">YARN-1006</a>.
     Major bug reported by Jian He and fixed by Xuan Gong <br>
     <b>Nodes list web page on the RM web UI is broken</b><br>
     <blockquote>The nodes web page which list all the connected nodes of the cluster is broken.

1. The page is not showing in correct format/style.
2. If we restart the NM, the node list is not refreshed, but just add the new started NM to the list. The old NMs information still remain.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-1001">YARN-1001</a>.
     Blocker task reported by Srimanth Gunturi and fixed by Zhijie Shen (api)<br>
     <b>YARN should provide per application-type and state statistics</b><br>
     <blockquote>In Ambari we plan to show for MR2 the number of applications finished, running, waiting, etc. It would be efficient if YARN could provide per application-type and state aggregated counts.
</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-994">YARN-994</a>.
     Major bug reported by Xuan Gong and fixed by Xuan Gong <br>
     <b>HeartBeat thread in AMRMClientAsync does not handle runtime exception correctly</b><br>
     <blockquote>YARN-654 performs sanity checks for parameters of public methods in AMRMClient. Those may create runtime exception. 
Currently, heartBeat thread in AMRMClientAsync only captures IOException and YarnException, and will not handle Runtime Exception properly. 
Possible solution can be: heartbeat thread will catch throwable and notify the callbackhandler thread via existing savedException</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-981">YARN-981</a>.
     Major bug reported by Xuan Gong and fixed by Jian He <br>
     <b>YARN/MR2/Job-history /logs link does not have correct content</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-966">YARN-966</a>.
     Major bug reported by Zhijie Shen and fixed by Zhijie Shen <br>
     <b>The thread of ContainerLaunch#call will fail without any signal if getLocalizedResources() is called when the container is not at LOCALIZED</b><br>
     <blockquote>In ContainerImpl.getLocalizedResources(), there's:
{code}
assert ContainerState.LOCALIZED == getContainerState(); // TODO: FIXME!!
{code}

ContainerImpl.getLocalizedResources() is called in ContainerLaunch.call(), which is scheduled on a separate thread. If the container is not at LOCALIZED (e.g. it is at KILLING, see YARN-906), an AssertError will be thrown and fails the thread without notifying NM. Therefore, the container cannot receive more events, which are supposed to be sent from ContainerLaunch.call(), and move towards completion. </blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-957">YARN-957</a>.
     Blocker bug reported by Omkar Vinit Joshi and fixed by Omkar Vinit Joshi <br>
     <b>Capacity Scheduler tries to reserve the memory more than what node manager reports.</b><br>
     <blockquote>I have 2 node managers.
* one with 1024 MB memory.(nm1)
* second with 2048 MB memory.(nm2)
I am submitting simple map reduce application with 1 mapper and one reducer with 1024mb each. The steps to reproduce this are
* stop nm2 with 2048MB memory.( This I am doing to make sure that this node's heartbeat doesn't reach RM first).
* now submit application. As soon as it receives first node's (nm1) heartbeat it will try to reserve memory for AM-container (2048MB). However it has only 1024MB of memory.
* now start nm2 with 2048 MB memory.

It hangs forever... Ideally this has two potential issues.
* It should not try to reserve memory on a node manager which is never going to give requested memory. i.e. Current max capability of node manager is 1024MB but 2048MB is reserved on it. But it still does that.
* Say 2048MB is reserved on nm1 but nm2 comes back with 2048MB available memory. In this case if the original request was made without any locality then scheduler should unreserve memory on nm1 and allocate requested 2048MB container on nm2.
</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-948">YARN-948</a>.
     Major bug reported by Omkar Vinit Joshi and fixed by Omkar Vinit Joshi <br>
     <b>RM should validate the release container list before actually releasing them</b><br>
     <blockquote>At present we are blinding passing the allocate request containing containers to be released to the scheduler. This may result into one application releasing another application's container.

{code}
  @Override
  @Lock(Lock.NoLock.class)
  public Allocation allocate(ApplicationAttemptId applicationAttemptId,
      List&lt;ResourceRequest&gt; ask, List&lt;ContainerId&gt; release, 
      List&lt;String&gt; blacklistAdditions, List&lt;String&gt; blacklistRemovals) {

    FiCaSchedulerApp application = getApplication(applicationAttemptId);
....
....
    // Release containers
    for (ContainerId releasedContainerId : release) {
      RMContainer rmContainer = getRMContainer(releasedContainerId);
      if (rmContainer == null) {
         RMAuditLogger.logFailure(application.getUser(),
             AuditConstants.RELEASE_CONTAINER, 
             "Unauthorized access or invalid container", "CapacityScheduler",
             "Trying to release container not owned by app or with invalid id",
             application.getApplicationId(), releasedContainerId);
      }
      completedContainer(rmContainer,
          SchedulerUtils.createAbnormalContainerStatus(
              releasedContainerId, 
              SchedulerUtils.RELEASED_CONTAINER),
          RMContainerEventType.RELEASED);
    }
{code}

Current checks are not sufficient and we should prevent this..... thoughts?</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-942">YARN-942</a>.
     Major bug reported by Sandy Ryza and fixed by Akira AJISAKA (scheduler)<br>
     <b>In Fair Scheduler documentation, inconsistency on which properties have prefix</b><br>
     <blockquote>locality.threshold.node and locality.threshold.rack should have the yarn.scheduler.fair prefix like the items before them

http://hadoop.apache.org/docs/current/hadoop-yarn/hadoop-yarn-site/FairScheduler.html</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-910">YARN-910</a>.
     Major improvement reported by Sandy Ryza and fixed by Alejandro Abdelnur (nodemanager)<br>
     <b>Allow auxiliary services to listen for container starts and completions</b><br>
     <blockquote>Making container start and completion events available to auxiliary services would allow them to be resource-aware.  The auxiliary service would be able to notify a co-located service that is opportunistically using free capacity of allocation changes.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-906">YARN-906</a>.
     Major sub-task reported by Zhijie Shen and fixed by Zhijie Shen <br>
     <b>Cancelling ContainerLaunch#call at KILLING causes that the container cannot be completed</b><br>
     <blockquote>See https://builds.apache.org/job/PreCommit-YARN-Build/1435//testReport/org.apache.hadoop.yarn.client.api.impl/TestNMClient/testNMClientNoCleanupOnStop/</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-903">YARN-903</a>.
     Major bug reported by Abhishek Kapoor and fixed by Omkar Vinit Joshi (applications/distributed-shell)<br>
     <b>DistributedShell throwing Errors in logs after successfull completion</b><br>
     <blockquote>I have tried running DistributedShell and also used ApplicationMaster of the same for my test.
The application is successfully running through logging some errors which would be useful to fix.
Below are the logs from NodeManager and ApplicationMasterode

Log Snippet for NodeManager
=============================
2013-07-07 13:39:18,787 INFO org.apache.hadoop.yarn.server.nodemanager.NodeStatusUpdaterImpl: Connecting to ResourceManager at localhost/127.0.0.1:9990. current no. of attempts is 1
2013-07-07 13:39:19,050 INFO org.apache.hadoop.yarn.server.nodemanager.security.NMContainerTokenSecretManager: Rolling master-key for container-tokens, got key with id -325382586
2013-07-07 13:39:19,052 INFO org.apache.hadoop.yarn.server.nodemanager.security.NMTokenSecretManagerInNM: Rolling master-key for nm-tokens, got key with id :1005046570
2013-07-07 13:39:19,053 INFO org.apache.hadoop.yarn.server.nodemanager.NodeStatusUpdaterImpl: Registered with ResourceManager as sunny-Inspiron:9993 with total resource of &lt;memory:10240, vCores:8&gt;
2013-07-07 13:39:19,053 INFO org.apache.hadoop.yarn.server.nodemanager.NodeStatusUpdaterImpl: Notifying ContainerManager to unblock new container-requests
2013-07-07 13:39:35,256 INFO SecurityLogger.org.apache.hadoop.ipc.Server: Auth successful for appattempt_1373184544832_0001_000001 (auth:SIMPLE)
2013-07-07 13:39:35,492 INFO org.apache.hadoop.yarn.server.nodemanager.containermanager.ContainerManagerImpl: Start request for container_1373184544832_0001_01_000001 by user sunny
2013-07-07 13:39:35,507 INFO org.apache.hadoop.yarn.server.nodemanager.containermanager.ContainerManagerImpl: Creating a new application reference for app application_1373184544832_0001
2013-07-07 13:39:35,511 INFO org.apache.hadoop.yarn.server.nodemanager.NMAuditLogger: USER=sunny	IP=127.0.0.1	OPERATION=Start Container Request	TARGET=ContainerManageImpl	RESULT=SUCCESS	APPID=application_1373184544832_0001	CONTAINERID=container_1373184544832_0001_01_000001
2013-07-07 13:39:35,511 INFO org.apache.hadoop.yarn.server.nodemanager.containermanager.application.Application: Application application_1373184544832_0001 transitioned from NEW to INITING
2013-07-07 13:39:35,512 INFO org.apache.hadoop.yarn.server.nodemanager.containermanager.application.Application: Adding container_1373184544832_0001_01_000001 to application application_1373184544832_0001
2013-07-07 13:39:35,518 INFO org.apache.hadoop.yarn.server.nodemanager.containermanager.application.Application: Application application_1373184544832_0001 transitioned from INITING to RUNNING
2013-07-07 13:39:35,528 INFO org.apache.hadoop.yarn.server.nodemanager.containermanager.container.Container: Container container_1373184544832_0001_01_000001 transitioned from NEW to LOCALIZING
2013-07-07 13:39:35,540 INFO org.apache.hadoop.yarn.server.nodemanager.containermanager.localizer.LocalizedResource: Resource hdfs://localhost:9000/application/test.jar transitioned from INIT to DOWNLOADING
2013-07-07 13:39:35,540 INFO org.apache.hadoop.yarn.server.nodemanager.containermanager.localizer.ResourceLocalizationService: Created localizer for container_1373184544832_0001_01_000001
2013-07-07 13:39:35,675 INFO org.apache.hadoop.yarn.server.nodemanager.containermanager.localizer.ResourceLocalizationService: Writing credentials to the nmPrivate file /home/sunny/Hadoop2/hadoopdata/nodemanagerdata/nmPrivate/container_1373184544832_0001_01_000001.tokens. Credentials list: 
2013-07-07 13:39:35,694 INFO org.apache.hadoop.yarn.server.nodemanager.DefaultContainerExecutor: Initializing user sunny
2013-07-07 13:39:35,803 INFO org.apache.hadoop.yarn.server.nodemanager.DefaultContainerExecutor: Copying from /home/sunny/Hadoop2/hadoopdata/nodemanagerdata/nmPrivate/container_1373184544832_0001_01_000001.tokens to /home/sunny/Hadoop2/hadoopdata/nodemanagerdata/usercache/sunny/appcache/application_1373184544832_0001/container_1373184544832_0001_01_000001.tokens
2013-07-07 13:39:35,803 INFO org.apache.hadoop.yarn.server.nodemanager.DefaultContainerExecutor: CWD set to /home/sunny/Hadoop2/hadoopdata/nodemanagerdata/usercache/sunny/appcache/application_1373184544832_0001 = file:/home/sunny/Hadoop2/hadoopdata/nodemanagerdata/usercache/sunny/appcache/application_1373184544832_0001
2013-07-07 13:39:36,136 INFO org.apache.hadoop.yarn.server.nodemanager.NodeStatusUpdaterImpl: Sending out status for container: container_id {, app_attempt_id {, application_id {, id: 1, cluster_timestamp: 1373184544832, }, attemptId: 1, }, id: 1, }, state: C_RUNNING, diagnostics: "", exit_status: -1000, 
2013-07-07 13:39:36,406 INFO org.apache.hadoop.yarn.server.nodemanager.containermanager.localizer.LocalizedResource: Resource hdfs://localhost:9000/application/test.jar transitioned from DOWNLOADING to LOCALIZED
2013-07-07 13:39:36,409 INFO org.apache.hadoop.yarn.server.nodemanager.containermanager.container.Container: Container container_1373184544832_0001_01_000001 transitioned from LOCALIZING to LOCALIZED
2013-07-07 13:39:36,524 INFO org.apache.hadoop.yarn.server.nodemanager.containermanager.container.Container: Container container_1373184544832_0001_01_000001 transitioned from LOCALIZED to RUNNING
2013-07-07 13:39:36,692 INFO org.apache.hadoop.yarn.server.nodemanager.DefaultContainerExecutor: launchContainer: [bash, -c, /home/sunny/Hadoop2/hadoopdata/nodemanagerdata/usercache/sunny/appcache/application_1373184544832_0001/container_1373184544832_0001_01_000001/default_container_executor.sh]
2013-07-07 13:39:37,144 INFO org.apache.hadoop.yarn.server.nodemanager.NodeStatusUpdaterImpl: Sending out status for container: container_id {, app_attempt_id {, application_id {, id: 1, cluster_timestamp: 1373184544832, }, attemptId: 1, }, id: 1, }, state: C_RUNNING, diagnostics: "", exit_status: -1000, 
2013-07-07 13:39:38,147 INFO org.apache.hadoop.yarn.server.nodemanager.NodeStatusUpdaterImpl: Sending out status for container: container_id {, app_attempt_id {, application_id {, id: 1, cluster_timestamp: 1373184544832, }, attemptId: 1, }, id: 1, }, state: C_RUNNING, diagnostics: "", exit_status: -1000, 
2013-07-07 13:39:39,151 INFO org.apache.hadoop.yarn.server.nodemanager.NodeStatusUpdaterImpl: Sending out status for container: container_id {, app_attempt_id {, application_id {, id: 1, cluster_timestamp: 1373184544832, }, attemptId: 1, }, id: 1, }, state: C_RUNNING, diagnostics: "", exit_status: -1000, 
2013-07-07 13:39:39,209 INFO org.apache.hadoop.yarn.server.nodemanager.containermanager.monitor.ContainersMonitorImpl: Starting resource-monitoring for container_1373184544832_0001_01_000001
2013-07-07 13:39:39,259 WARN org.apache.hadoop.yarn.util.ProcfsBasedProcessTree: Unexpected: procfs stat file is not in the expected format for process with pid 11552
2013-07-07 13:39:39,264 INFO org.apache.hadoop.yarn.server.nodemanager.containermanager.monitor.ContainersMonitorImpl: Memory usage of ProcessTree 29524 for container-id container_1373184544832_0001_01_000001: 79.9 MB of 1 GB physical memory used; 2.2 GB of 2.1 GB virtual memory used
2013-07-07 13:39:39,645 INFO SecurityLogger.org.apache.hadoop.ipc.Server: Auth successful for appattempt_1373184544832_0001_000001 (auth:SIMPLE)
2013-07-07 13:39:39,651 INFO org.apache.hadoop.yarn.server.nodemanager.containermanager.ContainerManagerImpl: Start request for container_1373184544832_0001_01_000002 by user sunny
2013-07-07 13:39:39,651 INFO org.apache.hadoop.yarn.server.nodemanager.NMAuditLogger: USER=sunny	IP=127.0.0.1	OPERATION=Start Container Request	TARGET=ContainerManageImpl	RESULT=SUCCESS	APPID=application_1373184544832_0001	CONTAINERID=container_1373184544832_0001_01_000002
2013-07-07 13:39:39,651 INFO org.apache.hadoop.yarn.server.nodemanager.containermanager.application.Application: Adding container_1373184544832_0001_01_000002 to application application_1373184544832_0001
2013-07-07 13:39:39,652 INFO org.apache.hadoop.yarn.server.nodemanager.containermanager.container.Container: Container container_1373184544832_0001_01_000002 transitioned from NEW to LOCALIZED
2013-07-07 13:39:39,660 INFO org.apache.hadoop.yarn.server.nodemanager.containermanager.ContainerManagerImpl: Getting container-status for container_1373184544832_0001_01_000002
2013-07-07 13:39:39,661 INFO org.apache.hadoop.yarn.server.nodemanager.containermanager.ContainerManagerImpl: Returning container_id {, app_attempt_id {, application_id {, id: 1, cluster_timestamp: 1373184544832, }, attemptId: 1, }, id: 2, }, state: C_RUNNING, diagnostics: "", exit_status: -1000, 
2013-07-07 13:39:39,728 INFO org.apache.hadoop.yarn.server.nodemanager.containermanager.container.Container: Container container_1373184544832_0001_01_000002 transitioned from LOCALIZED to RUNNING
2013-07-07 13:39:39,873 INFO org.apache.hadoop.yarn.server.nodemanager.DefaultContainerExecutor: launchContainer: [bash, -c, /home/sunny/Hadoop2/hadoopdata/nodemanagerdata/usercache/sunny/appcache/application_1373184544832_0001/container_1373184544832_0001_01_000002/default_container_executor.sh]
2013-07-07 13:39:39,898 INFO org.apache.hadoop.yarn.server.nodemanager.containermanager.launcher.ContainerLaunch: Container container_1373184544832_0001_01_000002 succeeded 
2013-07-07 13:39:39,899 INFO org.apache.hadoop.yarn.server.nodemanager.containermanager.container.Container: Container container_1373184544832_0001_01_000002 transitioned from RUNNING to EXITED_WITH_SUCCESS
2013-07-07 13:39:39,900 INFO org.apache.hadoop.yarn.server.nodemanager.containermanager.launcher.ContainerLaunch: Cleaning up container container_1373184544832_0001_01_000002
2013-07-07 13:39:39,942 INFO org.apache.hadoop.yarn.server.nodemanager.NMAuditLogger: USER=sunny	OPERATION=Container Finished - Succeeded	TARGET=ContainerImpl	RESULT=SUCCESS	APPID=application_1373184544832_0001	CONTAINERID=container_1373184544832_0001_01_000002
2013-07-07 13:39:39,943 INFO org.apache.hadoop.yarn.server.nodemanager.containermanager.container.Container: Container container_1373184544832_0001_01_000002 transitioned from EXITED_WITH_SUCCESS to DONE
2013-07-07 13:39:39,944 INFO org.apache.hadoop.yarn.server.nodemanager.containermanager.application.Application: Removing container_1373184544832_0001_01_000002 from application application_1373184544832_0001
2013-07-07 13:39:40,155 INFO org.apache.hadoop.yarn.server.nodemanager.NodeStatusUpdaterImpl: Sending out status for container: container_id {, app_attempt_id {, application_id {, id: 1, cluster_timestamp: 1373184544832, }, attemptId: 1, }, id: 1, }, state: C_RUNNING, diagnostics: "", exit_status: -1000, 
2013-07-07 13:39:40,157 INFO org.apache.hadoop.yarn.server.nodemanager.NodeStatusUpdaterImpl: Sending out status for container: container_id {, app_attempt_id {, application_id {, id: 1, cluster_timestamp: 1373184544832, }, attemptId: 1, }, id: 2, }, state: C_COMPLETE, diagnostics: "", exit_status: 0, 
2013-07-07 13:39:40,158 INFO org.apache.hadoop.yarn.server.nodemanager.NodeStatusUpdaterImpl: Removed completed container container_1373184544832_0001_01_000002
2013-07-07 13:39:40,683 INFO org.apache.hadoop.yarn.server.nodemanager.containermanager.ContainerManagerImpl: Getting container-status for container_1373184544832_0001_01_000002
2013-07-07 13:39:40,686 ERROR org.apache.hadoop.security.UserGroupInformation: PriviledgedActionException as:appattempt_1373184544832_0001_000001 (auth:TOKEN) cause:org.apache.hadoop.yarn.exceptions.YarnException: Container container_1373184544832_0001_01_000002 is not handled by this NodeManager
2013-07-07 13:39:40,687 INFO org.apache.hadoop.ipc.Server: IPC Server handler 4 on 9993, call org.apache.hadoop.yarn.api.ContainerManagementProtocolPB.stopContainer from 127.0.0.1:51085: error: org.apache.hadoop.yarn.exceptions.YarnException: Container container_1373184544832_0001_01_000002 is not handled by this NodeManager
org.apache.hadoop.yarn.exceptions.YarnException: Container container_1373184544832_0001_01_000002 is not handled by this NodeManager
	at org.apache.hadoop.yarn.ipc.RPCUtil.getRemoteException(RPCUtil.java:45)
	at org.apache.hadoop.yarn.server.nodemanager.containermanager.ContainerManagerImpl.authorizeGetAndStopContainerRequest(ContainerManagerImpl.java:614)
	at org.apache.hadoop.yarn.server.nodemanager.containermanager.ContainerManagerImpl.stopContainer(ContainerManagerImpl.java:538)
	at org.apache.hadoop.yarn.api.impl.pb.service.ContainerManagementProtocolPBServiceImpl.stopContainer(ContainerManagementProtocolPBServiceImpl.java:88)
	at org.apache.hadoop.yarn.proto.ContainerManagementProtocol$ContainerManagementProtocolService$2.callBlockingMethod(ContainerManagementProtocol.java:85)
	at org.apache.hadoop.ipc.ProtobufRpcEngine$Server$ProtoBufRpcInvoker.call(ProtobufRpcEngine.java:605)
	at org.apache.hadoop.ipc.RPC$Server.call(RPC.java:1033)
	at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:1868)
	at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:1864)
	at java.security.AccessController.doPrivileged(Native Method)
	at javax.security.auth.Subject.doAs(Subject.java:396)
	at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1489)
	at org.apache.hadoop.ipc.Server$Handler.run(Server.java:1862)
2013-07-07 13:39:41,162 INFO org.apache.hadoop.yarn.server.nodemanager.NodeStatusUpdaterImpl: Sending out status for container: container_id {, app_attempt_id {, application_id {, id: 1, cluster_timestamp: 1373184544832, }, attemptId: 1, }, id: 1, }, state: C_RUNNING, diagnostics: "", exit_status: -1000, 
2013-07-07 13:39:41,691 INFO org.apache.hadoop.yarn.server.nodemanager.containermanager.launcher.ContainerLaunch: Container container_1373184544832_0001_01_000001 succeeded 
2013-07-07 13:39:41,692 INFO org.apache.hadoop.yarn.server.nodemanager.containermanager.container.Container: Container container_1373184544832_0001_01_000001 transitioned from RUNNING to EXITED_WITH_SUCCESS
2013-07-07 13:39:41,692 INFO org.apache.hadoop.yarn.server.nodemanager.containermanager.launcher.ContainerLaunch: Cleaning up container container_1373184544832_0001_01_000001
2013-07-07 13:39:41,714 INFO org.apache.hadoop.yarn.server.nodemanager.NMAuditLogger: USER=sunny	OPERATION=Container Finished - Succeeded	TARGET=ContainerImpl	RESULT=SUCCESS	APPID=application_1373184544832_0001	CONTAINERID=container_1373184544832_0001_01_000001
2013-07-07 13:39:41,714 INFO org.apache.hadoop.yarn.server.nodemanager.containermanager.container.Container: Container container_1373184544832_0001_01_000001 transitioned from EXITED_WITH_SUCCESS to DONE
2013-07-07 13:39:41,714 INFO org.apache.hadoop.yarn.server.nodemanager.containermanager.application.Application: Removing container_1373184544832_0001_01_000001 from application application_1373184544832_0001
2013-07-07 13:39:42,166 INFO org.apache.hadoop.yarn.server.nodemanager.NodeStatusUpdaterImpl: Sending out status for container: container_id {, app_attempt_id {, application_id {, id: 1, cluster_timestamp: 1373184544832, }, attemptId: 1, }, id: 1, }, state: C_COMPLETE, diagnostics: "", exit_status: 0, 
2013-07-07 13:39:42,166 INFO org.apache.hadoop.yarn.server.nodemanager.NodeStatusUpdaterImpl: Removed completed container container_1373184544832_0001_01_000001
2013-07-07 13:39:42,191 INFO SecurityLogger.org.apache.hadoop.ipc.Server: Auth successful for appattempt_1373184544832_0001_000001 (auth:SIMPLE)
2013-07-07 13:39:42,195 INFO org.apache.hadoop.yarn.server.nodemanager.containermanager.ContainerManagerImpl: Getting container-status for container_1373184544832_0001_01_000001
2013-07-07 13:39:42,196 ERROR org.apache.hadoop.security.UserGroupInformation: PriviledgedActionException as:appattempt_1373184544832_0001_000001 (auth:TOKEN) cause:org.apache.hadoop.yarn.exceptions.YarnException: Container container_1373184544832_0001_01_000001 is not handled by this NodeManager
2013-07-07 13:39:42,196 INFO org.apache.hadoop.ipc.Server: IPC Server handler 5 on 9993, call org.apache.hadoop.yarn.api.ContainerManagementProtocolPB.stopContainer from 127.0.0.1:51086: error: org.apache.hadoop.yarn.exceptions.YarnException: Container container_1373184544832_0001_01_000001 is not handled by this NodeManager
org.apache.hadoop.yarn.exceptions.YarnException: Container container_1373184544832_0001_01_000001 is not handled by this NodeManager
	at org.apache.hadoop.yarn.ipc.RPCUtil.getRemoteException(RPCUtil.java:45)
	at org.apache.hadoop.yarn.server.nodemanager.containermanager.ContainerManagerImpl.authorizeGetAndStopContainerRequest(ContainerManagerImpl.java:614)
	at org.apache.hadoop.yarn.server.nodemanager.containermanager.ContainerManagerImpl.stopContainer(ContainerManagerImpl.java:538)
	at org.apache.hadoop.yarn.api.impl.pb.service.ContainerManagementProtocolPBServiceImpl.stopContainer(ContainerManagementProtocolPBServiceImpl.java:88)
	at org.apache.hadoop.yarn.proto.ContainerManagementProtocol$ContainerManagementProtocolService$2.callBlockingMethod(ContainerManagementProtocol.java:85)
	at org.apache.hadoop.ipc.ProtobufRpcEngine$Server$ProtoBufRpcInvoker.call(ProtobufRpcEngine.java:605)
	at org.apache.hadoop.ipc.RPC$Server.call(RPC.java:1033)
	at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:1868)
	at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:1864)
	at java.security.AccessController.doPrivileged(Native Method)
	at javax.security.auth.Subject.doAs(Subject.java:396)
	at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1489)
	at org.apache.hadoop.ipc.Server$Handler.run(Server.java:1862)
2013-07-07 13:39:42,264 INFO org.apache.hadoop.yarn.server.nodemanager.containermanager.monitor.ContainersMonitorImpl: Starting resource-monitoring for container_1373184544832_0001_01_000002
2013-07-07 13:39:42,265 INFO org.apache.hadoop.yarn.server.nodemanager.containermanager.monitor.ContainersMonitorImpl: Stopping resource-monitoring for container_1373184544832_0001_01_000002
2013-07-07 13:39:42,265 INFO org.apache.hadoop.yarn.server.nodemanager.containermanager.monitor.ContainersMonitorImpl: Stopping resource-monitoring for container_1373184544832_0001_01_000001
2013-07-07 13:39:43,173 INFO org.apache.hadoop.yarn.server.nodemanager.containermanager.application.Application: Application application_1373184544832_0001 transitioned from RUNNING to APPLICATION_RESOURCES_CLEANINGUP
2013-07-07 13:39:43,174 INFO org.apache.hadoop.yarn.server.nodemanager.containermanager.AuxServices: Got event APPLICATION_STOP for appId application_1373184544832_0001
2013-07-07 13:39:43,180 INFO org.apache.hadoop.yarn.server.nodemanager.containermanager.application.Application: Application application_1373184544832_0001 transitioned from APPLICATION_RESOURCES_CLEANINGUP to FINISHED
2013-07-07 13:39:43,180 INFO org.apache.hadoop.yarn.server.nodemanager.containermanager.loghandler.NonAggregatingLogHandler: Scheduling Log Deletion for application: application_1373184544832_0001, with delay of 10800 seconds


Log Snippet for Application Manager
==================================
13/07/07 13:39:36 INFO client.SimpleApplicationMaster: Initializing ApplicationMaster
13/07/07 13:39:37 INFO client.SimpleApplicationMaster: Application master for app, appId=1, clustertimestamp=1373184544832, attemptId=1
13/07/07 13:39:37 INFO client.SimpleApplicationMaster: Starting ApplicationMaster
13/07/07 13:39:37 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
13/07/07 13:39:37 INFO impl.NMClientAsyncImpl: Upper bound of the thread pool size is 500
13/07/07 13:39:37 INFO impl.ContainerManagementProtocolProxy: yarn.client.max-nodemanagers-proxies : 500
13/07/07 13:39:37 INFO client.SimpleApplicationMaster: Max mem capabililty of resources in this cluster 8192
13/07/07 13:39:37 INFO client.SimpleApplicationMaster: Requested container ask: Capability[&lt;memory:100, vCores:0&gt;]Priority[0]ContainerCount[1]
13/07/07 13:39:39 INFO client.SimpleApplicationMaster: Got response from RM for container ask, allocatedCnt=1
13/07/07 13:39:39 INFO client.SimpleApplicationMaster: Launching shell command on a new container., containerId=container_1373184544832_0001_01_000002, containerNode=sunny-Inspiron:9993, containerNodeURI=sunny-Inspiron:8042, containerResourceMemory1024
13/07/07 13:39:39 INFO client.SimpleApplicationMaster: Setting up container launch container for containerid=container_1373184544832_0001_01_000002
13/07/07 13:39:39 INFO impl.NMClientAsyncImpl: Processing Event EventType: START_CONTAINER for Container container_1373184544832_0001_01_000002
13/07/07 13:39:39 INFO impl.ContainerManagementProtocolProxy: Opening proxy : sunny-Inspiron:9993
13/07/07 13:39:39 INFO client.SimpleApplicationMaster: Succeeded to start Container container_1373184544832_0001_01_000002
13/07/07 13:39:39 INFO impl.NMClientAsyncImpl: Processing Event EventType: QUERY_CONTAINER for Container container_1373184544832_0001_01_000002
13/07/07 13:39:40 INFO client.SimpleApplicationMaster: Got response from RM for container ask, completedCnt=1
13/07/07 13:39:40 INFO client.SimpleApplicationMaster: Got container status for containerID=container_1373184544832_0001_01_000002, state=COMPLETE, exitStatus=0, diagnostics=
13/07/07 13:39:40 INFO client.SimpleApplicationMaster: Container completed successfully., containerId=container_1373184544832_0001_01_000002
13/07/07 13:39:40 INFO client.SimpleApplicationMaster: Application completed. Stopping running containers
13/07/07 13:39:40 ERROR impl.NMClientImpl: Failed to stop Container container_1373184544832_0001_01_000002when stopping NMClientImpl
13/07/07 13:39:40 INFO impl.ContainerManagementProtocolProxy: Closing proxy : sunny-Inspiron:9993
13/07/07 13:39:40 INFO client.SimpleApplicationMaster: Application completed. Signalling finish to RM
13/07/07 13:39:41 INFO impl.AMRMClientAsyncImpl: Interrupted while waiting for queue
java.lang.InterruptedException
	at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.reportInterruptAfterWait(AbstractQueuedSynchronizer.java:1899)
	at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1934)
	at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:399)
	at org.apache.hadoop.yarn.client.api.async.impl.AMRMClientAsyncImpl$CallbackHandlerThread.run(AMRMClientAsyncImpl.java:281)
13/07/07 13:39:41 INFO client.SimpleApplicationMaster: Application Master completed successfully. exiting


</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-881">YARN-881</a>.
     Major bug reported by Jian He and fixed by Jian He <br>
     <b>Priority#compareTo method seems to be wrong.</b><br>
     <blockquote>if lower int value means higher priority, shouldn't we "return other.getPriority() - this.getPriority() " </blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-771">YARN-771</a>.
     Major sub-task reported by Bikas Saha and fixed by Junping Du <br>
     <b>AMRMClient  support for resource blacklisting</b><br>
     <blockquote>After YARN-750 AMRMClient should support blacklisting via the new YARN API's</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-758">YARN-758</a>.
     Minor improvement reported by Bikas Saha and fixed by Karthik Kambatla <br>
     <b>Augment MockNM to use multiple cores</b><br>
     <blockquote>YARN-757 got fixed by changing the scheduler from Fair to default (which is capacity).</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-707">YARN-707</a>.
     Blocker improvement reported by Bikas Saha and fixed by Jason Lowe <br>
     <b>Add user info in the YARN ClientToken</b><br>
     <blockquote>If user info is present in the client token then it can be used to do limited authz in the AM.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-696">YARN-696</a>.
     Major improvement reported by Trevor Lorimer and fixed by Trevor Lorimer (resourcemanager)<br>
     <b>Enable multiple states to to be specified in Resource Manager apps REST call</b><br>
     <blockquote>Within the YARN Resource Manager REST API the GET call which returns all Applications can be filtered by a single State query parameter (http://&lt;rm http address:port&gt;/ws/v1/cluster/apps). 

There are 8 possible states (New, Submitted, Accepted, Running, Finishing, Finished, Failed, Killed), if no state parameter is specified all states are returned, however if a sub-set of states is required then multiple REST calls are required (max. of 7).

The proposal is to be able to specify multiple states in a single REST call.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-643">YARN-643</a>.
     Major bug reported by Jian He and fixed by Xuan Gong <br>
     <b>WHY appToken is removed both in BaseFinalTransition and AMUnregisteredTransition AND clientToken is removed in FinalTransition and not BaseFinalTransition</b><br>
     <blockquote>The jira is tracking why appToken and clientToAMToken is removed separately, and why they are distributed in different transitions, ideally there may be a common place where these two tokens can be removed at the same time. </blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-602">YARN-602</a>.
     Major bug reported by Xuan Gong and fixed by Kenji Kikushima <br>
     <b>NodeManager should mandatorily set some Environment variables into every containers that it launches</b><br>
     <blockquote>NodeManager should mandatorily set some Environment variables into every containers that it launches, such as Environment.user, Environment.pwd. If both users and NodeManager set those variables, the value set by NM should be used </blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-589">YARN-589</a>.
     Major improvement reported by Sandy Ryza and fixed by Sandy Ryza (scheduler)<br>
     <b>Expose a REST API for monitoring the fair scheduler</b><br>
     <blockquote>The fair scheduler should have an HTTP interface that exposes information such as applications per queue, fair shares, demands, current allocations.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-573">YARN-573</a>.
     Critical sub-task reported by Omkar Vinit Joshi and fixed by Omkar Vinit Joshi <br>
     <b>Shared data structures in Public Localizer and Private Localizer are not Thread safe.</b><br>
     <blockquote>PublicLocalizer
1) pending accessed by addResource (part of event handling) and run method (as a part of PublicLocalizer.run() ).

PrivateLocalizer
1) pending accessed by addResource (part of event handling) and findNextResource (i.remove()). Also update method should be fixed. It too is sharing pending list.
</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-540">YARN-540</a>.
     Major sub-task reported by Jian He and fixed by Jian He (resourcemanager)<br>
     <b>Race condition causing RM to potentially relaunch already unregistered AMs on RM restart</b><br>
     <blockquote>When job succeeds and successfully call finishApplicationMaster, RM shutdown and restart-dispatcher is stopped before it can process REMOVE_APP event. The next time RM comes back, it will reload the existing state files even though the job is succeeded</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-502">YARN-502</a>.
     Major sub-task reported by Lohit Vijayarenu and fixed by Mayank Bansal <br>
     <b>RM crash with NPE on NODE_REMOVED event with FairScheduler</b><br>
     <blockquote>While running some test and adding/removing nodes, we see RM crashed with the below exception. We are testing with fair scheduler and running hadoop-2.0.3-alpha

{noformat}
2013-03-22 18:54:27,015 INFO org.apache.hadoop.yarn.server.resourcemanager.rmnode.RMNodeImpl: Deactivating Node YYYY:55680 as it is now LOST
2013-03-22 18:54:27,015 INFO org.apache.hadoop.yarn.server.resourcemanager.rmnode.RMNodeImpl: YYYY:55680 Node Transitioned from UNHEALTHY to LOST
2013-03-22 18:54:27,015 FATAL org.apache.hadoop.yarn.server.resourcemanager.ResourceManager: Error in handling event type NODE_REMOVED to the scheduler
java.lang.NullPointerException
        at org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.FairScheduler.removeNode(FairScheduler.java:619)
        at org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.FairScheduler.handle(FairScheduler.java:856)
        at org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.FairScheduler.handle(FairScheduler.java:98)
        at org.apache.hadoop.yarn.server.resourcemanager.ResourceManager$SchedulerEventDispatcher$EventProcessor.run(ResourceManager.java:375)
        at java.lang.Thread.run(Thread.java:662)
2013-03-22 18:54:27,016 INFO org.apache.hadoop.yarn.server.resourcemanager.ResourceManager: Exiting, bbye..
2013-03-22 18:54:27,020 INFO org.mortbay.log: Stopped SelectChannelConnector@XXXX:50030
{noformat}</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-337">YARN-337</a>.
     Major bug reported by Jason Lowe and fixed by Jason Lowe (resourcemanager)<br>
     <b>RM handles killed application tracking URL poorly</b><br>
     <blockquote>When the ResourceManager kills an application, it leaves the proxy URL redirecting to the original tracking URL for the application even though the ApplicationMaster is no longer there to service it.  It should redirect it somewhere more useful, like the RM's web page for the application, where the user can find that the application was killed and links to the AM logs.

In addition, sometimes the AM during teardown from the kill can attempt to unregister and provide an updated tracking URL, but unfortunately the RM has "forgotten" the AM due to the kill and refuses to process the unregistration.  Instead it logs:

{noformat}
2013-01-09 17:37:49,671 [IPC Server handler 2 on 8030] ERROR
org.apache.hadoop.yarn.server.resourcemanager.ApplicationMasterService: AppAttemptId doesnt exist in cache appattempt_1357575694478_28614_000001
{noformat}

It should go ahead and process the unregistration to update the tracking URL since the application offered it.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-292">YARN-292</a>.
     Major sub-task reported by Devaraj K and fixed by Zhijie Shen (resourcemanager)<br>
     <b>ResourceManager throws ArrayIndexOutOfBoundsException while handling CONTAINER_ALLOCATED for application attempt</b><br>
     <blockquote>{code:xml}
2012-12-26 08:41:15,030 ERROR org.apache.hadoop.yarn.server.resourcemanager.scheduler.fifo.FifoScheduler: Calling allocate on removed or non existant application appattempt_1356385141279_49525_000001
2012-12-26 08:41:15,031 ERROR org.apache.hadoop.yarn.server.resourcemanager.ResourceManager: Error in handling event type CONTAINER_ALLOCATED for applicationAttempt application_1356385141279_49525
java.lang.ArrayIndexOutOfBoundsException: 0
	at java.util.Arrays$ArrayList.get(Arrays.java:3381)
	at org.apache.hadoop.yarn.server.resourcemanager.rmapp.attempt.RMAppAttemptImpl$AMContainerAllocatedTransition.transition(RMAppAttemptImpl.java:655)
	at org.apache.hadoop.yarn.server.resourcemanager.rmapp.attempt.RMAppAttemptImpl$AMContainerAllocatedTransition.transition(RMAppAttemptImpl.java:644)
	at org.apache.hadoop.yarn.state.StateMachineFactory$SingleInternalArc.doTransition(StateMachineFactory.java:357)
	at org.apache.hadoop.yarn.state.StateMachineFactory.doTransition(StateMachineFactory.java:298)
	at org.apache.hadoop.yarn.state.StateMachineFactory.access$300(StateMachineFactory.java:43)
	at org.apache.hadoop.yarn.state.StateMachineFactory$InternalStateMachine.doTransition(StateMachineFactory.java:443)
	at org.apache.hadoop.yarn.server.resourcemanager.rmapp.attempt.RMAppAttemptImpl.handle(RMAppAttemptImpl.java:490)
	at org.apache.hadoop.yarn.server.resourcemanager.rmapp.attempt.RMAppAttemptImpl.handle(RMAppAttemptImpl.java:80)
	at org.apache.hadoop.yarn.server.resourcemanager.ResourceManager$ApplicationAttemptEventDispatcher.handle(ResourceManager.java:433)
	at org.apache.hadoop.yarn.server.resourcemanager.ResourceManager$ApplicationAttemptEventDispatcher.handle(ResourceManager.java:414)
	at org.apache.hadoop.yarn.event.AsyncDispatcher.dispatch(AsyncDispatcher.java:126)
	at org.apache.hadoop.yarn.event.AsyncDispatcher$1.run(AsyncDispatcher.java:75)
	at java.lang.Thread.run(Thread.java:662)
 {code}</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-107">YARN-107</a>.
     Major bug reported by Devaraj K and fixed by Xuan Gong (resourcemanager)<br>
     <b>ClientRMService.forceKillApplication() should handle the non-RUNNING applications properly</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5497">MAPREDUCE-5497</a>.
     Major bug reported by Jian He and fixed by Jian He <br>
     <b>'5s sleep'  in MRAppMaster.shutDownJob is only needed before stopping ClientService</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5493">MAPREDUCE-5493</a>.
     Blocker bug reported by Jason Lowe and fixed by Jason Lowe (mrv2)<br>
     <b>In-memory map outputs can be leaked after shuffle completes</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5483">MAPREDUCE-5483</a>.
     Major bug reported by Alejandro Abdelnur and fixed by Robert Kanter (distcp)<br>
     <b>revert MAPREDUCE-5357</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5478">MAPREDUCE-5478</a>.
     Minor improvement reported by Sandy Ryza and fixed by Sandy Ryza (examples)<br>
     <b>TeraInputFormat unnecessarily defines its own FileSplit subclass</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5476">MAPREDUCE-5476</a>.
     Blocker bug reported by Jian He and fixed by Jian He <br>
     <b>Job can fail when RM restarts after staging dir is cleaned but before MR successfully unregister with RM</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5475">MAPREDUCE-5475</a>.
     Blocker bug reported by Jason Lowe and fixed by Jason Lowe (mr-am , mrv2)<br>
     <b>MRClientService does not verify ACLs properly</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5470">MAPREDUCE-5470</a>.
     Major bug reported by Chris Nauroth and fixed by Sandy Ryza <br>
     <b>LocalJobRunner does not work on Windows.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5468">MAPREDUCE-5468</a>.
     Blocker bug reported by Yesha Vora and fixed by Vinod Kumar Vavilapalli <br>
     <b>AM recovery does not work for map only jobs</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5466">MAPREDUCE-5466</a>.
     Blocker bug reported by Yesha Vora and fixed by Jian He <br>
     <b>Historyserver does not refresh the result of restarted jobs after RM restart</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5462">MAPREDUCE-5462</a>.
     Major sub-task reported by Sandy Ryza and fixed by Sandy Ryza (performance , task)<br>
     <b>In map-side sort, swap entire meta entries instead of indexes for better cache performance </b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5454">MAPREDUCE-5454</a>.
     Major bug reported by Karthik Kambatla and fixed by Karthik Kambatla (test)<br>
     <b>TestDFSIO fails intermittently on JDK7</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5446">MAPREDUCE-5446</a>.
     Major bug reported by Jason Lowe and fixed by Jason Lowe (mrv2 , test)<br>
     <b>TestJobHistoryEvents and TestJobHistoryParsing have race conditions</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5441">MAPREDUCE-5441</a>.
     Major bug reported by Rohith Sharma K S and fixed by Jian He (applicationmaster , client)<br>
     <b>JobClient exit whenever RM issue Reboot command to 1st attempt App Master.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5440">MAPREDUCE-5440</a>.
     Major bug reported by Robert Parker and fixed by Robert Parker (mrv2)<br>
     <b>TestCopyCommitter Fails on JDK7</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5428">MAPREDUCE-5428</a>.
     Major bug reported by Jason Lowe and fixed by Karthik Kambatla (jobhistoryserver , mrv2)<br>
     <b>HistoryFileManager doesn't stop threads when service is stopped</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5425">MAPREDUCE-5425</a>.
     Major bug reported by Ashwin Shankar and fixed by Robert Parker (jobhistoryserver)<br>
     <b>Junit in TestJobHistoryServer failing in jdk 7</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5414">MAPREDUCE-5414</a>.
     Major bug reported by Nemon Lou and fixed by Nemon Lou (test)<br>
     <b>TestTaskAttempt fails jdk7 with NullPointerException</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5385">MAPREDUCE-5385</a>.
     Blocker bug reported by Omkar Vinit Joshi and fixed by Omkar Vinit Joshi <br>
     <b>JobContext cache files api are broken</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5379">MAPREDUCE-5379</a>.
     Major improvement reported by Sandy Ryza and fixed by Karthik Kambatla (job submission , security)<br>
     <b>Include token tracking ids in jobconf</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5367">MAPREDUCE-5367</a>.
     Major improvement reported by Sandy Ryza and fixed by Sandy Ryza <br>
     <b>Local jobs all use same local working directory</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5358">MAPREDUCE-5358</a>.
     Major bug reported by Devaraj K and fixed by Devaraj K (mr-am)<br>
     <b>MRAppMaster throws invalid transitions for JobImpl</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5317">MAPREDUCE-5317</a>.
     Major bug reported by Ravi Prakash and fixed by Ravi Prakash (mrv2)<br>
     <b>Stale files left behind for failed jobs</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5251">MAPREDUCE-5251</a>.
     Major bug reported by Jason Lowe and fixed by Ashwin Shankar (mrv2)<br>
     <b>Reducer should not implicate map attempt if it has insufficient space to fetch map output</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5164">MAPREDUCE-5164</a>.
     Major bug reported by Nemon Lou and fixed by Nemon Lou <br>
     <b>command  "mapred job" and "mapred queue" omit HADOOP_CLIENT_OPTS </b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5020">MAPREDUCE-5020</a>.
     Major bug reported by Trevor Robinson and fixed by Trevor Robinson (client)<br>
     <b>Compile failure with JDK8</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5001">MAPREDUCE-5001</a>.
     Major bug reported by Brock Noland and fixed by Sandy Ryza <br>
     <b>LocalJobRunner has race condition resulting in job failures </b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3193">MAPREDUCE-3193</a>.
     Major bug reported by Ramgopal N and fixed by Devaraj K (mrv1 , mrv2)<br>
     <b>FileInputFormat doesn't read files recursively in the input path dir</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-1981">MAPREDUCE-1981</a>.
     Major improvement reported by Hairong Kuang and fixed by Hairong Kuang (job submission)<br>
     <b>Improve getSplits performance by using listLocatedStatus</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5199">HDFS-5199</a>.
     Major sub-task reported by Brandon Li and fixed by Brandon Li (nfs)<br>
     <b>Add more debug trace for NFS READ and WRITE</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5192">HDFS-5192</a>.
     Minor bug reported by Jing Zhao and fixed by Jing Zhao <br>
     <b>NameNode may fail to start when dfs.client.test.drop.namenode.response.number is set</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5159">HDFS-5159</a>.
     Major bug reported by Aaron T. Myers and fixed by Aaron T. Myers (namenode)<br>
     <b>Secondary NameNode fails to checkpoint if error occurs downloading edits on first checkpoint</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5150">HDFS-5150</a>.
     Blocker bug reported by Kihwal Lee and fixed by Kihwal Lee <br>
     <b>Allow per NN SPN for internal SPNEGO.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5140">HDFS-5140</a>.
     Blocker bug reported by Arpit Gupta and fixed by Jing Zhao (ha)<br>
     <b>Too many safemode monitor threads being created in the standby namenode causing it to fail with out of memory error</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5136">HDFS-5136</a>.
     Major sub-task reported by Brandon Li and fixed by Brandon Li (nfs)<br>
     <b>MNT EXPORT should give the full group list which can mount the exports</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5132">HDFS-5132</a>.
     Blocker bug reported by Arpit Gupta and fixed by Kihwal Lee (namenode)<br>
     <b>Deadlock in NameNode between SafeModeMonitor#run and DatanodeManager#handleHeartbeat</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5128">HDFS-5128</a>.
     Critical improvement reported by Kihwal Lee and fixed by Kihwal Lee <br>
     <b>Allow multiple net interfaces to be used with HA namenode RPC server</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5124">HDFS-5124</a>.
     Blocker bug reported by Deepesh Khandelwal and fixed by Daryn Sharp (namenode)<br>
     <b>DelegationTokenSecretManager#retrievePassword can cause deadlock in NameNode</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5118">HDFS-5118</a>.
     Major new feature reported by Jing Zhao and fixed by Jing Zhao <br>
     <b>Provide testing support for DFSClient to drop RPC responses</b><br>
     <blockquote>Used for testing when NameNode HA is enabled. Users can use a new configuration property "dfs.client.test.drop.namenode.response.number" to specify the number of responses that DFSClient will drop in each RPC call. This feature can help testing functionalities such as NameNode retry cache.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5111">HDFS-5111</a>.
     Minor bug reported by Jing Zhao and fixed by Jing Zhao (snapshots)<br>
     <b>Remove duplicated error message for snapshot commands when processing invalid arguments</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5110">HDFS-5110</a>.
     Major sub-task reported by Brandon Li and fixed by Brandon Li (nfs)<br>
     <b>Change FSDataOutputStream to HdfsDataOutputStream for opened streams to fix type cast error</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5107">HDFS-5107</a>.
     Major sub-task reported by Brandon Li and fixed by Brandon Li (nfs)<br>
     <b>Fix array copy error in Readdir and Readdirplus responses</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5106">HDFS-5106</a>.
     Minor bug reported by Chuan Liu and fixed by Chuan Liu (test)<br>
     <b>TestDatanodeBlockScanner fails on Windows due to incorrect path format</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5105">HDFS-5105</a>.
     Minor bug reported by Chuan Liu and fixed by Chuan Liu <br>
     <b>TestFsck fails on Windows</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5104">HDFS-5104</a>.
     Major sub-task reported by Brandon Li and fixed by Brandon Li (nfs)<br>
     <b>Support dotdot name in NFS LOOKUP operation</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5103">HDFS-5103</a>.
     Minor bug reported by Chuan Liu and fixed by Chuan Liu (test)<br>
     <b>TestDirectoryScanner fails on Windows</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5102">HDFS-5102</a>.
     Major bug reported by Aaron T. Myers and fixed by Jing Zhao (snapshots)<br>
     <b>Snapshot names should not be allowed to contain slash characters</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5100">HDFS-5100</a>.
     Minor bug reported by Chuan Liu and fixed by Chuan Liu (test)<br>
     <b>TestNamenodeRetryCache fails on Windows due to incorrect cleanup</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5099">HDFS-5099</a>.
     Major bug reported by Chuan Liu and fixed by Chuan Liu (namenode)<br>
     <b>Namenode#copyEditLogSegmentsToSharedDir should close EditLogInputStreams upon finishing</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5091">HDFS-5091</a>.
     Minor bug reported by Jing Zhao and fixed by Jing Zhao <br>
     <b>Support for spnego keytab separate from the JournalNode keytab for secure HA</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5085">HDFS-5085</a>.
     Major sub-task reported by Brandon Li and fixed by Jing Zhao (nfs)<br>
     <b>Refactor o.a.h.nfs to support different types of authentications</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5080">HDFS-5080</a>.
     Major bug reported by Jing Zhao and fixed by Jing Zhao (ha , qjm)<br>
     <b>BootstrapStandby not working with QJM when the existing NN is active</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5078">HDFS-5078</a>.
     Major sub-task reported by Brandon Li and fixed by Brandon Li (nfs)<br>
     <b>Support file append in NFSv3 gateway to enable data streaming to HDFS</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5076">HDFS-5076</a>.
     Minor new feature reported by Jing Zhao and fixed by Jing Zhao <br>
     <b>Add MXBean methods to query NN's transaction information and JournalNode's journal status</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5071">HDFS-5071</a>.
     Major sub-task reported by Kihwal Lee and fixed by Brandon Li (nfs)<br>
     <b>Change hdfs-nfs parent project to hadoop-project</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5069">HDFS-5069</a>.
     Major sub-task reported by Brandon Li and fixed by Brandon Li (nfs)<br>
     <b>Include hadoop-nfs and hadoop-hdfs-nfs into hadoop dist for NFS deployment</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5067">HDFS-5067</a>.
     Major sub-task reported by Brandon Li and fixed by Brandon Li (nfs)<br>
     <b>Support symlink operations</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5061">HDFS-5061</a>.
     Major improvement reported by Arpit Agarwal and fixed by Arpit Agarwal (namenode)<br>
     <b>Make FSNameSystem#auditLoggers an unmodifiable list</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5055">HDFS-5055</a>.
     Blocker bug reported by Allen Wittenauer and fixed by Vinay (namenode)<br>
     <b>nn fails to download checkpointed image from snn in some setups</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5047">HDFS-5047</a>.
     Major bug reported by Kihwal Lee and fixed by Robert Parker (namenode)<br>
     <b>Supress logging of full stack trace of quota and lease exceptions</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5045">HDFS-5045</a>.
     Minor improvement reported by Jing Zhao and fixed by Jing Zhao <br>
     <b>Add more unit tests for retry cache to cover all AtMostOnce methods</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5043">HDFS-5043</a>.
     Major bug reported by Brandon Li and fixed by Brandon Li <br>
     <b>For HdfsFileStatus, set default value of childrenNum to -1 instead of 0 to avoid confusing applications</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5028">HDFS-5028</a>.
     Major bug reported by zhaoyunjiong and fixed by zhaoyunjiong <br>
     <b>LeaseRenewer throw java.util.ConcurrentModificationException when timeout</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4993">HDFS-4993</a>.
     Major bug reported by Kihwal Lee and fixed by Robert Parker <br>
     <b>fsck can fail if a file is renamed or deleted</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4962">HDFS-4962</a>.
     Minor sub-task reported by Tsz Wo (Nicholas), SZE and fixed by Tsz Wo (Nicholas), SZE (nfs)<br>
     <b>Use enum for nfs constants</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4947">HDFS-4947</a>.
     Major sub-task reported by Brandon Li and fixed by Jing Zhao (nfs)<br>
     <b>Add NFS server export table to control export by hostname or IP range</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4926">HDFS-4926</a>.
     Trivial improvement reported by Joseph Lorenzini and fixed by Vivek Ganesan (namenode)<br>
     <b>namenode webserver's page has a tooltip that is inconsistent with the datanode HTML link</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4905">HDFS-4905</a>.
     Minor improvement reported by Arpit Agarwal and fixed by Arpit Agarwal (tools)<br>
     <b>Add appendToFile command to "hdfs dfs"</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4898">HDFS-4898</a>.
     Minor bug reported by Eric Sirianni and fixed by Tsz Wo (Nicholas), SZE (namenode)<br>
     <b>BlockPlacementPolicyWithNodeGroup.chooseRemoteRack() fails to properly fallback to local rack</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4763">HDFS-4763</a>.
     Major sub-task reported by Brandon Li and fixed by Brandon Li (nfs)<br>
     <b>Add script changes/utility for starting NFS gateway</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4680">HDFS-4680</a>.
     Major bug reported by Andrew Wang and fixed by Andrew Wang (namenode , security)<br>
     <b>Audit logging of delegation tokens for MR tracing</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4632">HDFS-4632</a>.
     Major bug reported by Chris Nauroth and fixed by Chuan Liu (test)<br>
     <b>globStatus using backslash for escaping does not work on Windows</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4594">HDFS-4594</a>.
     Minor bug reported by Arpit Gupta and fixed by Chris Nauroth (webhdfs)<br>
     <b>WebHDFS open sets Content-Length header to what is specified by length parameter rather than how much data is actually returned. </b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4329">HDFS-4329</a>.
     Major bug reported by Andy Isaacson and fixed by Cristina L. Abad (hdfs-client)<br>
     <b>DFSShell issues with directories with spaces in name</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3245">HDFS-3245</a>.
     Major improvement reported by Todd Lipcon and fixed by Ravi Prakash (namenode)<br>
     <b>Add metrics and web UI for cluster version summary</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2933">HDFS-2933</a>.
     Major improvement reported by Philip Zeyliger and fixed by Vivek Ganesan (datanode)<br>
     <b>Improve DataNode Web UI Index Page</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9962">HADOOP-9962</a>.
     Major improvement reported by Roman Shaposhnik and fixed by Roman Shaposhnik (build)<br>
     <b>in order to avoid dependency divergence within Hadoop itself lets enable DependencyConvergence</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9961">HADOOP-9961</a>.
     Minor bug reported by Roman Shaposhnik and fixed by Roman Shaposhnik (build)<br>
     <b>versions of a few transitive dependencies diverged between hadoop subprojects</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9960">HADOOP-9960</a>.
     Blocker bug reported by Brock Noland and fixed by Karthik Kambatla <br>
     <b>Upgrade Jersey version to 1.9</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9958">HADOOP-9958</a>.
     Major bug reported by Andrew Wang and fixed by Andrew Wang <br>
     <b>Add old constructor back to DelegationTokenInformation to unbreak downstream builds</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9945">HADOOP-9945</a>.
     Minor improvement reported by Karthik Kambatla and fixed by Karthik Kambatla (ha)<br>
     <b>HAServiceState should have a state for stopped services</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9944">HADOOP-9944</a>.
     Blocker bug reported by Arun C Murthy and fixed by Arun C Murthy <br>
     <b>RpcRequestHeaderProto defines callId as uint32 while ipc.Client.CONNECTION_CONTEXT_CALL_ID is signed (-3)</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9932">HADOOP-9932</a>.
     Blocker bug reported by Kihwal Lee and fixed by Kihwal Lee <br>
     <b>Improper synchronization in RetryCache</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9924">HADOOP-9924</a>.
     Major bug reported by shanyu zhao and fixed by shanyu zhao (fs)<br>
     <b>FileUtil.createJarWithClassPath() does not generate relative classpath correctly</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9918">HADOOP-9918</a>.
     Minor improvement reported by Karthik Kambatla and fixed by Karthik Kambatla <br>
     <b>Add addIfService() to CompositeService</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9916">HADOOP-9916</a>.
     Minor bug reported by Binglin Chang and fixed by Binglin Chang <br>
     <b>Race condition in ipc.Client causes TestIPC timeout</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9910">HADOOP-9910</a>.
     Minor bug reported by Andr&#233; Kelpe and fixed by  <br>
     <b>proxy server start and stop documentation wrong</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9906">HADOOP-9906</a>.
     Minor bug reported by Karthik Kambatla and fixed by Karthik Kambatla (ha)<br>
     <b>Move HAZKUtil to o.a.h.util.ZKUtil and make inner-classes public</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9899">HADOOP-9899</a>.
     Minor bug reported by Tsz Wo (Nicholas), SZE and fixed by Tsz Wo (Nicholas), SZE (security)<br>
     <b>Remove the debug message added by HADOOP-8855</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9886">HADOOP-9886</a>.
     Minor improvement reported by Arpit Gupta and fixed by Arpit Gupta <br>
     <b>Turn warning message in RetryInvocationHandler to debug</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9880">HADOOP-9880</a>.
     Blocker bug reported by Kihwal Lee and fixed by Daryn Sharp <br>
     <b>SASL changes from HADOOP-9421 breaks Secure HA NN </b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9879">HADOOP-9879</a>.
     Minor improvement reported by Karthik Kambatla and fixed by Karthik Kambatla (build)<br>
     <b>Move the version info of zookeeper dependencies to hadoop-project/pom</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9868">HADOOP-9868</a>.
     Blocker bug reported by Daryn Sharp and fixed by Daryn Sharp (ipc)<br>
     <b>Server must not advertise kerberos realm</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9858">HADOOP-9858</a>.
     Trivial bug reported by Chris Nauroth and fixed by Chris Nauroth (fs)<br>
     <b>Remove unused private RawLocalFileSystem#execCommand method from branch-2.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9857">HADOOP-9857</a>.
     Major bug reported by Chris Nauroth and fixed by Chris Nauroth (build , test)<br>
     <b>Tests block and sometimes timeout on Windows due to invalid entropy source.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9833">HADOOP-9833</a>.
     Minor improvement reported by Steve Loughran and fixed by Kousuke Saruta (build)<br>
     <b>move slf4j to version 1.7.5</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9831">HADOOP-9831</a>.
     Minor improvement reported by Chris Nauroth and fixed by Chris Nauroth (bin)<br>
     <b>Make checknative shell command accessible on Windows.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9821">HADOOP-9821</a>.
     Minor improvement reported by Tsuyoshi OZAWA and fixed by Tsuyoshi OZAWA <br>
     <b>ClientId should have getMsb/getLsb methods</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9820">HADOOP-9820</a>.
     Blocker bug reported by Daryn Sharp and fixed by Daryn Sharp (ipc , security)<br>
     <b>RPCv9 wire protocol is insufficient to support multiplexing</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9806">HADOOP-9806</a>.
     Major bug reported by Brandon Li and fixed by Brandon Li (nfs)<br>
     <b>PortmapInterface should check if the procedure is out-of-range</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9803">HADOOP-9803</a>.
     Minor improvement reported by Tsz Wo (Nicholas), SZE and fixed by Tsz Wo (Nicholas), SZE (ipc)<br>
     <b>Add generic type parameter to RetryInvocationHandler</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9802">HADOOP-9802</a>.
     Major improvement reported by Chris Nauroth and fixed by Chris Nauroth (io)<br>
     <b>Support Snappy codec on Windows.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9801">HADOOP-9801</a>.
     Major bug reported by Chris Nauroth and fixed by Chris Nauroth (conf)<br>
     <b>Configuration#writeXml uses platform defaulting encoding, which may mishandle multi-byte characters.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9789">HADOOP-9789</a>.
     Critical new feature reported by Daryn Sharp and fixed by Daryn Sharp (ipc , security)<br>
     <b>Support server advertised kerberos principals</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9774">HADOOP-9774</a>.
     Major bug reported by shanyu zhao and fixed by shanyu zhao (fs)<br>
     <b>RawLocalFileSystem.listStatus() return absolute paths when input path is relative on Windows</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9768">HADOOP-9768</a>.
     Major bug reported by Chris Nauroth and fixed by Chris Nauroth (fs)<br>
     <b>chown and chgrp reject users and groups with spaces on platforms where spaces are otherwise acceptable</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9757">HADOOP-9757</a>.
     Major bug reported by Jason Lowe and fixed by Cristina L. Abad (fs)<br>
     <b>Har metadata cache can grow without limit</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9686">HADOOP-9686</a>.
     Major improvement reported by Jason Lowe and fixed by Jason Lowe (conf)<br>
     <b>Easy access to final parameters in Configuration</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9672">HADOOP-9672</a>.
     Major improvement reported by Sandy Ryza and fixed by Sandy Ryza <br>
     <b>Upgrade Avro dependency to 1.7.4</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9557">HADOOP-9557</a>.
     Major bug reported by Lohit Vijayarenu and fixed by Lohit Vijayarenu (build)<br>
     <b>hadoop-client excludes commons-httpclient</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9446">HADOOP-9446</a>.
     Major improvement reported by Yu Gao and fixed by Yu Gao (security)<br>
     <b>Support Kerberos HTTP SPNEGO authentication for non-SUN JDK</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9435">HADOOP-9435</a>.
     Major bug reported by Tian Hong Wang and fixed by Tian Hong Wang (build)<br>
     <b>Support building the JNI code against the IBM JVM</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9381">HADOOP-9381</a>.
     Trivial bug reported by Keegan Witt and fixed by Keegan Witt <br>
     <b>Document dfs cp -f option</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9315">HADOOP-9315</a>.
     Major bug reported by Dennis Y and fixed by Chris Nauroth (build)<br>
     <b>Port HADOOP-9249 hadoop-maven-plugins Clover fix to branch-2 to fix build failures</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8814">HADOOP-8814</a>.
     Minor improvement reported by Brandon Li and fixed by Brandon Li (conf , fs , fs/s3 , ha , io , metrics , performance , record , security , util)<br>
     <b>Inefficient comparison with the empty string. Use isEmpty() instead</b><br>
     <blockquote></blockquote></li>
</ul>
</body></html>
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Hadoop  2.1.0-beta Release Notes</title>
<STYLE type="text/css">
	H1 {font-family: sans-serif}
	H2 {font-family: sans-serif; margin-left: 7mm}
	TABLE {margin-left: 7mm}
</STYLE>
</head>
<body>
<h1>Hadoop  2.1.0-beta Release Notes</h1>
These release notes include new developer and user-facing incompatibilities, features, and major improvements. 
<a name="changes"/>
<h2>Changes since Hadoop 2.0.5-alpha</h2>
<ul>
<li> <a href="https://issues.apache.org/jira/browse/YARN-1056">YARN-1056</a>.
     Trivial bug reported by Karthik Kambatla and fixed by Karthik Kambatla <br>
     <b>Fix configs yarn.resourcemanager.resourcemanager.connect.{max.wait.secs|retry_interval.secs}</b><br>
     <blockquote>Fix configs yarn.resourcemanager.resourcemanager.connect.{max.wait.secs|retry_interval.secs} to have a *resourcemanager* only once, make them consistent with other such yarn configs and add entries in yarn-default.xml</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-1046">YARN-1046</a>.
     Major bug reported by Karthik Kambatla and fixed by Karthik Kambatla <br>
     <b>Disable mem monitoring by default in MiniYARNCluster</b><br>
     <blockquote>Have been running into this frequently inspite of MAPREDUCE-3709 on centos6 machines. However, when I try to run it independently on the machines, I have not been able to reproduce it.

{noformat}
2013-08-07 19:17:35,048 WARN  [Container Monitor] monitor.ContainersMonitorImpl (ContainersMonitorImpl.java:run(444)) - Container [pid=16556,containerID=container_1375928243488_0001_01_000001] is running beyond virtual memory limits. Current usage: 132.4 MB of 512 MB physical memory used; 1.2 GB of 1.0 GB virtual memory used. Killing container.
{noformat}</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-1045">YARN-1045</a>.
     Major improvement reported by Siddharth Seth and fixed by Jian He <br>
     <b>Improve toString implementation for PBImpls</b><br>
     <blockquote>The generic toString implementation that is used in most of the PBImpls {code}getProto().toString().replaceAll("\\n", ", ").replaceAll("\\s+", " ");{code} is rather inefficient - replacing "\n" and "\s" to generate a one line string. Instead, we can use {code}TextFormat.shortDebugString(getProto());{code}.

If we can get this into 2.1.0 - great, otherwise the next release.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-1043">YARN-1043</a>.
     Major bug reported by Yusaku Sako and fixed by Jian He <br>
     <b>YARN Queue metrics are getting pushed to neither file nor Ganglia</b><br>
     <blockquote>YARN Queue metrics are not getting pushed to file or Ganglia via Hadoop Metrics 2. 
QueueMetrics are still accessible via JMX and RM REST API (&lt;hostname&gt;:8088/ws/v1/cluster/scheduler).</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-968">YARN-968</a>.
     Blocker bug reported by Kihwal Lee and fixed by Vinod Kumar Vavilapalli <br>
     <b>RM admin commands don't work</b><br>
     <blockquote>If an RM admin command is issued using CLI, I get something like following:

13/07/24 17:19:40 INFO client.RMProxy: Connecting to ResourceManager at xxxx.com/1.2.3.4:1234
refreshQueues: Unknown protocol: org.apache.hadoop.yarn.api.ResourceManagerAdministrationProtocolPB

</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-961">YARN-961</a>.
     Blocker bug reported by Omkar Vinit Joshi and fixed by Omkar Vinit Joshi <br>
     <b>ContainerManagerImpl should enforce token on server. Today it is [TOKEN, SIMPLE]</b><br>
     <blockquote>We should only accept SecurityAuthMethod.TOKEN for ContainerManagementProtocol. Today it also accepts SIMPLE for unsecured environment.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-960">YARN-960</a>.
     Blocker bug reported by Alejandro Abdelnur and fixed by Daryn Sharp <br>
     <b>TestMRCredentials and  TestBinaryTokenFile are failing on trunk</b><br>
     <blockquote>Not sure, but this may be a fallout from YARN-701 and/or related to YARN-945.

Making it a blocker until full impact of the issue is scoped.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-945">YARN-945</a>.
     Blocker bug reported by Bikas Saha and fixed by Vinod Kumar Vavilapalli <br>
     <b>AM register failing after AMRMToken</b><br>
     <blockquote>509 2013-07-19 15:53:55,569 INFO org.apache.hadoop.ipc.Server: IPC Server listener on 54313: readAndProcess from client 127.0.0.1       threw exception [org.apache.hadoop.security.AccessControlException: SIMPLE authentication is not enabled.  Available:[TOKEN]]
510 org.apache.hadoop.security.AccessControlException: SIMPLE authentication is not enabled.  Available:[TOKEN]
511   at org.apache.hadoop.ipc.Server$Connection.initializeAuthContext(Server.java:1531)
512   at org.apache.hadoop.ipc.Server$Connection.readAndProcess(Server.java:1482)
513   at org.apache.hadoop.ipc.Server$Listener.doRead(Server.java:788)
514   at org.apache.hadoop.ipc.Server$Listener$Reader.doRunLoop(Server.java:587)
515   at org.apache.hadoop.ipc.Server$Listener$Reader.run(Server.java:562)
</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-937">YARN-937</a>.
     Blocker bug reported by Arun C Murthy and fixed by Alejandro Abdelnur <br>
     <b>Fix unmanaged AM in non-secure/secure setup post YARN-701</b><br>
     <blockquote>Fix unmanaged AM in non-secure/secure setup post YARN-701 since app-tokens will be used in both scenarios.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-932">YARN-932</a>.
     Major bug reported by Sandy Ryza and fixed by Karthik Kambatla <br>
     <b>TestResourceLocalizationService.testLocalizationInit can fail on JDK7</b><br>
     <blockquote>It looks like this is occurring when testLocalizationInit doesn't run first.  Somehow yarn.nodemanager.log-dirs is getting set by one of the other tests (to ${yarn.log.dir}/userlogs), but yarn.log.dir isn't being set.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-927">YARN-927</a>.
     Major task reported by Bikas Saha and fixed by Bikas Saha <br>
     <b>Change ContainerRequest to not have more than 1 container count and remove StoreContainerRequest</b><br>
     <blockquote>The downside is having to use more than 1 container request when requesting more than 1 container at * priority. For most other use cases that have specific locations we anyways need to make multiple container requests. This will also remove unnecessary duplication caused by StoredContainerRequest. It will make the getMatchingRequest() always available and easy to use removeContainerRequest().</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-926">YARN-926</a>.
     Blocker bug reported by Vinod Kumar Vavilapalli and fixed by Jian He <br>
     <b>ContainerManagerProtcol APIs should take in requests for multiple containers</b><br>
     <blockquote>AMs typically have to launch multiple containers on a node and the current single container APIs aren't helping. We should have all the APIs take in multiple requests and return multiple responses.

The client libraries could expose both the single and multi-container requests.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-922">YARN-922</a>.
     Major sub-task reported by Jian He and fixed by Jian He (resourcemanager)<br>
     <b>Change FileSystemRMStateStore to use directories</b><br>
     <blockquote>Store each app and its attempts in the same directory so that removing application state is only one operation</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-919">YARN-919</a>.
     Minor bug reported by Mayank Bansal and fixed by Mayank Bansal <br>
     <b>Document setting default heap sizes in yarn env</b><br>
     <blockquote>Right now there are no defaults in yarn env scripts for resource manager nad node manager and if user wants to override that, then user has to go to documentation and find the variables and change the script.

There is no straight forward way to change it in script. Just updating the variables with defaults.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-918">YARN-918</a>.
     Blocker bug reported by Vinod Kumar Vavilapalli and fixed by Vinod Kumar Vavilapalli <br>
     <b>ApplicationMasterProtocol doesn't need ApplicationAttemptId in the payload after YARN-701</b><br>
     <blockquote>Once we use AMRMToken irrespective of kerberos after YARN-701, we don't need ApplicationAttemptId in the RPC pay load. This is an API change, so doing it as a blocker for 2.1.0-beta.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-912">YARN-912</a>.
     Major bug reported by Bikas Saha and fixed by Mayank Bansal <br>
     <b>Create exceptions package in common/api for yarn and move client facing exceptions to them</b><br>
     <blockquote>Exceptions like InvalidResourceBlacklistRequestException, InvalidResourceRequestException, InvalidApplicationMasterRequestException etc are currently inside ResourceManager and not visible to clients.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-909">YARN-909</a>.
     Minor bug reported by Chuan Liu and fixed by Chuan Liu (nodemanager)<br>
     <b>Disable TestLinuxContainerExecutorWithMocks on Windows</b><br>
     <blockquote>This unit test tests a Linux specific feature. We should skip this unit test on Windows. A similar unit test 'TestLinuxContainerExecutor' was already skipped when running on Windows.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-897">YARN-897</a>.
     Blocker bug reported by Djellel Eddine Difallah and fixed by Djellel Eddine Difallah (capacityscheduler)<br>
     <b>CapacityScheduler wrongly sorted queues</b><br>
     <blockquote>The childQueues of a ParentQueue are stored in a TreeSet where UsedCapacity defines the sort order. This ensures the queue with least UsedCapacity to receive resources next. On containerAssignment we correctly update the order, but we miss to do so on container completions. This corrupts the TreeSet structure, and under-capacity queues might starve for resources.
</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-894">YARN-894</a>.
     Minor bug reported by Chuan Liu and fixed by Chuan Liu (nodemanager)<br>
     <b>NodeHealthScriptRunner timeout checking is inaccurate on Windows</b><br>
     <blockquote>In {{NodeHealthScriptRunner}} method, we will set HealthChecker status based on the Shell execution results. Some status are based on the exception thrown during the Shell script execution.

Currently, we will catch a non-ExitCodeException from ShellCommandExecutor, and if Shell has the timeout status set at the same time, we will also set HealthChecker status to timeout.

We have following execution sequence in Shell:
1) In main thread, schedule a delayed timer task that will kill the original process upon timeout.
2) In main thread, open a buffered reader and feed in the process's standard input stream.
3) When timeout happens, the timer task will call {{Process#destroy()}}
 to kill the main process.

On Linux, when timeout happened and process killed, the buffered reader will thrown an IOException with message: "Stream closed" in main thread.

On Windows, we don't have the IOException. Only "-1" was returned from the reader that indicates the buffer is finished. As a result, the timeout status is not set on Windows, and {{TestNodeHealthService}} fails on Windows because of this.


 </blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-883">YARN-883</a>.
     Major improvement reported by Sandy Ryza and fixed by Sandy Ryza (scheduler)<br>
     <b>Expose Fair Scheduler-specific queue metrics</b><br>
     <blockquote>When the Fair Scheduler is enabled, QueueMetrics should include fair share, minimum share, and maximum share.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-877">YARN-877</a>.
     Major sub-task reported by Junping Du and fixed by Junping Du (scheduler)<br>
     <b>Allow for black-listing resources in FifoScheduler</b><br>
     <blockquote>YARN-750 already addressed black-list staff in YARN API and CS scheduler, this jira add implementation for FifoScheduler.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-875">YARN-875</a>.
     Major bug reported by Bikas Saha and fixed by Xuan Gong <br>
     <b>Application can hang if AMRMClientAsync callback thread has exception</b><br>
     <blockquote>Currently that thread will die and then never callback. App can hang. Possible solution could be to catch Throwable in the callback and then call client.onError().</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-874">YARN-874</a>.
     Blocker bug reported by Vinod Kumar Vavilapalli and fixed by Vinod Kumar Vavilapalli <br>
     <b>Tracking YARN/MR test failures after HADOOP-9421 and YARN-827</b><br>
     <blockquote>HADOOP-9421 and YARN-827 broke some YARN/MR tests. Tracking those..</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-873">YARN-873</a>.
     Major sub-task reported by Bikas Saha and fixed by Xuan Gong <br>
     <b>YARNClient.getApplicationReport(unknownAppId) returns a null report</b><br>
     <blockquote>How can the client find out that app does not exist?</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-869">YARN-869</a>.
     Blocker bug reported by Vinod Kumar Vavilapalli and fixed by Vinod Kumar Vavilapalli <br>
     <b>ResourceManagerAdministrationProtocol should neither be public(yet) nor in yarn.api</b><br>
     <blockquote>This is a admin only api that we don't know yet if people can or should write new tools against. I am going to move it to yarn.server.api and make it @Private..</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-866">YARN-866</a>.
     Major test reported by Wei Yan and fixed by Wei Yan <br>
     <b>Add test for class ResourceWeights</b><br>
     <blockquote>Add test case for the class ResourceWeights</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-865">YARN-865</a>.
     Major improvement reported by Xuan Gong and fixed by Xuan Gong <br>
     <b>RM webservices can't query based on application Types</b><br>
     <blockquote>The resource manager web service api to get the list of apps doesn't have a query parameter for appTypes.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-861">YARN-861</a>.
     Critical bug reported by Devaraj K and fixed by Vinod Kumar Vavilapalli (nodemanager)<br>
     <b>TestContainerManager is failing</b><br>
     <blockquote>https://builds.apache.org/job/Hadoop-Yarn-trunk/246/

{code:xml}
Running org.apache.hadoop.yarn.server.nodemanager.containermanager.TestContainerManager
Tests run: 7, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 19.249 sec &lt;&lt;&lt; FAILURE!
testContainerManagerInitialization(org.apache.hadoop.yarn.server.nodemanager.containermanager.TestContainerManager)  Time elapsed: 286 sec  &lt;&lt;&lt; FAILURE!
junit.framework.ComparisonFailure: expected:&lt;[asf009.sp2.ygridcore.ne]t&gt; but was:&lt;[localhos]t&gt;
	at junit.framework.Assert.assertEquals(Assert.java:85)

{code}</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-854">YARN-854</a>.
     Blocker bug reported by Ramya Sunil and fixed by Omkar Vinit Joshi <br>
     <b>App submission fails on secure deploy</b><br>
     <blockquote>App submission on secure cluster fails with the following exception:

{noformat}
INFO mapreduce.Job: Job jobID failed with state FAILED due to: Application applicationID failed 2 times due to AM Container for appattemptID exited with  exitCode: -1000 due to: App initialization failed (255) with output: main : command provided 0
main : user is qa_user
javax.security.sasl.SaslException: DIGEST-MD5: digest response format violation. Mismatched response. [Caused by org.apache.hadoop.ipc.RemoteException(javax.security.sasl.SaslException): DIGEST-MD5: digest response format violation. Mismatched response.]
	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
	at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
	at org.apache.hadoop.yarn.ipc.RPCUtil.instantiateException(RPCUtil.java:53)
	at org.apache.hadoop.yarn.ipc.RPCUtil.unwrapAndThrowException(RPCUtil.java:104)
	at org.apache.hadoop.yarn.server.nodemanager.api.impl.pb.client.LocalizationProtocolPBClientImpl.heartbeat(LocalizationProtocolPBClientImpl.java:65)
	at org.apache.hadoop.yarn.server.nodemanager.containermanager.localizer.ContainerLocalizer.localizeFiles(ContainerLocalizer.java:235)
	at org.apache.hadoop.yarn.server.nodemanager.containermanager.localizer.ContainerLocalizer.runLocalization(ContainerLocalizer.java:169)
	at org.apache.hadoop.yarn.server.nodemanager.containermanager.localizer.ContainerLocalizer.main(ContainerLocalizer.java:348)
Caused by: org.apache.hadoop.ipc.RemoteException(javax.security.sasl.SaslException): DIGEST-MD5: digest response format violation. Mismatched response.
	at org.apache.hadoop.ipc.Client.call(Client.java:1298)
	at org.apache.hadoop.ipc.Client.call(Client.java:1250)
	at org.apache.hadoop.ipc.ProtobufRpcEngine$Invoker.invoke(ProtobufRpcEngine.java:204)
	at $Proxy7.heartbeat(Unknown Source)
	at org.apache.hadoop.yarn.server.nodemanager.api.impl.pb.client.LocalizationProtocolPBClientImpl.heartbeat(LocalizationProtocolPBClientImpl.java:62)
	... 3 more

.Failing this attempt.. Failing the application.

{noformat}</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-853">YARN-853</a>.
     Major bug reported by Devaraj K and fixed by Devaraj K (capacityscheduler)<br>
     <b>maximum-am-resource-percent doesn't work after refreshQueues command</b><br>
     <blockquote>If we update yarn.scheduler.capacity.maximum-am-resource-percent / yarn.scheduler.capacity.&lt;queue-path&gt;.maximum-am-resource-percent configuration and then do the refreshNodes, it uses the new config value to calculate Max Active Applications and Max Active Application Per User. If we add new node after issuing  'rmadmin -refreshQueues' command, it uses the old maximum-am-resource-percent config value to calculate Max Active Applications and Max Active Application Per User. </blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-852">YARN-852</a>.
     Minor bug reported by Chuan Liu and fixed by Chuan Liu <br>
     <b>TestAggregatedLogFormat.testContainerLogsFileAccess fails on Windows</b><br>
     <blockquote>The YARN unit test case fails on Windows when comparing expected message with log message in the file. The expected message constructed in the test case has two problems: 1) it uses Path.separator to concatenate path string. Path.separator is always a forward slash, which does not match the backslash used in the log message. 2) On Windows, the default file owner is Administrators group if the file is created by an Administrators user. The test expect the user to be the current user.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-851">YARN-851</a>.
     Major bug reported by Omkar Vinit Joshi and fixed by Omkar Vinit Joshi <br>
     <b>Share NMTokens using NMTokenCache (api-based) instead of memory based approach which is used currently.</b><br>
     <blockquote>It is a follow up ticket for YARN-694. Changing the way NMTokens are shared.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-850">YARN-850</a>.
     Major sub-task reported by Jian He and fixed by Jian He <br>
     <b>Rename getClusterAvailableResources to getAvailableResources in AMRMClients</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-848">YARN-848</a>.
     Major bug reported by Hitesh Shah and fixed by Hitesh Shah <br>
     <b>Nodemanager does not register with RM using the fully qualified hostname</b><br>
     <blockquote>If the hostname is misconfigured to not be fully qualified ( i.e. hostname returns foo and hostname -f returns foo.bar.xyz ), the NM ends up registering with the RM using only "foo". This can create problems if DNS cannot resolve the hostname properly. 

Furthermore, HDFS uses fully qualified hostnames which can end up affecting locality matches when allocating containers based on block locations. </blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-846">YARN-846</a>.
     Major sub-task reported by Jian He and fixed by Jian He <br>
     <b>Move pb Impl from yarn-api to yarn-common</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-845">YARN-845</a>.
     Major sub-task reported by Arpit Gupta and fixed by Mayank Bansal (resourcemanager)<br>
     <b>RM crash with NPE on NODE_UPDATE</b><br>
     <blockquote>the following stack trace is generated in rm

{code}
n, service: 68.142.246.147:45454 }, ] resource=&lt;memory:1536, vCores:1&gt; queue=default: capacity=1.0, absoluteCapacity=1.0, usedResources=&lt;memory:44544, vCores:29&gt;usedCapacity=0.90625, absoluteUsedCapacity=0.90625, numApps=1, numContainers=29 usedCapacity=0.90625 absoluteUsedCapacity=0.90625 used=&lt;memory:44544, vCores:29&gt; cluster=&lt;memory:49152, vCores:48&gt;
2013-06-17 12:43:53,655 INFO  capacity.ParentQueue (ParentQueue.java:completedContainer(696)) - completedContainer queue=root usedCapacity=0.90625 absoluteUsedCapacity=0.90625 used=&lt;memory:44544, vCores:29&gt; cluster=&lt;memory:49152, vCores:48&gt;
2013-06-17 12:43:53,656 INFO  capacity.CapacityScheduler (CapacityScheduler.java:completedContainer(832)) - Application appattempt_1371448527090_0844_000001 released container container_1371448527090_0844_01_000005 on node: host: hostXX:45454 #containers=4 available=2048 used=6144 with event: FINISHED
2013-06-17 12:43:53,656 INFO  capacity.CapacityScheduler (CapacityScheduler.java:nodeUpdate(661)) - Trying to fulfill reservation for application application_1371448527090_0844 on node: hostXX:45454
2013-06-17 12:43:53,656 INFO  fica.FiCaSchedulerApp (FiCaSchedulerApp.java:unreserve(435)) - Application application_1371448527090_0844 unreserved  on node host: hostXX:45454 #containers=4 available=2048 used=6144, currently has 4 at priority 20; currentReservation &lt;memory:6144, vCores:4&gt;
2013-06-17 12:43:53,656 INFO  scheduler.AppSchedulingInfo (AppSchedulingInfo.java:updateResourceRequests(168)) - checking for deactivate...
2013-06-17 12:43:53,657 FATAL resourcemanager.ResourceManager (ResourceManager.java:run(422)) - Error in handling event type NODE_UPDATE to the scheduler
java.lang.NullPointerException
        at org.apache.hadoop.yarn.server.resourcemanager.scheduler.common.fica.FiCaSchedulerApp.unreserve(FiCaSchedulerApp.java:432)
        at org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.LeafQueue.unreserve(LeafQueue.java:1416)
        at org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.LeafQueue.assignContainer(LeafQueue.java:1346)
        at org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.LeafQueue.assignOffSwitchContainers(LeafQueue.java:1221)
        at org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.LeafQueue.assignContainersOnNode(LeafQueue.java:1180)
        at org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.LeafQueue.assignReservedContainer(LeafQueue.java:939)
        at org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.LeafQueue.assignContainers(LeafQueue.java:803)
        at org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacityScheduler.nodeUpdate(CapacityScheduler.java:665)
        at org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacityScheduler.handle(CapacityScheduler.java:727)
        at org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacityScheduler.handle(CapacityScheduler.java:83)
        at org.apache.hadoop.yarn.server.resourcemanager.ResourceManager$SchedulerEventDispatcher$EventProcessor.run(ResourceManager.java:413)
        at java.lang.Thread.run(Thread.java:662)
2013-06-17 12:43:53,659 INFO  resourcemanager.ResourceManager (ResourceManager.java:run(426)) - Exiting, bbye..
2013-06-17 12:43:53,665 INFO  mortbay.log (Slf4jLog.java:info(67)) - Stopped SelectChannelConnector@hostXX:8088
2013-06-17 12:43:53,765 ERROR delegation.AbstractDelegationTokenSecretManager (AbstractDelegationTokenSecretManager.java:run(513)) - InterruptedExcpetion recieved for ExpiredTokenRemover thread java.lang.InterruptedException: sleep interrupted
2013-06-17 12:43:53,766 INFO  impl.MetricsSystemImpl (MetricsSystemImpl.java:stop(200)) - Stopping ResourceManager metrics system...
2013-06-17 12:43:53,767 INFO  impl.MetricsSystemImpl (MetricsSystemImpl.java:stop(206)) - ResourceManager metrics system stopped.
2013-06-17 12:43:53,767 INFO  impl.MetricsSystemImpl (MetricsSystemImpl.java:shutdown(572)) - ResourceManager metrics system shutdown complete.
2013-06-17 12:43:53,768 WARN  amlauncher.ApplicationMasterLauncher (ApplicationMasterLauncher.java:run(98)) - org.apache.hadoop.yarn.server.resourcemanager.amlauncher.ApplicationMasterLauncher$LauncherThread interrupted. Returning.
2013-06-17 12:43:53,768 INFO  ipc.Server (Server.java:stop(2167)) - Stopping server on 8033
2013-06-17 12:43:53,770 INFO  ipc.Server (Server.java:run(686)) - Stopping IPC Server listener on 8033
2013-06-17 12:43:53,770 INFO  ipc.Server (Server.java:stop(2167)) - Stopping server on 8032
2013-06-17 12:43:53,770 INFO  ipc.Server (Server.java:run(828)) - Stopping IPC Server Responder
2013-06-17 12:43:53,771 INFO  ipc.Server (Server.java:run(686)) - Stopping IPC Server listener on 8032
2013-06-17 12:43:53,771 INFO  ipc.Server (Server.java:run(828)) - Stopping IPC Server Responder
2013-06-17 12:43:53,771 INFO  ipc.Server (Server.java:stop(2167)) - Stopping server on 8030
2013-06-17 12:43:53,773 INFO  ipc.Server (Server.java:run(686)) - Stopping IPC Server listener on 8030
2013-06-17 12:43:53,773 INFO  ipc.Server (Server.java:stop(2167)) - Stopping server on 8031
2013-06-17 12:43:53,773 INFO  ipc.Server (Server.java:run(828)) - Stopping IPC Server Responder
2013-06-17 12:43:53,774 INFO  ipc.Server (Server.java:run(686)) - Stopping IPC Server listener on 8031
2013-06-17 12:43:53,775 INFO  ipc.Server (Server.java:run(828)) - Stopping IPC Server Responder
{code}</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-841">YARN-841</a>.
     Major sub-task reported by Siddharth Seth and fixed by Vinod Kumar Vavilapalli <br>
     <b>Annotate and document AuxService APIs</b><br>
     <blockquote>For users writing their own AuxServices, these APIs should be annotated and need better documentation. Also, the classes may need to move out of the NodeManager.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-840">YARN-840</a>.
     Major sub-task reported by Jian He and fixed by Jian He <br>
     <b>Move ProtoUtils to  yarn.api.records.pb.impl</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-839">YARN-839</a>.
     Minor bug reported by Chuan Liu and fixed by Chuan Liu <br>
     <b>TestContainerLaunch.testContainerEnvVariables fails on Windows</b><br>
     <blockquote>The unit test case fails on Windows due to job id or container id was not printed out as part of the container script. Later, the test tries to read the pid from output of the file, and fails.

Exception in trunk:
{noformat}
Running org.apache.hadoop.yarn.server.nodemanager.containermanager.launcher.TestContainerLaunch
Tests run: 3, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 9.903 sec &lt;&lt;&lt; FAILURE!
testContainerEnvVariables(org.apache.hadoop.yarn.server.nodemanager.containermanager.launcher.TestContainerLaunch)  Time elapsed: 1307 sec  &lt;&lt;&lt; ERROR!
java.lang.NullPointerException
        at org.apache.hadoop.yarn.server.nodemanager.containermanager.launcher.TestContainerLaunch.testContainerEnvVariables(TestContainerLaunch.java:278)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:45)
        at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
        at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:42)
        at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
        at org.junit.internal.runners.statements.FailOnTimeout$StatementThread.run(FailOnTimeout.java:62)
{noformat}</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-837">YARN-837</a>.
     Major sub-task reported by Zhijie Shen and fixed by Zhijie Shen <br>
     <b>ClusterInfo.java doesn't seem to belong to org.apache.hadoop.yarn</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-834">YARN-834</a>.
     Blocker sub-task reported by Arun C Murthy and fixed by Zhijie Shen <br>
     <b>Review/fix annotations for yarn-client module and clearly differentiate *Async apis</b><br>
     <blockquote>Review/fix annotations for yarn-client module</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-833">YARN-833</a>.
     Major bug reported by Zhijie Shen and fixed by Zhijie Shen <br>
     <b>Move Graph and VisualizeStateMachine into yarn.state package</b><br>
     <blockquote>Graph and VisualizeStateMachine are only used by state machine, they should belong to state package.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-831">YARN-831</a>.
     Blocker sub-task reported by Jian He and fixed by Jian He <br>
     <b>Remove resource min from GetNewApplicationResponse</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-829">YARN-829</a>.
     Major bug reported by Zhijie Shen and fixed by Zhijie Shen <br>
     <b>Rename RMTokenSelector to be RMDelegationTokenSelector</b><br>
     <blockquote>Therefore, the name of it will be consistent with that of RMDelegationTokenIdentifier.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-828">YARN-828</a>.
     Major bug reported by Zhijie Shen and fixed by Zhijie Shen <br>
     <b>Remove YarnVersionAnnotation</b><br>
     <blockquote>YarnVersionAnnotation is not used at all, and the version information can be accessed through YarnVersionInfo instead.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-827">YARN-827</a>.
     Critical sub-task reported by Bikas Saha and fixed by Jian He <br>
     <b>Need to make Resource arithmetic methods accessible</b><br>
     <blockquote>org.apache.hadoop.yarn.server.resourcemanager.resource has stuff like Resources and Calculators that help compare/add resources etc. Without these users will be forced to replicate the logic, potentially incorrectly.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-826">YARN-826</a>.
     Major sub-task reported by Zhijie Shen and fixed by Zhijie Shen <br>
     <b>Move Clock/SystemClock to util package</b><br>
     <blockquote>Clock/SystemClock should belong to util.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-825">YARN-825</a>.
     Blocker sub-task reported by Vinod Kumar Vavilapalli and fixed by Vinod Kumar Vavilapalli <br>
     <b>Fix yarn-common javadoc annotations</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-824">YARN-824</a>.
     Major sub-task reported by Jian He and fixed by Jian He <br>
     <b>Add  static factory to yarn client lib interface and change it to abstract class</b><br>
     <blockquote>Do this for AMRMClient, NMClient, YarnClient. and annotate its impl as private.
The purpose is not to expose impl</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-823">YARN-823</a>.
     Major sub-task reported by Jian He and fixed by Jian He <br>
     <b>Move RMAdmin from yarn.client to yarn.client.cli and rename as RMAdminCLI</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-822">YARN-822</a>.
     Major sub-task reported by Omkar Vinit Joshi and fixed by Omkar Vinit Joshi <br>
     <b>Rename ApplicationToken to AMRMToken</b><br>
     <blockquote>API change. At present this token is getting used on scheduler api AMRMProtocol. Right now name wise it is little confusing as it might be useful for the application to talk to complete yarn system (RM/NM) but that is not the case after YARN-694. NM will have specific NMToken so it is better to name it as AMRMToken.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-821">YARN-821</a>.
     Major sub-task reported by Jian He and fixed by Jian He <br>
     <b>Rename FinishApplicationMasterRequest.setFinishApplicationStatus to setFinalApplicationStatus to be consistent with getter</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-820">YARN-820</a>.
     Major sub-task reported by Bikas Saha and fixed by Mayank Bansal <br>
     <b>NodeManager has invalid state transition after error in resource localization</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-814">YARN-814</a>.
     Major sub-task reported by Hitesh Shah and fixed by Jian He <br>
     <b>Difficult to diagnose a failed container launch when error due to invalid environment variable</b><br>
     <blockquote>The container's launch script sets up environment variables, symlinks etc. 

If there is any failure when setting up the basic context ( before the actual user's process is launched ), nothing is captured by the NM. This makes it impossible to diagnose the reason for the failure. 

To reproduce, set an env var where the value contains characters that throw syntax errors in bash. </blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-812">YARN-812</a>.
     Major bug reported by Ramya Sunil and fixed by Siddharth Seth <br>
     <b>Enabling app summary logs causes 'FileNotFound' errors</b><br>
     <blockquote>RM app summary logs have been enabled as per the default config:

{noformat}
#
# Yarn ResourceManager Application Summary Log 
#
# Set the ResourceManager summary log filename
yarn.server.resourcemanager.appsummary.log.file=rm-appsummary.log
# Set the ResourceManager summary log level and appender
yarn.server.resourcemanager.appsummary.logger=INFO,RMSUMMARY

# Appender for ResourceManager Application Summary Log
# Requires the following properties to be set
#    - hadoop.log.dir (Hadoop Log directory)
#    - yarn.server.resourcemanager.appsummary.log.file (resource manager app summary log filename)
#    - yarn.server.resourcemanager.appsummary.logger (resource manager app summary log level and appender)

log4j.logger.org.apache.hadoop.yarn.server.resourcemanager.RMAppManager$ApplicationSummary=${yarn.server.resourcemanager.appsummary.logger}
log4j.additivity.org.apache.hadoop.yarn.server.resourcemanager.RMAppManager$ApplicationSummary=false
log4j.appender.RMSUMMARY=org.apache.log4j.RollingFileAppender
log4j.appender.RMSUMMARY.File=${hadoop.log.dir}/${yarn.server.resourcemanager.appsummary.log.file}
log4j.appender.RMSUMMARY.MaxFileSize=256MB
log4j.appender.RMSUMMARY.MaxBackupIndex=20
log4j.appender.RMSUMMARY.layout=org.apache.log4j.PatternLayout
log4j.appender.RMSUMMARY.layout.ConversionPattern=%d{ISO8601} %p %c{2}: %m%n
{noformat}

This however, throws errors while running commands as non-superuser:
{noformat}
-bash-4.1$ hadoop dfs -ls /
DEPRECATED: Use of this script to execute hdfs command is deprecated.
Instead use the hdfs command for it.

log4j:ERROR setFile(null,true) call failed.
java.io.FileNotFoundException: /var/log/hadoop/hadoopqa/rm-appsummary.log (No such file or directory)
        at java.io.FileOutputStream.openAppend(Native Method)
        at java.io.FileOutputStream.&lt;init&gt;(FileOutputStream.java:192)
        at java.io.FileOutputStream.&lt;init&gt;(FileOutputStream.java:116)
        at org.apache.log4j.FileAppender.setFile(FileAppender.java:294)
        at org.apache.log4j.RollingFileAppender.setFile(RollingFileAppender.java:207)
        at org.apache.log4j.FileAppender.activateOptions(FileAppender.java:165)
        at org.apache.log4j.config.PropertySetter.activate(PropertySetter.java:307)
        at org.apache.log4j.config.PropertySetter.setProperties(PropertySetter.java:172)
        at org.apache.log4j.config.PropertySetter.setProperties(PropertySetter.java:104)
        at org.apache.log4j.PropertyConfigurator.parseAppender(PropertyConfigurator.java:842)
        at org.apache.log4j.PropertyConfigurator.parseCategory(PropertyConfigurator.java:768)
        at org.apache.log4j.PropertyConfigurator.parseCatsAndRenderers(PropertyConfigurator.java:672)
        at org.apache.log4j.PropertyConfigurator.doConfigure(PropertyConfigurator.java:516)
        at org.apache.log4j.PropertyConfigurator.doConfigure(PropertyConfigurator.java:580)
        at org.apache.log4j.helpers.OptionConverter.selectAndConfigure(OptionConverter.java:526)
        at org.apache.log4j.LogManager.&lt;clinit&gt;(LogManager.java:127)
        at org.apache.log4j.Logger.getLogger(Logger.java:104)
        at org.apache.commons.logging.impl.Log4JLogger.getLogger(Log4JLogger.java:289)
        at org.apache.commons.logging.impl.Log4JLogger.&lt;init&gt;(Log4JLogger.java:109)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
        at org.apache.commons.logging.impl.LogFactoryImpl.createLogFromClass(LogFactoryImpl.java:1116)
        at org.apache.commons.logging.impl.LogFactoryImpl.discoverLogImplementation(LogFactoryImpl.java:858)
        at org.apache.commons.logging.impl.LogFactoryImpl.newInstance(LogFactoryImpl.java:604)
        at org.apache.commons.logging.impl.LogFactoryImpl.getInstance(LogFactoryImpl.java:336)
        at org.apache.commons.logging.impl.LogFactoryImpl.getInstance(LogFactoryImpl.java:310)
        at org.apache.commons.logging.LogFactory.getLog(LogFactory.java:685)
        at org.apache.hadoop.fs.FsShell.&lt;clinit&gt;(FsShell.java:41)
Found 1 items
drwxr-xr-x   - hadoop   hadoop            0 2013-06-12 21:28 /user
{noformat}</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-806">YARN-806</a>.
     Major sub-task reported by Jian He and fixed by Jian He <br>
     <b>Move ContainerExitStatus from yarn.api to yarn.api.records</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-805">YARN-805</a>.
     Blocker sub-task reported by Jian He and fixed by Jian He <br>
     <b>Fix yarn-api javadoc annotations</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-803">YARN-803</a>.
     Major improvement reported by Alejandro Abdelnur and fixed by Alejandro Abdelnur (resourcemanager , scheduler)<br>
     <b>factor out scheduler config validation from the ResourceManager to each scheduler implementation</b><br>
     <blockquote>Per discussion in YARN-789 we should factor out from the ResourceManager class the scheduler config validations.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-799">YARN-799</a>.
     Major bug reported by Chris Riccomini and fixed by Chris Riccomini (nodemanager)<br>
     <b>CgroupsLCEResourcesHandler tries to write to cgroup.procs</b><br>
     <blockquote>The implementation of

bq. ./hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/util/CgroupsLCEResourcesHandler.java

Tells the container-executor to write PIDs to cgroup.procs:

{code}
  public String getResourcesOption(ContainerId containerId) {
    String containerName = containerId.toString();
    StringBuilder sb = new StringBuilder("cgroups=");

    if (isCpuWeightEnabled()) {
      sb.append(pathForCgroup(CONTROLLER_CPU, containerName) + "/cgroup.procs");
      sb.append(",");
    }

    if (sb.charAt(sb.length() - 1) == ',') {
      sb.deleteCharAt(sb.length() - 1);
    } 
    return sb.toString();
  }
{code}

Apparently, this file has not always been writeable:

https://patchwork.kernel.org/patch/116146/
http://lkml.indiana.edu/hypermail/linux/kernel/1004.1/00536.html
https://lists.linux-foundation.org/pipermail/containers/2009-July/019679.html

The RHEL version of the Linux kernel that I'm using has a CGroup module that has a non-writeable cgroup.procs file.

{quote}
$ uname -a
Linux criccomi-ld 2.6.32-131.4.1.el6.x86_64 #1 SMP Fri Jun 10 10:54:26 EDT 2011 x86_64 x86_64 x86_64 GNU/Linux
{quote}

As a result, when the container-executor tries to run, it fails with this error message:

bq.    fprintf(LOGFILE, "Failed to write pid %s (%d) to file %s - %s\n",

This is because the executor is given a resource by the CgroupsLCEResourcesHandler that includes cgroup.procs, which is non-writeable:

{quote}
$ pwd 
/cgroup/cpu/hadoop-yarn/container_1370986842149_0001_01_000001
$ ls -l
total 0
-r--r--r-- 1 criccomi eng 0 Jun 11 14:43 cgroup.procs
-rw-r--r-- 1 criccomi eng 0 Jun 11 14:43 cpu.rt_period_us
-rw-r--r-- 1 criccomi eng 0 Jun 11 14:43 cpu.rt_runtime_us
-rw-r--r-- 1 criccomi eng 0 Jun 11 14:43 cpu.shares
-rw-r--r-- 1 criccomi eng 0 Jun 11 14:43 notify_on_release
-rw-r--r-- 1 criccomi eng 0 Jun 11 14:43 tasks
{quote}

I patched CgroupsLCEResourcesHandler to use /tasks instead of /cgroup.procs, and this appears to have fixed the problem.

I can think of several potential resolutions to this ticket:

1. Ignore the problem, and make people patch YARN when they hit this issue.
2. Write to /tasks instead of /cgroup.procs for everyone
3. Check permissioning on /cgroup.procs prior to writing to it, and fall back to /tasks.
4. Add a config to yarn-site that lets admins specify which file to write to.

Thoughts?</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-795">YARN-795</a>.
     Major bug reported by Wei Yan and fixed by Wei Yan (scheduler)<br>
     <b>Fair scheduler queue metrics should subtract allocated vCores from available vCores</b><br>
     <blockquote>The queue metrics of fair scheduler doesn't subtract allocated vCores from available vCores, causing the available vCores returned is incorrect.
This is happening because {code}QueueMetrics.getAllocateResources(){code} doesn't return the allocated vCores.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-792">YARN-792</a>.
     Major sub-task reported by Jian He and fixed by Jian He <br>
     <b>Move NodeHealthStatus from yarn.api.record to yarn.server.api.record</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-791">YARN-791</a>.
     Blocker sub-task reported by Sandy Ryza and fixed by Sandy Ryza (api , resourcemanager)<br>
     <b>Ensure that RM RPC APIs that return nodes are consistent with /nodes REST API</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-789">YARN-789</a>.
     Major improvement reported by Alejandro Abdelnur and fixed by Alejandro Abdelnur (scheduler)<br>
     <b>Enable zero capabilities resource requests in fair scheduler</b><br>
     <blockquote>Per discussion in YARN-689, reposting updated use case:

1. I have a set of services co-existing with a Yarn cluster.

2. These services run out of band from Yarn. They are not started as yarn containers and they don't use Yarn containers for processing.

3. These services use, dynamically, different amounts of CPU and memory based on their load. They manage their CPU and memory requirements independently. In other words, depending on their load, they may require more CPU but not memory or vice-versa.
By using YARN as RM for these services I'm able share and utilize the resources of the cluster appropriately and in a dynamic way. Yarn keeps tab of all the resources.

These services run an AM that reserves resources on their behalf. When this AM gets the requested resources, the services bump up their CPU/memory utilization out of band from Yarn. If the Yarn allocations are released/preempted, the services back off on their resources utilization. By doing this, Yarn and these service correctly share the cluster resources, being Yarn RM the only one that does the overall resource bookkeeping.

The services AM, not to break the lifecycle of containers, start containers in the corresponding NMs. These container processes do basically a sleep forever (i.e. sleep 10000d). They are almost not using any CPU nor memory (less than 1MB). Thus it is reasonable to assume their required CPU and memory utilization is NIL (more on hard enforcement later). Because of this almost NIL utilization of CPU and memory, it is possible to specify, when doing a request, zero as one of the dimensions (CPU or memory).

The current limitation is that the increment is also the minimum. 

If we set the memory increment to 1MB. When doing a pure CPU request, we would have to specify 1MB of memory. That would work. However it would allow discretionary memory requests without a desired normalization (increments of 256, 512, etc).

If we set the CPU increment to 1CPU. When doing a pure memory request, we would have to specify 1CPU. CPU amounts a much smaller than memory amounts, and because we don't have fractional CPUs, it would mean that all my pure memory requests will be wasting 1 CPU thus reducing the overall utilization of the cluster.

Finally, on hard enforcement. 

* For CPU. Hard enforcement can be done via a cgroup cpu controller. Using an absolute minimum of a few CPU shares (ie 10) in the LinuxContainerExecutor we ensure there is enough CPU cycles to run the sleep process. This absolute minimum would only kick-in if zero is allowed, otherwise will never kick in as the shares for 1 CPU are 1024.

* For Memory. Hard enforcement is currently done by the ProcfsBasedProcessTree.java, using a minimum absolute of 1 or 2 MBs would take care of zero memory resources. And again,  this absolute minimum would only kick-in if zero is allowed, otherwise will never kick in as the increment memory is in several MBs if not 1GB.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-787">YARN-787</a>.
     Blocker sub-task reported by Alejandro Abdelnur and fixed by Alejandro Abdelnur (api)<br>
     <b>Remove resource min from Yarn client API</b><br>
     <blockquote>Per discussions in YARN-689 and YARN-769 we should remove minimum from the API as this is a scheduler internal thing.
</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-782">YARN-782</a>.
     Critical improvement reported by Sandy Ryza and fixed by Sandy Ryza (nodemanager)<br>
     <b>vcores-pcores ratio functions differently from vmem-pmem ratio in misleading way </b><br>
     <blockquote>The vcores-pcores ratio functions differently from the vmem-pmem ratio in the sense that the vcores-pcores ratio has an impact on allocations and the vmem-pmem ratio does not.

If I double my vmem-pmem ratio, the only change that occurs is that my containers, after being scheduled, are less likely to be killed for using too much virtual memory.  But if I double my vcore-pcore ratio, my nodes will appear to the ResourceManager to contain double the amount of CPU space, which will affect scheduling decisions.

The lack of consistency will exacerbate the already difficult problem of resource configuration.
</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-781">YARN-781</a>.
     Major sub-task reported by Devaraj Das and fixed by Jian He <br>
     <b>Expose LOGDIR that containers should use for logging</b><br>
     <blockquote>The LOGDIR is known. We should expose this to the container's environment.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-777">YARN-777</a>.
     Major sub-task reported by Jian He and fixed by Jian He <br>
     <b>Remove unreferenced objects from proto</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-773">YARN-773</a>.
     Major sub-task reported by Jian He and fixed by Jian He <br>
     <b>Move YarnRuntimeException from package api.yarn to api.yarn.exceptions</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-767">YARN-767</a>.
     Major bug reported by Jian He and fixed by Jian He <br>
     <b>Initialize Application status metrics  when QueueMetrics is initialized</b><br>
     <blockquote>Applications: ResourceManager.QueueMetrics.AppsSubmitted, ResourceManager.QueueMetrics.AppsRunning, ResourceManager.QueueMetrics.AppsPending, ResourceManager.QueueMetrics.AppsCompleted, ResourceManager.QueueMetrics.AppsKilled, ResourceManager.QueueMetrics.AppsFailed
For now these metrics are created only when they are needed, we want to make them be seen when QueueMetrics is initialized</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-764">YARN-764</a>.
     Major bug reported by nemon lou and fixed by nemon lou (resourcemanager)<br>
     <b>blank Used Resources on Capacity Scheduler page </b><br>
     <blockquote>Even when there are jobs running,used resources is empty on Capacity Scheduler page for leaf queue.(I use google-chrome on windows 7.)
After changing resource.java's toString method by replacing "&lt;&gt;" with "{}",this bug gets fixed.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-763">YARN-763</a>.
     Major bug reported by Bikas Saha and fixed by Xuan Gong <br>
     <b>AMRMClientAsync should stop heartbeating after receiving shutdown from RM</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-761">YARN-761</a>.
     Major bug reported by Vinod Kumar Vavilapalli and fixed by Zhijie Shen <br>
     <b>TestNMClientAsync fails sometimes</b><br>
     <blockquote>See https://builds.apache.org/job/PreCommit-YARN-Build/1101//testReport/.

It passed on my machine though.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-760">YARN-760</a>.
     Major bug reported by Sandy Ryza and fixed by Niranjan Singh (nodemanager)<br>
     <b>NodeManager throws AvroRuntimeException on failed start</b><br>
     <blockquote>NodeManager wraps exceptions that occur in its start method in AvroRuntimeExceptions, even though it doesn't use Avro anywhere else.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-759">YARN-759</a>.
     Major sub-task reported by Bikas Saha and fixed by Bikas Saha <br>
     <b>Create Command enum in AllocateResponse</b><br>
     <blockquote>Use command enums for shutdown/resync instead of booleans.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-757">YARN-757</a>.
     Blocker bug reported by Bikas Saha and fixed by Bikas Saha <br>
     <b>TestRMRestart failing/stuck on trunk</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-756">YARN-756</a>.
     Major sub-task reported by Jian He and fixed by Jian He <br>
     <b>Move PreemptionContainer/PremptionContract/PreemptionMessage/StrictPreemptionContract/PreemptionResourceRequest to api.records</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-755">YARN-755</a>.
     Major sub-task reported by Bikas Saha and fixed by Bikas Saha <br>
     <b>Rename AllocateResponse.reboot to AllocateResponse.resync</b><br>
     <blockquote>For work preserving rm restart the am's will be resyncing instead of rebooting. rebooting is an action that currently satisfies the resync requirement. Changing the name now so that it continues to make sense in the real resync case. </blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-753">YARN-753</a>.
     Major sub-task reported by Jian He and fixed by Jian He <br>
     <b>Add individual factory method for api protocol records</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-752">YARN-752</a>.
     Major improvement reported by Sandy Ryza and fixed by Sandy Ryza (api , applications)<br>
     <b>In AMRMClient, automatically add corresponding rack requests for requested nodes</b><br>
     <blockquote>A ContainerRequest that includes node-level requests must also include matching rack-level requests for the racks that those nodes are on.  When a node is present without its rack, it makes sense for the client to automatically add the node's rack.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-750">YARN-750</a>.
     Major sub-task reported by Arun C Murthy and fixed by Arun C Murthy <br>
     <b>Allow for black-listing resources in YARN API and Impl in CS</b><br>
     <blockquote>YARN-392 and YARN-398 enhance scheduler api to allow for white-lists of resources.

This jira is a companion to allow for black-listing (in CS).</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-749">YARN-749</a>.
     Major sub-task reported by Arun C Murthy and fixed by Arun C Murthy <br>
     <b>Rename ResourceRequest (get,set)HostName to (get,set)ResourceName</b><br>
     <blockquote>We should rename ResourceRequest (get,set)HostName to (get,set)ResourceName since the name can be host, rack or *.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-748">YARN-748</a>.
     Major sub-task reported by Jian He and fixed by Jian He <br>
     <b>Move BuilderUtils from yarn-common to yarn-server-common</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-746">YARN-746</a>.
     Major sub-task reported by Steve Loughran and fixed by Steve Loughran <br>
     <b>rename Service.register() and Service.unregister() to registerServiceListener() &amp; unregisterServiceListener() respectively</b><br>
     <blockquote>make it clear what you are registering on a {{Service}} by naming the methods {{registerServiceListener()}} &amp; {{unregisterServiceListener()}} respectively.

This only affects a couple of production classes; {{Service.register()}} and is used in some of the lifecycle tests of the YARN-530. There are no tests of {{Service.unregister()}}, which is something that could be corrected.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-742">YARN-742</a>.
     Major bug reported by Kihwal Lee and fixed by Jason Lowe (nodemanager)<br>
     <b>Log aggregation causes a lot of redundant setPermission calls</b><br>
     <blockquote>In one of our clusters, namenode RPC is spending 45% of its time on serving setPermission calls. Further investigation has revealed that most calls are redundantly made on /mapred/logs/&lt;user&gt;/logs. Also mkdirs calls are made before this.
</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-739">YARN-739</a>.
     Major sub-task reported by Siddharth Seth and fixed by Omkar Vinit Joshi <br>
     <b>NM startContainer should validate the NodeId</b><br>
     <blockquote>The NM validates certain fields from the ContainerToken on a startContainer call. It shoudl also validate the NodeId (which needs to be added to the ContianerToken).</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-737">YARN-737</a>.
     Major sub-task reported by Jian He and fixed by Jian He <br>
     <b>Some Exceptions no longer need to be wrapped by YarnException and can be directly thrown out after YARN-142 </b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-736">YARN-736</a>.
     Major improvement reported by Sandy Ryza and fixed by Sandy Ryza (scheduler)<br>
     <b>Add a multi-resource fair sharing metric</b><br>
     <blockquote>Currently, at a regular interval, the fair scheduler computes a fair memory share for each queue and application inside it.  This fair share is not used for scheduling decisions, but is displayed in the web UI, exposed as a metric, and used for preemption decisions.

With DRF and multi-resource scheduling, assigning a memory share as the fair share metric to every queue no longer makes sense.  It's not obvious what the replacement should be, but probably something like fractional fairness within a queue, or distance from an ideal cluster state.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-735">YARN-735</a>.
     Major sub-task reported by Jian He and fixed by Jian He <br>
     <b>Make ApplicationAttemptID, ContainerID, NodeID immutable</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-733">YARN-733</a>.
     Major bug reported by Zhijie Shen and fixed by Zhijie Shen <br>
     <b>TestNMClient fails occasionally</b><br>
     <blockquote>The problem happens at:
{code}
        // getContainerStatus can be called after stopContainer
        try {
          ContainerStatus status = nmClient.getContainerStatus(
              container.getId(), container.getNodeId(),
              container.getContainerToken());
          assertEquals(container.getId(), status.getContainerId());
          assertEquals(ContainerState.RUNNING, status.getState());
          assertTrue("" + i, status.getDiagnostics().contains(
              "Container killed by the ApplicationMaster."));
          assertEquals(-1000, status.getExitStatus());
        } catch (YarnRemoteException e) {
          fail("Exception is not expected");
        }
{code}

NMClientImpl#stopContainer returns, but container hasn't been stopped immediately. ContainerManangerImpl implements stopContainer in async style. Therefore, the container's status is in transition. NMClientImpl#getContainerStatus immediately after stopContainer will get either the RUNNING status or the COMPLETE one.

There will be the similar problem wrt NMClientImpl#startContainer.
</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-731">YARN-731</a>.
     Major sub-task reported by Siddharth Seth and fixed by Zhijie Shen <br>
     <b>RPCUtil.unwrapAndThrowException should unwrap remote RuntimeExceptions</b><br>
     <blockquote>Will be required for YARN-662. Also, remote NPEs show up incorrectly for some unit tests.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-727">YARN-727</a>.
     Blocker sub-task reported by Siddharth Seth and fixed by Xuan Gong <br>
     <b>ClientRMProtocol.getAllApplications should accept ApplicationType as a parameter</b><br>
     <blockquote>Now that an ApplicationType is registered on ApplicationSubmission, getAllApplications should be able to use this string to query for a specific application type.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-726">YARN-726</a>.
     Critical bug reported by Siddharth Seth and fixed by Mayank Bansal <br>
     <b>Queue, FinishTime fields broken on RM UI</b><br>
     <blockquote>The queue shows up as "Invalid Date"
Finish Time shows up as a Long value.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-724">YARN-724</a>.
     Major sub-task reported by Jian He and fixed by Jian He <br>
     <b>Move ProtoBase from api.records to api.records.impl.pb</b><br>
     <blockquote>Simply move ProtoBase to records.impl.pb</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-720">YARN-720</a>.
     Major sub-task reported by Siddharth Seth and fixed by Zhijie Shen <br>
     <b>container-log4j.properties should not refer to mapreduce properties</b><br>
     <blockquote>This refers to yarn.app.mapreduce.container.log.dir and yarn.app.mapreduce.container.log.filesize. This should either be moved into the MR codebase. Alternately the parameters should be renamed.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-719">YARN-719</a>.
     Major sub-task reported by Vinod Kumar Vavilapalli and fixed by Vinod Kumar Vavilapalli <br>
     <b>Move RMIdentifier from Container to ContainerTokenIdentifier</b><br>
     <blockquote>This needs to be done for YARN-684 to happen.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-717">YARN-717</a>.
     Major sub-task reported by Jian He and fixed by Jian He <br>
     <b>Copy BuilderUtil methods into token-related records</b><br>
     <blockquote>This is separated from YARN-711,as after changing yarn.api.token from interface to abstract class, eg: ClientTokenPBImpl has to extend two classes: both TokenPBImpl and ClientToken abstract class, which is not allowed in JAVA.

We may remove the ClientToken/ContainerToken/DelegationToken interface and just use the common Token interface </blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-716">YARN-716</a>.
     Major task reported by Siddharth Seth and fixed by Siddharth Seth <br>
     <b>Make ApplicationID immutable</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-715">YARN-715</a>.
     Major bug reported by Siddharth Seth and fixed by Vinod Kumar Vavilapalli <br>
     <b>TestDistributedShell and TestUnmanagedAMLauncher are failing</b><br>
     <blockquote>Tests are timing out. Looks like this is related to YARN-617.
{code}
2013-05-21 17:40:23,693 ERROR [IPC Server handler 0 on 54024] containermanager.ContainerManagerImpl (ContainerManagerImpl.java:authorizeRequest(412)) - Unauthorized request to start container.
Expected containerId: user Found: container_1369183214008_0001_01_000001
2013-05-21 17:40:23,694 ERROR [IPC Server handler 0 on 54024] security.UserGroupInformation (UserGroupInformation.java:doAs(1492)) - PriviledgedActionException as:user (auth:SIMPLE) cause:org.apache.hado
Expected containerId: user Found: container_1369183214008_0001_01_000001
2013-05-21 17:40:23,695 INFO  [IPC Server handler 0 on 54024] ipc.Server (Server.java:run(1864)) - IPC Server handler 0 on 54024, call org.apache.hadoop.yarn.api.ContainerManagerPB.startContainer from 10.
Expected containerId: user Found: container_1369183214008_0001_01_000001
org.apache.hadoop.yarn.exceptions.YarnRemoteException: Unauthorized request to start container.
Expected containerId: user Found: container_1369183214008_0001_01_000001
  at org.apache.hadoop.yarn.ipc.RPCUtil.getRemoteException(RPCUtil.java:43)
  at org.apache.hadoop.yarn.server.nodemanager.containermanager.ContainerManagerImpl.authorizeRequest(ContainerManagerImpl.java:413)
  at org.apache.hadoop.yarn.server.nodemanager.containermanager.ContainerManagerImpl.startContainer(ContainerManagerImpl.java:440)
  at org.apache.hadoop.yarn.api.impl.pb.service.ContainerManagerPBServiceImpl.startContainer(ContainerManagerPBServiceImpl.java:72)
  at org.apache.hadoop.yarn.proto.ContainerManager$ContainerManagerService$2.callBlockingMethod(ContainerManager.java:83)
  at org.apache.hadoop.ipc.ProtobufRpcEngine$Server$ProtoBufRpcInvoker.call(ProtobufRpcEngine.java:527)
{code}</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-714">YARN-714</a>.
     Major sub-task reported by Omkar Vinit Joshi and fixed by Omkar Vinit Joshi <br>
     <b>AMRM protocol changes for sending NMToken list</b><br>
     <blockquote>NMToken will be sent to AM on allocate call if
1) AM doesn't already have NMToken for the underlying NM
2) Key rolled over on RM and AM gets new container on the same NM.
On allocate call RM will send a consolidated list of all required NMTokens.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-711">YARN-711</a>.
     Major sub-task reported by Vinod Kumar Vavilapalli and fixed by Jian He <br>
     <b>Copy BuilderUtil methods into individual records</b><br>
     <blockquote>BuilderUtils is one giant utils class which has all the factory methods needed for creating records. It is painful for users to figure out how to create records. We are better off having the factories in each record, that way users can easily create records.

As a first step, we should just copy all the factory methods into individual classes, deprecate BuilderUtils and then slowly move all code off BuilderUtils.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-708">YARN-708</a>.
     Major task reported by Siddharth Seth and fixed by Siddharth Seth <br>
     <b>Move RecordFactory classes to hadoop-yarn-api, miscellaneous fixes to the interfaces</b><br>
     <blockquote>This is required for additional changes in YARN-528. 
Some of the interfaces could use some cleanup as well - they shouldn't be declaring YarnException (Runtime) in their signature.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-706">YARN-706</a>.
     Major bug reported by Zhijie Shen and fixed by Zhijie Shen <br>
     <b>Race Condition in TestFSDownload</b><br>
     <blockquote>See the test failure in YARN-695

https://builds.apache.org/job/PreCommit-YARN-Build/957//testReport/org.apache.hadoop.yarn.util/TestFSDownload/testDownloadPatternJar/</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-701">YARN-701</a>.
     Blocker sub-task reported by Vinod Kumar Vavilapalli and fixed by Vinod Kumar Vavilapalli <br>
     <b>ApplicationTokens should be used irrespective of kerberos</b><br>
     <blockquote> - Single code path for secure and non-secure cases is useful for testing, coverage.
 - Having this in non-secure mode will help us avoid accidental bugs in AMs DDos'ing and bringing down RM.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-700">YARN-700</a>.
     Major bug reported by Ivan Mitic and fixed by Ivan Mitic <br>
     <b>TestInfoBlock fails on Windows because of line ending missmatch</b><br>
     <blockquote>Exception:
{noformat}
Running org.apache.hadoop.yarn.webapp.view.TestInfoBlock
Tests run: 1, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 0.962 sec &lt;&lt;&lt; FAILURE!
testMultilineInfoBlock(org.apache.hadoop.yarn.webapp.view.TestInfoBlock)  Time elapsed: 873 sec  &lt;&lt;&lt; FAILURE!
java.lang.AssertionError: 
	at org.junit.Assert.fail(Assert.java:91)
	at org.junit.Assert.assertTrue(Assert.java:43)
	at org.junit.Assert.assertTrue(Assert.java:54)
	at org.apache.hadoop.yarn.webapp.view.TestInfoBlock.testMultilineInfoBlock(TestInfoBlock.java:79)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)
	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
	at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)
	at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
	at org.junit.internal.runners.statements.FailOnTimeout$1.run(FailOnTimeout.java:28)
{noformat}</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-695">YARN-695</a>.
     Major sub-task reported by Zhijie Shen and fixed by Zhijie Shen <br>
     <b>masterContainer and status are in ApplicationReportProto but not in ApplicationReport</b><br>
     <blockquote>If masterContainer and status are no longer part of ApplicationReport, they should be removed from proto as well.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-694">YARN-694</a>.
     Major bug reported by Omkar Vinit Joshi and fixed by Omkar Vinit Joshi <br>
     <b>Start using NMTokens to authenticate all communication with NM</b><br>
     <blockquote>AM uses the NMToken to authenticate all the AM-NM communication.
NM will validate NMToken in below manner
* If NMToken is using current or previous master key then the NMToken is valid. In this case it will update its cache with this key corresponding to appId.
* If NMToken is using the master key which is present in NM's cache corresponding to AM's appId then it will be validated based on this.
* If NMToken is invalid then NM will reject AM calls.

Modification for ContainerToken
* At present RPC validates AM-NM communication based on ContainerToken. It will be replaced with NMToken. Also now onwards AM will use NMToken per NM (replacing earlier behavior of ContainerToken per container per NM).
* startContainer in case of Secured environment is using ContainerToken from UGI YARN-617; however after this it will use it from the payload (Container).
* ContainerToken will exist and it will only be used to validate the AM's container start request.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-693">YARN-693</a>.
     Major bug reported by Omkar Vinit Joshi and fixed by Omkar Vinit Joshi <br>
     <b>Sending NMToken to AM on allocate call</b><br>
     <blockquote>This is part of YARN-613.
As per the updated design, AM will receive per NM, NMToken in following scenarios
* AM is receiving first container on underlying NM.
* AM is receiving container on underlying NM after either NM or RM rebooted.
** After RM reboot, as RM doesn't remember (persist) the information about keys issued per AM per NM, it will reissue tokens in case AM gets new container on underlying NM. However on NM side NM will still retain older token until it receives new token to support long running jobs (in work preserving environment).
** After NM reboot, RM will delete the token information corresponding to that AM for all AMs.
* AM is receiving container on underlying NM after NMToken master key is rolled over on RM side.
In all the cases if AM receives new NMToken then it is suppose to store it for future NM communication until it receives a new one.

AMRMClient should expose these NMToken to client. </blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-692">YARN-692</a>.
     Major bug reported by Omkar Vinit Joshi and fixed by Omkar Vinit Joshi <br>
     <b>Creating NMToken master key on RM and sharing it with NM as a part of RM-NM heartbeat.</b><br>
     <blockquote>This is related to YARN-613 . Here we will be implementing NMToken generation on RM side and sharing it with NM during RM-NM heartbeat. As a part of this JIRA mater key will only be made available to NM but there will be no validation done until AM-NM communication is fixed.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-690">YARN-690</a>.
     Blocker bug reported by Daryn Sharp and fixed by Daryn Sharp (resourcemanager)<br>
     <b>RM exits on token cancel/renew problems</b><br>
     <blockquote>The DelegationTokenRenewer thread is critical to the RM.  When a non-IOException occurs, the thread calls System.exit to prevent the RM from running w/o the thread.  It should be exiting only on non-RuntimeExceptions.

The problem is especially bad in 23 because the yarn protobuf layer converts IOExceptions into UndeclaredThrowableExceptions (RuntimeException) which causes the renewer to abort the process.  An UnknownHostException takes down the RM...</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-688">YARN-688</a>.
     Major bug reported by Jian He and fixed by Jian He <br>
     <b>Containers not cleaned up when NM received SHUTDOWN event from NodeStatusUpdater</b><br>
     <blockquote>Currently, both SHUTDOWN event from nodeStatusUpdater and CleanupContainers event happens to be on the same dispatcher thread, CleanupContainers Event will not be processed until SHUTDOWN event is processed. see similar problem on YARN-495.
On normal NM shutdown, this is not a problem since normal stop happens on shutdownHook thread.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-686">YARN-686</a>.
     Major sub-task reported by Sandy Ryza and fixed by Sandy Ryza (api)<br>
     <b>Flatten NodeReport</b><br>
     <blockquote>The NodeReport returned by getClusterNodes or given to AMs in heartbeat responses includes both a NodeState (enum) and a NodeHealthStatus (object).  As UNHEALTHY is already NodeState, a separate NodeHealthStatus doesn't seem necessary.  I propose eliminating NodeHealthStatus#getIsNodeHealthy and moving its two other methods, getHealthReport and getLastHealthReportTime, into NodeReport.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-684">YARN-684</a>.
     Major sub-task reported by Vinod Kumar Vavilapalli and fixed by Vinod Kumar Vavilapalli <br>
     <b>ContainerManager.startContainer needs to only have ContainerTokenIdentifier instead of the whole Container</b><br>
     <blockquote>The NM only needs the token, the whole Container is unnecessary.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-663">YARN-663</a>.
     Major sub-task reported by Xuan Gong and fixed by Xuan Gong <br>
     <b>Change ResourceTracker API and LocalizationProtocol API to throw YarnRemoteException and IOException</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-661">YARN-661</a>.
     Major bug reported by Jason Lowe and fixed by Omkar Vinit Joshi (nodemanager)<br>
     <b>NM fails to cleanup local directories for users</b><br>
     <blockquote>YARN-71 added deletion of local directories on startup, but in practice it fails to delete the directories because of permission problems.  The top-level usercache directory is owned by the user but is in a directory that is not writable by the user.  Therefore the deletion of the user's usercache directory, as the user, fails due to lack of permissions.
</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-660">YARN-660</a>.
     Major sub-task reported by Bikas Saha and fixed by Bikas Saha <br>
     <b>Improve AMRMClient with matching requests</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-656">YARN-656</a>.
     Major bug reported by Sandy Ryza and fixed by Sandy Ryza (resourcemanager , scheduler)<br>
     <b>In scheduler UI, including reserved memory in "Memory Total" can make it exceed cluster capacity.</b><br>
     <blockquote>"Memory Total" is currently a sum of availableMB, allocatedMB, and reservedMB.  Including reservedMB in this sum can make the total exceed the capacity of the cluster. </blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-655">YARN-655</a>.
     Major bug reported by Sandy Ryza and fixed by Sandy Ryza (scheduler)<br>
     <b>Fair scheduler metrics should subtract allocated memory from available memory</b><br>
     <blockquote>In the scheduler web UI, cluster metrics reports that the "Memory Total" goes up when an application is allocated resources.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-654">YARN-654</a>.
     Major bug reported by Bikas Saha and fixed by Xuan Gong <br>
     <b>AMRMClient: Perform sanity checks for parameters of public methods</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-651">YARN-651</a>.
     Major sub-task reported by Xuan Gong and fixed by Xuan Gong <br>
     <b>Change ContainerManagerPBClientImpl and RMAdminProtocolPBClientImpl to throw IOException and YarnRemoteException</b><br>
     <blockquote>YARN-632 AND YARN-633 changes RMAdmin and ContainerManager api to throw YarnRemoteException and IOException. RMAdminProtocolPBClientImpl and ContainerManagerPBClientImpl should do the same changes</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-648">YARN-648</a>.
     Major bug reported by Karthik Kambatla and fixed by Karthik Kambatla (scheduler)<br>
     <b>FS: Add documentation for pluggable policy</b><br>
     <blockquote>YARN-469 and YARN-482 make the scheduling policy in FS pluggable. Need to add documentation on how to use this.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-646">YARN-646</a>.
     Major bug reported by Dapeng Sun and fixed by Dapeng Sun (documentation)<br>
     <b>Some issues in Fair Scheduler's document</b><br>
     <blockquote>Issues are found in the doc page for Fair Scheduler http://hadoop.apache.org/docs/current/hadoop-yarn/hadoop-yarn-site/FairScheduler.html:
1.In the section &#8220;Configuration&#8221;, It contains two properties named &#8220;yarn.scheduler.fair.minimum-allocation-mb&#8221;, the second one should be &#8220;yarn.scheduler.fair.maximum-allocation-mb&#8221;
2.In the section &#8220;Allocation file format&#8221;, the document tells &#8220; The format contains three types of elements&#8221;, but it lists four types of elements following that.
</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-645">YARN-645</a>.
     Major bug reported by Jian He and fixed by Jian He <br>
     <b>Move RMDelegationTokenSecretManager from yarn-server-common to yarn-server-resourcemanager</b><br>
     <blockquote>RMDelegationTokenSecretManager is specific to resource manager, should not belong to server-common</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-642">YARN-642</a>.
     Major bug reported by Sandy Ryza and fixed by Sandy Ryza (api , resourcemanager)<br>
     <b>Fix up /nodes REST API to have 1 param and be consistent with the Java API</b><br>
     <blockquote>The code behind the /nodes RM REST API is unnecessarily muddled, logs the same misspelled INFO message repeatedly, and does not return unhealthy nodes, even when asked.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-639">YARN-639</a>.
     Major bug reported by Zhijie Shen and fixed by Zhijie Shen (applications/distributed-shell)<br>
     <b>Make AM of Distributed Shell Use NMClient</b><br>
     <blockquote>YARN-422 adds NMClient. AM of Distributed Shell should use it instead of using ContainerManager directly.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-638">YARN-638</a>.
     Major sub-task reported by Jian He and fixed by Jian He (resourcemanager)<br>
     <b>Restore RMDelegationTokens after RM Restart</b><br>
     <blockquote>This is missed in YARN-581. After RM restart, RMDelegationTokens need to be added both in DelegationTokenRenewer (addressed in YARN-581), and delegationTokenSecretManager</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-637">YARN-637</a>.
     Major bug reported by Karthik Kambatla and fixed by Karthik Kambatla (scheduler)<br>
     <b>FS: maxAssign is not honored</b><br>
     <blockquote>maxAssign limits the number of containers that can be assigned in a single heartbeat. Currently, FS doesn't keep track of number of assigned containers to check this.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-635">YARN-635</a>.
     Major sub-task reported by Xuan Gong and fixed by Siddharth Seth <br>
     <b>Rename YarnRemoteException to YarnException</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-634">YARN-634</a>.
     Major sub-task reported by Siddharth Seth and fixed by Siddharth Seth <br>
     <b>Make YarnRemoteException not backed by PB and introduce a SerializedException</b><br>
     <blockquote>LocalizationProtocol sends an exception over the wire. This currently uses YarnRemoteException. Post YARN-627, this needs to be changed and a new serialized exception is required.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-633">YARN-633</a>.
     Major sub-task reported by Xuan Gong and fixed by Xuan Gong <br>
     <b>Change RMAdminProtocol api to throw IOException and YarnRemoteException</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-632">YARN-632</a>.
     Major sub-task reported by Xuan Gong and fixed by Xuan Gong <br>
     <b>Change ContainerManager api to throw IOException and YarnRemoteException</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-631">YARN-631</a>.
     Major sub-task reported by Xuan Gong and fixed by Xuan Gong <br>
     <b>Change ClientRMProtocol api to throw IOException and YarnRemoteException</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-630">YARN-630</a>.
     Major sub-task reported by Xuan Gong and fixed by Xuan Gong <br>
     <b>Change AMRMProtocol api to throw IOException and YarnRemoteException</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-629">YARN-629</a>.
     Major sub-task reported by Xuan Gong and fixed by Xuan Gong <br>
     <b>Make YarnRemoteException not be rooted at IOException</b><br>
     <blockquote>After HADOOP-9343, it should be possible for YarnException to not be rooted at IOException</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-628">YARN-628</a>.
     Major sub-task reported by Siddharth Seth and fixed by Siddharth Seth <br>
     <b>Fix YarnException unwrapping</b><br>
     <blockquote>Unwrapping of YarnRemoteExceptions (currently in YarnRemoteExceptionPBImpl, RPCUtil post YARN-625) is broken, and often ends up throwin UndeclaredThrowableException. This needs to be fixed.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-625">YARN-625</a>.
     Major sub-task reported by Siddharth Seth and fixed by Siddharth Seth <br>
     <b>Move unwrapAndThrowException from YarnRemoteExceptionPBImpl to RPCUtil</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-618">YARN-618</a>.
     Major bug reported by Jian He and fixed by Jian He <br>
     <b>Modify RM_INVALID_IDENTIFIER to  a -ve number</b><br>
     <blockquote>RM_INVALID_IDENTIFIER set to 0 doesnt sound right as many tests set it to 0. Probably a -ve number is what we want.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-617">YARN-617</a>.
     Minor sub-task reported by Vinod Kumar Vavilapalli and fixed by Omkar Vinit Joshi <br>
     <b>In unsercure mode, AM can fake resource requirements </b><br>
     <blockquote>Without security, it is impossible to completely avoid AMs faking resources. We can at the least make it as difficult as possible by using the same container tokens and the RM-NM shared key mechanism over unauthenticated RM-NM channel.

In the minimum, this will avoid accidental bugs in AMs in unsecure mode.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-615">YARN-615</a>.
     Major sub-task reported by Vinod Kumar Vavilapalli and fixed by Vinod Kumar Vavilapalli <br>
     <b>ContainerLaunchContext.containerTokens should simply be called tokens</b><br>
     <blockquote>ContainerToken is the name of the specific token that AMs use to launch containers on NMs, so we should rename CLC.containerTokens to be simply tokens.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-613">YARN-613</a>.
     Major sub-task reported by Bikas Saha and fixed by Omkar Vinit Joshi <br>
     <b>Create NM proxy per NM instead of per container</b><br>
     <blockquote>Currently a new NM proxy has to be created per container since the secure authentication is using a containertoken from the container.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-610">YARN-610</a>.
     Blocker sub-task reported by Siddharth Seth and fixed by Omkar Vinit Joshi <br>
     <b>ClientToken (ClientToAMToken) should not be set in the environment</b><br>
     <blockquote>Similar to YARN-579, this can be set via ContainerTokens</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-605">YARN-605</a>.
     Major bug reported by Hitesh Shah and fixed by Hitesh Shah <br>
     <b>Failing unit test in TestNMWebServices when using git for source control </b><br>
     <blockquote>Failed tests:   testNode(org.apache.hadoop.yarn.server.nodemanager.webapp.TestNMWebServices): hadoopBuildVersion doesn't match, got: 3.0.0-SNAPSHOT from fddcdcfb3cfe7dcc4f77c1ac953dd2cc0a890c62 (HEAD, origin/trunk, origin/HEAD, mrx-track) by Hitesh source checksum f89f5c9b9c9d44cf3be5c2686f2d789 expected: 3.0.0-SNAPSHOT from fddcdcfb3cfe7dcc4f77c1ac953dd2cc0a890c62 (HEAD, origin/trunk, origin/HEAD, mrx-track) by Hitesh source checksum f89f5c9b9c9d44cf3be5c2686f2d789
  testNodeSlash(org.apache.hadoop.yarn.server.nodemanager.webapp.TestNMWebServices): hadoopBuildVersion doesn't match, got: 3.0.0-SNAPSHOT from fddcdcfb3cfe7dcc4f77c1ac953dd2cc0a890c62 (HEAD, origin/trunk, origin/HEAD, mrx-track) by Hitesh source checksum f89f5c9b9c9d44cf3be5c2686f2d789 expected: 3.0.0-SNAPSHOT from fddcdcfb3cfe7dcc4f77c1ac953dd2cc0a890c62 (HEAD, origin/trunk, origin/HEAD, mrx-track) by Hitesh source checksum f89f5c9b9c9d44cf3be5c2686f2d789
  testNodeDefault(org.apache.hadoop.yarn.server.nodemanager.webapp.TestNMWebServices): hadoopBuildVersion doesn't match, got: 3.0.0-SNAPSHOT from fddcdcfb3cfe7dcc4f77c1ac953dd2cc0a890c62 (HEAD, origin/trunk, origin/HEAD, mrx-track) by Hitesh source checksum f89f5c9b9c9d44cf3be5c2686f2d789 expected: 3.0.0-SNAPSHOT from fddcdcfb3cfe7dcc4f77c1ac953dd2cc0a890c62 (HEAD, origin/trunk, origin/HEAD, mrx-track) by Hitesh source checksum f89f5c9b9c9d44cf3be5c2686f2d789
  testNodeInfo(org.apache.hadoop.yarn.server.nodemanager.webapp.TestNMWebServices): hadoopBuildVersion doesn't match, got: 3.0.0-SNAPSHOT from fddcdcfb3cfe7dcc4f77c1ac953dd2cc0a890c62 (HEAD, origin/trunk, origin/HEAD, mrx-track) by Hitesh source checksum f89f5c9b9c9d44cf3be5c2686f2d789 expected: 3.0.0-SNAPSHOT from fddcdcfb3cfe7dcc4f77c1ac953dd2cc0a890c62 (HEAD, origin/trunk, origin/HEAD, mrx-track) by Hitesh source checksum f89f5c9b9c9d44cf3be5c2686f2d789
  testNodeInfoSlash(org.apache.hadoop.yarn.server.nodemanager.webapp.TestNMWebServices): hadoopBuildVersion doesn't match, got: 3.0.0-SNAPSHOT from fddcdcfb3cfe7dcc4f77c1ac953dd2cc0a890c62 (HEAD, origin/trunk, origin/HEAD, mrx-track) by Hitesh source checksum f89f5c9b9c9d44cf3be5c2686f2d789 expected: 3.0.0-SNAPSHOT from fddcdcfb3cfe7dcc4f77c1ac953dd2cc0a890c62 (HEAD, origin/trunk, origin/HEAD, mrx-track) by Hitesh source checksum f89f5c9b9c9d44cf3be5c2686f2d789
  testNodeInfoDefault(org.apache.hadoop.yarn.server.nodemanager.webapp.TestNMWebServices): hadoopBuildVersion doesn't match, got: 3.0.0-SNAPSHOT from fddcdcfb3cfe7dcc4f77c1ac953dd2cc0a890c62 (HEAD, origin/trunk, origin/HEAD, mrx-track) by Hitesh source checksum f89f5c9b9c9d44cf3be5c2686f2d789 expected: 3.0.0-SNAPSHOT from fddcdcfb3cfe7dcc4f77c1ac953dd2cc0a890c62 (HEAD, origin/trunk, origin/HEAD, mrx-track) by Hitesh source checksum f89f5c9b9c9d44cf3be5c2686f2d789
  testSingleNodesXML(org.apache.hadoop.yarn.server.nodemanager.webapp.TestNMWebServices): hadoopBuildVersion doesn't match, got: 3.0.0-SNAPSHOT from fddcdcfb3cfe7dcc4f77c1ac953dd2cc0a890c62 (HEAD, origin/trunk, origin/HEAD, mrx-track) by Hitesh source checksum f89f5c9b9c9d44cf3be5c2686f2d789 expected: 3.0.0-SNAPSHOT from fddcdcfb3cfe7dcc4f77c1ac953dd2cc0a890c62 (HEAD, origin/trunk, origin/HEAD, mrx-track) by Hitesh source checksum f89f5c9b9c9d44cf3be5c2686f2d789</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-600">YARN-600</a>.
     Major improvement reported by Sandy Ryza and fixed by Sandy Ryza (resourcemanager , scheduler)<br>
     <b>Hook up cgroups CPU settings to the number of virtual cores allocated</b><br>
     <blockquote>YARN-3 introduced CPU isolation and monitoring through cgroups.  YARN-2 and introduced CPU scheduling in the capacity scheduler, and YARN-326 will introduce it in the fair scheduler.  The number of virtual cores allocated to a container should be used to weight the number of cgroups CPU shares given to it.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-599">YARN-599</a>.
     Major bug reported by Zhijie Shen and fixed by Zhijie Shen <br>
     <b>Refactoring submitApplication in ClientRMService and RMAppManager</b><br>
     <blockquote>Currently, ClientRMService#submitApplication call RMAppManager#handle, and consequently call RMAppMangager#submitApplication directly, though the code looks like scheduling an APP_SUBMIT event.

In addition, the validation code before creating an RMApp instance is not well organized. Ideally, the dynamic validation, which depends on the RM's configuration, should be put in RMAppMangager#submitApplication. RMAppMangager#submitApplication is called by ClientRMService#submitApplication and RMAppMangager#recover. Since the configuration may be changed after RM restarts, the validation needs to be done again even in recovery mode. Therefore, resource request validation, which based on min/max resource limits, should be moved from ClientRMService#submitApplication to RMAppMangager#submitApplication. On the other hand, the static validation, which is independent of the RM's configuration should be put in ClientRMService#submitApplication, because it is only need to be done once during the first submission.

Furthermore, try-catch flow in RMAppMangager#submitApplication has a flaw. RMAppMangager#submitApplication has a flaw is not synchronized. If two application submissions with the same application ID enter the function, and one progresses to the completion of RMApp instantiation, and the other progresses the completion of putting the RMApp instance into rmContext, the slower submission will cause an exception due to the duplicate application ID. However, the exception will cause the RMApp instance already in rmContext (belongs to the faster submission) being rejected with the current code flow.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-598">YARN-598</a>.
     Major improvement reported by Sandy Ryza and fixed by Sandy Ryza (resourcemanager , scheduler)<br>
     <b>Add virtual cores to queue metrics</b><br>
     <blockquote>QueueMetrics includes allocatedMB, availableMB, pendingMB, reservedMB.  It should have equivalents for CPU.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-597">YARN-597</a>.
     Major bug reported by Ivan Mitic and fixed by Ivan Mitic <br>
     <b>TestFSDownload fails on Windows because of dependencies on tar/gzip/jar tools</b><br>
     <blockquote>{{testDownloadArchive}}, {{testDownloadPatternJar}} and {{testDownloadArchiveZip}} fail with the similar Shell ExitCodeException:

{code}
testDownloadArchiveZip(org.apache.hadoop.yarn.util.TestFSDownload)  Time elapsed: 480 sec  &lt;&lt;&lt; ERROR!
org.apache.hadoop.util.Shell$ExitCodeException: bash: line 0: cd: /D:/svn/t/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/target/TestFSDownload: No such file or directory
gzip: 1: No such file or directory

	at org.apache.hadoop.util.Shell.runCommand(Shell.java:377)
	at org.apache.hadoop.util.Shell.run(Shell.java:292)
	at org.apache.hadoop.util.Shell$ShellCommandExecutor.execute(Shell.java:497)
	at org.apache.hadoop.yarn.util.TestFSDownload.createZipFile(TestFSDownload.java:225)
	at org.apache.hadoop.yarn.util.TestFSDownload.testDownloadArchiveZip(TestFSDownload.java:503)
{code}</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-595">YARN-595</a>.
     Major sub-task reported by Sandy Ryza and fixed by Sandy Ryza (scheduler)<br>
     <b>Refactor fair scheduler to use common Resources</b><br>
     <blockquote>resourcemanager.fair and resourcemanager.resources have two copies of basically the same code for operations on Resource objects</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-594">YARN-594</a>.
     Major bug reported by Jian He and fixed by Jian He <br>
     <b>Update test and add comments in YARN-534</b><br>
     <blockquote>This jira is simply to add some comments in the patch YARN-534 and update the test case</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-593">YARN-593</a>.
     Major bug reported by Chris Nauroth and fixed by Chris Nauroth (nodemanager)<br>
     <b>container launch on Windows does not correctly populate classpath with new process's environment variables and localized resources</b><br>
     <blockquote>On Windows, we must bundle the classpath of a launched container in an intermediate jar with a manifest.  Currently, this logic incorrectly uses the nodemanager process's environment variables for substitution.  Instead, it needs to use the new environment for the launched process.  Also, the bundled classpath is missing some localized resources for directories, due to a quirk in the way {{File#toURI}} decides whether or not to append a trailing '/'.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-591">YARN-591</a>.
     Major sub-task reported by Vinod Kumar Vavilapalli and fixed by Vinod Kumar Vavilapalli <br>
     <b>RM recovery related records do not belong to the API</b><br>
     <blockquote>We need to move out AppliationStateData and ApplicationAttemptStateData into resourcemanager module. They are not part of the public API..</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-590">YARN-590</a>.
     Major improvement reported by Vinod Kumar Vavilapalli and fixed by Mayank Bansal <br>
     <b>Add an optional mesage to RegisterNodeManagerResponse as to why NM is being asked to resync or shutdown</b><br>
     <blockquote>We should log such message in NM itself. Helps in debugging issues on NM directly instead of distributed debugging between RM and NM when such an action is received from RM.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-586">YARN-586</a>.
     Trivial bug reported by Zhijie Shen and fixed by Zhijie Shen <br>
     <b>Typo in ApplicationSubmissionContext#setApplicationId</b><br>
     <blockquote>The parameter should be applicationId instead of appplicationId</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-585">YARN-585</a>.
     Major bug reported by Zhijie Shen and fixed by Zhijie Shen <br>
     <b>TestFairScheduler#testNotAllowSubmitApplication is broken due to YARN-514</b><br>
     <blockquote>TestFairScheduler#testNotAllowSubmitApplication is broken due to YARN-514. See the discussions in YARN-514.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-583">YARN-583</a>.
     Major sub-task reported by Omkar Vinit Joshi and fixed by Omkar Vinit Joshi <br>
     <b>Application cache files should be localized under local-dir/usercache/userid/appcache/appid/filecache</b><br>
     <blockquote>Currently application cache files are getting localized under local-dir/usercache/userid/appcache/appid/. however they should be localized under filecache sub directory.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-582">YARN-582</a>.
     Major sub-task reported by Bikas Saha and fixed by Jian He (resourcemanager)<br>
     <b>Restore appToken and clientToken for app attempt after RM restart</b><br>
     <blockquote>These need to be saved and restored on a per app attempt basis. This is required only when work preserving restart is implemented for secure clusters. In non-preserving restart app attempts are killed and so this does not matter.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-581">YARN-581</a>.
     Major sub-task reported by Bikas Saha and fixed by Jian He (resourcemanager)<br>
     <b>Test and verify that app delegation tokens are added to tokenRenewer after RM restart</b><br>
     <blockquote>The code already saves the delegation tokens in AppSubmissionContext. Upon restart the AppSubmissionContext is used to submit the application again and so restores the delegation tokens. This jira tracks testing and verifying this functionality in a secure setup.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-579">YARN-579</a>.
     Major sub-task reported by Vinod Kumar Vavilapalli and fixed by Vinod Kumar Vavilapalli <br>
     <b>Make ApplicationToken part of Container's token list to help RM-restart</b><br>
     <blockquote>Container is already persisted for helping RM restart. Instead of explicitly setting ApplicationToken in AM's env, if we change it to be in Container, we can avoid env and can also help restart.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-578">YARN-578</a>.
     Major sub-task reported by Vinod Kumar Vavilapalli and fixed by Omkar Vinit Joshi (nodemanager)<br>
     <b>NodeManager should use SecureIOUtils for serving and aggregating logs</b><br>
     <blockquote>Log servlets for serving logs and the ShuffleService for serving intermediate outputs both should use SecureIOUtils for avoiding symlink attacks.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-577">YARN-577</a>.
     Major sub-task reported by Hitesh Shah and fixed by Hitesh Shah <br>
     <b>ApplicationReport does not provide progress value of application</b><br>
     <blockquote>An application sends its progress % to the RM via AllocateRequest. This should be able to be retrieved by a client via the ApplicationReport.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-576">YARN-576</a>.
     Major bug reported by Hitesh Shah and fixed by Kenji Kikushima <br>
     <b>RM should not allow registrations from NMs that do not satisfy minimum scheduler allocations</b><br>
     <blockquote>If the minimum resource allocation configured for the RM scheduler is 1 GB, the RM should drop all NMs that register with a total capacity of less than 1 GB. </blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-571">YARN-571</a>.
     Major sub-task reported by Hitesh Shah and fixed by Omkar Vinit Joshi <br>
     <b>User should not be part of ContainerLaunchContext</b><br>
     <blockquote>Today, a user is expected to set the user name in the CLC when either submitting an application or launching a container from the AM. This does not make sense as the user can/has been identified by the RM as part of the RPC layer.

Solution would be to move the user information into either the Container object or directly into the ContainerToken which can then be used by the NM to launch the container. This user information would set into the container by the RM.

</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-569">YARN-569</a>.
     Major sub-task reported by Carlo Curino and fixed by Carlo Curino (capacityscheduler)<br>
     <b>CapacityScheduler: support for preemption (using a capacity monitor)</b><br>
     <blockquote>There is a tension between the fast-pace reactive role of the CapacityScheduler, which needs to respond quickly to 
applications resource requests, and node updates, and the more introspective, time-based considerations 
needed to observe and correct for capacity balance. To this purpose we opted instead of hacking the delicate
mechanisms of the CapacityScheduler directly to add support for preemption by means of a "Capacity Monitor",
which can be run optionally as a separate service (much like the NMLivelinessMonitor).

The capacity monitor (similarly to equivalent functionalities in the fairness scheduler) operates running on intervals 
(e.g., every 3 seconds), observe the state of the assignment of resources to queues from the capacity scheduler, 
performs off-line computation to determine if preemption is needed, and how best to "edit" the current schedule to 
improve capacity, and generates events that produce four possible actions:
# Container de-reservations
# Resource-based preemptions
# Container-based preemptions
# Container killing

The actions listed above are progressively more costly, and it is up to the policy to use them as desired to achieve the rebalancing goals. 
Note that due to the "lag" in the effect of these actions the policy should operate at the macroscopic level (e.g., preempt tens of containers
from a queue) and not trying to tightly and consistently micromanage container allocations. 


------------- Preemption policy  (ProportionalCapacityPreemptionPolicy): ------------- 

Preemption policies are by design pluggable, in the following we present an initial policy (ProportionalCapacityPreemptionPolicy) we have been experimenting with.  The ProportionalCapacityPreemptionPolicy behaves as follows:
# it gathers from the scheduler the state of the queues, in particular, their current capacity, guaranteed capacity and pending requests (*)
# if there are pending requests from queues that are under capacity it computes a new ideal balanced state (**)
# it computes the set of preemptions needed to repair the current schedule and achieve capacity balance (accounting for natural completion rates, and 
respecting bounds on the amount of preemption we allow for each round)
# it selects which applications to preempt from each over-capacity queue (the last one in the FIFO order)
# it remove reservations from the most recently assigned app until the amount of resource to reclaim is obtained, or until no more reservations exits
# (if not enough) it issues preemptions for containers from the same applications (reverse chronological order, last assigned container first) again until necessary or until no containers except the AM container are left,
# (if not enough) it moves onto unreserve and preempt from the next application. 
# containers that have been asked to preempt are tracked across executions. If a containers is among the one to be preempted for more than a certain time, the container is moved in a the list of containers to be forcibly killed. 

Notes:
(*) at the moment, in order to avoid double-counting of the requests, we only look at the "ANY" part of pending resource requests, which means we might not preempt on behalf of AMs that ask only for specific locations but not any. 
(**) The ideal balance state is one in which each queue has at least its guaranteed capacity, and the spare capacity is distributed among queues (that wants some) as a weighted fair share. Where the weighting is based on the guaranteed capacity of a queue, and the function runs to a fix point.  

Tunables of the ProportionalCapacityPreemptionPolicy:
# 	observe-only mode (i.e., log the actions it would take, but behave as read-only)
# how frequently to run the policy
# how long to wait between preemption and kill of a container
# which fraction of the containers I would like to obtain should I preempt (has to do with the natural rate at which containers are returned)
# deadzone size, i.e., what % of over-capacity should I ignore (if we are off perfect balance by some small % we ignore it)
# overall amount of preemption we can afford for each run of the policy (in terms of total cluster capacity)

In our current experiments this set of tunables seem to be a good start to shape the preemption action properly. More sophisticated preemption policies could take into account different type of applications running, job priorities, cost of preemption, integral of capacity imbalance. This is very much a control-theory kind of problem, and some of the lessons on designing and tuning controllers are likely to apply.

Generality:
The monitor-based scheduler edit, and the preemption mechanisms we introduced here are designed to be more general than enforcing capacity/fairness, in fact, we are considering other monitors that leverage the same idea of "schedule edits" to target different global properties (e.g., allocate enough resources to guarantee deadlines for important jobs, or data-locality optimizations, IO-balancing among nodes, etc...).

Note that by default the preemption policy we describe is disabled in the patch.

Depends on YARN-45 and YARN-567, is related to YARN-568
</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-568">YARN-568</a>.
     Major improvement reported by Carlo Curino and fixed by Carlo Curino (scheduler)<br>
     <b>FairScheduler: support for work-preserving preemption </b><br>
     <blockquote>In the attached patch, we modified  the FairScheduler to substitute its preemption-by-killling with a work-preserving version of preemption (followed by killing if the AMs do not respond quickly enough). This should allows to run preemption checking more often, but kill less often (proper tuning to be investigated).  Depends on YARN-567 and YARN-45, is related to YARN-569.
</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-567">YARN-567</a>.
     Major sub-task reported by Carlo Curino and fixed by Carlo Curino (resourcemanager)<br>
     <b>RM changes to support preemption for FairScheduler and CapacityScheduler</b><br>
     <blockquote>A common tradeoff in scheduling jobs is between keeping the cluster busy and enforcing capacity/fairness properties. FairScheduler and CapacityScheduler takes opposite stance on how to achieve this. 

The FairScheduler, leverages task-killing to quickly reclaim resources from currently running jobs and redistributing them among new jobs, thus keeping the cluster busy but waste useful work. The CapacityScheduler is typically tuned
to limit the portion of the cluster used by each queue so that the likelihood of violating capacity is low, thus never wasting work, but risking to keep the cluster underutilized or have jobs waiting to obtain their rightful capacity. 

By introducing the notion of a work-preserving preemption we can remove this tradeoff.  This requires a protocol for preemption (YARN-45), and ApplicationMasters that can answer to preemption  efficiently (e.g., by saving their intermediate state, this will be posted for MapReduce in a separate JIRA soon), together with a scheduler that can issues preemption requests (discussed in separate JIRAs YARN-568 and YARN-569).

The changes we track with this JIRA are common to FairScheduler and CapacityScheduler, and are mostly propagation of preemption decisions through the ApplicationMastersService.
</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-563">YARN-563</a>.
     Major sub-task reported by Thomas Weise and fixed by Mayank Bansal <br>
     <b>Add application type to ApplicationReport </b><br>
     <blockquote>This field is needed to distinguish different types of applications (app master implementations). For example, we may run applications of type XYZ in a cluster alongside MR and would like to filter applications by type.
</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-562">YARN-562</a>.
     Major sub-task reported by Jian He and fixed by Jian He (resourcemanager)<br>
     <b>NM should reject containers allocated by previous RM</b><br>
     <blockquote>Its possible that after RM shutdown, before AM goes down,AM still call startContainer on NM with containers allocated by previous RM. When RM comes back, NM doesn't know whether this container launch request comes from previous RM or the current RM. we should reject containers allocated by previous RM </blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-561">YARN-561</a>.
     Major sub-task reported by Hitesh Shah and fixed by Xuan Gong <br>
     <b>Nodemanager should set some key information into the environment of every container that it launches.</b><br>
     <blockquote>Information such as containerId, nodemanager hostname, nodemanager port is not set in the environment when any container is launched. 

For an AM, the RM does all of this for it but for a container launched by an application, all of the above need to be set by the ApplicationMaster. 

At the minimum, container id would be a useful piece of information. If the container wishes to talk to its local NM, the nodemanager related information would also come in handy. </blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-557">YARN-557</a>.
     Major bug reported by Chris Nauroth and fixed by Chris Nauroth (applications)<br>
     <b>TestUnmanagedAMLauncher fails on Windows</b><br>
     <blockquote>{{TestUnmanagedAMLauncher}} fails on Windows due to attempting to run a Unix-specific command in distributed shell and use of a Unix-specific environment variable to determine username for the {{ContainerLaunchContext}}.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-553">YARN-553</a>.
     Minor sub-task reported by Harsh J and fixed by Karthik Kambatla (client)<br>
     <b>Have YarnClient generate a directly usable ApplicationSubmissionContext</b><br>
     <blockquote>Right now, we're doing multiple steps to create a relevant ApplicationSubmissionContext for a pre-received GetNewApplicationResponse.

{code}
    GetNewApplicationResponse newApp = yarnClient.getNewApplication();
    ApplicationId appId = newApp.getApplicationId();

    ApplicationSubmissionContext appContext = Records.newRecord(ApplicationSubmissionContext.class);

    appContext.setApplicationId(appId);
{code}

A simplified way may be to have the GetNewApplicationResponse itself provide a helper method that builds a usable ApplicationSubmissionContext for us. Something like:

{code}
GetNewApplicationResponse newApp = yarnClient.getNewApplication();
ApplicationSubmissionContext appContext = newApp.generateApplicationSubmissionContext();
{code}

[The above method can also take an arg for the container launch spec, or perhaps pre-load defaults like min-resource, etc. in the returned object, aside of just associating the application ID automatically.]</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-549">YARN-549</a>.
     Major sub-task reported by Zhijie Shen and fixed by Zhijie Shen <br>
     <b>YarnClient.submitApplication should wait for application to be accepted by the RM</b><br>
     <blockquote>Currently, when submitting an application, storeApplication will be called for recovery. However, it is a blocking API, and is likely to block concurrent application submissions. Therefore, it is good to make application submission asynchronous, and postpone storeApplication. YarnClient needs to change to wait for the whole operation to complete so that clients can be notified after the application is really submitted. YarnClient needs to wait for application to reach SUBMITTED state or beyond.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-548">YARN-548</a>.
     Major sub-task reported by Vadim Bondarev and fixed by Vadim Bondarev <br>
     <b>Add tests for YarnUncaughtExceptionHandler</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-547">YARN-547</a>.
     Major sub-task reported by Omkar Vinit Joshi and fixed by Omkar Vinit Joshi <br>
     <b>Race condition in Public / Private Localizer may result into resource getting downloaded again</b><br>
     <blockquote>Public Localizer :
At present when multiple containers try to request a localized resource 
* If the resource is not present then first it is created and Resource Localization starts ( LocalizedResource is in DOWNLOADING state)
* Now if in this state multiple ResourceRequestEvents arrive then ResourceLocalizationEvents are sent for all of them.

Most of the times it is not resulting into a duplicate resource download but there is a race condition present there. Inside ResourceLocalization (for public download) all the requests are added to local attempts map. If a new request comes in then first it is checked in this map before a new download starts for the same. For the current download the request will be there in the map. Now if a same resource request comes in then it will rejected (i.e. resource is getting downloaded already). However if the current download completes then the request will be removed from this local map. Now after this removal if the LocalizerRequestEvent comes in then as it is not present in local map the resource will be downloaded again.

PrivateLocalizer :
Here a different but similar race condition is present.
* Here inside findNextResource method call; each LocalizerRunner tries to grab a lock on LocalizerResource. If the lock is not acquired then it will keep trying until the resource state changes to LOCALIZED. This lock will be released by the LocalizerRunner when download completes.
* Now if another ContainerLocalizer tries to grab the lock on a resource before LocalizedResource state changes to LOCALIZED then resource will be downloaded again.

At both the places the root cause of this is that all the threads try to acquire the lock on resource however current state of the LocalizedResource is not taken into consideration.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-542">YARN-542</a>.
     Major bug reported by Vinod Kumar Vavilapalli and fixed by Zhijie Shen <br>
     <b>Change the default global AM max-attempts value to be not one</b><br>
     <blockquote>Today, the global AM max-attempts is set to 1 which is a bad choice. AM max-attempts accounts for both AM level failures as well as container crashes due to localization issue, lost nodes etc. To account for AM crashes due to problems that are not caused by user code, mainly lost nodes, we want to give AMs some retires.

I propose we change it to atleast two. Can change it to 4 to match other retry-configs.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-541">YARN-541</a>.
     Blocker bug reported by Krishna Kishore Bonagiri and fixed by Bikas Saha (resourcemanager)<br>
     <b>getAllocatedContainers() is not returning all the allocated containers</b><br>
     <blockquote>I am running an application that was written and working well with the hadoop-2.0.0-alpha but when I am running the same against 2.0.3-alpha, the getAllocatedContainers() method called on AMResponse is not returning all the containers allocated sometimes. For example, I request for 10 containers and this method gives me only 9 containers sometimes, and when I looked at the log of Resource Manager, the 10th container is also allocated. It happens only sometimes randomly and works fine all other times. If I send one more request for the remaining container to RM after it failed to give them the first time(and before releasing already acquired ones), it could allocate that container. I am running only one application at a time, but 1000s of them one after another.

My main worry is, even though the RM's log is saying that all 10 requested containers are allocated,  the getAllocatedContainers() method is not returning me all of them, it returned only 9 surprisingly. I never saw this kind of issue in the previous version, i.e. hadoop-2.0.0-alpha.

Thanks,
Kishore

 </blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-539">YARN-539</a>.
     Major sub-task reported by Omkar Vinit Joshi and fixed by Omkar Vinit Joshi <br>
     <b>LocalizedResources are leaked in memory in case resource localization fails</b><br>
     <blockquote>If resource localization fails then resource remains in memory and is
1) Either cleaned up when next time cache cleanup runs and there is space crunch. (If sufficient space in cache is available then it will remain in memory).
2) reused if LocalizationRequest comes again for the same resource.

I think when resource localization fails then that event should be sent to LocalResourceTracker which will then remove it from its cache.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-538">YARN-538</a>.
     Major improvement reported by Sandy Ryza and fixed by Sandy Ryza <br>
     <b>RM address DNS lookup can cause unnecessary slowness on every JHS page load </b><br>
     <blockquote>When I run the job history server locally, every page load takes in the 10s of seconds.  I profiled the process and discovered that all the extra time was spent inside YarnConfiguration#getRMWebAppURL, trying to resolve 0.0.0.0 to a hostname.  When I changed my yarn.resourcemanager.address to localhost, the page load times decreased drastically.

There's no that we need to perform this resolution on every page load.
</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-536">YARN-536</a>.
     Major sub-task reported by Xuan Gong and fixed by Xuan Gong <br>
     <b>Remove ContainerStatus, ContainerState from Container api interface as they will not be called by the container object</b><br>
     <blockquote>Remove containerstate, containerStatus from container interface. They will not be called by container object</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-534">YARN-534</a>.
     Major sub-task reported by Jian He and fixed by Jian He (resourcemanager)<br>
     <b>AM max attempts is not checked when RM restart and try to recover attempts</b><br>
     <blockquote>Currently,AM max attempts is only checked if the current attempt fails and check to see whether to create new attempt. If the RM restarts before the max-attempt fails, it'll not clean the state store, when RM comes back, it will retry attempt again.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-532">YARN-532</a>.
     Major bug reported by Siddharth Seth and fixed by Siddharth Seth <br>
     <b>RMAdminProtocolPBClientImpl should implement Closeable</b><br>
     <blockquote>Required for RPC.stopProxy to work. Already done in most of the other protocols. (MAPREDUCE-5117 addressing the one other protocol missing this)</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-530">YARN-530</a>.
     Major sub-task reported by Steve Loughran and fixed by Steve Loughran <br>
     <b>Define Service model strictly, implement AbstractService for robust subclassing, migrate yarn-common services</b><br>
     <blockquote># Extend the YARN {{Service}} interface as discussed in YARN-117
# Implement the changes in {{AbstractService}} and {{FilterService}}.
# Migrate all services in yarn-common to the more robust service model, test.

</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-525">YARN-525</a>.
     Major improvement reported by Thomas Graves and fixed by Thomas Graves (capacityscheduler)<br>
     <b>make CS node-locality-delay refreshable</b><br>
     <blockquote>the config yarn.scheduler.capacity.node-locality-delay doesn't change when you change the value in capacity_scheduler.xml and then run yarn rmadmin -refreshQueues.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-523">YARN-523</a>.
     Major sub-task reported by Vinod Kumar Vavilapalli and fixed by Jian He <br>
     <b>Container localization failures aren't reported from NM to RM</b><br>
     <blockquote>This is mainly a pain on crashing AMs, but once we fix this, containers also can benefit - same fix for both.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-521">YARN-521</a>.
     Major sub-task reported by Sandy Ryza and fixed by Sandy Ryza (api)<br>
     <b>Augment AM - RM client module to be able to request containers only at specific locations</b><br>
     <blockquote>When YARN-392 and YARN-398 are completed, it would be good for AMRMClient to offer an easy way to access their functionality</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-518">YARN-518</a>.
     Major improvement reported by Dapeng Sun and fixed by Sandy Ryza (documentation)<br>
     <b>Fair Scheduler's document link could be added to the hadoop 2.x main doc page</b><br>
     <blockquote>Currently the doc page for Fair Scheduler looks good and it&#8217;s here, http://hadoop.apache.org/docs/current/hadoop-yarn/hadoop-yarn-site/FairScheduler.html.
It would be better to add the document link to the YARN section in the Hadoop 2.x main doc page, so that users can easily find the doc to experimentally try Fair Scheduler as Capacity Scheduler. 
</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-515">YARN-515</a>.
     Blocker bug reported by Robert Joseph Evans and fixed by Robert Joseph Evans <br>
     <b>Node Manager not getting the master key</b><br>
     <blockquote>On branch-2 the latest version I see the following on a secure cluster.

{noformat}
2013-03-28 19:21:06,243 [main] INFO org.apache.hadoop.yarn.server.nodemanager.NodeStatusUpdaterImpl: Security enabled - updating secret keys now
2013-03-28 19:21:06,243 [main] INFO org.apache.hadoop.yarn.server.nodemanager.NodeStatusUpdaterImpl: Registered with ResourceManager as RM:PORT with total resource of &lt;me
mory:12288, vCores:16&gt;
2013-03-28 19:21:06,244 [main] INFO org.apache.hadoop.yarn.service.AbstractService: Service:org.apache.hadoop.yarn.server.nodemanager.NodeStatusUpdaterImpl is started.
2013-03-28 19:21:06,245 [main] INFO org.apache.hadoop.yarn.service.AbstractService: Service:org.apache.hadoop.yarn.server.nodemanager.NodeManager is started.
2013-03-28 19:21:07,257 [Node Status Updater] ERROR org.apache.hadoop.yarn.server.nodemanager.NodeStatusUpdaterImpl: Caught exception in status-updater
java.lang.NullPointerException
        at org.apache.hadoop.yarn.server.security.BaseContainerTokenSecretManager.getCurrentKey(BaseContainerTokenSecretManager.java:121)
        at org.apache.hadoop.yarn.server.nodemanager.NodeStatusUpdaterImpl$1.run(NodeStatusUpdaterImpl.java:407)
{noformat}

The Null pointer exception just keeps repeating and all of the nodes end up being lost.  It looks like it never gets the secret key when it registers.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-514">YARN-514</a>.
     Major sub-task reported by Bikas Saha and fixed by Zhijie Shen (resourcemanager)<br>
     <b>Delayed store operations should not result in RM unavailability for app submission</b><br>
     <blockquote>Currently, app submission is the only store operation performed synchronously because the app must be stored before the request returns with success. This makes the RM susceptible to blocking all client threads on slow store operations, resulting in RM being perceived as unavailable by clients.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-513">YARN-513</a>.
     Major sub-task reported by Bikas Saha and fixed by Jian He (resourcemanager)<br>
     <b>Create common proxy client for communicating with RM</b><br>
     <blockquote>When the RM is restarting, the NM, AM and Clients should wait for some time for the RM to come back up.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-512">YARN-512</a>.
     Minor bug reported by Jason Lowe and fixed by Maysam Yabandeh (nodemanager)<br>
     <b>Log aggregation root directory check is more expensive than it needs to be</b><br>
     <blockquote>The log aggregation root directory check first does an {{exists}} call followed by a {{getFileStatus}} call.  That effectively stats the file twice.  It should just use {{getFileStatus}} and catch {{FileNotFoundException}} to handle the non-existent case.

In addition we may consider caching the presence of the directory rather than checking it each time a node aggregates logs for an application.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-507">YARN-507</a>.
     Minor bug reported by Karthik Kambatla and fixed by Karthik Kambatla (scheduler)<br>
     <b>Add interface visibility and stability annotations to FS interfaces/classes</b><br>
     <blockquote>Many of FS classes/interfaces are missing annotations on visibility and stability.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-506">YARN-506</a>.
     Major bug reported by Ivan Mitic and fixed by Ivan Mitic <br>
     <b>Move to common utils FileUtil#setReadable/Writable/Executable and FileUtil#canRead/Write/Execute</b><br>
     <blockquote>Move to common utils described in HADOOP-9413 that work well cross-platform.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-500">YARN-500</a>.
     Major bug reported by Nishan Shetty and fixed by Kenji Kikushima (resourcemanager)<br>
     <b>ResourceManager webapp is using next port if configured port is already in use</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-496">YARN-496</a>.
     Minor bug reported by Sandy Ryza and fixed by Sandy Ryza (scheduler)<br>
     <b>Fair scheduler configs are refreshed inconsistently in reinitialize</b><br>
     <blockquote>When FairScheduler#reinitialize is called, some of the scheduler-wide configs are refreshed and others aren't.  They should all be refreshed.

Ones that are refreshed: userAsDefaultQueue, nodeLocalityThreshold, rackLocalityThreshold, preemptionEnabled

Ones that aren't: minimumAllocation, maximumAllocation, assignMultiple, maxAssign</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-495">YARN-495</a>.
     Major bug reported by Jian He and fixed by Jian He <br>
     <b>Change NM behavior of reboot to resync</b><br>
     <blockquote>When a reboot command is sent from RM, the node manager doesn't clean up the containers while its stopping.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-493">YARN-493</a>.
     Major bug reported by Chris Nauroth and fixed by Chris Nauroth (nodemanager)<br>
     <b>NodeManager job control logic flaws on Windows</b><br>
     <blockquote>Both product and test code contain some platform-specific assumptions, such as availability of bash for executing a command in a container and signals to check existence of a process and terminate it.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-491">YARN-491</a>.
     Major bug reported by Chris Nauroth and fixed by Chris Nauroth (nodemanager)<br>
     <b>TestContainerLogsPage fails on Windows</b><br>
     <blockquote>{{TestContainerLogsPage}} contains some code for initializing a log directory that doesn't work correctly on Windows.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-490">YARN-490</a>.
     Major bug reported by Chris Nauroth and fixed by Chris Nauroth (applications/distributed-shell)<br>
     <b>TestDistributedShell fails on Windows</b><br>
     <blockquote>There are a few platform-specific assumption in distributed shell (both main code and test code) that prevent it from working correctly on Windows.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-488">YARN-488</a>.
     Major bug reported by Chris Nauroth and fixed by Chris Nauroth (nodemanager)<br>
     <b>TestContainerManagerSecurity fails on Windows</b><br>
     <blockquote>These tests are failing to launch containers correctly when running on Windows.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-487">YARN-487</a>.
     Major bug reported by Chris Nauroth and fixed by Chris Nauroth (nodemanager)<br>
     <b>TestDiskFailures fails on Windows due to path mishandling</b><br>
     <blockquote>{{TestDiskFailures#testDirFailuresOnStartup}} fails due to insertion of an extra leading '/' on the path within {{LocalDirsHandlerService}} when running on Windows.  The test assertions also fail to account for the fact that {{Path}} normalizes '\' to '/'.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-486">YARN-486</a>.
     Major sub-task reported by Bikas Saha and fixed by Xuan Gong <br>
     <b>Change startContainer NM API to accept Container as a parameter and make ContainerLaunchContext user land</b><br>
     <blockquote>Currently, id, resource request etc need to be copied over from Container to ContainerLaunchContext. This can be brittle. Also it leads to duplication of information (such as Resource from CLC and Resource from Container and Container.tokens). Sending Container directly to startContainer solves these problems. It also makes CLC clean by only having stuff in it that it set by the client/AM.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-485">YARN-485</a>.
     Major bug reported by Karthik Kambatla and fixed by Karthik Kambatla <br>
     <b>TestProcfsProcessTree#testProcessTree() doesn't wait long enough for the process to die</b><br>
     <blockquote>TestProcfsProcessTree#testProcessTree fails occasionally with the following stack trace

{noformat}
Stack Trace:
junit.framework.AssertionFailedError: expected:&lt;false&gt; but was:&lt;true&gt;
&#160; &#160; &#160; &#160; at org.apache.hadoop.util.TestProcfsBasedProcessTree.testProcessTree(TestProcfsBasedProcessTree.java)
{noformat}

kill -9 is executed asynchronously, the signal is delivered when the process comes out of the kernel (sys call). Checking if the process died immediately after can fail at times.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-482">YARN-482</a>.
     Major sub-task reported by Karthik Kambatla and fixed by Karthik Kambatla (scheduler)<br>
     <b>FS: Extend SchedulingMode to intermediate queues</b><br>
     <blockquote>FS allows setting {{SchedulingMode}} for leaf queues. Extending this to non-leaf queues allows using different kinds of fairness: e.g., root can have three child queues - fair-mem, drf-cpu-mem, drf-cpu-disk-mem taking different number of resources into account. In turn, this allows users to decide on the scheduling latency vs sophistication of the scheduling mode.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-481">YARN-481</a>.
     Major bug reported by Chris Riccomini and fixed by Chris Riccomini (client)<br>
     <b>Add AM Host and RPC Port to ApplicationCLI Status Output</b><br>
     <blockquote>Hey Guys,

I noticed that the ApplicationCLI is just randomly not printing some of the values in the ApplicationReport. I've added the getHost and getRpcPort. These are useful for me, since I want to make an RPC call to the AM (not the tracker call).

Thanks!
Chris</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-479">YARN-479</a>.
     Major bug reported by Hitesh Shah and fixed by Jian He <br>
     <b>NM retry behavior for connection to RM should be similar for lost heartbeats</b><br>
     <blockquote>Regardless of connection loss at the start or at an intermediate point, NM's retry behavior to the RM should follow the same flow. </blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-476">YARN-476</a>.
     Minor bug reported by Jason Lowe and fixed by Sandy Ryza <br>
     <b>ProcfsBasedProcessTree info message confuses users</b><br>
     <blockquote>ProcfsBasedProcessTree has a habit of emitting not-so-helpful messages such as the following:

{noformat}
2013-03-13 12:41:51,957 INFO [communication thread] org.apache.hadoop.yarn.util.ProcfsBasedProcessTree: The process 28747 may have finished in the interim.
2013-03-13 12:41:51,958 INFO [communication thread] org.apache.hadoop.yarn.util.ProcfsBasedProcessTree: The process 28978 may have finished in the interim.
2013-03-13 12:41:51,958 INFO [communication thread] org.apache.hadoop.yarn.util.ProcfsBasedProcessTree: The process 28979 may have finished in the interim.
{noformat}

As described in MAPREDUCE-4570, this is something that naturally occurs in the process of monitoring processes via procfs.  It's uninteresting at best and can confuse users who think it's a reason their job isn't running as expected when it appears in their logs.

We should either make this DEBUG or remove it entirely.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-475">YARN-475</a>.
     Major sub-task reported by Hitesh Shah and fixed by Hitesh Shah <br>
     <b>Remove ApplicationConstants.AM_APP_ATTEMPT_ID_ENV as it is no longer set in an AM's environment</b><br>
     <blockquote>AMs are expected to use ApplicationConstants.AM_CONTAINER_ID_ENV and derive the application attempt id from the container id. </blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-474">YARN-474</a>.
     Major bug reported by Hitesh Shah and fixed by Zhijie Shen (capacityscheduler)<br>
     <b>CapacityScheduler does not activate applications when maximum-am-resource-percent configuration is refreshed</b><br>
     <blockquote>Submit 3 applications to a cluster where capacity scheduler limits allow only 1 running application. Modify capacity scheduler config to increase value of yarn.scheduler.capacity.maximum-am-resource-percent and invoke refresh queues. 

The 2 applications not yet in running state do not get launched even though limits are increased.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-469">YARN-469</a>.
     Major sub-task reported by Karthik Kambatla and fixed by Karthik Kambatla (scheduler)<br>
     <b>Make scheduling mode in FS pluggable</b><br>
     <blockquote>Currently, scheduling mode in FS is limited to Fair and FIFO. The code typically has an if condition at multiple places to determine the correct course of action.

Making the scheduling mode pluggable helps in simplifying this process, particularly as we add new modes (DRF in this case).</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-468">YARN-468</a>.
     Major sub-task reported by Aleksey Gorshkov and fixed by Aleksey Gorshkov <br>
     <b>coverage fix for org.apache.hadoop.yarn.server.webproxy.amfilter </b><br>
     <blockquote>coverage fix org.apache.hadoop.yarn.server.webproxy.amfilter

patch YARN-468-trunk.patch for trunk, branch-2, branch-0.23</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-467">YARN-467</a>.
     Major sub-task reported by Omkar Vinit Joshi and fixed by Omkar Vinit Joshi (nodemanager)<br>
     <b>Jobs fail during resource localization when public distributed-cache hits unix directory limits</b><br>
     <blockquote>If we have multiple jobs which uses distributed cache with small size of files, the directory limit reaches before reaching the cache size and fails to create any directories in file cache (PUBLIC). The jobs start failing with the below exception.

java.io.IOException: mkdir of /tmp/nm-local-dir/filecache/3901886847734194975 failed
	at org.apache.hadoop.fs.FileSystem.primitiveMkdir(FileSystem.java:909)
	at org.apache.hadoop.fs.DelegateToFileSystem.mkdir(DelegateToFileSystem.java:143)
	at org.apache.hadoop.fs.FilterFs.mkdir(FilterFs.java:189)
	at org.apache.hadoop.fs.FileContext$4.next(FileContext.java:706)
	at org.apache.hadoop.fs.FileContext$4.next(FileContext.java:703)
	at org.apache.hadoop.fs.FileContext$FSLinkResolver.resolve(FileContext.java:2325)
	at org.apache.hadoop.fs.FileContext.mkdir(FileContext.java:703)
	at org.apache.hadoop.yarn.util.FSDownload.call(FSDownload.java:147)
	at org.apache.hadoop.yarn.util.FSDownload.call(FSDownload.java:49)
	at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
	at java.util.concurrent.FutureTask.run(FutureTask.java:138)
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
	at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
	at java.util.concurrent.FutureTask.run(FutureTask.java:138)
	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
	at java.lang.Thread.run(Thread.java:662)

we need to have a mechanism where in we can create directory hierarchy and limit number of files per directory.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-460">YARN-460</a>.
     Blocker bug reported by Thomas Graves and fixed by Thomas Graves (capacityscheduler)<br>
     <b>CS user left in list of active users for the queue even when application finished</b><br>
     <blockquote>We have seen a user get left in the queues list of active users even though the application was removed. This can cause everyone else in the queue to get less resources if using the minimum user limit percent config.

</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-458">YARN-458</a>.
     Major bug reported by Sandy Ryza and fixed by Sandy Ryza (nodemanager , resourcemanager)<br>
     <b>YARN daemon addresses must be placed in many different configs</b><br>
     <blockquote>The YARN resourcemanager's address is included in four different configs: yarn.resourcemanager.scheduler.address, yarn.resourcemanager.resource-tracker.address, yarn.resourcemanager.address, and yarn.resourcemanager.admin.address

A new user trying to configure a cluster needs to know the names of all these four configs.

The same issue exists for nodemanagers.

It would be much easier if they could simply specify yarn.resourcemanager.hostname and yarn.nodemanager.hostname and default ports for the other ones would kick in.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-450">YARN-450</a>.
     Major sub-task reported by Bikas Saha and fixed by Zhijie Shen <br>
     <b>Define value for * in the scheduling protocol</b><br>
     <blockquote>The ResourceRequest has a string field to specify node/rack locations. For the cross-rack/cluster-wide location (ie when there is no locality constraint) the "*" string is used everywhere. However, its not defined anywhere and each piece of code either defines a local constant or uses the string literal. Defining "*" in the protocol and removing other local references from the code base will be good.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-448">YARN-448</a>.
     Major bug reported by Kihwal Lee and fixed by Kihwal Lee (nodemanager)<br>
     <b>Remove unnecessary hflush from log aggregation</b><br>
     <blockquote>AggregatedLogFormat#writeVersion() calls hflush() after writing the version. Calling hflush does not seem to be necessary. It can add a lot of load to hdfs in a big busy cluster.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-447">YARN-447</a>.
     Minor improvement reported by nemon lou and fixed by nemon lou (scheduler)<br>
     <b>applicationComparator improvement for CS</b><br>
     <blockquote>Now the compare code is :
return a1.getApplicationId().getId() - a2.getApplicationId().getId();

Will be replaced with :
return a1.getApplicationId().compareTo(a2.getApplicationId());

This will bring some benefits:
1,leave applicationId compare logic to ApplicationId class;
2,In future's HA mode,cluster time stamp may change,ApplicationId class already takes care of this condition.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-444">YARN-444</a>.
     Major sub-task reported by Sandy Ryza and fixed by Sandy Ryza (api , applications/distributed-shell)<br>
     <b>Move special container exit codes from YarnConfiguration to API</b><br>
     <blockquote>YarnConfiguration currently contains the special container exit codes INVALID_CONTAINER_EXIT_STATUS = -1000, ABORTED_CONTAINER_EXIT_STATUS = -100, and DISKS_FAILED = -101.

These are not really not really related to configuration, and YarnConfiguration should not become a place to put miscellaneous constants.

Per discussion on YARN-417, appmaster writers need to be able to provide special handling for them, so it might make sense to move these to their own user-facing class.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-441">YARN-441</a>.
     Major sub-task reported by Siddharth Seth and fixed by Xuan Gong <br>
     <b>Clean up unused collection methods in various APIs</b><br>
     <blockquote>There's a bunch of unused methods like getAskCount() and getAsk(index) in AllocateRequest, and other interfaces. These should be removed.

In YARN, found them in. MR will have it's own set.
AllocateRequest
StartContaienrResponse</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-440">YARN-440</a>.
     Major sub-task reported by Siddharth Seth and fixed by Xuan Gong <br>
     <b>Flatten RegisterNodeManagerResponse</b><br>
     <blockquote>RegisterNodeManagerResponse has another wrapper RegistrationResponse under it, which can be removed.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-439">YARN-439</a>.
     Major sub-task reported by Siddharth Seth and fixed by Xuan Gong <br>
     <b>Flatten NodeHeartbeatResponse</b><br>
     <blockquote>NodeheartbeatResponse has another wrapper HeartbeatResponse under it, which can be removed.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-426">YARN-426</a>.
     Critical bug reported by Jason Lowe and fixed by Jason Lowe (nodemanager)<br>
     <b>Failure to download a public resource on a node prevents further downloads of the resource from that node</b><br>
     <blockquote>If the NM encounters an error while downloading a public resource, it fails to empty the list of request events corresponding to the resource request in {{attempts}}.  If the same public resource is subsequently requested on that node, {{PublicLocalizer.addResource}} will skip the download since it will mistakenly believe a download of that resource is already in progress.  At that point any container that requests the public resource will just hang in the {{LOCALIZING}} state.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-422">YARN-422</a>.
     Major sub-task reported by Bikas Saha and fixed by Zhijie Shen <br>
     <b>Add NM client library</b><br>
     <blockquote>Create a simple wrapper over the ContainerManager protocol to provide hide the details of the protocol implementation.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-417">YARN-417</a>.
     Major sub-task reported by Sandy Ryza and fixed by Sandy Ryza (api , applications)<br>
     <b>Create AMRMClient wrapper that provides asynchronous callbacks</b><br>
     <blockquote>Writing AMs would be easier for some if they did not have to handle heartbeating to the RM on their own.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-412">YARN-412</a>.
     Minor bug reported by Roger Hoover and fixed by Roger Hoover (scheduler)<br>
     <b>FifoScheduler incorrectly checking for node locality</b><br>
     <blockquote>In the FifoScheduler, the assignNodeLocalContainers method is checking if the data is local to a node by searching for the nodeAddress of the node in the set of outstanding requests for the app.  This seems to be incorrect as it should be checking hostname instead.  The offending line of code is 455:

application.getResourceRequest(priority, node.getRMNode().getNodeAddress());

Requests are formated by hostname (e.g. host1.foo.com) whereas node addresses are a concatenation of hostname and command port (e.g. host1.foo.com:1234)

In the CapacityScheduler, it's done using hostname.  See LeafQueue.assignNodeLocalContainers, line 1129

application.getResourceRequest(priority, node.getHostName());

Note that this bug does not affect the actual scheduling decisions made by the FifoScheduler because even though it incorrect determines that a request is not local to the node, it will still schedule the request immediately because it's rack-local.  However, this bug may be adversely affecting the reporting of job status by underreporting the number of tasks that were node local.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-410">YARN-410</a>.
     Major bug reported by Vinod Kumar Vavilapalli and fixed by Omkar Vinit Joshi <br>
     <b>New lines in diagnostics for a failed app on the per-application page make it hard to read</b><br>
     <blockquote>We need to fix the following issues on YARN web-UI:
 - Remove the "Note" column from the application list. When a failure happens, this "Note" spoils the table layout.
 - When the Application is still not running, the Tracking UI should be title "UNASSIGNED", for some reason it is titled "ApplicationMaster" but (correctly) links to "#".
 - The per-application page has all the RM related information like version, start-time etc. Must be some accidental change by one of the patches.
 - The diagnostics for a failed app on the per-application page don't retain new lines and wrap'em around - looks hard to read.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-406">YARN-406</a>.
     Minor improvement reported by Hitesh Shah and fixed by Hitesh Shah <br>
     <b>TestRackResolver fails when local network resolves "host1" to a valid host</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-400">YARN-400</a>.
     Critical bug reported by Jason Lowe and fixed by Jason Lowe (resourcemanager)<br>
     <b>RM can return null application resource usage report leading to NPE in client</b><br>
     <blockquote>RMAppImpl.createAndGetApplicationReport can return a report with a null resource usage report if full access to the app is allowed but the application has no current attempt.  This leads to NPEs in client code that assumes an app report will always have at least an empty resource usage report.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-398">YARN-398</a>.
     Major sub-task reported by Arun C Murthy and fixed by Arun C Murthy <br>
     <b>Enhance CS to allow for white-list of resources</b><br>
     <blockquote>Allow white-list and black-list of resources in scheduler api.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-396">YARN-396</a>.
     Major sub-task reported by Bikas Saha and fixed by Zhijie Shen <br>
     <b>Rationalize AllocateResponse in RM scheduler API</b><br>
     <blockquote>AllocateResponse contains an AMResponse and cluster node count. AMResponse that more data. Unless there is a good reason for this object structure, there should be either AMResponse or AllocateResponse.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-392">YARN-392</a>.
     Major sub-task reported by Bikas Saha and fixed by Sandy Ryza (resourcemanager)<br>
     <b>Make it possible to specify hard locality constraints in resource requests</b><br>
     <blockquote>Currently its not possible to specify scheduling requests for specific nodes and nowhere else. The RM automatically relaxes locality to rack and * and assigns non-specified machines to the app.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-391">YARN-391</a>.
     Trivial improvement reported by Steve Loughran and fixed by Steve Loughran (nodemanager)<br>
     <b>detabify LCEResourcesHandler classes</b><br>
     <blockquote>the LCEResourcesHandler classes from YARN-3 have had some tab chars that have snuck into the source tree. fix this before that code starts getting branched off and it's too late</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-390">YARN-390</a>.
     Major bug reported by Chris Nauroth and fixed by Chris Nauroth (client)<br>
     <b>ApplicationCLI and NodeCLI use hard-coded platform-specific line separator, which causes test failures on Windows</b><br>
     <blockquote>{{ApplicationCLI}}, {{NodeCLI}}, and the corresponding test {{TestYarnCLI}} all use a hard-coded '\n' as the line separator.  This causes test failures on Windows.
</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-387">YARN-387</a>.
     Blocker sub-task reported by Vinod Kumar Vavilapalli and fixed by Vinod Kumar Vavilapalli <br>
     <b>Fix inconsistent protocol naming</b><br>
     <blockquote>We now have different and inconsistent naming schemes for various protocols. It was hard to explain to users, mainly in direct interactions at talks/presentations and user group meetings, with such naming.

We should fix these before we go beta. </blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-385">YARN-385</a>.
     Major improvement reported by Sandy Ryza and fixed by Sandy Ryza (api)<br>
     <b>ResourceRequestPBImpl's toString() is missing location and # containers</b><br>
     <blockquote>ResourceRequestPBImpl's toString method includes priority and resource capability, but omits location and number of containers.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-383">YARN-383</a>.
     Minor bug reported by Hitesh Shah and fixed by Hitesh Shah <br>
     <b>AMRMClientImpl should handle null rmClient in stop()</b><br>
     <blockquote>2013-02-06 09:31:33,813 INFO  [Thread-2] service.CompositeService (CompositeService.java:stop(101)) - Error stopping org.apache.hadoop.yarn.client.AMRMClientImpl
org.apache.hadoop.HadoopIllegalArgumentException: Cannot close proxy since it is null
        at org.apache.hadoop.ipc.RPC.stopProxy(RPC.java:605)
        at org.apache.hadoop.yarn.client.AMRMClientImpl.stop(AMRMClientImpl.java:150)
        at org.apache.hadoop.yarn.service.CompositeService.stop(CompositeService.java:99)
        at org.apache.hadoop.yarn.service.CompositeService.stop(CompositeService.java:89)
</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-382">YARN-382</a>.
     Major improvement reported by Thomas Graves and fixed by Zhijie Shen (scheduler)<br>
     <b>SchedulerUtils improve way normalizeRequest sets the resource capabilities</b><br>
     <blockquote>In YARN-370, we changed it from setting the capability to directly setting memory and cores:

-    ask.setCapability(normalized);
+    ask.getCapability().setMemory(normalized.getMemory());
+    ask.getCapability().setVirtualCores(normalized.getVirtualCores());

We did this because it is directly setting the values in the original resource object passed in when the AM gets allocated and without it the AM doesn't get the resource normalized correctly in the submission context. See YARN-370 for more details.

I think we should find a better way of doing this long term, one so we don't have to keep adding things there when new resources are added, two because its a bit confusing as to what its doing and prone to someone accidentally breaking it in the future again.  Something closer to what Arun suggested in YARN-370 would be better but we need to make sure all the places work and get some more testing on it before putting it in. </blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-381">YARN-381</a>.
     Minor improvement reported by Eli Collins and fixed by Sandy Ryza (documentation)<br>
     <b>Improve FS docs</b><br>
     <blockquote>The MR2 FS docs could use some improvements.

Configuration:
- sizebasedweight - what is the "size" here? Total memory usage?

Pool properties:
- minResources - what does min amount of aggregate memory mean given that this is not a reservation?
- maxResources - is this a hard limit?
- weight: How is this  ratio configured?  Eg base is 1 and all weights are relative to that?
- schedulingMode - what is the default? Is fifo pure fifo, eg waits until all tasks for the job are finished before launching the next job?

There's no mention of ACLs, even though they're supported. See the CS docs for comparison.

Also there are a couple typos worth fixing while we're at it, eg "finish. apps to run"

Worth keeping in mind that some of these will need to be updated to reflect that resource calculators are now pluggable.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-380">YARN-380</a>.
     Major bug reported by Thomas Graves and fixed by Omkar Vinit Joshi (client)<br>
     <b>yarn node -status prints Last-Last-Health-Update</b><br>
     <blockquote>I assume the Last-Last-Health-Update is a typo and it should just be Last-Health-Update.


$ yarn node -status foo.com:8041
Node Report : 
        Node-Id : foo.com:8041
        Rack : /10.10.10.0
        Node-State : RUNNING
        Node-Http-Address : foo.com:8042
        Health-Status(isNodeHealthy) : true
        Last-Last-Health-Update : 1360118400219
        Health-Report : 
        Containers : 0
        Memory-Used : 0M
        Memory-Capacity : 24576</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-378">YARN-378</a>.
     Major sub-task reported by xieguiming and fixed by Zhijie Shen (client , resourcemanager)<br>
     <b>ApplicationMaster retry times should be set by Client</b><br>
     <blockquote>We should support that different client or user have different ApplicationMaster retry times. It also say that "yarn.resourcemanager.am.max-retries" should be set by client. </blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-377">YARN-377</a>.
     Minor bug reported by Tsz Wo (Nicholas), SZE and fixed by Chris Nauroth <br>
     <b>Fix TestContainersMonitor for HADOOP-9252</b><br>
     <blockquote>HADOOP-9252 slightly changed the format of some StringUtils outputs.  It caused TestContainersMonitor to fail.

Also, some methods were deprecated by HADOOP-9252.  The use of them should be replaced with the new methods.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-376">YARN-376</a>.
     Blocker bug reported by Jason Lowe and fixed by Jason Lowe (resourcemanager)<br>
     <b>Apps that have completed can appear as RUNNING on the NM UI</b><br>
     <blockquote>On a busy cluster we've noticed a growing number of applications appear as RUNNING on a nodemanager web pages but the applications have long since finished.  Looking at the NM logs, it appears the RM never told the nodemanager that the application had finished.  This is also reflected in a jstack of the NM process, since many more log aggregation threads are running then one would expect from the number of actively running applications.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-369">YARN-369</a>.
     Major sub-task reported by Hitesh Shah and fixed by Mayank Bansal (resourcemanager)<br>
     <b>Handle ( or throw a proper error when receiving) status updates from application masters that have not registered</b><br>
     <blockquote>Currently, an allocate call from an unregistered application is allowed and the status update for it throws a statemachine error that is silently dropped.

org.apache.hadoop.yarn.state.InvalidStateTransitonException: Invalid event: STATUS_UPDATE at LAUNCHED
       at org.apache.hadoop.yarn.state.StateMachineFactory.doTransition(StateMachineFactory.java:302)
       at org.apache.hadoop.yarn.state.StateMachineFactory.access$300(StateMachineFactory.java:43)
       at org.apache.hadoop.yarn.state.StateMachineFactory$InternalStateMachine.doTransition(StateMachineFactory.java:445)
       at org.apache.hadoop.yarn.server.resourcemanager.rmapp.attempt.RMAppAttemptImpl.handle(RMAppAttemptImpl.java:588)
       at org.apache.hadoop.yarn.server.resourcemanager.rmapp.attempt.RMAppAttemptImpl.handle(RMAppAttemptImpl.java:99)
       at org.apache.hadoop.yarn.server.resourcemanager.ResourceManager$ApplicationAttemptEventDispatcher.handle(ResourceManager.java:471)
       at org.apache.hadoop.yarn.server.resourcemanager.ResourceManager$ApplicationAttemptEventDispatcher.handle(ResourceManager.java:452)
       at org.apache.hadoop.yarn.event.AsyncDispatcher.dispatch(AsyncDispatcher.java:130)
       at org.apache.hadoop.yarn.event.AsyncDispatcher$1.run(AsyncDispatcher.java:77)
       at java.lang.Thread.run(Thread.java:680)


ApplicationMasterService should likely throw an appropriate error for applications' requests that should not be handled in such cases.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-368">YARN-368</a>.
     Trivial bug reported by Albert Chu and fixed by Albert Chu <br>
     <b>Fix typo "defiend" should be "defined" in error output</b><br>
     <blockquote>Noticed the following in an error log output while doing some experiements

./1066018/nodes/hyperion987/log/yarn-achu-nodemanager-hyperion987.out:java.lang.RuntimeException: No class defiend for uda.shuffle

"defiend" should be "defined"
</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-365">YARN-365</a>.
     Major sub-task reported by Siddharth Seth and fixed by Xuan Gong (resourcemanager , scheduler)<br>
     <b>Each NM heartbeat should not generate an event for the Scheduler</b><br>
     <blockquote>Follow up from YARN-275
https://issues.apache.org/jira/secure/attachment/12567075/Prototype.txt</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-363">YARN-363</a>.
     Major bug reported by Jason Lowe and fixed by Kenji Kikushima <br>
     <b>yarn proxyserver fails to find webapps/proxy directory on startup</b><br>
     <blockquote>Starting up the proxy server fails with this error:

{noformat}
2013-01-29 17:37:41,357 FATAL webproxy.WebAppProxy (WebAppProxy.java:start(99)) - Could not start proxy web server
java.io.FileNotFoundException: webapps/proxy not found in CLASSPATH
	at org.apache.hadoop.http.HttpServer.getWebAppsPath(HttpServer.java:533)
	at org.apache.hadoop.http.HttpServer.&lt;init&gt;(HttpServer.java:225)
	at org.apache.hadoop.http.HttpServer.&lt;init&gt;(HttpServer.java:164)
	at org.apache.hadoop.yarn.server.webproxy.WebAppProxy.start(WebAppProxy.java:90)
	at org.apache.hadoop.yarn.service.CompositeService.start(CompositeService.java:68)
	at org.apache.hadoop.yarn.server.webproxy.WebAppProxyServer.main(WebAppProxyServer.java:94)
{noformat}
</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-362">YARN-362</a>.
     Minor bug reported by Jason Lowe and fixed by Ravi Prakash <br>
     <b>Unexpected extra results when using webUI table search</b><br>
     <blockquote>When using the search box on the web UI to search for a specific task number (e.g.: "0831"), sometimes unexpected extra results are shown.  Using the web browser's built-in search-within-page does not show any hits, so these look like completely spurious results.

It looks like the raw timestamp value for time columns, which is not shown in the table, is also being searched with the search box.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-347">YARN-347</a>.
     Major improvement reported by Junping Du and fixed by Junping Du (client)<br>
     <b>YARN CLI should show CPU info besides memory info in node status</b><br>
     <blockquote>With YARN-2 checked in, CPU info are taken into consideration in resource scheduling. yarn node -status &lt;NodeID&gt; should show CPU used and capacity info as memory info.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-345">YARN-345</a>.
     Critical bug reported by Devaraj K and fixed by Robert Parker (nodemanager)<br>
     <b>Many InvalidStateTransitonException errors for ApplicationImpl in Node Manager</b><br>
     <blockquote>{code:xml}
org.apache.hadoop.yarn.state.InvalidStateTransitonException: Invalid event: FINISH_APPLICATION at FINISHED
	at org.apache.hadoop.yarn.state.StateMachineFactory.doTransition(StateMachineFactory.java:301)
	at org.apache.hadoop.yarn.state.StateMachineFactory.access$300(StateMachineFactory.java:43)
	at org.apache.hadoop.yarn.state.StateMachineFactory$InternalStateMachine.doTransition(StateMachineFactory.java:443)
	at org.apache.hadoop.yarn.server.nodemanager.containermanager.application.ApplicationImpl.handle(ApplicationImpl.java:398)
	at org.apache.hadoop.yarn.server.nodemanager.containermanager.application.ApplicationImpl.handle(ApplicationImpl.java:58)
	at org.apache.hadoop.yarn.server.nodemanager.containermanager.ContainerManagerImpl$ApplicationEventDispatcher.handle(ContainerManagerImpl.java:520)
	at org.apache.hadoop.yarn.server.nodemanager.containermanager.ContainerManagerImpl$ApplicationEventDispatcher.handle(ContainerManagerImpl.java:512)
	at org.apache.hadoop.yarn.event.AsyncDispatcher.dispatch(AsyncDispatcher.java:126)
	at org.apache.hadoop.yarn.event.AsyncDispatcher$1.run(AsyncDispatcher.java:75)
	at java.lang.Thread.run(Thread.java:662)
{code}
{code:xml}
2013-01-17 04:03:46,726 WARN org.apache.hadoop.yarn.server.nodemanager.containermanager.application.Application: Can't handle this event at current state
org.apache.hadoop.yarn.state.InvalidStateTransitonException: Invalid event: FINISH_APPLICATION at APPLICATION_RESOURCES_CLEANINGUP
	at org.apache.hadoop.yarn.state.StateMachineFactory.doTransition(StateMachineFactory.java:301)
	at org.apache.hadoop.yarn.state.StateMachineFactory.access$300(StateMachineFactory.java:43)
	at org.apache.hadoop.yarn.state.StateMachineFactory$InternalStateMachine.doTransition(StateMachineFactory.java:443)
	at org.apache.hadoop.yarn.server.nodemanager.containermanager.application.ApplicationImpl.handle(ApplicationImpl.java:398)
	at org.apache.hadoop.yarn.server.nodemanager.containermanager.application.ApplicationImpl.handle(ApplicationImpl.java:58)
	at org.apache.hadoop.yarn.server.nodemanager.containermanager.ContainerManagerImpl$ApplicationEventDispatcher.handle(ContainerManagerImpl.java:520)
	at org.apache.hadoop.yarn.server.nodemanager.containermanager.ContainerManagerImpl$ApplicationEventDispatcher.handle(ContainerManagerImpl.java:512)
	at org.apache.hadoop.yarn.event.AsyncDispatcher.dispatch(AsyncDispatcher.java:126)
	at org.apache.hadoop.yarn.event.AsyncDispatcher$1.run(AsyncDispatcher.java:75)
	at java.lang.Thread.run(Thread.java:662)
{code}
{code:xml}
2013-01-17 00:01:11,006 WARN org.apache.hadoop.yarn.server.nodemanager.containermanager.application.Application: Can't handle this event at current state
org.apache.hadoop.yarn.state.InvalidStateTransitonException: Invalid event: FINISH_APPLICATION at FINISHING_CONTAINERS_WAIT
	at org.apache.hadoop.yarn.state.StateMachineFactory.doTransition(StateMachineFactory.java:301)
	at org.apache.hadoop.yarn.state.StateMachineFactory.access$300(StateMachineFactory.java:43)
	at org.apache.hadoop.yarn.state.StateMachineFactory$InternalStateMachine.doTransition(StateMachineFactory.java:443)
	at org.apache.hadoop.yarn.server.nodemanager.containermanager.application.ApplicationImpl.handle(ApplicationImpl.java:398)
	at org.apache.hadoop.yarn.server.nodemanager.containermanager.application.ApplicationImpl.handle(ApplicationImpl.java:58)
	at org.apache.hadoop.yarn.server.nodemanager.containermanager.ContainerManagerImpl$ApplicationEventDispatcher.handle(ContainerManagerImpl.java:520)
	at org.apache.hadoop.yarn.server.nodemanager.containermanager.ContainerManagerImpl$ApplicationEventDispatcher.handle(ContainerManagerImpl.java:512)
	at org.apache.hadoop.yarn.event.AsyncDispatcher.dispatch(AsyncDispatcher.java:126)
	at org.apache.hadoop.yarn.event.AsyncDispatcher$1.run(AsyncDispatcher.java:75)
	at java.lang.Thread.run(Thread.java:662)
{code}
{code:xml}

2013-01-17 10:56:36,975 INFO org.apache.hadoop.yarn.server.nodemanager.containermanager.container.Container: Container container_1358385982671_1304_01_000001 transitioned from NEW to DONE
2013-01-17 10:56:36,975 WARN org.apache.hadoop.yarn.server.nodemanager.containermanager.application.Application: Can't handle this event at current state
org.apache.hadoop.yarn.state.InvalidStateTransitonException: Invalid event: APPLICATION_CONTAINER_FINISHED at FINISHED
	at org.apache.hadoop.yarn.state.StateMachineFactory.doTransition(StateMachineFactory.java:301)
	at org.apache.hadoop.yarn.state.StateMachineFactory.access$300(StateMachineFactory.java:43)
	at org.apache.hadoop.yarn.state.StateMachineFactory$InternalStateMachine.doTransition(StateMachineFactory.java:443)
	at org.apache.hadoop.yarn.server.nodemanager.containermanager.application.ApplicationImpl.handle(ApplicationImpl.java:398)
	at org.apache.hadoop.yarn.server.nodemanager.containermanager.application.ApplicationImpl.handle(ApplicationImpl.java:58)
	at org.apache.hadoop.yarn.server.nodemanager.containermanager.ContainerManagerImpl$ApplicationEventDispatcher.handle(ContainerManagerImpl.java:520)
	at org.apache.hadoop.yarn.server.nodemanager.containermanager.ContainerManagerImpl$ApplicationEventDispatcher.handle(ContainerManagerImpl.java:512)
	at org.apache.hadoop.yarn.event.AsyncDispatcher.dispatch(AsyncDispatcher.java:126)
	at org.apache.hadoop.yarn.event.AsyncDispatcher$1.run(AsyncDispatcher.java:75)
	at java.lang.Thread.run(Thread.java:662)
2013-01-17 10:56:36,975 INFO org.apache.hadoop.yarn.server.nodemanager.containermanager.application.Application: Application application_1358385982671_1304 transitioned from FINISHED to null
{code}
{code:xml}

2013-01-17 10:56:36,026 WARN org.apache.hadoop.yarn.server.nodemanager.containermanager.application.Application: Can't handle this event at current state
org.apache.hadoop.yarn.state.InvalidStateTransitonException: Invalid event: INIT_CONTAINER at FINISHED
	at org.apache.hadoop.yarn.state.StateMachineFactory.doTransition(StateMachineFactory.java:301)
	at org.apache.hadoop.yarn.state.StateMachineFactory.access$300(StateMachineFactory.java:43)
	at org.apache.hadoop.yarn.state.StateMachineFactory$InternalStateMachine.doTransition(StateMachineFactory.java:443)
	at org.apache.hadoop.yarn.server.nodemanager.containermanager.application.ApplicationImpl.handle(ApplicationImpl.java:398)
	at org.apache.hadoop.yarn.server.nodemanager.containermanager.application.ApplicationImpl.handle(ApplicationImpl.java:58)
	at org.apache.hadoop.yarn.server.nodemanager.containermanager.ContainerManagerImpl$ApplicationEventDispatcher.handle(ContainerManagerImpl.java:520)
	at org.apache.hadoop.yarn.server.nodemanager.containermanager.ContainerManagerImpl$ApplicationEventDispatcher.handle(ContainerManagerImpl.java:512)
	at org.apache.hadoop.yarn.event.AsyncDispatcher.dispatch(AsyncDispatcher.java:126)
	at org.apache.hadoop.yarn.event.AsyncDispatcher$1.run(AsyncDispatcher.java:75)
	at java.lang.Thread.run(Thread.java:662)
2013-01-17 10:56:36,026 INFO org.apache.hadoop.yarn.server.nodemanager.containermanager.application.Application: Application application_1358385982671_1304 transitioned from FINISHED to null
{code}
</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-333">YARN-333</a>.
     Major bug reported by Sandy Ryza and fixed by Sandy Ryza <br>
     <b>Schedulers cannot control the queue-name of an application</b><br>
     <blockquote>Currently, if an app is submitted without a queue, RMAppManager sets the RMApp's queue to "default".

A scheduler may wish to make its own decision on which queue to place an app in if none is specified. For example, when the fair scheduler user-as-default-queue config option is set to true, and an app is submitted with no queue specified, the fair scheduler should assign the app to a queue with the user's name.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-326">YARN-326</a>.
     Major new feature reported by Sandy Ryza and fixed by Sandy Ryza (scheduler)<br>
     <b>Add multi-resource scheduling to the fair scheduler</b><br>
     <blockquote>With YARN-2 in, the capacity scheduler has the ability to schedule based on multiple resources, using dominant resource fairness.  The fair scheduler should be able to do multiple resource scheduling as well, also using dominant resource fairness.

More details to come on how the corner cases with fair scheduler configs such as min and max resources will be handled.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-319">YARN-319</a>.
     Major bug reported by shenhong and fixed by shenhong (resourcemanager , scheduler)<br>
     <b>Submit a job to a queue that not allowed in fairScheduler, client will hold forever.</b><br>
     <blockquote>RM use fairScheduler, when client submit a job to a queue, but the queue do not allow the user to submit job it, in this case, client  will hold forever.
</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-309">YARN-309</a>.
     Major sub-task reported by Xuan Gong and fixed by Xuan Gong (resourcemanager)<br>
     <b>Make RM provide heartbeat interval to NM</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-297">YARN-297</a>.
     Major improvement reported by Arun C Murthy and fixed by Xuan Gong <br>
     <b>Improve hashCode implementations for PB records</b><br>
     <blockquote>As [~hsn] pointed out in YARN-2, we use very small primes in all our hashCode implementations.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-295">YARN-295</a>.
     Major sub-task reported by Devaraj K and fixed by Mayank Bansal (resourcemanager)<br>
     <b>Resource Manager throws InvalidStateTransitonException: Invalid event: CONTAINER_FINISHED at ALLOCATED for RMAppAttemptImpl</b><br>
     <blockquote>{code:xml}
2012-12-28 14:03:56,956 ERROR org.apache.hadoop.yarn.server.resourcemanager.rmapp.attempt.RMAppAttemptImpl: Can't handle this event at current state
org.apache.hadoop.yarn.state.InvalidStateTransitonException: Invalid event: CONTAINER_FINISHED at ALLOCATED
	at org.apache.hadoop.yarn.state.StateMachineFactory.doTransition(StateMachineFactory.java:301)
	at org.apache.hadoop.yarn.state.StateMachineFactory.access$300(StateMachineFactory.java:43)
	at org.apache.hadoop.yarn.state.StateMachineFactory$InternalStateMachine.doTransition(StateMachineFactory.java:443)
	at org.apache.hadoop.yarn.server.resourcemanager.rmapp.attempt.RMAppAttemptImpl.handle(RMAppAttemptImpl.java:490)
	at org.apache.hadoop.yarn.server.resourcemanager.rmapp.attempt.RMAppAttemptImpl.handle(RMAppAttemptImpl.java:80)
	at org.apache.hadoop.yarn.server.resourcemanager.ResourceManager$ApplicationAttemptEventDispatcher.handle(ResourceManager.java:433)
	at org.apache.hadoop.yarn.server.resourcemanager.ResourceManager$ApplicationAttemptEventDispatcher.handle(ResourceManager.java:414)
	at org.apache.hadoop.yarn.event.AsyncDispatcher.dispatch(AsyncDispatcher.java:126)
	at org.apache.hadoop.yarn.event.AsyncDispatcher$1.run(AsyncDispatcher.java:75)
	at java.lang.Thread.run(Thread.java:662)
{code}</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-289">YARN-289</a>.
     Major bug reported by Sandy Ryza and fixed by Sandy Ryza <br>
     <b>Fair scheduler allows reservations that won't fit on node</b><br>
     <blockquote>An application requests a container with 1024 MB.  It then requests a container with 2048 MB.  A node shows up with 1024 MB available.  Even if the application is the only one running, neither request will be scheduled on it.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-269">YARN-269</a>.
     Major bug reported by Thomas Graves and fixed by Jason Lowe (resourcemanager)<br>
     <b>Resource Manager not logging the health_check_script result when taking it out</b><br>
     <blockquote>The Resource Manager not logging the health_check_script result when taking it out. This was added to jobtracker in 1.x with MAPREDUCE-2451, we should do the same thing for RM.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-249">YARN-249</a>.
     Major improvement reported by Ravi Prakash and fixed by Ravi Prakash (capacityscheduler)<br>
     <b>Capacity Scheduler web page should show list of active users per queue like it used to (in 1.x)</b><br>
     <blockquote>On the jobtracker, the web ui showed the active users for each queue and how much resources each of those users were using. That currently isn't being displayed on the RM capacity scheduler web ui.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-237">YARN-237</a>.
     Major improvement reported by Ravi Prakash and fixed by Jian He (resourcemanager)<br>
     <b>Refreshing the RM page forgets how many rows I had in my Datatables</b><br>
     <blockquote>If I choose a 100 rows, and then refresh the page, DataTables goes back to showing me 20 rows.
This user preference should be stored in a cookie.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-236">YARN-236</a>.
     Major bug reported by Jason Lowe and fixed by Jason Lowe (resourcemanager)<br>
     <b>RM should point tracking URL to RM web page when app fails to start</b><br>
     <blockquote>Similar to YARN-165, the RM should redirect the tracking URL to the specific app page on the RM web UI when the application fails to start.  For example, if the AM completely fails to start due to bad AM config or bad job config like invalid queuename, then the user gets the unhelpful "The requested application exited before setting a tracking URL".

Usually the diagnostic string on the RM app page has something useful, so we might as well point there.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-227">YARN-227</a>.
     Major bug reported by Jason Lowe and fixed by Jason Lowe (resourcemanager)<br>
     <b>Application expiration difficult to debug for end-users</b><br>
     <blockquote>When an AM attempt expires the AMLivelinessMonitor in the RM will kill the job and mark it as failed.  However there are no diagnostic messages set for the application indicating that the application failed because of expiration.  Even if the AM logs are examined, it's often not obvious that the application was externally killed.  The only evidence of what happened to the application is currently in the RM logs, and those are often not accessible by users.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-209">YARN-209</a>.
     Major bug reported by Bikas Saha and fixed by Zhijie Shen (capacityscheduler)<br>
     <b>Capacity scheduler doesn't trigger app-activation after adding nodes</b><br>
     <blockquote>Say application A is submitted but at that time it does not meet the bar for activation because of resource limit settings for applications. After that if more hardware is added to the system and the application becomes valid it still remains in pending state, likely forever.
This might be rare to hit in real life because enough NM's heartbeat to the RM before applications can get submitted. But a change in settings or heartbeat interval might make it easier to repro. In RM restart scenarios, this will likely hit more if its implemented by re-playing events and re-submitting applications to the scheduler before the RPC to NM's is activated.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-200">YARN-200</a>.
     Major sub-task reported by Robert Joseph Evans and fixed by Ravi Prakash <br>
     <b>yarn log does not output all needed information, and is in a binary format</b><br>
     <blockquote>yarn logs does not output attemptid, nodename, or container-id.  Missing these makes it very difficult to look through the logs for failed containers and tie them back to actual tasks and task attempts.

Also the output currently includes several binary characters.  This is OK for being machine readable, but difficult for being human readable, or even for using standard tool like grep.

The help message can also be more useful to users</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-198">YARN-198</a>.
     Minor improvement reported by Ramgopal N and fixed by Jian He (nodemanager)<br>
     <b>If we are navigating to Nodemanager UI from Resourcemanager,then there is not link to navigate back to Resource manager</b><br>
     <blockquote>If we are navigating to Nodemanager by clicking on the node link in RM,there is no link provided on the NM to navigate back to RM.
 If there is a link to navigate back to RM it would be good</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-196">YARN-196</a>.
     Major bug reported by Ramgopal N and fixed by Xuan Gong (nodemanager)<br>
     <b>Nodemanager should be more robust in handling connection failure  to ResourceManager when a cluster is started</b><br>
     <blockquote>If NM is started before starting the RM ,NM is shutting down with the following error
{code}
ERROR org.apache.hadoop.yarn.service.CompositeService: Error starting services org.apache.hadoop.yarn.server.nodemanager.NodeManager
org.apache.avro.AvroRuntimeException: java.lang.reflect.UndeclaredThrowableException
	at org.apache.hadoop.yarn.server.nodemanager.NodeStatusUpdaterImpl.start(NodeStatusUpdaterImpl.java:149)
	at org.apache.hadoop.yarn.service.CompositeService.start(CompositeService.java:68)
	at org.apache.hadoop.yarn.server.nodemanager.NodeManager.start(NodeManager.java:167)
	at org.apache.hadoop.yarn.server.nodemanager.NodeManager.main(NodeManager.java:242)
Caused by: java.lang.reflect.UndeclaredThrowableException
	at org.apache.hadoop.yarn.server.api.impl.pb.client.ResourceTrackerPBClientImpl.registerNodeManager(ResourceTrackerPBClientImpl.java:66)
	at org.apache.hadoop.yarn.server.nodemanager.NodeStatusUpdaterImpl.registerWithRM(NodeStatusUpdaterImpl.java:182)
	at org.apache.hadoop.yarn.server.nodemanager.NodeStatusUpdaterImpl.start(NodeStatusUpdaterImpl.java:145)
	... 3 more
Caused by: com.google.protobuf.ServiceException: java.net.ConnectException: Call From HOST-10-18-52-230/10.18.52.230 to HOST-10-18-52-250:8025 failed on connection exception: java.net.ConnectException: Connection refused; For more details see:  http://wiki.apache.org/hadoop/ConnectionRefused
	at org.apache.hadoop.yarn.ipc.ProtoOverHadoopRpcEngine$Invoker.invoke(ProtoOverHadoopRpcEngine.java:131)
	at $Proxy23.registerNodeManager(Unknown Source)
	at org.apache.hadoop.yarn.server.api.impl.pb.client.ResourceTrackerPBClientImpl.registerNodeManager(ResourceTrackerPBClientImpl.java:59)
	... 5 more
Caused by: java.net.ConnectException: Call From HOST-10-18-52-230/10.18.52.230 to HOST-10-18-52-250:8025 failed on connection exception: java.net.ConnectException: Connection refused; For more details see:  http://wiki.apache.org/hadoop/ConnectionRefused
	at org.apache.hadoop.net.NetUtils.wrapException(NetUtils.java:857)
	at org.apache.hadoop.ipc.Client.call(Client.java:1141)
	at org.apache.hadoop.ipc.Client.call(Client.java:1100)
	at org.apache.hadoop.yarn.ipc.ProtoOverHadoopRpcEngine$Invoker.invoke(ProtoOverHadoopRpcEngine.java:128)
	... 7 more
Caused by: java.net.ConnectException: Connection refused
	at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)
	at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:574)
	at org.apache.hadoop.net.SocketIOWithTimeout.connect(SocketIOWithTimeout.java:206)
	at org.apache.hadoop.net.NetUtils.connect(NetUtils.java:659)
	at org.apache.hadoop.ipc.Client$Connection.setupConnection(Client.java:469)
	at org.apache.hadoop.ipc.Client$Connection.setupIOstreams(Client.java:563)
	at org.apache.hadoop.ipc.Client$Connection.access$2000(Client.java:211)
	at org.apache.hadoop.ipc.Client.getConnection(Client.java:1247)
	at org.apache.hadoop.ipc.Client.call(Client.java:1117)
	... 9 more
2012-01-16 15:04:13,336 WARN org.apache.hadoop.yarn.event.AsyncDispatcher: AsyncDispatcher thread interrupted
java.lang.InterruptedException
	at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.reportInterruptAfterWait(AbstractQueuedSynchronizer.java:1899)
	at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1934)
	at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:358)
	at org.apache.hadoop.yarn.event.AsyncDispatcher$1.run(AsyncDispatcher.java:76)
	at java.lang.Thread.run(Thread.java:619)
2012-01-16 15:04:13,337 INFO org.apache.hadoop.yarn.service.AbstractService: Service:Dispatcher is stopped.
2012-01-16 15:04:13,392 INFO org.mortbay.log: Stopped SelectChannelConnector@0.0.0.0:9999
2012-01-16 15:04:13,493 INFO org.apache.hadoop.yarn.service.AbstractService: Service:org.apache.hadoop.yarn.server.nodemanager.webapp.WebServer is stopped.
2012-01-16 15:04:13,493 INFO org.apache.hadoop.ipc.Server: Stopping server on 24290
2012-01-16 15:04:13,494 INFO org.apache.hadoop.ipc.Server: Stopping IPC Server listener on 24290
2012-01-16 15:04:13,495 INFO org.apache.hadoop.ipc.Server: Stopping IPC Server Responder
2012-01-16 15:04:13,496 INFO org.apache.hadoop.yarn.service.AbstractService: Service:org.apache.hadoop.yarn.server.nodemanager.containermanager.loghandler.NonAggregatingLogHandler is stopped.
2012-01-16 15:04:13,496 WARN org.apache.hadoop.yarn.event.AsyncDispatcher: AsyncDispatcher thread interrupted
java.lang.InterruptedException
	at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.reportInterruptAfterWait(AbstractQueuedSynchronizer.java:1899)
	at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1934)
	at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:358)
	at org.apache.hadoop.yarn.event.AsyncDispatcher$1.run(AsyncDispatcher.java:76)
	at java.lang.Thread.run(Thread.java:619)
{code}</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-193">YARN-193</a>.
     Major bug reported by Hitesh Shah and fixed by Zhijie Shen (resourcemanager)<br>
     <b>Scheduler.normalizeRequest does not account for allocation requests that exceed maximumAllocation limits </b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-142">YARN-142</a>.
     Blocker task reported by Siddharth Seth and fixed by  <br>
     <b>[Umbrella] Cleanup YARN APIs w.r.t exceptions</b><br>
     <blockquote>Ref: MAPREDUCE-4067

All YARN APIs currently throw YarnRemoteException.
1) This cannot be extended in it's current form.
2) The RPC layer can throw IOExceptions. These end up showing up as UndeclaredThrowableExceptions.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-125">YARN-125</a>.
     Minor sub-task reported by Steve Loughran and fixed by Steve Loughran <br>
     <b>Make Yarn Client service shutdown operations robust</b><br>
     <blockquote>Make the yarn client services more robust against being shut down while not started, or shutdown more than once, by null-checking fields before closing them, setting to null afterwards to prevent double-invocation. This is a subset of MAPREDUCE-3502</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-124">YARN-124</a>.
     Minor sub-task reported by Steve Loughran and fixed by Steve Loughran <br>
     <b>Make Yarn Node Manager services robust against shutdown</b><br>
     <blockquote>Add the nodemanager bits of MAPREDUCE-3502 to shut down the Nodemanager services. This is done by checking for fields being non-null before shutting down/closing etc, and setting the fields to null afterwards -to be resilient against re-entrancy.

No tests other than manual review.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-123">YARN-123</a>.
     Minor sub-task reported by Steve Loughran and fixed by Steve Loughran <br>
     <b>Make yarn Resource Manager services robust against shutdown</b><br>
     <blockquote>Split MAPREDUCE-3502 patches to make the RM code more resilient to being stopped more than once, or before started.

This depends on MAPREDUCE-4014.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-117">YARN-117</a>.
     Major improvement reported by Steve Loughran and fixed by Steve Loughran <br>
     <b>Enhance YARN service model</b><br>
     <blockquote>Having played the YARN service model, there are some issues
that I've identified based on past work and initial use.

This JIRA issue is an overall one to cover the issues, with solutions pushed out to separate JIRAs.

h2. state model prevents stopped state being entered if you could not successfully start the service.

In the current lifecycle you cannot stop a service unless it was successfully started, but
* {{init()}} may acquire resources that need to be explicitly released
* if the {{start()}} operation fails partway through, the {{stop()}} operation may be needed to release resources.

*Fix:* make {{stop()}} a valid state transition from all states and require the implementations to be able to stop safely without requiring all fields to be non null.

Before anyone points out that the {{stop()}} operations assume that all fields are valid; and if called before a {{start()}} they will NPE; MAPREDUCE-3431 shows that this problem arises today, MAPREDUCE-3502 is a fix for this. It is independent of the rest of the issues in this doc but it will aid making {{stop()}} execute from all states other than "stopped".

MAPREDUCE-3502 is too big a patch and needs to be broken down for easier review and take up; this can be done with issues linked to this one.
h2. AbstractService doesn't prevent duplicate state change requests.

The {{ensureState()}} checks to verify whether or not a state transition is allowed from the current state are performed in the base {{AbstractService}} class -yet subclasses tend to call this *after* their own {{init()}}, {{start()}} &amp; {{stop()}} operations. This means that these operations can be performed out of order, and even if the outcome of the call is an exception, all actions performed by the subclasses will have taken place. MAPREDUCE-3877 demonstrates this.

This is a tricky one to address. In HADOOP-3128 I used a base class instead of an interface and made the {{init()}}, {{start()}} &amp; {{stop()}} methods {{final}}. These methods would do the checks, and then invoke protected inner methods, {{innerStart()}}, {{innerStop()}}, etc. It should be possible to retrofit the same behaviour to everything that extends {{AbstractService}} -something that must be done before the class is considered stable (because once the lifecycle methods are declared final, all subclasses that are out of the source tree will need fixing by the respective developers.

h2. AbstractService state change doesn't defend against race conditions.

There's no concurrency locks on the state transitions. Whatever fix for wrong state calls is added should correct this to prevent re-entrancy, such as {{stop()}} being called from two threads.

h2.  Static methods to choreograph of lifecycle operations

Helper methods to move things through lifecycles. init-&gt;start is common, stop-if-service!=null another. Some static methods can execute these, and even call {{stop()}} if {{init()}} raises an exception. These could go into a class {{ServiceOps}} in the same package. These can be used by those services that wrap other services, and help manage more robust shutdowns.

h2. state transition failures are something that registered service listeners may wish to be informed of.

When a state transition fails a {{RuntimeException}} can be thrown -and the service listeners are not informed as the notification point isn't reached. They may wish to know this, especially for management and diagnostics.

*Fix:* extend {{ServiceStateChangeListener}} with a callback such as {{stateChangeFailed(Service service,Service.State targeted-state, RuntimeException e)}} that is invoked from the (final) state change methods in the {{AbstractService}} class (once they delegate to their inner {{innerStart()}}, {{innerStop()}} methods; make a no-op on the existing implementations of the interface.

h2. Service listener failures not handled

Is this an error an error or not? Log and ignore may not be what is desired.

*Proposed:* during {{stop()}} any exception by a listener is caught and discarded, to increase the likelihood of a better shutdown, but do not add try-catch clauses to the other state changes.

h2. Support static listeners for all AbstractServices

Add support to {{AbstractService}} that allow callers to register listeners for all instances. The existing listener interface could be used. This allows management tools to hook into the events.

The static listeners would be invoked for all state changes except creation (base class shouldn't be handing out references to itself at this point).

These static events could all be async, pushed through a shared {{ConcurrentLinkedQueue}}; failures logged at warn and the rest of the listeners invoked.

h2. Add some example listeners for management/diagnostics
* event to commons log for humans.
* events for machines hooked up to the JSON logger.
* for testing: something that be told to fail.

h2.  Services should support signal interruptibility

The services would benefit from a way of shutting them down on a kill signal; this can be done via a runtime hook. It should not be automatic though, as composite services will get into a very complex state during shutdown. Better to provide a hook that lets you register/unregister services to terminate, and have the relevant {{main()}} entry points tell their root services to register themselves.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-112">YARN-112</a>.
     Major sub-task reported by Jason Lowe and fixed by Omkar Vinit Joshi (nodemanager)<br>
     <b>Race in localization can cause containers to fail</b><br>
     <blockquote>On one of our 0.23 clusters, I saw a case of two containers, corresponding to two map tasks of a MR job, that were launched almost simultaneously on the same node.  It appears they both tried to localize job.jar and job.xml at the same time.  One of the containers failed when it couldn't rename the temporary job.jar directory to its final name because the target directory wasn't empty.  Shortly afterwards the second container failed because job.xml could not be found, presumably because the first container removed it when it cleaned up.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-109">YARN-109</a>.
     Major bug reported by Jason Lowe and fixed by Mayank Bansal (nodemanager)<br>
     <b>.tmp file is not deleted for localized archives</b><br>
     <blockquote>When archives are localized they are initially created as a .tmp file and unpacked from that file.  However the .tmp file is not deleted afterwards.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-101">YARN-101</a>.
     Minor bug reported by xieguiming and fixed by Xuan Gong (nodemanager)<br>
     <b>If  the heartbeat message loss, the nodestatus info of complete container will loss too.</b><br>
     <blockquote>see the red color:

org.apache.hadoop.yarn.server.nodemanager.NodeStatusUpdaterImpl.java

 protected void startStatusUpdater() {

    new Thread("Node Status Updater") {
      @Override
      @SuppressWarnings("unchecked")
      public void run() {
        int lastHeartBeatID = 0;
        while (!isStopped) {
          // Send heartbeat
          try {
            synchronized (heartbeatMonitor) {
              heartbeatMonitor.wait(heartBeatInterval);
            }
        {color:red} 
            // Before we send the heartbeat, we get the NodeStatus,
            // whose method removes completed containers.
            NodeStatus nodeStatus = getNodeStatus();
         {color}
            nodeStatus.setResponseId(lastHeartBeatID);
            
            NodeHeartbeatRequest request = recordFactory
                .newRecordInstance(NodeHeartbeatRequest.class);
            request.setNodeStatus(nodeStatus);   
            {color:red} 

           // But if the nodeHeartbeat fails, we've already removed the containers away to know about it. We aren't handling a nodeHeartbeat failure case here.
            HeartbeatResponse response =
              resourceTracker.nodeHeartbeat(request).getHeartbeatResponse();
           {color} 

            if (response.getNodeAction() == NodeAction.SHUTDOWN) {
              LOG
                  .info("Recieved SHUTDOWN signal from Resourcemanager as part of heartbeat," +
                  		" hence shutting down.");
              NodeStatusUpdaterImpl.this.stop();
              break;
            }
            if (response.getNodeAction() == NodeAction.REBOOT) {
              LOG.info("Node is out of sync with ResourceManager,"
                  + " hence rebooting.");
              NodeStatusUpdaterImpl.this.reboot();
              break;
            }

            lastHeartBeatID = response.getResponseId();
            List&lt;ContainerId&gt; containersToCleanup = response
                .getContainersToCleanupList();
            if (containersToCleanup.size() != 0) {
              dispatcher.getEventHandler().handle(
                  new CMgrCompletedContainersEvent(containersToCleanup));
            }
            List&lt;ApplicationId&gt; appsToCleanup =
                response.getApplicationsToCleanupList();
            //Only start tracking for keepAlive on FINISH_APP
            trackAppsForKeepAlive(appsToCleanup);
            if (appsToCleanup.size() != 0) {
              dispatcher.getEventHandler().handle(
                  new CMgrCompletedAppsEvent(appsToCleanup));
            }
          } catch (Throwable e) {
            // TODO Better error handling. Thread can die with the rest of the
            // NM still running.
            LOG.error("Caught exception in status-updater", e);
          }
        }
      }
    }.start();
  }



  private NodeStatus getNodeStatus() {

    NodeStatus nodeStatus = recordFactory.newRecordInstance(NodeStatus.class);
    nodeStatus.setNodeId(this.nodeId);

    int numActiveContainers = 0;
    List&lt;ContainerStatus&gt; containersStatuses = new ArrayList&lt;ContainerStatus&gt;();
    for (Iterator&lt;Entry&lt;ContainerId, Container&gt;&gt; i =
        this.context.getContainers().entrySet().iterator(); i.hasNext();) {
      Entry&lt;ContainerId, Container&gt; e = i.next();
      ContainerId containerId = e.getKey();
      Container container = e.getValue();

      // Clone the container to send it to the RM
      org.apache.hadoop.yarn.api.records.ContainerStatus containerStatus = 
          container.cloneAndGetContainerStatus();
      containersStatuses.add(containerStatus);
      ++numActiveContainers;
      LOG.info("Sending out status for container: " + containerStatus);
      {color:red} 

      // Here is the part that removes the completed containers.
      if (containerStatus.getState() == ContainerState.COMPLETE) {
        // Remove
        i.remove();
      {color} 

        LOG.info("Removed completed container " + containerId);
      }
    }
    nodeStatus.setContainersStatuses(containersStatuses);

    LOG.debug(this.nodeId + " sending out status for "
        + numActiveContainers + " containers");

    NodeHealthStatus nodeHealthStatus = this.context.getNodeHealthStatus();
    nodeHealthStatus.setHealthReport(healthChecker.getHealthReport());
    nodeHealthStatus.setIsNodeHealthy(healthChecker.isHealthy());
    nodeHealthStatus.setLastHealthReportTime(
        healthChecker.getLastHealthReportTime());
    if (LOG.isDebugEnabled()) {
      LOG.debug("Node's health-status : " + nodeHealthStatus.getIsNodeHealthy()
                + ", " + nodeHealthStatus.getHealthReport());
    }
    nodeStatus.setNodeHealthStatus(nodeHealthStatus);

    List&lt;ApplicationId&gt; keepAliveAppIds = createKeepAliveApplicationList();
    nodeStatus.setKeepAliveApplications(keepAliveAppIds);
    
    return nodeStatus;
  }
</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-99">YARN-99</a>.
     Major sub-task reported by Devaraj K and fixed by Omkar Vinit Joshi (nodemanager)<br>
     <b>Jobs fail during resource localization when private distributed-cache hits unix directory limits</b><br>
     <blockquote>If we have multiple jobs which uses distributed cache with small size of files, the directory limit reaches before reaching the cache size and fails to create any directories in file cache. The jobs start failing with the below exception.


{code:xml}
java.io.IOException: mkdir of /tmp/nm-local-dir/usercache/root/filecache/1701886847734194975 failed
	at org.apache.hadoop.fs.FileSystem.primitiveMkdir(FileSystem.java:909)
	at org.apache.hadoop.fs.DelegateToFileSystem.mkdir(DelegateToFileSystem.java:143)
	at org.apache.hadoop.fs.FilterFs.mkdir(FilterFs.java:189)
	at org.apache.hadoop.fs.FileContext$4.next(FileContext.java:706)
	at org.apache.hadoop.fs.FileContext$4.next(FileContext.java:703)
	at org.apache.hadoop.fs.FileContext$FSLinkResolver.resolve(FileContext.java:2325)
	at org.apache.hadoop.fs.FileContext.mkdir(FileContext.java:703)
	at org.apache.hadoop.yarn.util.FSDownload.call(FSDownload.java:147)
	at org.apache.hadoop.yarn.util.FSDownload.call(FSDownload.java:49)
	at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
	at java.util.concurrent.FutureTask.run(FutureTask.java:138)
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
	at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
	at java.util.concurrent.FutureTask.run(FutureTask.java:138)
	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
	at java.lang.Thread.run(Thread.java:662)
{code}

We should have a mechanism to clean the cache files if it crosses specified number of directories like cache size.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-84">YARN-84</a>.
     Minor improvement reported by Brandon Li and fixed by Brandon Li <br>
     <b>Use Builder to get RPC server in YARN</b><br>
     <blockquote>In HADOOP-8736, a Builder is introduced to replace all the getServer() variants. This JIRA is the change in YARN.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-71">YARN-71</a>.
     Critical bug reported by Vinod Kumar Vavilapalli and fixed by Xuan Gong (nodemanager)<br>
     <b>Ensure/confirm that the NodeManager cleans up local-dirs on restart</b><br>
     <blockquote>We have to make sure that NodeManagers cleanup their local files on restart.

It may already be working like that in which case we should have tests validating this.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-62">YARN-62</a>.
     Major sub-task reported by Vinod Kumar Vavilapalli and fixed by Omkar Vinit Joshi <br>
     <b>AM should not be able to abuse container tokens for repetitive container launches</b><br>
     <blockquote>Clone of YARN-51.

ApplicationMaster should not be able to store container tokens and use the same set of tokens for repetitive container launches. The possibility of such abuse is there in the current code, for a duration of 1d+10mins, we need to fix this.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-45">YARN-45</a>.
     Major sub-task reported by Chris Douglas and fixed by Carlo Curino (resourcemanager)<br>
     <b>Scheduler feedback to AM to release containers</b><br>
     <blockquote>The ResourceManager strikes a balance between cluster utilization and strict enforcement of resource invariants in the cluster. Individual allocations of containers must be reclaimed- or reserved- to restore the global invariants when cluster load shifts. In some cases, the ApplicationMaster can respond to fluctuations in resource availability without losing the work already completed by that task (MAPREDUCE-4584). Supplying it with this information would be helpful for overall cluster utilization [1]. To this end, we want to establish a protocol for the RM to ask the AM to release containers.

[1] http://research.yahoo.com/files/yl-2012-003.pdf</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-24">YARN-24</a>.
     Major bug reported by Jason Lowe and fixed by Sandy Ryza (nodemanager)<br>
     <b>Nodemanager fails to start if log aggregation enabled and namenode unavailable</b><br>
     <blockquote>If log aggregation is enabled and the namenode is currently unavailable, the nodemanager fails to startup.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5421">MAPREDUCE-5421</a>.
     Blocker bug reported by Junping Du and fixed by Junping Du (test)<br>
     <b>TestNonExistentJob is failed due to recent changes in YARN</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5419">MAPREDUCE-5419</a>.
     Major bug reported by Robert Parker and fixed by Robert Parker (mrv2)<br>
     <b>TestSlive is getting FileNotFound Exception</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5412">MAPREDUCE-5412</a>.
     Major bug reported by Jian He and fixed by Jian He <br>
     <b>Change MR to use multiple containers API of ContainerManager after YARN-926</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5399">MAPREDUCE-5399</a>.
     Blocker bug reported by Stanislav Barton and fixed by Stanislav Barton (mrv1 , mrv2)<br>
     <b>Unnecessary Configuration instantiation in IFileInputStream slows down merge</b><br>
     <blockquote>Fixes blank Configuration object creation overhead by reusing the Job configuration in InMemoryReader.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5398">MAPREDUCE-5398</a>.
     Major improvement reported by Bikas Saha and fixed by Jian He <br>
     <b>MR changes for YARN-513</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5366">MAPREDUCE-5366</a>.
     Minor bug reported by Chuan Liu and fixed by Chuan Liu (test)<br>
     <b>TestMRAsyncDiskService fails on Windows</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5360">MAPREDUCE-5360</a>.
     Minor bug reported by Chuan Liu and fixed by Chuan Liu (test)<br>
     <b>TestMRJobClient fails on Windows due to path format</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5359">MAPREDUCE-5359</a>.
     Minor bug reported by Chuan Liu and fixed by Chuan Liu <br>
     <b>JobHistory should not use File.separator to match timestamp in path</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5357">MAPREDUCE-5357</a>.
     Minor bug reported by Chuan Liu and fixed by Chuan Liu <br>
     <b>Job staging directory owner checking could fail on Windows</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5355">MAPREDUCE-5355</a>.
     Minor bug reported by Chuan Liu and fixed by Chuan Liu <br>
     <b>MiniMRYarnCluster with localFs does not work on Windows</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5352">MAPREDUCE-5352</a>.
     Major improvement reported by Siddharth Seth and fixed by Siddharth Seth <br>
     <b>Optimize node local splits generated by CombineFileInputFormat </b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5349">MAPREDUCE-5349</a>.
     Minor bug reported by Chuan Liu and fixed by Chuan Liu <br>
     <b>TestClusterMapReduceTestCase and TestJobName fail on Windows in branch-2</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5334">MAPREDUCE-5334</a>.
     Blocker bug reported by Vinod Kumar Vavilapalli and fixed by Vinod Kumar Vavilapalli <br>
     <b>TestContainerLauncherImpl is failing</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5333">MAPREDUCE-5333</a>.
     Major test reported by Alejandro Abdelnur and fixed by Wei Yan (mr-am)<br>
     <b>Add test that verifies MRAM works correctly when sending requests with non-normalized capabilities</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5328">MAPREDUCE-5328</a>.
     Major bug reported by Omkar Vinit Joshi and fixed by Omkar Vinit Joshi <br>
     <b>ClientToken should not be set in the environment</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5326">MAPREDUCE-5326</a>.
     Blocker bug reported by Arun C Murthy and fixed by Zhijie Shen <br>
     <b>Add version to shuffle header</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5325">MAPREDUCE-5325</a>.
     Major bug reported by Xuan Gong and fixed by Xuan Gong <br>
     <b>ClientRMProtocol.getAllApplications should accept ApplicationType as a parameter---MR changes</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5319">MAPREDUCE-5319</a>.
     Major bug reported by yeshavora and fixed by Xuan Gong <br>
     <b>Job.xml file does not has 'user.name' property for Hadoop2</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5315">MAPREDUCE-5315</a>.
     Critical bug reported by Mithun Radhakrishnan and fixed by Mithun Radhakrishnan (distcp)<br>
     <b>DistCp reports success even on failure.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5312">MAPREDUCE-5312</a>.
     Major bug reported by Alejandro Abdelnur and fixed by Sandy Ryza <br>
     <b>TestRMNMInfo is failing</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5310">MAPREDUCE-5310</a>.
     Major bug reported by Alejandro Abdelnur and fixed by Alejandro Abdelnur (applicationmaster)<br>
     <b>MRAM should not normalize allocation request capabilities</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5308">MAPREDUCE-5308</a>.
     Major bug reported by Nathan Roberts and fixed by Nathan Roberts <br>
     <b>Shuffling to memory can get out-of-sync when fetching multiple compressed map outputs</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5304">MAPREDUCE-5304</a>.
     Blocker sub-task reported by Alejandro Abdelnur and fixed by Karthik Kambatla <br>
     <b>mapreduce.Job killTask/failTask/getTaskCompletionEvents methods have incompatible signature changes</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5303">MAPREDUCE-5303</a>.
     Major bug reported by Jian He and fixed by Jian He <br>
     <b>Changes on MR after moving ProtoBase to package impl.pb on YARN-724</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5301">MAPREDUCE-5301</a>.
     Major bug reported by Siddharth Seth and fixed by Siddharth Seth <br>
     <b>Update MR code to work with YARN-635 changes</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5300">MAPREDUCE-5300</a>.
     Major sub-task reported by Zhijie Shen and fixed by Zhijie Shen <br>
     <b>Two function signature changes in filecache.DistributedCache</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5299">MAPREDUCE-5299</a>.
     Major sub-task reported by Zhijie Shen and fixed by Zhijie Shen <br>
     <b>Mapred API: void setTaskID(TaskAttemptID) is missing in TaskCompletionEvent </b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5298">MAPREDUCE-5298</a>.
     Major new feature reported by Steve Loughran and fixed by Steve Loughran (applicationmaster)<br>
     <b>Move MapReduce services to YARN-117 stricter lifecycle</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5297">MAPREDUCE-5297</a>.
     Major bug reported by Jian He and fixed by Jian He <br>
     <b>Update MR App  since BuilderUtils is moved to yarn-server-common after YARN-748</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5296">MAPREDUCE-5296</a>.
     Major sub-task reported by Zhijie Shen and fixed by Zhijie Shen <br>
     <b>Mapred API: Function signature change in JobControl</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5291">MAPREDUCE-5291</a>.
     Major bug reported by Siddharth Seth and fixed by Zhijie Shen <br>
     <b>Change MR App to use update property names in container-log4j.properties</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5289">MAPREDUCE-5289</a>.
     Major bug reported by Vinod Kumar Vavilapalli and fixed by Jian He <br>
     <b>Update MR App to use Token directly after YARN-717</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5286">MAPREDUCE-5286</a>.
     Major task reported by Siddharth Seth and fixed by Vinod Kumar Vavilapalli <br>
     <b>startContainer call should use the ContainerToken instead of Container [YARN-684]</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5285">MAPREDUCE-5285</a>.
     Major bug reported by Jian He and fixed by  <br>
     <b>Update MR App to use immutable ApplicationAttemptID, ContainerID, NodeID after YARN-735</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5283">MAPREDUCE-5283</a>.
     Major improvement reported by Sandy Ryza and fixed by Sandy Ryza (applicationmaster , test)<br>
     <b>Over 10 different tests have near identical implementations of AppContext</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5282">MAPREDUCE-5282</a>.
     Major bug reported by Vinod Kumar Vavilapalli and fixed by Siddharth Seth <br>
     <b>Update MR App to use immutable ApplicationID after YARN-716</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5280">MAPREDUCE-5280</a>.
     Major sub-task reported by Zhijie Shen and fixed by Mayank Bansal <br>
     <b>Mapreduce API: ClusterMetrics incompatibility issues with MR1</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5275">MAPREDUCE-5275</a>.
     Major sub-task reported by Zhijie Shen and fixed by Mayank Bansal <br>
     <b>Mapreduce API: TokenCache incompatibility issues with MR1</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5274">MAPREDUCE-5274</a>.
     Major sub-task reported by Zhijie Shen and fixed by Mayank Bansal <br>
     <b>Mapreduce API: String toHex(byte[]) is removed from SecureShuffleUtils</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5273">MAPREDUCE-5273</a>.
     Major sub-task reported by Zhijie Shen and fixed by Mayank Bansal <br>
     <b>Protected variables are removed from CombineFileRecordReader in both mapred and mapreduce</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5270">MAPREDUCE-5270</a>.
     Major bug reported by Jian He and fixed by Jian He <br>
     <b>Migrate from using BuilderUtil factory methods to individual record factory method on MapReduce side</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5268">MAPREDUCE-5268</a>.
     Major improvement reported by Jason Lowe and fixed by Karthik Kambatla (jobhistoryserver)<br>
     <b>Improve history server startup performance</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5263">MAPREDUCE-5263</a>.
     Major sub-task reported by Zhijie Shen and fixed by Zhijie Shen <br>
     <b>filecache.DistributedCache incompatiblity issues with MR1</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5259">MAPREDUCE-5259</a>.
     Major bug reported by Ivan Mitic and fixed by Ivan Mitic (test)<br>
     <b>TestTaskLog fails on Windows because of path separators missmatch</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5257">MAPREDUCE-5257</a>.
     Major bug reported by Jason Lowe and fixed by Omkar Vinit Joshi (mr-am , mrv2)<br>
     <b>TestContainerLauncherImpl fails</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5246">MAPREDUCE-5246</a>.
     Major improvement reported by Mayank Bansal and fixed by Mayank Bansal <br>
     <b>Adding application type to submission context</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5245">MAPREDUCE-5245</a>.
     Major sub-task reported by Zhijie Shen and fixed by Zhijie Shen <br>
     <b>A number of public static variables are removed from JobConf</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5244">MAPREDUCE-5244</a>.
     Major sub-task reported by Zhijie Shen and fixed by Zhijie Shen <br>
     <b>Two functions changed their visibility in JobStatus</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5240">MAPREDUCE-5240</a>.
     Blocker bug reported by Roman Shaposhnik and fixed by Vinod Kumar Vavilapalli (mrv2)<br>
     <b>inside of FileOutputCommitter the initialized Credentials cache appears to be empty</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5239">MAPREDUCE-5239</a>.
     Major bug reported by Vinod Kumar Vavilapalli and fixed by Siddharth Seth <br>
     <b>Update MR App to reflect YarnRemoteException changes after YARN-634</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5237">MAPREDUCE-5237</a>.
     Major sub-task reported by Zhijie Shen and fixed by Zhijie Shen <br>
     <b>ClusterStatus incompatiblity issues with MR1</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5235">MAPREDUCE-5235</a>.
     Major sub-task reported by Zhijie Shen and fixed by Mayank Bansal <br>
     <b>mapred.Counters incompatiblity issues with MR1</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5234">MAPREDUCE-5234</a>.
     Major sub-task reported by Zhijie Shen and fixed by Mayank Bansal <br>
     <b>Signature changes for getTaskId of TaskReport in mapred</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5233">MAPREDUCE-5233</a>.
     Major sub-task reported by Zhijie Shen and fixed by Mayank Bansal <br>
     <b>Functions are changed or removed from Job in jobcontrol</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5231">MAPREDUCE-5231</a>.
     Major sub-task reported by Zhijie Shen and fixed by Zhijie Shen <br>
     <b>Constructor of DBInputFormat.DBRecordReader in mapred is changed</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5230">MAPREDUCE-5230</a>.
     Major sub-task reported by Zhijie Shen and fixed by Mayank Bansal <br>
     <b>createFileSplit is removed from NLineInputFormat of mapred</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5229">MAPREDUCE-5229</a>.
     Major sub-task reported by Zhijie Shen and fixed by Zhijie Shen <br>
     <b>TEMP_DIR_NAME is removed from of FileOutputCommitter of mapreduce</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5228">MAPREDUCE-5228</a>.
     Major sub-task reported by Zhijie Shen and fixed by Mayank Bansal <br>
     <b>Enum Counter is removed from FileInputFormat and FileOutputFormat of both mapred and mapreduce</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5226">MAPREDUCE-5226</a>.
     Major bug reported by Xuan Gong and fixed by Xuan Gong <br>
     <b>Handle exception related changes in YARN's AMRMProtocol api after YARN-630</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5222">MAPREDUCE-5222</a>.
     Major sub-task reported by Karthik Kambatla and fixed by Karthik Kambatla <br>
     <b>Fix JobClient incompatibilities with MR1</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5220">MAPREDUCE-5220</a>.
     Major sub-task reported by Sandy Ryza and fixed by Zhijie Shen (client)<br>
     <b>Mapred API: TaskCompletionEvent incompatibility issues with MR1</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5213">MAPREDUCE-5213</a>.
     Minor bug reported by Karthik Kambatla and fixed by Karthik Kambatla <br>
     <b>Re-assess TokenCache methods marked @Private</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5212">MAPREDUCE-5212</a>.
     Major bug reported by Xuan Gong and fixed by Xuan Gong <br>
     <b>Handle exception related changes in YARN's ClientRMProtocol api after YARN-631</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5209">MAPREDUCE-5209</a>.
     Minor bug reported by Radim Kolar and fixed by Tsuyoshi OZAWA (mrv2)<br>
     <b>ShuffleScheduler log message incorrect</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5208">MAPREDUCE-5208</a>.
     Major bug reported by Omkar Vinit Joshi and fixed by Omkar Vinit Joshi <br>
     <b>SpillRecord and ShuffleHandler should use SecureIOUtils for reading index file and map output</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5205">MAPREDUCE-5205</a>.
     Blocker bug reported by Vinod Kumar Vavilapalli and fixed by Vinod Kumar Vavilapalli <br>
     <b>Apps fail in secure cluster setup</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5204">MAPREDUCE-5204</a>.
     Major bug reported by Xuan Gong and fixed by Xuan Gong <br>
     <b>Handle YarnRemoteException separately from IOException in MR api </b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5199">MAPREDUCE-5199</a>.
     Blocker sub-task reported by Vinod Kumar Vavilapalli and fixed by Daryn Sharp (security)<br>
     <b>AppTokens file can/should be removed</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5194">MAPREDUCE-5194</a>.
     Minor task reported by Chris Douglas and fixed by Chris Douglas (task)<br>
     <b>Heed interrupts during Fetcher shutdown</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5193">MAPREDUCE-5193</a>.
     Major bug reported by Aaron T. Myers and fixed by Andrew Wang (test)<br>
     <b>A few MR tests use block sizes which are smaller than the default minimum block size</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5192">MAPREDUCE-5192</a>.
     Minor task reported by Chris Douglas and fixed by Chris Douglas (task)<br>
     <b>Separate TCE resolution from fetch</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5191">MAPREDUCE-5191</a>.
     Major bug reported by Ivan Mitic and fixed by Ivan Mitic <br>
     <b>TestQueue#testQueue fails with timeout on Windows</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5187">MAPREDUCE-5187</a>.
     Major bug reported by Chuan Liu and fixed by Chuan Liu (mrv2)<br>
     <b>Create mapreduce command scripts on Windows</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5184">MAPREDUCE-5184</a>.
     Major sub-task reported by Arun C Murthy and fixed by Zhijie Shen (documentation)<br>
     <b>Document MR Binary Compatibility vis-a-vis hadoop-1 and hadoop-2</b><br>
     <blockquote>Document MR Binary Compatibility vis-a-vis hadoop-1 and hadoop-2 for end-users.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5181">MAPREDUCE-5181</a>.
     Major bug reported by Siddharth Seth and fixed by Vinod Kumar Vavilapalli (applicationmaster)<br>
     <b>RMCommunicator should not use AMToken from the env</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5179">MAPREDUCE-5179</a>.
     Major bug reported by Hitesh Shah and fixed by Hitesh Shah <br>
     <b>Change TestHSWebServices to do string equal check on hadoop build version similar to YARN-605</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5178">MAPREDUCE-5178</a>.
     Major bug reported by Hitesh Shah and fixed by Hitesh Shah <br>
     <b>Fix use of BuilderUtils#newApplicationReport as a result of YARN-577.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5177">MAPREDUCE-5177</a>.
     Major bug reported by Ivan Mitic and fixed by Ivan Mitic <br>
     <b>Move to common utils FileUtil#setReadable/Writable/Executable and FileUtil#canRead/Write/Execute</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5176">MAPREDUCE-5176</a>.
     Major improvement reported by Carlo Curino and fixed by Carlo Curino (mrv2)<br>
     <b>Preemptable annotations (to support preemption in MR)</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5175">MAPREDUCE-5175</a>.
     Major bug reported by Vinod Kumar Vavilapalli and fixed by Xuan Gong <br>
     <b>Update MR App to not set envs that will be set by NMs anyways after YARN-561</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5171">MAPREDUCE-5171</a>.
     Major improvement reported by Sandy Ryza and fixed by Sandy Ryza (applicationmaster)<br>
     <b>Expose blacklisted nodes from the MR AM REST API </b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5167">MAPREDUCE-5167</a>.
     Major bug reported by Vinod Kumar Vavilapalli and fixed by Jian He <br>
     <b>Update MR App after YARN-562</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5166">MAPREDUCE-5166</a>.
     Blocker bug reported by Gunther Hagleitner and fixed by Sandy Ryza <br>
     <b>ConcurrentModificationException in LocalJobRunner</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5163">MAPREDUCE-5163</a>.
     Major bug reported by Vinod Kumar Vavilapalli and fixed by Xuan Gong <br>
     <b>Update MR App after YARN-441</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5159">MAPREDUCE-5159</a>.
     Major sub-task reported by Zhijie Shen and fixed by Zhijie Shen <br>
     <b>Aggregatewordcount and aggregatewordhist in hadoop-1 examples are not binary compatible with hadoop-2 mapred.lib.aggregate</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5157">MAPREDUCE-5157</a>.
     Major sub-task reported by Zhijie Shen and fixed by Zhijie Shen <br>
     <b>Sort in hadoop-1 examples is not binary compatible with hadoop-2 mapred.lib</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5156">MAPREDUCE-5156</a>.
     Blocker sub-task reported by Zhijie Shen and fixed by Zhijie Shen <br>
     <b>Hadoop-examples-1.x.x.jar cannot run on Yarn</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5152">MAPREDUCE-5152</a>.
     Major bug reported by Vinod Kumar Vavilapalli and fixed by Vinod Kumar Vavilapalli <br>
     <b>MR App is not using Container from RM</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5151">MAPREDUCE-5151</a>.
     Major bug reported by Vinod Kumar Vavilapalli and fixed by Sandy Ryza <br>
     <b>Update MR App after YARN-444</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5147">MAPREDUCE-5147</a>.
     Major bug reported by Robert Parker and fixed by Robert Parker (mrv2)<br>
     <b>Maven build should create hadoop-mapreduce-client-app-VERSION.jar directly</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5146">MAPREDUCE-5146</a>.
     Minor bug reported by Sangjin Lee and fixed by Sangjin Lee (task)<br>
     <b>application classloader may be used too early to load classes</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5145">MAPREDUCE-5145</a>.
     Major bug reported by Zhijie Shen and fixed by Zhijie Shen <br>
     <b>Change default max-attempts to be more than one for MR jobs as well</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5140">MAPREDUCE-5140</a>.
     Major bug reported by Zhijie Shen and fixed by Zhijie Shen <br>
     <b>MR part of YARN-514</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5139">MAPREDUCE-5139</a>.
     Major bug reported by Vinod Kumar Vavilapalli and fixed by Xuan Gong <br>
     <b>Update MR App after YARN-486</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5138">MAPREDUCE-5138</a>.
     Major bug reported by Vinod Kumar Vavilapalli and fixed by Omkar Vinit Joshi <br>
     <b>Fix LocalDistributedCacheManager after YARN-112</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5137">MAPREDUCE-5137</a>.
     Major bug reported by Thomas Graves and fixed by Thomas Graves (applicationmaster)<br>
     <b>AM web UI: clicking on Map Task results in 500 error</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5136">MAPREDUCE-5136</a>.
     Major bug reported by Amir Sanjar and fixed by Amir Sanjar <br>
     <b>TestJobImpl-&gt;testJobNoTasks fails with IBM JAVA</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5129">MAPREDUCE-5129</a>.
     Minor new feature reported by Billie Rinaldi and fixed by Billie Rinaldi <br>
     <b>Add tag info to JH files</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5128">MAPREDUCE-5128</a>.
     Major improvement reported by Sandy Ryza and fixed by Sandy Ryza (documentation , jobhistoryserver)<br>
     <b>mapred-default.xml is missing a bunch of history server configs</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5113">MAPREDUCE-5113</a>.
     Major bug reported by Sandy Ryza and fixed by Sandy Ryza <br>
     <b>Streaming input/output types are ignored with java mapper/reducer</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5098">MAPREDUCE-5098</a>.
     Major bug reported by Karthik Kambatla and fixed by Karthik Kambatla (contrib/gridmix)<br>
     <b>Fix findbugs warnings in gridmix</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5086">MAPREDUCE-5086</a>.
     Major bug reported by Jian He and fixed by Jian He <br>
     <b>MR app master deletes staging dir when sent a reboot command from the RM</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5079">MAPREDUCE-5079</a>.
     Critical improvement reported by Jason Lowe and fixed by Jason Lowe (mr-am)<br>
     <b>Recovery should restore task state from job history info directly</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5078">MAPREDUCE-5078</a>.
     Major bug reported by Chris Nauroth and fixed by Chris Nauroth (client)<br>
     <b>TestMRAppMaster fails on Windows due to mismatched path separators</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5077">MAPREDUCE-5077</a>.
     Minor bug reported by Karthik Kambatla and fixed by Karthik Kambatla (mrv2)<br>
     <b>Cleanup: mapreduce.util.ResourceCalculatorPlugin and related code should be removed</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5075">MAPREDUCE-5075</a>.
     Major bug reported by Chris Nauroth and fixed by Chris Nauroth (distcp)<br>
     <b>DistCp leaks input file handles</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5069">MAPREDUCE-5069</a>.
     Minor improvement reported by Sangjin Lee and fixed by  (mrv1 , mrv2)<br>
     <b>add concrete common implementations of CombineFileInputFormat</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5066">MAPREDUCE-5066</a>.
     Major bug reported by Ivan Mitic and fixed by Ivan Mitic <br>
     <b>JobTracker should set a timeout when calling into job.end.notification.url</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5065">MAPREDUCE-5065</a>.
     Major bug reported by Mithun Radhakrishnan and fixed by Mithun Radhakrishnan (distcp)<br>
     <b>DistCp should skip checksum comparisons if block-sizes are different on source/target.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5062">MAPREDUCE-5062</a>.
     Major bug reported by Vinod Kumar Vavilapalli and fixed by Zhijie Shen <br>
     <b>MR AM should read max-retries information from the RM</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5060">MAPREDUCE-5060</a>.
     Critical bug reported by Robert Joseph Evans and fixed by Robert Joseph Evans <br>
     <b>Fetch failures that time out only count against the first map task</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5059">MAPREDUCE-5059</a>.
     Major bug reported by Jason Lowe and fixed by Omkar Vinit Joshi (jobhistoryserver , webapps)<br>
     <b>Job overview shows average merge time larger than for any reduce attempt</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5043">MAPREDUCE-5043</a>.
     Blocker bug reported by Jason Lowe and fixed by Jason Lowe (mr-am)<br>
     <b>Fetch failure processing can cause AM event queue to backup and eventually OOM</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5042">MAPREDUCE-5042</a>.
     Blocker bug reported by Jason Lowe and fixed by Jason Lowe (mr-am , security)<br>
     <b>Reducer unable to fetch for a map task that was recovered</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5033">MAPREDUCE-5033</a>.
     Minor improvement reported by Andrew Wang and fixed by Andrew Wang <br>
     <b>mapred shell script should respect usage flags (--help -help -h)</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5027">MAPREDUCE-5027</a>.
     Major bug reported by Jason Lowe and fixed by Robert Parker <br>
     <b>Shuffle does not limit number of outstanding connections</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5015">MAPREDUCE-5015</a>.
     Major test reported by Aleksey Gorshkov and fixed by Aleksey Gorshkov <br>
     <b>Coverage fix for org.apache.hadoop.mapreduce.tools.CLI</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5013">MAPREDUCE-5013</a>.
     Major bug reported by Sandy Ryza and fixed by Sandy Ryza (client)<br>
     <b>mapred.JobStatus compatibility: MR2 missing constructors from MR1</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5009">MAPREDUCE-5009</a>.
     Critical bug reported by Robert Parker and fixed by Robert Parker (mrv1)<br>
     <b>Killing the Task Attempt slated for commit does not clear the value from the Task commitAttempt member</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5008">MAPREDUCE-5008</a>.
     Major bug reported by Sandy Ryza and fixed by Sandy Ryza <br>
     <b>Merger progress miscounts with respect to EOF_MARKER</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5007">MAPREDUCE-5007</a>.
     Major test reported by Aleksey Gorshkov and fixed by Aleksey Gorshkov <br>
     <b>fix coverage org.apache.hadoop.mapreduce.v2.hs</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5000">MAPREDUCE-5000</a>.
     Critical bug reported by Jason Lowe and fixed by Jason Lowe (mr-am)<br>
     <b>TaskImpl.getCounters() can return the counters for the wrong task attempt when task is speculating</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4994">MAPREDUCE-4994</a>.
     Major bug reported by Sandy Ryza and fixed by Sandy Ryza (client)<br>
     <b>-jt generic command line option does not work</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4992">MAPREDUCE-4992</a>.
     Critical bug reported by Robert Parker and fixed by Robert Parker (mr-am)<br>
     <b>AM hangs in RecoveryService when recovering tasks with speculative attempts</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4991">MAPREDUCE-4991</a>.
     Major test reported by Aleksey Gorshkov and fixed by Aleksey Gorshkov <br>
     <b>coverage for gridmix</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4990">MAPREDUCE-4990</a>.
     Trivial improvement reported by Karthik Kambatla and fixed by Karthik Kambatla <br>
     <b>Construct debug strings conditionally in ShuffleHandler.Shuffle#sendMapOutput()</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4989">MAPREDUCE-4989</a>.
     Major improvement reported by Ravi Prakash and fixed by Ravi Prakash (jobhistoryserver , mr-am)<br>
     <b>JSONify DataTables input data for Attempts page</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4987">MAPREDUCE-4987</a>.
     Major bug reported by Chris Nauroth and fixed by Chris Nauroth (distributed-cache , nodemanager)<br>
     <b>TestMRJobs#testDistributedCache fails on Windows due to classpath problems and unexpected behavior of symlinks</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4985">MAPREDUCE-4985</a>.
     Trivial bug reported by Plamen Jeliazkov and fixed by Plamen Jeliazkov <br>
     <b>TestDFSIO supports compression but usages doesn't reflect</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4981">MAPREDUCE-4981</a>.
     Minor bug reported by Plamen Jeliazkov and fixed by Plamen Jeliazkov <br>
     <b>WordMean, WordMedian, WordStandardDeviation missing from ExamplesDriver</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4974">MAPREDUCE-4974</a>.
     Major improvement reported by Arun A K and fixed by Gelesh (mrv1 , mrv2 , performance)<br>
     <b>Optimising the LineRecordReader initialize() method</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4972">MAPREDUCE-4972</a>.
     Major test reported by Aleksey Gorshkov and fixed by Aleksey Gorshkov <br>
     <b>Coverage fixing for org.apache.hadoop.mapreduce.jobhistory </b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4951">MAPREDUCE-4951</a>.
     Major bug reported by Sandy Ryza and fixed by Sandy Ryza (applicationmaster , mr-am , mrv2)<br>
     <b>Container preemption interpreted as task failure</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4942">MAPREDUCE-4942</a>.
     Major sub-task reported by Robert Kanter and fixed by Robert Kanter (mrv2)<br>
     <b>mapreduce.Job has a bunch of methods that throw InterruptedException so its incompatible with MR1</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4932">MAPREDUCE-4932</a>.
     Major bug reported by Robert Kanter and fixed by Robert Kanter (mrv2)<br>
     <b>mapreduce.job#getTaskCompletionEvents incompatible with Hadoop 1</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4927">MAPREDUCE-4927</a>.
     Major bug reported by Jason Lowe and fixed by Ashwin Shankar (jobhistoryserver)<br>
     <b>Historyserver 500 error due to NPE when accessing specific counters page for failed job</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4898">MAPREDUCE-4898</a>.
     Major bug reported by Robert Kanter and fixed by Robert Kanter (mrv2)<br>
     <b>FileOutputFormat.checkOutputSpecs and FileOutputFormat.setOutputPath incompatible with MR1</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4896">MAPREDUCE-4896</a>.
     Major bug reported by Sandy Ryza and fixed by Sandy Ryza (client , scheduler)<br>
     <b>"mapred queue -info" spits out ugly exception when queue does not exist</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4892">MAPREDUCE-4892</a>.
     Major bug reported by Bikas Saha and fixed by Bikas Saha <br>
     <b>CombineFileInputFormat node input split can be skewed on small clusters</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4885">MAPREDUCE-4885</a>.
     Major bug reported by Chris Nauroth and fixed by Chris Nauroth (contrib/streaming , test)<br>
     <b>Streaming tests have multiple failures on Windows</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4875">MAPREDUCE-4875</a>.
     Major test reported by Aleksey Gorshkov and fixed by Aleksey Gorshkov (test)<br>
     <b>coverage fixing for org.apache.hadoop.mapred</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4871">MAPREDUCE-4871</a>.
     Major bug reported by Jason Lowe and fixed by Jason Lowe (mrv2)<br>
     <b>AM uses mapreduce.jobtracker.split.metainfo.maxsize but mapred-default has mapreduce.job.split.metainfo.maxsize</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4846">MAPREDUCE-4846</a>.
     Major improvement reported by Sandy Ryza and fixed by Sandy Ryza (client)<br>
     <b>Some JobQueueInfo methods are public in MR1 but protected in MR2</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4794">MAPREDUCE-4794</a>.
     Major bug reported by Jason Lowe and fixed by Jason Lowe (applicationmaster)<br>
     <b>DefaultSpeculator generates error messages on normal shutdown</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4737">MAPREDUCE-4737</a>.
     Major bug reported by Daniel Dai and fixed by Arun C Murthy <br>
     <b> Hadoop does not close output file / does not call Mapper.cleanup if exception in map</b><br>
     <blockquote>Ensure that mapreduce APIs are semantically consistent with mapred API w.r.t Mapper.cleanup and Reducer.cleanup; in the sense that cleanup is now called even if there is an error. The old mapred API already ensures that Mapper.close and Reducer.close are invoked during error handling. Note that it is an incompatible change, however end-users can override Mapper.run and Reducer.run to get the old (inconsistent) behaviour.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4716">MAPREDUCE-4716</a>.
     Major bug reported by Thomas Graves and fixed by Thomas Graves (jobhistoryserver)<br>
     <b>TestHsWebServicesJobsQuery.testJobsQueryStateInvalid fails with jdk7</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4693">MAPREDUCE-4693</a>.
     Major bug reported by Jason Lowe and fixed by Xuan Gong (jobhistoryserver , mrv2)<br>
     <b>Historyserver should provide counters for failed tasks</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4671">MAPREDUCE-4671</a>.
     Major bug reported by Bikas Saha and fixed by Bikas Saha <br>
     <b>AM does not tell the RM about container requests that are no longer needed</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4571">MAPREDUCE-4571</a>.
     Major bug reported by Thomas Graves and fixed by Thomas Graves (webapps)<br>
     <b>TestHsWebServicesJobs fails on jdk7</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4374">MAPREDUCE-4374</a>.
     Minor bug reported by Chuan Liu and fixed by Chuan Liu (mrv2)<br>
     <b>Fix child task environment variable config and add support for Windows</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4356">MAPREDUCE-4356</a>.
     Major bug reported by Ravi Gummadi and fixed by Ravi Gummadi (tools/rumen)<br>
     <b>Provide access to ParsedTask.obtainTaskAttempts()</b><br>
     <blockquote>Made the method ParsedTask.obtainTaskAttempts() public.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4149">MAPREDUCE-4149</a>.
     Major bug reported by Ravi Gummadi and fixed by Ravi Gummadi (tools/rumen)<br>
     <b>Rumen fails to parse certain counter strings</b><br>
     <blockquote>Fixes Rumen to parse counter strings containing the special characters "{" and "}".</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4100">MAPREDUCE-4100</a>.
     Minor bug reported by Karam Singh and fixed by Amar Kamat (contrib/gridmix)<br>
     <b>Sometimes gridmix emulates data larger much larger then acutal counter for map only jobs</b><br>
     <blockquote>Bug fixed in compression emulation feature for map only jobs.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4087">MAPREDUCE-4087</a>.
     Major bug reported by Ravi Gummadi and fixed by Ravi Gummadi <br>
     <b>[Gridmix] GenerateDistCacheData job of Gridmix can become slow in some cases</b><br>
     <blockquote>Fixes the issue of GenerateDistCacheData  job slowness.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4083">MAPREDUCE-4083</a>.
     Major bug reported by Karam Singh and fixed by Amar Kamat (contrib/gridmix)<br>
     <b>GridMix emulated job tasks.resource-usage emulator for CPU usage throws NPE when Trace contains cumulativeCpuUsage value of 0 at attempt level</b><br>
     <blockquote>Fixes NPE in cpu emulation in Gridmix</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4067">MAPREDUCE-4067</a>.
     Critical bug reported by Jitendra Nath Pandey and fixed by Xuan Gong <br>
     <b>Replace YarnRemoteException with IOException in MRv2 APIs</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4019">MAPREDUCE-4019</a>.
     Minor bug reported by B Anil Kumar and fixed by Ashwin Shankar (client)<br>
     <b>-list-attempt-ids  is not working</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3953">MAPREDUCE-3953</a>.
     Major bug reported by Ravi Gummadi and fixed by Ravi Gummadi <br>
     <b>Gridmix throws NPE and does not simulate a job if the trace contains null taskStatus for a task</b><br>
     <blockquote>Fixes NPE and makes Gridmix simulate succeeded-jobs-with-failed-tasks. All tasks of such simulated jobs(including the failed ones of original job) will succeed.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3872">MAPREDUCE-3872</a>.
     Major bug reported by Patrick Hunt and fixed by Robert Kanter (client , mrv2)<br>
     <b>event handling races in ContainerLauncherImpl and TestContainerLauncher</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3829">MAPREDUCE-3829</a>.
     Major bug reported by Ravi Gummadi and fixed by Ravi Gummadi (contrib/gridmix)<br>
     <b>[Gridmix] Gridmix should give better error message when input-data directory already exists and -generate option is given</b><br>
     <blockquote>Makes Gridmix emit out correct error message when the input data directory already exists and -generate option is used. Makes Gridmix exit with proper exit codes when Gridmix fails in args-processing, startup/setup.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3787">MAPREDUCE-3787</a>.
     Major improvement reported by Amar Kamat and fixed by Amar Kamat (contrib/gridmix)<br>
     <b>[Gridmix] Improve STRESS mode</b><br>
     <blockquote>JobMonitor can now deploy multiple threads for faster job-status polling. Use 'gridmix.job-monitor.thread-count' to set the number of threads. Stress mode now relies on the updates from the job monitor instead of polling for job status. Failures in job submission now get reported to the statistics module and ultimately reported to the user via summary.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3757">MAPREDUCE-3757</a>.
     Major bug reported by Ravi Gummadi and fixed by Ravi Gummadi (tools/rumen)<br>
     <b>Rumen Folder is not adjusting the shuffleFinished and sortFinished times of reduce task attempts</b><br>
     <blockquote>Fixed the sortFinishTime and shuffleFinishTime adjustments in Rumen Folder.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3685">MAPREDUCE-3685</a>.
     Critical bug reported by anty.rao and fixed by anty (mrv2)<br>
     <b>There are some bugs in implementation of MergeManager</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3533">MAPREDUCE-3533</a>.
     Minor improvement reported by Steve Loughran and fixed by  (mrv2)<br>
     <b>have the service interface extend Closeable and use close() as its shutdown operation</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3502">MAPREDUCE-3502</a>.
     Major task reported by Steve Loughran and fixed by Steve Loughran (mrv2)<br>
     <b>Review all Service.stop() operations and make sure that they work before a service is started</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3008">MAPREDUCE-3008</a>.
     Major sub-task reported by Amar Kamat and fixed by Amar Kamat (contrib/gridmix)<br>
     <b>[Gridmix] Improve cumulative CPU usage emulation for short running tasks</b><br>
     <blockquote>Improves cumulative CPU emulation for short running tasks.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2722">MAPREDUCE-2722</a>.
     Major bug reported by Ravi Gummadi and fixed by Ravi Gummadi (contrib/gridmix)<br>
     <b>Gridmix simulated job's map's hdfsBytesRead counter is wrong when compressed input is used</b><br>
     <blockquote>Makes Gridmix use the uncompressed input data size while simulating map tasks in the case where compressed input data was used in original job.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5083">HDFS-5083</a>.
     Blocker bug reported by Kihwal Lee and fixed by Kihwal Lee <br>
     <b>Update the HDFS compatibility version range</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5027">HDFS-5027</a>.
     Major improvement reported by Aaron T. Myers and fixed by Aaron T. Myers (datanode)<br>
     <b>On startup, DN should scan volumes in parallel</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5025">HDFS-5025</a>.
     Major sub-task reported by Jing Zhao and fixed by Jing Zhao (ha , namenode)<br>
     <b>Record ClientId and CallId in EditLog to enable rebuilding retry cache in case of HA failover</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5024">HDFS-5024</a>.
     Major bug reported by Arpit Agarwal and fixed by Arpit Agarwal (namenode)<br>
     <b>Make DatanodeProtocol#commitBlockSynchronization idempotent</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5020">HDFS-5020</a>.
     Major improvement reported by Jing Zhao and fixed by Jing Zhao (namenode)<br>
     <b>Make DatanodeProtocol#blockReceivedAndDeleted idempotent</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5018">HDFS-5018</a>.
     Minor bug reported by Ted Yu and fixed by Ted Yu <br>
     <b>Misspelled DFSConfigKeys#DFS_NAMENODE_STALE_DATANODE_INTERVAL_DEFAULT in javadoc of DatanodeInfo#isStale()</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5016">HDFS-5016</a>.
     Blocker bug reported by Devaraj Das and fixed by Suresh Srinivas <br>
     <b>Deadlock in pipeline recovery causes Datanode to be marked dead</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5010">HDFS-5010</a>.
     Major improvement reported by Kihwal Lee and fixed by Kihwal Lee (namenode , performance)<br>
     <b>Reduce the frequency of getCurrentUser() calls from namenode</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5008">HDFS-5008</a>.
     Major improvement reported by Suresh Srinivas and fixed by Jing Zhao (namenode)<br>
     <b>Make ClientProtocol#abandonBlock() idempotent</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5007">HDFS-5007</a>.
     Minor improvement reported by Kousuke Saruta and fixed by Kousuke Saruta <br>
     <b>Replace hard-coded property keys with DFSConfigKeys fields</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5005">HDFS-5005</a>.
     Major bug reported by Jing Zhao and fixed by Jing Zhao <br>
     <b>Move SnapshotException and SnapshotAccessControlException to o.a.h.hdfs.protocol</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5003">HDFS-5003</a>.
     Minor bug reported by Xi Fang and fixed by Xi Fang (test)<br>
     <b>TestNNThroughputBenchmark failed caused by existing directories</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4999">HDFS-4999</a>.
     Major bug reported by Kihwal Lee and fixed by Colin Patrick McCabe <br>
     <b>fix TestShortCircuitLocalRead on branch-2</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4998">HDFS-4998</a>.
     Major bug reported by Kihwal Lee and fixed by Kihwal Lee (test)<br>
     <b>TestUnderReplicatedBlocks fails intermittently</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4996">HDFS-4996</a>.
     Minor improvement reported by Chris Nauroth and fixed by Chris Nauroth (namenode)<br>
     <b>ClientProtocol#metaSave can be made idempotent by overwriting the output file instead of appending to it</b><br>
     <blockquote>The dfsadmin -metasave command has been changed to overwrite the output file.  Previously, this command would append to the output file if it already existed.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4992">HDFS-4992</a>.
     Major improvement reported by Max Lapan and fixed by Max Lapan (balancer)<br>
     <b>Make balancer's thread count configurable</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4982">HDFS-4982</a>.
     Major bug reported by Todd Lipcon and fixed by Todd Lipcon (journal-node , security)<br>
     <b>JournalNode should relogin from keytab before fetching logs from other JNs</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4980">HDFS-4980</a>.
     Major bug reported by Mark Grover and fixed by Mark Grover (build)<br>
     <b>Incorrect logging.properties file for hadoop-httpfs</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4979">HDFS-4979</a>.
     Major sub-task reported by Suresh Srinivas and fixed by Suresh Srinivas (namenode)<br>
     <b>Implement retry cache on the namenode</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4978">HDFS-4978</a>.
     Major improvement reported by Jing Zhao and fixed by Jing Zhao <br>
     <b>Make disallowSnapshot idempotent</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4974">HDFS-4974</a>.
     Major sub-task reported by Suresh Srinivas and fixed by Suresh Srinivas (ha , namenode)<br>
     <b>Analyze and add annotations to Namenode protocol methods and enable retry</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4969">HDFS-4969</a>.
     Blocker bug reported by Robert Kanter and fixed by Robert Kanter (test , webhdfs)<br>
     <b>WebhdfsFileSystem expects non-standard WEBHDFS Json element</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4954">HDFS-4954</a>.
     Major bug reported by Brandon Li and fixed by Brandon Li (nfs)<br>
     <b>compile failure in branch-2: getFlushedOffset should catch or rethrow IOException</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4951">HDFS-4951</a>.
     Major bug reported by Robert Kanter and fixed by Robert Kanter (security)<br>
     <b>FsShell commands using secure httpfs throw exceptions due to missing TokenRenewer</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4948">HDFS-4948</a>.
     Major bug reported by Robert Joseph Evans and fixed by Brandon Li <br>
     <b>mvn site for hadoop-hdfs-nfs fails</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4944">HDFS-4944</a>.
     Major bug reported by Chris Nauroth and fixed by Chris Nauroth (webhdfs)<br>
     <b>WebHDFS cannot create a file path containing characters that must be URI-encoded, such as space.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4943">HDFS-4943</a>.
     Minor bug reported by Jerry He and fixed by Jerry He (webhdfs)<br>
     <b>WebHdfsFileSystem does not work when original file path has encoded chars </b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4932">HDFS-4932</a>.
     Minor improvement reported by Fengdong Yu and fixed by Fengdong Yu (ha , namenode)<br>
     <b>Avoid a wide line on the name node webUI if we have more Journal nodes</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4927">HDFS-4927</a>.
     Minor bug reported by Chris Nauroth and fixed by Chris Nauroth (test)<br>
     <b>CreateEditsLog creates inodes with an invalid inode ID, which then cannot be loaded by a namenode.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4917">HDFS-4917</a>.
     Major bug reported by Fengdong Yu and fixed by Fengdong Yu (datanode , namenode)<br>
     <b>Start-dfs.sh cannot pass the parameters correctly</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4914">HDFS-4914</a>.
     Minor improvement reported by Tsz Wo (Nicholas), SZE and fixed by Tsz Wo (Nicholas), SZE (hdfs-client)<br>
     <b>When possible, Use DFSClient.Conf instead of Configuration </b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4912">HDFS-4912</a>.
     Major improvement reported by Suresh Srinivas and fixed by Suresh Srinivas (namenode)<br>
     <b>Cleanup FSNamesystem#startFileInternal</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4910">HDFS-4910</a>.
     Major bug reported by Chuan Liu and fixed by Chuan Liu <br>
     <b>TestPermission failed in branch-2</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4908">HDFS-4908</a>.
     Major sub-task reported by Tsz Wo (Nicholas), SZE and fixed by Tsz Wo (Nicholas), SZE (namenode , snapshots)<br>
     <b>Reduce snapshot inode memory usage</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4906">HDFS-4906</a>.
     Major bug reported by Aaron T. Myers and fixed by Aaron T. Myers (hdfs-client)<br>
     <b>HDFS Output streams should not accept writes after being closed</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4903">HDFS-4903</a>.
     Minor improvement reported by Suresh Srinivas and fixed by Arpit Agarwal (namenode)<br>
     <b>Print trash configuration and trash emptier state in namenode log</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4902">HDFS-4902</a>.
     Major bug reported by Binglin Chang and fixed by Binglin Chang (snapshots)<br>
     <b>DFSClient.getSnapshotDiffReport should use string path rather than o.a.h.fs.Path</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4888">HDFS-4888</a>.
     Major bug reported by Ravi Prakash and fixed by Ravi Prakash <br>
     <b>Refactor and fix FSNamesystem.getTurnOffTip to sanity</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4887">HDFS-4887</a>.
     Blocker bug reported by Kihwal Lee and fixed by Kihwal Lee (benchmarks , test)<br>
     <b>TestNNThroughputBenchmark exits abruptly</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4883">HDFS-4883</a>.
     Major bug reported by Konstantin Shvachko and fixed by Tao Luo (namenode)<br>
     <b>complete() should verify fileId</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4880">HDFS-4880</a>.
     Major bug reported by Arpit Agarwal and fixed by Suresh Srinivas (namenode)<br>
     <b>Diagnostic logging while loading name/edits files</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4878">HDFS-4878</a>.
     Major bug reported by Tao Luo and fixed by Tao Luo (namenode)<br>
     <b>On Remove Block, Block is not Removed from neededReplications queue</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4877">HDFS-4877</a>.
     Blocker bug reported by Jing Zhao and fixed by Jing Zhao (snapshots)<br>
     <b>Snapshot: fix the scenario where a directory is renamed under its prior descendant</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4876">HDFS-4876</a>.
     Minor sub-task reported by Tsz Wo (Nicholas), SZE and fixed by Tsz Wo (Nicholas), SZE (snapshots)<br>
     <b>The javadoc of FileWithSnapshot is incorrect</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4875">HDFS-4875</a>.
     Minor sub-task reported by Tsz Wo (Nicholas), SZE and fixed by Arpit Agarwal (snapshots , test)<br>
     <b>Add a test for testing snapshot file length</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4873">HDFS-4873</a>.
     Major bug reported by Hari Mankude and fixed by Jing Zhao (snapshots)<br>
     <b>callGetBlockLocations returns incorrect number of blocks for snapshotted files</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4867">HDFS-4867</a>.
     Major bug reported by Kihwal Lee and fixed by Plamen Jeliazkov (namenode)<br>
     <b>metaSave NPEs when there are invalid blocks in repl queue.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4866">HDFS-4866</a>.
     Blocker bug reported by Ralph Castain and fixed by Arpit Agarwal (namenode)<br>
     <b>Protocol buffer support cannot compile under C</b><br>
     <blockquote>The Protocol Buffers definition of the inter-namenode protocol required a change for compatibility with compiled C clients.  This is a backwards-incompatible change.  A namenode prior to this change will not be able to communicate with a namenode after this change.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4865">HDFS-4865</a>.
     Major bug reported by Wei Yan and fixed by Wei Yan <br>
     <b>Remove sub resource warning from httpfs log at startup time</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4863">HDFS-4863</a>.
     Major bug reported by Jing Zhao and fixed by Jing Zhao (snapshots)<br>
     <b>The root directory should be added to the snapshottable directory list while loading fsimage </b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4862">HDFS-4862</a>.
     Major bug reported by Ravi Prakash and fixed by Ravi Prakash <br>
     <b>SafeModeInfo.isManual() returns true when resources are low even if it wasn't entered into manually</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4857">HDFS-4857</a>.
     Major bug reported by Jing Zhao and fixed by Jing Zhao (snapshots)<br>
     <b>Snapshot.Root and AbstractINodeDiff#snapshotINode should not be put into INodeMap when loading FSImage</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4850">HDFS-4850</a>.
     Major bug reported by Stephen Chu and fixed by Jing Zhao (tools)<br>
     <b>fix OfflineImageViewer to work on fsimages with empty files or snapshots</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4848">HDFS-4848</a>.
     Minor improvement reported by Stephen Chu and fixed by Jing Zhao (snapshots)<br>
     <b>copyFromLocal and renaming a file to ".snapshot" should output that ".snapshot" is a reserved name</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4846">HDFS-4846</a>.
     Minor bug reported by Stephen Chu and fixed by Jing Zhao (snapshots)<br>
     <b>Clean up snapshot CLI commands output stacktrace for invalid arguments</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4845">HDFS-4845</a>.
     Critical bug reported by Kihwal Lee and fixed by Arpit Agarwal (namenode)<br>
     <b>FSEditLogLoader gets NPE while accessing INodeMap in TestEditLogRace</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4842">HDFS-4842</a>.
     Major sub-task reported by Jing Zhao and fixed by Jing Zhao (snapshots)<br>
     <b>Snapshot: identify the correct prior snapshot when deleting a snapshot under a renamed subtree</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4841">HDFS-4841</a>.
     Major bug reported by Stephen Chu and fixed by Robert Kanter (security , webhdfs)<br>
     <b>FsShell commands using secure webhfds fail ClientFinalizer shutdown hook</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4840">HDFS-4840</a>.
     Major bug reported by Kihwal Lee and fixed by Kihwal Lee (namenode)<br>
     <b>ReplicationMonitor gets NPE during shutdown</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4832">HDFS-4832</a>.
     Critical bug reported by Ravi Prakash and fixed by Ravi Prakash <br>
     <b>Namenode doesn't change the number of missing blocks in safemode when DNs rejoin or leave</b><br>
     <blockquote>This change makes name node keep its internal replication queues and data node state updated in manual safe mode. This allows metrics and UI to present up-to-date information while in safe mode. The behavior during start-up safe mode is unchanged. </blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4830">HDFS-4830</a>.
     Minor bug reported by Aaron T. Myers and fixed by Aaron T. Myers <br>
     <b>Typo in config settings for AvailableSpaceVolumeChoosingPolicy in hdfs-default.xml</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4827">HDFS-4827</a>.
     Major bug reported by Devaraj Das and fixed by Devaraj Das <br>
     <b>Slight update to the implementation of API for handling favored nodes in DFSClient</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4826">HDFS-4826</a>.
     Minor bug reported by Chris Nauroth and fixed by Chris Nauroth (test)<br>
     <b>TestNestedSnapshots times out due to repeated slow edit log flushes when running on virtualized disk</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4825">HDFS-4825</a>.
     Major bug reported by Andrew Wang and fixed by Andrew Wang (webhdfs)<br>
     <b>webhdfs / httpfs tests broken because of min block size change</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4824">HDFS-4824</a>.
     Major bug reported by Henry Robinson and fixed by Colin Patrick McCabe (hdfs-client)<br>
     <b>FileInputStreamCache.close leaves dangling reference to FileInputStreamCache.cacheCleaner</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4819">HDFS-4819</a>.
     Minor sub-task reported by Tsz Wo (Nicholas), SZE and fixed by Tsz Wo (Nicholas), SZE (documentation)<br>
     <b>Update Snapshot doc for HDFS-4758</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4818">HDFS-4818</a>.
     Minor bug reported by Chris Nauroth and fixed by Chris Nauroth (namenode , test)<br>
     <b>several HDFS tests that attempt to make directories unusable do not work correctly on Windows</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4815">HDFS-4815</a>.
     Major bug reported by Tian Hong Wang and fixed by Tian Hong Wang (datanode , test)<br>
     <b>TestRBWBlockInvalidation#testBlockInvalidationWhenRBWReplicaMissedInDN: Double call countReplicas() to fetch corruptReplicas and liveReplicas is not needed</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4813">HDFS-4813</a>.
     Minor bug reported by Tsz Wo (Nicholas), SZE and fixed by Jing Zhao (namenode)<br>
     <b>BlocksMap may throw NullPointerException during shutdown</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4810">HDFS-4810</a>.
     Major bug reported by Chris Nauroth and fixed by Chris Nauroth (test)<br>
     <b>several HDFS HA tests have timeouts that are too short</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4807">HDFS-4807</a>.
     Major bug reported by Kihwal Lee and fixed by Cristina L. Abad <br>
     <b>DFSOutputStream.createSocketForPipeline() should not include timeout extension on connect</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4805">HDFS-4805</a>.
     Critical bug reported by Daryn Sharp and fixed by Daryn Sharp (webhdfs)<br>
     <b>Webhdfs client is fragile to token renewal errors</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4804">HDFS-4804</a>.
     Minor improvement reported by Stephen Chu and fixed by Stephen Chu <br>
     <b>WARN when users set the block balanced preference percent below 0.5 or above 1.0</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4799">HDFS-4799</a>.
     Blocker bug reported by Todd Lipcon and fixed by Todd Lipcon (namenode)<br>
     <b>Corrupt replica can be prematurely removed from corruptReplicas map</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4797">HDFS-4797</a>.
     Minor bug reported by Tsz Wo (Nicholas), SZE and fixed by Tsz Wo (Nicholas), SZE (datanode)<br>
     <b>BlockScanInfo does not override equals(..) and hashCode() consistently</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4787">HDFS-4787</a>.
     Major improvement reported by Tian Hong Wang and fixed by Tian Hong Wang <br>
     <b>Create a new HdfsConfiguration before each TestDFSClientRetries testcases</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4785">HDFS-4785</a>.
     Major sub-task reported by Suresh Srinivas and fixed by Suresh Srinivas (namenode)<br>
     <b>Concat operation does not remove concatenated files from InodeMap</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4784">HDFS-4784</a>.
     Major sub-task reported by Brandon Li and fixed by Brandon Li (namenode)<br>
     <b>NPE in FSDirectory.resolvePath()</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4783">HDFS-4783</a>.
     Major bug reported by Chris Nauroth and fixed by Chris Nauroth (test)<br>
     <b>TestDelegationTokensWithHA#testHAUtilClonesDelegationTokens fails on Windows</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4780">HDFS-4780</a>.
     Minor bug reported by Kihwal Lee and fixed by Robert Parker (namenode)<br>
     <b>Use the correct relogin method for services</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4778">HDFS-4778</a>.
     Major bug reported by Devaraj Das and fixed by Devaraj Das (namenode)<br>
     <b>Invoke getPipeline in the chooseTarget implementation that has favoredNodes</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4772">HDFS-4772</a>.
     Minor improvement reported by Brandon Li and fixed by Brandon Li (namenode)<br>
     <b>Add number of children in HdfsFileStatus</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4768">HDFS-4768</a>.
     Major bug reported by Chris Nauroth and fixed by Chris Nauroth (datanode)<br>
     <b>File handle leak in datanode when a block pool is removed</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4765">HDFS-4765</a>.
     Major bug reported by Andrew Wang and fixed by Andrew Wang (namenode)<br>
     <b>Permission check of symlink deletion incorrectly throws UnresolvedLinkException</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4763">HDFS-4763</a>.
     Major sub-task reported by Brandon Li and fixed by Brandon Li (nfs)<br>
     <b>Add script changes/utility for starting NFS gateway</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4762">HDFS-4762</a>.
     Major sub-task reported by Brandon Li and fixed by Brandon Li (nfs)<br>
     <b>Provide HDFS based NFSv3 and Mountd implementation</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4751">HDFS-4751</a>.
     Minor bug reported by Andrew Wang and fixed by Andrew Wang (test)<br>
     <b>TestLeaseRenewer#testThreadName flakes</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4748">HDFS-4748</a>.
     Major bug reported by Chris Nauroth and fixed by Chris Nauroth (qjm , test)<br>
     <b>MiniJournalCluster#restartJournalNode leaks resources, which causes sporadic test failures</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4745">HDFS-4745</a>.
     Major bug reported by Chris Nauroth and fixed by Chris Nauroth (test)<br>
     <b>TestDataTransferKeepalive#testSlowReader has race condition that causes sporadic failure</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4743">HDFS-4743</a>.
     Major bug reported by Chris Nauroth and fixed by Chris Nauroth (test)<br>
     <b>TestNNStorageRetentionManager fails on Windows</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4741">HDFS-4741</a>.
     Major bug reported by Arpit Agarwal and fixed by Arpit Agarwal (test)<br>
     <b>TestStorageRestore#testStorageRestoreFailure fails on Windows</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4740">HDFS-4740</a>.
     Major bug reported by Arpit Agarwal and fixed by Arpit Agarwal (test)<br>
     <b>Fixes for a few test failures on Windows</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4739">HDFS-4739</a>.
     Major bug reported by Aaron T. Myers and fixed by Aaron T. Myers (namenode)<br>
     <b>NN can miscalculate the number of extra edit log segments to retain</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4737">HDFS-4737</a>.
     Major bug reported by Sean Mackrory and fixed by Sean Mackrory <br>
     <b>JVM path embedded in fuse binaries</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4734">HDFS-4734</a>.
     Major bug reported by Arpit Agarwal and fixed by Arpit Agarwal <br>
     <b>HDFS Tests that use ShellCommandFencer are broken on Windows</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4733">HDFS-4733</a>.
     Major bug reported by Alejandro Abdelnur and fixed by Alejandro Abdelnur <br>
     <b>Make HttpFS username pattern configurable</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4732">HDFS-4732</a>.
     Minor bug reported by Chris Nauroth and fixed by Chris Nauroth (test)<br>
     <b>TestDFSUpgradeFromImage fails on Windows due to failure to unpack old image tarball that contains hard links</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4725">HDFS-4725</a>.
     Major bug reported by Chris Nauroth and fixed by Chris Nauroth (namenode , test , tools)<br>
     <b>fix HDFS file handle leaks</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4722">HDFS-4722</a>.
     Major bug reported by Ivan Mitic and fixed by Ivan Mitic (test)<br>
     <b>TestGetConf#testFederation times out on Windows</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4721">HDFS-4721</a>.
     Major improvement reported by Varun Sharma and fixed by Varun Sharma (namenode)<br>
     <b>Speed up lease/block recovery when DN fails and a block goes into recovery</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4714">HDFS-4714</a>.
     Major bug reported by Kihwal Lee and fixed by Kihwal Lee (namenode)<br>
     <b>Log short messages in Namenode RPC server for exceptions meant for clients</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4705">HDFS-4705</a>.
     Minor bug reported by Ivan Mitic and fixed by Ivan Mitic <br>
     <b>Address HDFS test failures on Windows because of invalid dfs.namenode.name.dir</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4699">HDFS-4699</a>.
     Major bug reported by Chris Nauroth and fixed by Chris Nauroth (test)<br>
     <b>TestPipelinesFailover#testPipelineRecoveryStress fails sporadically</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4698">HDFS-4698</a>.
     Minor improvement reported by Colin Patrick McCabe and fixed by Colin Patrick McCabe (hdfs-client)<br>
     <b>provide client-side metrics for remote reads, local reads, and short-circuit reads</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4695">HDFS-4695</a>.
     Major bug reported by Ivan Mitic and fixed by Ivan Mitic (test)<br>
     <b>TestEditLog leaks open file handles between tests</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4693">HDFS-4693</a>.
     Minor bug reported by Arpit Agarwal and fixed by Arpit Agarwal (test)<br>
     <b>Some test cases in TestCheckpoint do not clean up after themselves</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4687">HDFS-4687</a>.
     Minor bug reported by Andrew Wang and fixed by Andrew Wang (test)<br>
     <b>TestDelegationTokenForProxyUser#testWebHdfsDoAs is flaky with JDK7</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4679">HDFS-4679</a>.
     Major improvement reported by Suresh Srinivas and fixed by Suresh Srinivas (namenode)<br>
     <b>Namenode operation checks should be done in a consistent manner</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4677">HDFS-4677</a>.
     Major bug reported by Ivan Mitic and fixed by Ivan Mitic <br>
     <b>Editlog should support synchronous writes</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4676">HDFS-4676</a>.
     Minor bug reported by Suresh Srinivas and fixed by Suresh Srinivas (test)<br>
     <b>TestHDFSFileSystemContract should set MiniDFSCluster variable to null to free up memory</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4674">HDFS-4674</a>.
     Major bug reported by Chris Nauroth and fixed by Chris Nauroth (test)<br>
     <b>TestBPOfferService fails on Windows due to failure parsing datanode data directory as URI</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4669">HDFS-4669</a>.
     Major bug reported by Tian Hong Wang and fixed by Tian Hong Wang (test)<br>
     <b>TestBlockPoolManager fails using IBM java</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4659">HDFS-4659</a>.
     Major bug reported by Brandon Li and fixed by Brandon Li (namenode)<br>
     <b>Support setting execution bit for regular files</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4658">HDFS-4658</a>.
     Trivial bug reported by Aaron T. Myers and fixed by Aaron T. Myers (ha , namenode)<br>
     <b>Standby NN will log that it has received a block report "after becoming active"</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4655">HDFS-4655</a>.
     Minor bug reported by Aaron T. Myers and fixed by Aaron T. Myers (datanode)<br>
     <b>DNA_FINALIZE is logged as being an unknown command by the DN when received from the standby NN</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4646">HDFS-4646</a>.
     Minor bug reported by Jagane Sundar and fixed by  (namenode)<br>
     <b>createNNProxyWithClientProtocol ignores configured timeout value</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4645">HDFS-4645</a>.
     Major improvement reported by Suresh Srinivas and fixed by Arpit Agarwal (namenode)<br>
     <b>Move from randomly generated block ID to sequentially generated block ID</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4643">HDFS-4643</a>.
     Trivial bug reported by Todd Lipcon and fixed by Todd Lipcon (qjm , test)<br>
     <b>Fix flakiness in TestQuorumJournalManager</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4639">HDFS-4639</a>.
     Major bug reported by Konstantin Shvachko and fixed by Plamen Jeliazkov (namenode)<br>
     <b>startFileInternal() should not increment generation stamp</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4635">HDFS-4635</a>.
     Major improvement reported by Suresh Srinivas and fixed by Suresh Srinivas (namenode)<br>
     <b>Move BlockManager#computeCapacity to LightWeightGSet</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4625">HDFS-4625</a>.
     Minor bug reported by Arpit Agarwal and fixed by Ivan Mitic (test)<br>
     <b>Make TestNNWithQJM#testNewNamenodeTakesOverWriter work on Windows</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4621">HDFS-4621</a>.
     Minor bug reported by Todd Lipcon and fixed by Todd Lipcon (ha , qjm)<br>
     <b>additional logging to help diagnose slow QJM logSync</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4620">HDFS-4620</a>.
     Major bug reported by Sandy Ryza and fixed by Sandy Ryza (documentation)<br>
     <b>Documentation for dfs.namenode.rpc-address specifies wrong format</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4618">HDFS-4618</a>.
     Major bug reported by Todd Lipcon and fixed by Todd Lipcon (namenode)<br>
     <b>default for checkpoint txn interval is too low</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4615">HDFS-4615</a>.
     Major bug reported by Arpit Agarwal and fixed by Arpit Agarwal (test)<br>
     <b>Fix TestDFSShell failures on Windows</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4614">HDFS-4614</a>.
     Trivial bug reported by Aaron T. Myers and fixed by Aaron T. Myers (namenode)<br>
     <b>FSNamesystem#getContentSummary should use getPermissionChecker helper method</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4610">HDFS-4610</a>.
     Major bug reported by Ivan Mitic and fixed by Ivan Mitic <br>
     <b>Move to using common utils FileUtil#setReadable/Writable/Executable and FileUtil#canRead/Write/Execute</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4609">HDFS-4609</a>.
     Minor bug reported by Ivan Mitic and fixed by Ivan Mitic (test)<br>
     <b>TestAuditLogs should release log handles between tests</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4607">HDFS-4607</a>.
     Minor bug reported by Ivan Mitic and fixed by Ivan Mitic (test)<br>
     <b>TestGetConf#testGetSpecificKey fails on Windows</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4604">HDFS-4604</a>.
     Major bug reported by Ivan Mitic and fixed by Ivan Mitic <br>
     <b>TestJournalNode fails on Windows</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4603">HDFS-4603</a>.
     Major bug reported by Ivan Mitic and fixed by Ivan Mitic <br>
     <b>TestMiniDFSCluster fails on Windows</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4602">HDFS-4602</a>.
     Major sub-task reported by Suresh Srinivas and fixed by Uma Maheswara Rao G <br>
     <b>TestBookKeeperHACheckpoints fails</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4598">HDFS-4598</a>.
     Minor bug reported by Tsz Wo (Nicholas), SZE and fixed by Tsz Wo (Nicholas), SZE (webhdfs)<br>
     <b>WebHDFS concat: the default value of sources in the code does not match the doc</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4596">HDFS-4596</a>.
     Major bug reported by Andrew Wang and fixed by Andrew Wang (namenode)<br>
     <b>Shutting down namenode during checkpointing can lead to md5sum error</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4595">HDFS-4595</a>.
     Major bug reported by Suresh Srinivas and fixed by Suresh Srinivas (hdfs-client)<br>
     <b>When short circuit read is fails, DFSClient does not fallback to regular reads</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4593">HDFS-4593</a>.
     Major bug reported by Arpit Agarwal and fixed by Arpit Agarwal <br>
     <b>TestSaveNamespace fails on Windows</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4592">HDFS-4592</a>.
     Minor bug reported by Aaron T. Myers and fixed by Aaron T. Myers (namenode)<br>
     <b>Default values for access time precision are out of sync between hdfs-default.xml and the code</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4591">HDFS-4591</a>.
     Major bug reported by Aaron T. Myers and fixed by Aaron T. Myers (ha , namenode)<br>
     <b>HA clients can fail to fail over while Standby NN is performing long checkpoint</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4586">HDFS-4586</a>.
     Major bug reported by Ivan Mitic and fixed by Ivan Mitic <br>
     <b>TestDataDirs.testGetDataDirsFromURIs fails with all directories in dfs.datanode.data.dir are invalid</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4583">HDFS-4583</a>.
     Major bug reported by Ivan Mitic and fixed by Ivan Mitic <br>
     <b>TestNodeCount fails </b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4582">HDFS-4582</a>.
     Major bug reported by Ivan Mitic and fixed by Ivan Mitic <br>
     <b>TestHostsFiles fails on Windows</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4573">HDFS-4573</a>.
     Major bug reported by Arpit Agarwal and fixed by Arpit Agarwal (test)<br>
     <b>Fix TestINodeFile on Windows</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4572">HDFS-4572</a>.
     Major bug reported by Arpit Agarwal and fixed by Arpit Agarwal (namenode , test)<br>
     <b>Fix TestJournal failures on Windows</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4569">HDFS-4569</a>.
     Trivial improvement reported by Andrew Wang and fixed by Andrew Wang <br>
     <b>Small image transfer related cleanups.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4565">HDFS-4565</a>.
     Minor improvement reported by Arpit Gupta and fixed by Arpit Gupta (security)<br>
     <b>use DFSUtil.getSpnegoKeytabKey() to get the spnego keytab key in secondary namenode and namenode http server</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4544">HDFS-4544</a>.
     Major bug reported by Amareshwari Sriramadasu and fixed by Arpit Agarwal <br>
     <b>Error in deleting blocks should not do check disk, for all types of errors</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4542">HDFS-4542</a>.
     Blocker sub-task reported by Daryn Sharp and fixed by Daryn Sharp (webhdfs)<br>
     <b>Webhdfs doesn't support secure proxy users</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4541">HDFS-4541</a>.
     Major bug reported by Arpit Gupta and fixed by Arpit Gupta (datanode , security)<br>
     <b>set hadoop.log.dir and hadoop.id.str when starting secure datanode so it writes the logs to the correct dir by default</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4540">HDFS-4540</a>.
     Major bug reported by Arpit Gupta and fixed by Arpit Gupta (security)<br>
     <b>namenode http server should use the web authentication keytab for spnego principal</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4533">HDFS-4533</a>.
     Major bug reported by Fengdong Yu and fixed by Fengdong Yu (datanode , namenode)<br>
     <b>start-dfs.sh ignored additional parameters besides -upgrade</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4532">HDFS-4532</a>.
     Critical bug reported by Daryn Sharp and fixed by Daryn Sharp (namenode)<br>
     <b>RPC call queue may fill due to current user lookup</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4525">HDFS-4525</a>.
     Major sub-task reported by Uma Maheswara Rao G and fixed by SreeHari (namenode)<br>
     <b>Provide an API for knowing that whether file is closed or not.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4522">HDFS-4522</a>.
     Minor bug reported by Colin Patrick McCabe and fixed by Colin Patrick McCabe <br>
     <b>LightWeightGSet expects incrementing a volatile to be atomic</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4521">HDFS-4521</a>.
     Minor improvement reported by Colin Patrick McCabe and fixed by Colin Patrick McCabe <br>
     <b>invalid network topologies should not be cached</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4519">HDFS-4519</a>.
     Major bug reported by Chris Nauroth and fixed by Chris Nauroth (datanode , scripts)<br>
     <b>Support override of jsvc binary and log file locations when launching secure datanode.</b><br>
     <blockquote>With this improvement the following options are available in release 1.2.0 and later on 1.x release stream:
1. jsvc location can be overridden by setting environment variable JSVC_HOME. Defaults to jsvc binary packaged within the Hadoop distro.
2. jsvc log output is directed to the file defined by JSVC_OUTFILE. Defaults to $HADOOP_LOG_DIR/jsvc.out.
3. jsvc error output is directed to the file defined by JSVC_ERRFILE file.  Defaults to $HADOOP_LOG_DIR/jsvc.err.

With this improvement the following options are available in release 2.0.4 and later on 2.x release stream:
1. jsvc log output is directed to the file defined by JSVC_OUTFILE. Defaults to $HADOOP_LOG_DIR/jsvc.out.
2. jsvc error output is directed to the file defined by JSVC_ERRFILE file.  Defaults to $HADOOP_LOG_DIR/jsvc.err.

For overriding jsvc location on 2.x releases, here is the release notes from HDFS-2303:
To run secure Datanodes users must install jsvc for their platform and set JSVC_HOME to point to the location of jsvc in their environment.
</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4518">HDFS-4518</a>.
     Major bug reported by Arpit Agarwal and fixed by Arpit Agarwal <br>
     <b>Finer grained metrics for HDFS capacity</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4502">HDFS-4502</a>.
     Blocker sub-task reported by Alejandro Abdelnur and fixed by Brandon Li (webhdfs)<br>
     <b>WebHdfsFileSystem handling of fileld breaks compatibility</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4495">HDFS-4495</a>.
     Major bug reported by Kihwal Lee and fixed by Kihwal Lee (hdfs-client)<br>
     <b>Allow client-side lease renewal to be retried beyond soft-limit</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4484">HDFS-4484</a>.
     Minor bug reported by Colin Patrick McCabe and fixed by Colin Patrick McCabe <br>
     <b>libwebhdfs compilation broken with gcc 4.6.2</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4477">HDFS-4477</a>.
     Critical bug reported by Kihwal Lee and fixed by Daryn Sharp (security)<br>
     <b>Secondary namenode may retain old tokens</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4471">HDFS-4471</a>.
     Major bug reported by Andrew Wang and fixed by Andrew Wang (namenode)<br>
     <b>Namenode WebUI file browsing does not work with wildcard addresses configured</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4470">HDFS-4470</a>.
     Major bug reported by Chris Nauroth and fixed by Chris Nauroth <br>
     <b>several HDFS tests attempt file operations on invalid HDFS paths when running on Windows</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4465">HDFS-4465</a>.
     Major improvement reported by Suresh Srinivas and fixed by Aaron T. Myers (datanode)<br>
     <b>Optimize datanode ReplicasMap and ReplicaInfo</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4461">HDFS-4461</a>.
     Minor improvement reported by Colin Patrick McCabe and fixed by Colin Patrick McCabe <br>
     <b>DirectoryScanner: volume path prefix takes up memory for every block that is scanned </b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4434">HDFS-4434</a>.
     Major sub-task reported by Brandon Li and fixed by Suresh Srinivas (namenode)<br>
     <b>Provide a mapping from INodeId to INode</b><br>
     <blockquote>This change adds support for referencing files and directories based on fileID/inodeID using a path /.reserved/.inodes/&lt;inodeid&gt;. With this change creating a file or directory /.reserved is not longer allowed. Before upgrading to a release with this change, files /.reserved needs to be renamed to another name.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4382">HDFS-4382</a>.
     Major bug reported by Ted Yu and fixed by Ted Yu <br>
     <b>Fix typo MAX_NOT_CHANGED_INTERATIONS</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4374">HDFS-4374</a>.
     Major sub-task reported by Chris Nauroth and fixed by Chris Nauroth (namenode)<br>
     <b>Display NameNode startup progress in UI</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4373">HDFS-4373</a>.
     Major sub-task reported by Chris Nauroth and fixed by Chris Nauroth (namenode)<br>
     <b>Add HTTP API for querying NameNode startup progress</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4372">HDFS-4372</a>.
     Major sub-task reported by Chris Nauroth and fixed by Chris Nauroth (namenode)<br>
     <b>Track NameNode startup progress</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4346">HDFS-4346</a>.
     Minor sub-task reported by Tsz Wo (Nicholas), SZE and fixed by Tsz Wo (Nicholas), SZE (namenode)<br>
     <b>Refactor INodeId and GenerationStamp</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4342">HDFS-4342</a>.
     Major bug reported by Mark Yang and fixed by Arpit Agarwal (namenode)<br>
     <b>Edits dir in dfs.namenode.edits.dir.required will be silently ignored if it is not in dfs.namenode.edits.dir</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4340">HDFS-4340</a>.
     Major sub-task reported by Brandon Li and fixed by Brandon Li (hdfs-client , namenode)<br>
     <b>Update addBlock() to inculde inode id as additional argument</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4339">HDFS-4339</a>.
     Major sub-task reported by Brandon Li and fixed by Brandon Li (namenode)<br>
     <b>Persist inode id in fsimage and editlog</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4334">HDFS-4334</a>.
     Major sub-task reported by Brandon Li and fixed by Brandon Li (namenode)<br>
     <b>Add a unique id to each INode</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4305">HDFS-4305</a>.
     Minor bug reported by Todd Lipcon and fixed by Andrew Wang (namenode)<br>
     <b>Add a configurable limit on number of blocks per file, and min block size</b><br>
     <blockquote>This change introduces a maximum number of blocks per file, by default one million, and a minimum block size, by default 1MB. These can optionally be changed via the configuration settings "dfs.namenode.fs-limits.max-blocks-per-file" and "dfs.namenode.fs-limits.min-block-size", respectively.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4304">HDFS-4304</a>.
     Major improvement reported by Todd Lipcon and fixed by Colin Patrick McCabe (namenode)<br>
     <b>Make FSEditLogOp.MAX_OP_SIZE configurable</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4300">HDFS-4300</a>.
     Critical bug reported by Todd Lipcon and fixed by Andrew Wang <br>
     <b>TransferFsImage.downloadEditsToStorage should use a tmp file for destination</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4298">HDFS-4298</a>.
     Major bug reported by Todd Lipcon and fixed by Aaron T. Myers (namenode)<br>
     <b>StorageRetentionManager spews warnings when used with QJM</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4296">HDFS-4296</a>.
     Major bug reported by Suresh Srinivas and fixed by Suresh Srinivas (namenode)<br>
     <b>Add layout version for HDFS-4256 for release 1.2.0</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4287">HDFS-4287</a>.
     Major bug reported by Chris Nauroth and fixed by Chris Nauroth (webhdfs)<br>
     <b>HTTPFS tests fail on Windows</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4261">HDFS-4261</a>.
     Major bug reported by Tsz Wo (Nicholas), SZE and fixed by Junping Du (balancer)<br>
     <b>TestBalancerWithNodeGroup times out</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4249">HDFS-4249</a>.
     Major new feature reported by Suresh Srinivas and fixed by Chris Nauroth (namenode)<br>
     <b>Add status NameNode startup to webUI </b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4246">HDFS-4246</a>.
     Minor improvement reported by Harsh J and fixed by Harsh J (hdfs-client)<br>
     <b>The exclude node list should be more forgiving, for each output stream</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4240">HDFS-4240</a>.
     Major bug reported by Junping Du and fixed by Junping Du (namenode)<br>
     <b>In nodegroup-aware case, make sure nodes are avoided to place replica if some replica are already under the same nodegroup</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4235">HDFS-4235</a>.
     Minor bug reported by Colin Patrick McCabe and fixed by Colin Patrick McCabe <br>
     <b>when outputting XML, OfflineEditsViewer can't handle some edits containing non-ASCII strings</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4234">HDFS-4234</a>.
     Minor improvement reported by Tsz Wo (Nicholas), SZE and fixed by Tsz Wo (Nicholas), SZE (balancer)<br>
     <b>Use the generic code for choosing datanode in Balancer</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4222">HDFS-4222</a>.
     Minor bug reported by Xiaobo Peng and fixed by Xiaobo Peng (namenode)<br>
     <b>NN is unresponsive and loses heartbeats of DNs when Hadoop is configured to use LDAP and LDAP has issues</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4215">HDFS-4215</a>.
     Major improvement reported by Tsz Wo (Nicholas), SZE and fixed by Tsz Wo (Nicholas), SZE (namenode)<br>
     <b>Improvements on INode and image loading</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4209">HDFS-4209</a>.
     Major bug reported by Tsz Wo (Nicholas), SZE and fixed by Tsz Wo (Nicholas), SZE (namenode)<br>
     <b>Clean up the addNode/addChild/addChildNoQuotaCheck methods in FSDirectory</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4206">HDFS-4206</a>.
     Major improvement reported by Tsz Wo (Nicholas), SZE and fixed by Tsz Wo (Nicholas), SZE (namenode)<br>
     <b>Change the fields in INode and its subclasses to private</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4205">HDFS-4205</a>.
     Major bug reported by Andy Isaacson and fixed by Jason Lowe (hdfs-client)<br>
     <b>fsck fails with symlinks</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4152">HDFS-4152</a>.
     Minor improvement reported by Tsz Wo (Nicholas), SZE and fixed by Jing Zhao (namenode)<br>
     <b>Add a new class for the parameter in INode.collectSubtreeBlocksAndClear(..)</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4151">HDFS-4151</a>.
     Minor improvement reported by Tsz Wo (Nicholas), SZE and fixed by Tsz Wo (Nicholas), SZE (namenode)<br>
     <b>Passing INodesInPath instead of INode[] in FSDirectory</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4129">HDFS-4129</a>.
     Minor test reported by Tsz Wo (Nicholas), SZE and fixed by Tsz Wo (Nicholas), SZE (namenode)<br>
     <b>Add utility methods to dump NameNode in memory tree for testing</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4128">HDFS-4128</a>.
     Major bug reported by Todd Lipcon and fixed by Kihwal Lee (namenode)<br>
     <b>2NN gets stuck in inconsistent state if edit log replay fails in the middle</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4124">HDFS-4124</a>.
     Minor new feature reported by Jing Zhao and fixed by Jing Zhao <br>
     <b>Refactor INodeDirectory#getExistingPathINodes() to enable returning more than INode array</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4053">HDFS-4053</a>.
     Major improvement reported by Eli Collins and fixed by Eli Collins <br>
     <b>Increase the default block size</b><br>
     <blockquote>The default blocks size prior to this change was 64MB. This jira changes the default block size to 128MB. To go back to previous behavior, please configure the in hdfs-site.xml, the configuration parameter "dfs.blocksize" to 67108864.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4013">HDFS-4013</a>.
     Trivial bug reported by Chao Shi and fixed by Chao Shi (hdfs-client)<br>
     <b>TestHftpURLTimeouts throws NPE</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3940">HDFS-3940</a>.
     Minor improvement reported by Eli Collins and fixed by Suresh Srinivas <br>
     <b>Add Gset#clear method and clear the block map when namenode is shutdown</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3934">HDFS-3934</a>.
     Minor bug reported by Andy Isaacson and fixed by Colin Patrick McCabe <br>
     <b>duplicative dfs_hosts entries handled wrong</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3880">HDFS-3880</a>.
     Minor improvement reported by Brandon Li and fixed by Brandon Li (datanode , ha , namenode , security)<br>
     <b>Use Builder to get RPC server in HDFS</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3875">HDFS-3875</a>.
     Critical bug reported by Todd Lipcon and fixed by Kihwal Lee (datanode , hdfs-client)<br>
     <b>Issue handling checksum errors in write pipeline</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3817">HDFS-3817</a>.
     Major improvement reported by Brandon Li and fixed by Brandon Li (namenode)<br>
     <b>avoid printing stack information for SafeModeException</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3792">HDFS-3792</a>.
     Trivial bug reported by Todd Lipcon and fixed by Todd Lipcon (build , namenode)<br>
     <b>Fix two findbugs introduced by HDFS-3695</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3769">HDFS-3769</a>.
     Critical sub-task reported by liaowenrui and fixed by  (ha)<br>
     <b>standby namenode become active fails because starting log segment fail on shared storage</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3601">HDFS-3601</a>.
     Major new feature reported by Junping Du and fixed by Junping Du (namenode)<br>
     <b>Implementation of ReplicaPlacementPolicyNodeGroup to support 4-layer network topology</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3499">HDFS-3499</a>.
     Major bug reported by Junping Du and fixed by Junping Du (datanode)<br>
     <b>Make NetworkTopology support user specified topology class</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3498">HDFS-3498</a>.
     Major improvement reported by Junping Du and fixed by Junping Du (namenode)<br>
     <b>Make Replica Removal Policy pluggable and ReplicaPlacementPolicyDefault extensible for reusing code in subclass</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3495">HDFS-3495</a>.
     Major new feature reported by Junping Du and fixed by Junping Du (balancer)<br>
     <b>Update Balancer to support new NetworkTopology with NodeGroup</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3277">HDFS-3277</a>.
     Major bug reported by Colin Patrick McCabe and fixed by Andrew Wang <br>
     <b>fail over to loading a different FSImage if the first one we try to load is corrupt</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3180">HDFS-3180</a>.
     Major bug reported by Daryn Sharp and fixed by Chris Nauroth (webhdfs)<br>
     <b>Add socket timeouts to webhdfs</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3163">HDFS-3163</a>.
     Trivial improvement reported by Brandon Li and fixed by Brandon Li (test)<br>
     <b>TestHDFSCLI.testAll fails if the user name is not all lowercase</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3009">HDFS-3009</a>.
     Trivial bug reported by Hari Mankude and fixed by Hari Mankude (hdfs-client)<br>
     <b>DFSClient islocaladdress() can use similar routine in netutils</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2857">HDFS-2857</a>.
     Major improvement reported by Suresh Srinivas and fixed by Suresh Srinivas (namenode)<br>
     <b>Cleanup BlockInfo class</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2576">HDFS-2576</a>.
     Major new feature reported by Pritam Damania and fixed by Devaraj Das (hdfs-client , namenode)<br>
     <b>Namenode should have a favored nodes hint to enable clients to have control over block placement.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2572">HDFS-2572</a>.
     Trivial improvement reported by Harsh J and fixed by Harsh J (datanode)<br>
     <b>Unnecessary double-check in DN#getHostName</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2042">HDFS-2042</a>.
     Minor improvement reported by Eli Collins and fixed by  (libhdfs)<br>
     <b>Require c99 when building libhdfs</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1804">HDFS-1804</a>.
     Minor new feature reported by Harsh J and fixed by Aaron T. Myers (datanode)<br>
     <b>Add a new block-volume device choosing policy that looks at free space</b><br>
     <blockquote>There is now a new option to have the DN take into account available disk space on each volume when choosing where to place a replica when performing an HDFS write. This can be enabled by setting the config "dfs.datanode.fsdataset.volume.choosing.policy" to the value "org.apache.hadoop.hdfs.server.datanode.fsdataset.AvailableSpaceVolumeChoosingPolicy".</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-347">HDFS-347</a>.
     Major improvement reported by George Porter and fixed by Colin Patrick McCabe (datanode , hdfs-client , performance)<br>
     <b>DFS read performance suboptimal when client co-located on nodes with data</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9872">HADOOP-9872</a>.
     Blocker bug reported by Alejandro Abdelnur and fixed by Alejandro Abdelnur (build)<br>
     <b>Improve protoc version handling and detection</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9850">HADOOP-9850</a>.
     Blocker bug reported by Daryn Sharp and fixed by Daryn Sharp (ipc)<br>
     <b>RPC kerberos errors don't trigger relogin</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9845">HADOOP-9845</a>.
     Blocker improvement reported by stack and fixed by Alejandro Abdelnur (performance)<br>
     <b>Update protobuf to 2.5 from 2.4.x</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9832">HADOOP-9832</a>.
     Blocker sub-task reported by Daryn Sharp and fixed by Daryn Sharp (ipc)<br>
     <b>Add RPC header to client ping</b><br>
     <blockquote>Client ping will be sent as a RPC header with a reserved callId instead of as a sentinel RPC packet length.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9820">HADOOP-9820</a>.
     Blocker bug reported by Daryn Sharp and fixed by Daryn Sharp (ipc , security)<br>
     <b>RPCv9 wire protocol is insufficient to support multiplexing</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9816">HADOOP-9816</a>.
     Blocker bug reported by Daryn Sharp and fixed by Daryn Sharp (ipc , security)<br>
     <b>RPC Sasl QOP is broken</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9792">HADOOP-9792</a>.
     Major improvement reported by Suresh Srinivas and fixed by Suresh Srinivas (ipc)<br>
     <b>Retry the methods that are tagged @AtMostOnce along with @Idempotent</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9787">HADOOP-9787</a>.
     Major bug reported by Karthik Kambatla and fixed by Karthik Kambatla (util)<br>
     <b>ShutdownHelper util to shutdown threads and threadpools</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9786">HADOOP-9786</a>.
     Major bug reported by Jing Zhao and fixed by Jing Zhao <br>
     <b>RetryInvocationHandler#isRpcInvocation should support ProtocolTranslator </b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9773">HADOOP-9773</a>.
     Minor bug reported by Tsz Wo (Nicholas), SZE and fixed by Tsz Wo (Nicholas), SZE (test)<br>
     <b>TestLightWeightCache fails</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9770">HADOOP-9770</a>.
     Minor improvement reported by Suresh Srinivas and fixed by Suresh Srinivas (util)<br>
     <b>Make RetryCache#state non volatile</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9763">HADOOP-9763</a>.
     Major new feature reported by Tsz Wo (Nicholas), SZE and fixed by Tsz Wo (Nicholas), SZE (util)<br>
     <b>Extends LightWeightGSet to support eviction of expired elements</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9762">HADOOP-9762</a>.
     Major improvement reported by Suresh Srinivas and fixed by Suresh Srinivas (util)<br>
     <b>RetryCache utility for implementing RPC retries</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9760">HADOOP-9760</a>.
     Major improvement reported by Suresh Srinivas and fixed by Suresh Srinivas (util)<br>
     <b>Move GSet and LightWeightGSet to hadoop-common</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9759">HADOOP-9759</a>.
     Critical bug reported by Chuan Liu and fixed by Chuan Liu <br>
     <b>Add support for NativeCodeLoader#getLibraryName on Windows</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9756">HADOOP-9756</a>.
     Minor improvement reported by Junping Du and fixed by Junping Du (ipc)<br>
     <b>Additional cleanup RPC code</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9754">HADOOP-9754</a>.
     Minor improvement reported by Tsz Wo (Nicholas), SZE and fixed by Tsz Wo (Nicholas), SZE (ipc)<br>
     <b>Clean up RPC code</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9751">HADOOP-9751</a>.
     Major improvement reported by Tsz Wo (Nicholas), SZE and fixed by Tsz Wo (Nicholas), SZE (ipc)<br>
     <b>Add clientId and retryCount to RpcResponseHeaderProto</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9738">HADOOP-9738</a>.
     Major bug reported by Kihwal Lee and fixed by Jing Zhao (tools)<br>
     <b>TestDistCh fails</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9734">HADOOP-9734</a>.
     Minor improvement reported by Jason Lowe and fixed by Jason Lowe (ipc)<br>
     <b>Common protobuf definitions for GetUserMappingsProtocol, RefreshAuthorizationPolicyProtocol and RefreshUserMappingsProtocol</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9720">HADOOP-9720</a>.
     Major sub-task reported by Suresh Srinivas and fixed by Arpit Agarwal <br>
     <b>Rename Client#uuid to Client#clientId</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9717">HADOOP-9717</a>.
     Major improvement reported by Suresh Srinivas and fixed by Jing Zhao (ipc)<br>
     <b>Add retry attempt count to the RPC requests</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9716">HADOOP-9716</a>.
     Major improvement reported by Suresh Srinivas and fixed by Tsz Wo (Nicholas), SZE (ipc)<br>
     <b>Move the Rpc request call ID generation to client side InvocationHandler</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9707">HADOOP-9707</a>.
     Minor bug reported by Todd Lipcon and fixed by Todd Lipcon (util)<br>
     <b>Fix register lists for crc32c inline assembly</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9701">HADOOP-9701</a>.
     Minor bug reported by Steve Loughran and fixed by Karthik Kambatla (documentation)<br>
     <b>mvn site ambiguous links in hadoop-common</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9698">HADOOP-9698</a>.
     Blocker sub-task reported by Daryn Sharp and fixed by Daryn Sharp (ipc)<br>
     <b>RPCv9 client must honor server's SASL negotiate response</b><br>
     <blockquote>The RPC client now waits for the Server's SASL negotiate response before instantiating its SASL client.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9691">HADOOP-9691</a>.
     Minor improvement reported by Chris Nauroth and fixed by Chris Nauroth (ipc)<br>
     <b>RPC clients can generate call ID using AtomicInteger instead of synchronizing on the Client instance.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9688">HADOOP-9688</a>.
     Blocker improvement reported by Suresh Srinivas and fixed by Suresh Srinivas (ipc)<br>
     <b>Add globally unique Client ID to RPC requests</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9683">HADOOP-9683</a>.
     Blocker sub-task reported by Luke Lu and fixed by Daryn Sharp (ipc)<br>
     <b>Wrap IpcConnectionContext in RPC headers</b><br>
     <blockquote>Connection context is now sent as a rpc header wrapped protobuf.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9681">HADOOP-9681</a>.
     Minor bug reported by Chuan Liu and fixed by Chuan Liu <br>
     <b>FileUtil.unTarUsingJava() should close the InputStream upon finishing</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9678">HADOOP-9678</a>.
     Major bug reported by Ivan Mitic and fixed by Ivan Mitic <br>
     <b>TestRPC#testStopsAllThreads intermittently fails on Windows</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9676">HADOOP-9676</a>.
     Minor improvement reported by Colin Patrick McCabe and fixed by Colin Patrick McCabe <br>
     <b>make maximum RPC buffer size configurable</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9673">HADOOP-9673</a>.
     Trivial improvement reported by Colin Patrick McCabe and fixed by Colin Patrick McCabe (net)<br>
     <b>NetworkTopology: when a node can't be added, print out its location for diagnostic purposes</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9665">HADOOP-9665</a>.
     Critical bug reported by Zhijie Shen and fixed by Zhijie Shen <br>
     <b>BlockDecompressorStream#decompress will throw EOFException instead of return -1 when EOF</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9661">HADOOP-9661</a>.
     Major improvement reported by Sandy Ryza and fixed by Sandy Ryza (metrics)<br>
     <b>Allow metrics sources to be extended</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9656">HADOOP-9656</a>.
     Minor bug reported by Chuan Liu and fixed by Chuan Liu (test , tools)<br>
     <b>Gridmix unit tests fail on Windows and Linux</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9649">HADOOP-9649</a>.
     Blocker improvement reported by Zhijie Shen and fixed by Zhijie Shen <br>
     <b>Promote YARN service life-cycle libraries into Hadoop Common</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9643">HADOOP-9643</a>.
     Minor bug reported by Mark Miller and fixed by Mark Miller (security)<br>
     <b>org.apache.hadoop.security.SecurityUtil calls toUpperCase(Locale.getDefault()) as well as toLowerCase(Locale.getDefault()) on hadoop.security.authentication value.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9638">HADOOP-9638</a>.
     Major bug reported by Chris Nauroth and fixed by Andrey Klochkov (test)<br>
     <b>parallel test changes caused invalid test path for several HDFS tests on Windows</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9637">HADOOP-9637</a>.
     Major bug reported by Chuan Liu and fixed by Chuan Liu <br>
     <b>Adding Native Fstat for Windows as needed by YARN</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9632">HADOOP-9632</a>.
     Minor bug reported by Chuan Liu and fixed by Chuan Liu <br>
     <b>TestShellCommandFencer will fail if there is a 'host' machine in the network</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9630">HADOOP-9630</a>.
     Major sub-task reported by Luke Lu and fixed by Junping Du (ipc)<br>
     <b>Remove IpcSerializationType</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9625">HADOOP-9625</a>.
     Minor improvement reported by Paul Han and fixed by  (bin , conf)<br>
     <b>HADOOP_OPTS not picked up by hadoop command</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9624">HADOOP-9624</a>.
     Minor test reported by Xi Fang and fixed by Xi Fang (test)<br>
     <b>TestFSMainOperationsLocalFileSystem failed when the Hadoop test root path has "X" in its name</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9619">HADOOP-9619</a>.
     Major sub-task reported by Sanjay Radia and fixed by Sanjay Radia (documentation)<br>
     <b>Mark stability of .proto files</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9607">HADOOP-9607</a>.
     Minor bug reported by Timothy St. Clair and fixed by  (documentation)<br>
     <b>Fixes in Javadoc build</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9605">HADOOP-9605</a>.
     Major improvement reported by Timothy St. Clair and fixed by  (build)<br>
     <b>Update junit dependency</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9604">HADOOP-9604</a>.
     Minor improvement reported by Jingguo Yao and fixed by Jingguo Yao (fs)<br>
     <b>Wrong Javadoc of FSDataOutputStream</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9599">HADOOP-9599</a>.
     Major bug reported by Mostafa Elhemali and fixed by Mostafa Elhemali <br>
     <b>hadoop-config.cmd doesn't set JAVA_LIBRARY_PATH correctly</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9593">HADOOP-9593</a>.
     Major bug reported by Steve Loughran and fixed by Steve Loughran (util)<br>
     <b>stack trace printed at ERROR for all yarn clients without hadoop.home set</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9581">HADOOP-9581</a>.
     Major bug reported by Ashwin Shankar and fixed by Ashwin Shankar (scripts)<br>
     <b>hadoop --config non-existent directory should result in error </b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9574">HADOOP-9574</a>.
     Major bug reported by Jian He and fixed by Jian He <br>
     <b>Add new methods in AbstractDelegationTokenSecretManager for restoring RMDelegationTokens on RMRestart</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9566">HADOOP-9566</a>.
     Major bug reported by Lenni Kuff and fixed by Colin Patrick McCabe (native)<br>
     <b>Performing direct read using libhdfs sometimes raises SIGPIPE (which in turn throws SIGABRT) causing client crashes</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9563">HADOOP-9563</a>.
     Major bug reported by Kihwal Lee and fixed by Tian Hong Wang (util)<br>
     <b>Fix incompatibility introduced by HADOOP-9523</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9560">HADOOP-9560</a>.
     Minor improvement reported by Tsuyoshi OZAWA and fixed by Tsuyoshi OZAWA (metrics)<br>
     <b>metrics2#JvmMetrics should have max memory size of JVM</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9556">HADOOP-9556</a>.
     Major bug reported by Chris Nauroth and fixed by Chris Nauroth (ha , test)<br>
     <b>disable HA tests on Windows that fail due to ZooKeeper client connection management bug</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9553">HADOOP-9553</a>.
     Major bug reported by Arpit Agarwal and fixed by Arpit Agarwal (test)<br>
     <b>TestAuthenticationToken fails on Windows</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9550">HADOOP-9550</a>.
     Major bug reported by Karthik Kambatla and fixed by Karthik Kambatla <br>
     <b>Remove aspectj dependency</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9549">HADOOP-9549</a>.
     Blocker bug reported by Kihwal Lee and fixed by Daryn Sharp (security)<br>
     <b>WebHdfsFileSystem hangs on close()</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9532">HADOOP-9532</a>.
     Minor bug reported by Chris Nauroth and fixed by Chris Nauroth (bin)<br>
     <b>HADOOP_CLIENT_OPTS is appended twice by Windows cmd scripts</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9527">HADOOP-9527</a>.
     Major bug reported by Arpit Agarwal and fixed by Arpit Agarwal (fs , test)<br>
     <b>Add symlink support to LocalFileSystem on Windows</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9526">HADOOP-9526</a>.
     Major bug reported by Arpit Agarwal and fixed by Arpit Agarwal (test)<br>
     <b>TestShellCommandFencer and TestShell fail on Windows</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9524">HADOOP-9524</a>.
     Major bug reported by Arpit Agarwal and fixed by Arpit Agarwal (ha)<br>
     <b>Fix ShellCommandFencer to work on Windows</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9523">HADOOP-9523</a>.
     Major improvement reported by Tian Hong Wang and fixed by Tian Hong Wang <br>
     <b>Provide a generic IBM java vendor flag in PlatformName.java to support non-Sun JREs</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9517">HADOOP-9517</a>.
     Blocker bug reported by Arun C Murthy and fixed by Karthik Kambatla (documentation)<br>
     <b>Document Hadoop Compatibility</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9515">HADOOP-9515</a>.
     Major new feature reported by Brandon Li and fixed by Brandon Li <br>
     <b>Add general interface for NFS and Mount</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9511">HADOOP-9511</a>.
     Major improvement reported by Omkar Vinit Joshi and fixed by Omkar Vinit Joshi <br>
     <b>Adding support for additional input streams (FSDataInputStream and RandomAccessFile) in SecureIOUtils.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9509">HADOOP-9509</a>.
     Major new feature reported by Brandon Li and fixed by Brandon Li <br>
     <b>Implement ONCRPC and XDR</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9507">HADOOP-9507</a>.
     Minor bug reported by Mostafa Elhemali and fixed by Chris Nauroth (fs)<br>
     <b>LocalFileSystem rename() is broken in some cases when destination exists</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9504">HADOOP-9504</a>.
     Critical bug reported by Liang Xie and fixed by Liang Xie (metrics)<br>
     <b>MetricsDynamicMBeanBase has concurrency issues in createMBeanInfo</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9503">HADOOP-9503</a>.
     Minor improvement reported by Varun Sharma and fixed by Varun Sharma (ipc)<br>
     <b>Remove sleep between IPC client connect timeouts</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9500">HADOOP-9500</a>.
     Major bug reported by Chris Nauroth and fixed by Chris Nauroth (test)<br>
     <b>TestUserGroupInformation#testGetServerSideGroups fails on Windows due to failure to find winutils.exe</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9496">HADOOP-9496</a>.
     Critical bug reported by Gopal V and fixed by Harsh J (bin)<br>
     <b>Bad merge of HADOOP-9450 on branch-2 breaks all bin/hadoop calls that need HADOOP_CLASSPATH </b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9490">HADOOP-9490</a>.
     Major bug reported by Ivan Mitic and fixed by Ivan Mitic (fs)<br>
     <b>LocalFileSystem#reportChecksumFailure not closing the checksum file handle before rename</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9488">HADOOP-9488</a>.
     Major bug reported by Chris Nauroth and fixed by Chris Nauroth (fs)<br>
     <b>FileUtil#createJarWithClassPath only substitutes environment variables from current process environment/does not support overriding when launching new process</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9486">HADOOP-9486</a>.
     Major bug reported by Vinod Kumar Vavilapalli and fixed by Chris Nauroth <br>
     <b>Promote Windows and Shell related utils from YARN to Hadoop Common</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9485">HADOOP-9485</a>.
     Minor bug reported by Colin Patrick McCabe and fixed by Colin Patrick McCabe (net)<br>
     <b>No default value in the code for hadoop.rpc.socket.factory.class.default</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9483">HADOOP-9483</a>.
     Major improvement reported by Chris Nauroth and fixed by Arpit Agarwal (util)<br>
     <b>winutils support for readlink command</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9481">HADOOP-9481</a>.
     Minor bug reported by Vadim Bondarev and fixed by Vadim Bondarev <br>
     <b>Broken conditional logic with HADOOP_SNAPPY_LIBRARY</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9473">HADOOP-9473</a>.
     Trivial bug reported by Glen Mazza and fixed by  (fs)<br>
     <b>typo in FileUtil copy() method</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9469">HADOOP-9469</a>.
     Major bug reported by Thomas Graves and fixed by Robert Parker <br>
     <b>mapreduce/yarn source jars not included in dist tarball</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9459">HADOOP-9459</a>.
     Critical bug reported by Vinay and fixed by Vinay (ha)<br>
     <b>ActiveStandbyElector can join election even before Service HEALTHY, and results in null data at ActiveBreadCrumb</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9455">HADOOP-9455</a>.
     Minor bug reported by Sangjin Lee and fixed by Chris Nauroth (bin)<br>
     <b>HADOOP_CLIENT_OPTS appended twice causes JVM failures</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9451">HADOOP-9451</a>.
     Major bug reported by Junping Du and fixed by Junping Du (net)<br>
     <b>Node with one topology layer should be handled as fault topology when NodeGroup layer is enabled</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9450">HADOOP-9450</a>.
     Major improvement reported by Mitch Wyle and fixed by Harsh J (scripts)<br>
     <b>HADOOP_USER_CLASSPATH_FIRST is not honored; CLASSPATH is PREpended instead of APpended</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9443">HADOOP-9443</a>.
     Major bug reported by Chuan Liu and fixed by Chuan Liu <br>
     <b>Port winutils static code analysis change to trunk</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9439">HADOOP-9439</a>.
     Minor bug reported by Colin Patrick McCabe and fixed by Colin Patrick McCabe (native)<br>
     <b>JniBasedUnixGroupsMapping: fix some crash bugs</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9437">HADOOP-9437</a>.
     Major bug reported by Chris Nauroth and fixed by Chris Nauroth (test)<br>
     <b>TestNativeIO#testRenameTo fails on Windows due to assumption that POSIX errno is embedded in NativeIOException</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9430">HADOOP-9430</a>.
     Major bug reported by Amir Sanjar and fixed by  (security)<br>
     <b>TestSSLFactory fails on IBM JVM</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9429">HADOOP-9429</a>.
     Major bug reported by Amir Sanjar and fixed by  (test)<br>
     <b>TestConfiguration fails with IBM JAVA </b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9425">HADOOP-9425</a>.
     Major sub-task reported by Sanjay Radia and fixed by Sanjay Radia (ipc)<br>
     <b>Add error codes to rpc-response</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9421">HADOOP-9421</a>.
     Blocker sub-task reported by Sanjay Radia and fixed by Daryn Sharp <br>
     <b>Convert SASL to use ProtoBuf and provide negotiation capabilities</b><br>
     <blockquote>Raw SASL protocol now uses protobufs wrapped with RPC headers.
The negotiation sequence incorporates the state of the exchange.
The server now has the ability to advertise its supported auth types.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9418">HADOOP-9418</a>.
     Major sub-task reported by Andrew Wang and fixed by Andrew Wang (fs)<br>
     <b>Add symlink resolution support to DistributedFileSystem</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9416">HADOOP-9416</a>.
     Major sub-task reported by Andrew Wang and fixed by Andrew Wang (fs)<br>
     <b>Add new symlink resolution methods in FileSystem and FileSystemLinkResolver</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9414">HADOOP-9414</a>.
     Major sub-task reported by Andrew Wang and fixed by Andrew Wang (fs)<br>
     <b>Refactor out FSLinkResolver and relevant helper methods</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9413">HADOOP-9413</a>.
     Major bug reported by Ivan Mitic and fixed by Ivan Mitic <br>
     <b>Introduce common utils for File#setReadable/Writable/Executable and File#canRead/Write/Execute that work cross-platform</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9408">HADOOP-9408</a>.
     Minor bug reported by rajeshbabu and fixed by rajeshbabu (conf)<br>
     <b>misleading description for net.topology.table.file.name property in core-default.xml</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9407">HADOOP-9407</a>.
     Major bug reported by Sangjin Lee and fixed by Sangjin Lee (build)<br>
     <b>commons-daemon 1.0.3 dependency has bad group id causing build issues</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9405">HADOOP-9405</a>.
     Minor bug reported by Andrew Wang and fixed by Andrew Wang (test , tools)<br>
     <b>TestGridmixSummary#testExecutionSummarizer is broken</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9401">HADOOP-9401</a>.
     Major improvement reported by Karthik Kambatla and fixed by Karthik Kambatla <br>
     <b>CodecPool: Add counters for number of (de)compressors leased out</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9399">HADOOP-9399</a>.
     Minor bug reported by Todd Lipcon and fixed by Konstantin Boudnik (build)<br>
     <b>protoc maven plugin doesn't work on mvn 3.0.2</b><br>
     <blockquote>Committed to 2.0.4-alpha branch</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9397">HADOOP-9397</a>.
     Major bug reported by Jason Lowe and fixed by Chris Nauroth (build)<br>
     <b>Incremental dist tar build fails</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9388">HADOOP-9388</a>.
     Major bug reported by Ivan Mitic and fixed by Ivan Mitic <br>
     <b>TestFsShellCopy fails on Windows</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9380">HADOOP-9380</a>.
     Major sub-task reported by Sanjay Radia and fixed by Sanjay Radia (ipc)<br>
     <b>Add totalLength to rpc response</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9379">HADOOP-9379</a>.
     Trivial improvement reported by Arpit Gupta and fixed by Arpit Gupta <br>
     <b>capture the ulimit info after printing the log to the console</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9376">HADOOP-9376</a>.
     Major bug reported by Ivan Mitic and fixed by Ivan Mitic <br>
     <b>TestProxyUserFromEnv fails on a Windows domain joined machine</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9373">HADOOP-9373</a>.
     Minor bug reported by Suresh Srinivas and fixed by Suresh Srinivas <br>
     <b>Merge CHANGES.branch-trunk-win.txt to CHANGES.txt</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9369">HADOOP-9369</a>.
     Major bug reported by Karthik Kambatla and fixed by Karthik Kambatla (net)<br>
     <b>DNS#reverseDns() can return hostname with . appended at the end</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9365">HADOOP-9365</a>.
     Major bug reported by Ivan Mitic and fixed by Ivan Mitic <br>
     <b>TestHAZKUtil fails on Windows</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9364">HADOOP-9364</a>.
     Major bug reported by Ivan Mitic and fixed by Ivan Mitic <br>
     <b>PathData#expandAsGlob does not return correct results for absolute paths on Windows</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9358">HADOOP-9358</a>.
     Major bug reported by Todd Lipcon and fixed by Todd Lipcon (ipc , security)<br>
     <b>"Auth failed" log should include exception string</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9355">HADOOP-9355</a>.
     Major sub-task reported by Andrew Wang and fixed by Andrew Wang (fs)<br>
     <b>Abstract symlink tests to use either FileContext or FileSystem</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9353">HADOOP-9353</a>.
     Major bug reported by Arpit Agarwal and fixed by Arpit Agarwal (build)<br>
     <b>Activate native-win profile by default on Windows</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9352">HADOOP-9352</a>.
     Major improvement reported by Daryn Sharp and fixed by Daryn Sharp (security)<br>
     <b>Expose UGI.setLoginUser for tests</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9349">HADOOP-9349</a>.
     Major bug reported by Sandy Ryza and fixed by Sandy Ryza (tools)<br>
     <b>Confusing output when running hadoop version from one hadoop installation when HADOOP_HOME points to another</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9343">HADOOP-9343</a>.
     Major improvement reported by Siddharth Seth and fixed by Siddharth Seth <br>
     <b>Allow additional exceptions through the RPC layer</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9342">HADOOP-9342</a>.
     Major bug reported by Thomas Weise and fixed by Thomas Weise (build)<br>
     <b>Remove jline from distribution</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9339">HADOOP-9339</a>.
     Major bug reported by Daryn Sharp and fixed by Daryn Sharp (ipc)<br>
     <b>IPC.Server incorrectly sets UGI auth type</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9338">HADOOP-9338</a>.
     Major new feature reported by Nick White and fixed by Nick White (fs)<br>
     <b>FsShell Copy Commands Should Optionally Preserve File Attributes</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9337">HADOOP-9337</a>.
     Major bug reported by Ivan A. Veselovsky and fixed by Ivan A. Veselovsky <br>
     <b>org.apache.hadoop.fs.DF.getMount() does not work on Mac OS</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9336">HADOOP-9336</a>.
     Critical improvement reported by Daryn Sharp and fixed by Daryn Sharp (ipc)<br>
     <b>Allow UGI of current connection to be queried</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9334">HADOOP-9334</a>.
     Minor improvement reported by Nicolas Liochon and fixed by Nicolas Liochon (build)<br>
     <b>Update netty version</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9323">HADOOP-9323</a>.
     Minor bug reported by Hao Zhong and fixed by Suresh Srinivas (documentation , fs , io , record)<br>
     <b>Typos in API documentation</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9322">HADOOP-9322</a>.
     Minor improvement reported by Harsh J and fixed by Harsh J (security)<br>
     <b>LdapGroupsMapping doesn't seem to set a timeout for its directory search</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9318">HADOOP-9318</a>.
     Minor improvement reported by Colin Patrick McCabe and fixed by Colin Patrick McCabe <br>
     <b>when exiting on a signal, print the signal name first</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9307">HADOOP-9307</a>.
     Major bug reported by Todd Lipcon and fixed by Todd Lipcon (fs)<br>
     <b>BufferedFSInputStream.read returns wrong results after certain seeks</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9305">HADOOP-9305</a>.
     Major bug reported by Aaron T. Myers and fixed by Aaron T. Myers (security)<br>
     <b>Add support for running the Hadoop client on 64-bit AIX</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9304">HADOOP-9304</a>.
     Major bug reported by Alejandro Abdelnur and fixed by Alejandro Abdelnur (build)<br>
     <b>remove addition of avro genreated-sources dirs to build</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9303">HADOOP-9303</a>.
     Major bug reported by Thomas Graves and fixed by Andy Isaacson <br>
     <b>command manual dfsadmin missing entry for restoreFailedStorage option</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9302">HADOOP-9302</a>.
     Major bug reported by Thomas Graves and fixed by Andy Isaacson (documentation)<br>
     <b>HDFS docs not linked from top level</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9299">HADOOP-9299</a>.
     Blocker bug reported by Roman Shaposhnik and fixed by Daryn Sharp (security)<br>
     <b>kerberos name resolution is kicking in even when kerberos is not configured</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9297">HADOOP-9297</a>.
     Major bug reported by Alejandro Abdelnur and fixed by Alejandro Abdelnur <br>
     <b>remove old record IO generation and tests</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9294">HADOOP-9294</a>.
     Major bug reported by Chris Nauroth and fixed by Chris Nauroth (test)<br>
     <b>GetGroupsTestBase fails on Windows</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9290">HADOOP-9290</a>.
     Major bug reported by Arpit Agarwal and fixed by Chris Nauroth (build , native)<br>
     <b>Some tests cannot load native library</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9287">HADOOP-9287</a>.
     Major test reported by Tsuyoshi OZAWA and fixed by Andrey Klochkov (test)<br>
     <b>Parallel testing hadoop-common</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9283">HADOOP-9283</a>.
     Major new feature reported by Aaron T. Myers and fixed by Aaron T. Myers (security)<br>
     <b>Add support for running the Hadoop client on AIX</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9279">HADOOP-9279</a>.
     Major improvement reported by Tsuyoshi OZAWA and fixed by Tsuyoshi OZAWA (build , documentation)<br>
     <b>Document the need to build hadoop-maven-plugins for eclipse and separate project builds</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9267">HADOOP-9267</a>.
     Minor bug reported by Andrew Wang and fixed by Andrew Wang <br>
     <b>hadoop -help, -h, --help should show usage instructions</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9264">HADOOP-9264</a>.
     Major bug reported by Chris Nauroth and fixed by Chris Nauroth (fs)<br>
     <b>port change to use Java untar API on Windows from branch-1-win to trunk</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9253">HADOOP-9253</a>.
     Major improvement reported by Arpit Gupta and fixed by Arpit Gupta <br>
     <b>Capture ulimit info in the logs at service start time</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9246">HADOOP-9246</a>.
     Major bug reported by Karthik Kambatla and fixed by Karthik Kambatla (build)<br>
     <b>Execution phase for hadoop-maven-plugin should be process-resources</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9245">HADOOP-9245</a>.
     Major bug reported by Karthik Kambatla and fixed by Karthik Kambatla (build)<br>
     <b>mvn clean without running mvn install before fails</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9233">HADOOP-9233</a>.
     Major test reported by Vadim Bondarev and fixed by Vadim Bondarev <br>
     <b>Cover package org.apache.hadoop.io.compress.zlib with unit tests</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9230">HADOOP-9230</a>.
     Major bug reported by Karthik Kambatla and fixed by Karthik Kambatla (test)<br>
     <b>TestUniformSizeInputFormat fails intermittently</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9222">HADOOP-9222</a>.
     Major test reported by Vadim Bondarev and fixed by Vadim Bondarev <br>
     <b>Cover package with org.apache.hadoop.io.lz4 unit tests</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9220">HADOOP-9220</a>.
     Critical bug reported by Tom White and fixed by Tom White (ha)<br>
     <b>Unnecessary transition to standby in ActiveStandbyElector</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9218">HADOOP-9218</a>.
     Major sub-task reported by Sanjay Radia and fixed by Sanjay Radia (ipc)<br>
     <b>Document the Rpc-wrappers used internally</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9211">HADOOP-9211</a>.
     Major bug reported by Sarah Weissman and fixed by Plamen Jeliazkov (conf)<br>
     <b>HADOOP_CLIENT_OPTS default setting fixes max heap size at 128m, disregards HADOOP_HEAPSIZE</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9209">HADOOP-9209</a>.
     Major new feature reported by Todd Lipcon and fixed by Todd Lipcon (fs , tools)<br>
     <b>Add shell command to dump file checksums</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9164">HADOOP-9164</a>.
     Minor improvement reported by Binglin Chang and fixed by Binglin Chang (native)<br>
     <b>Print paths of loaded native libraries in NativeLibraryChecker</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9163">HADOOP-9163</a>.
     Major sub-task reported by Sanjay Radia and fixed by Sanjay Radia (ipc)<br>
     <b>The rpc msg in  ProtobufRpcEngine.proto should be moved out to avoid an extra copy</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9154">HADOOP-9154</a>.
     Major bug reported by Karthik Kambatla and fixed by Karthik Kambatla (io)<br>
     <b>SortedMapWritable#putAll() doesn't add key/value classes to the map</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9151">HADOOP-9151</a>.
     Major sub-task reported by Sanjay Radia and fixed by Sanjay Radia (ipc)<br>
     <b>Include RPC error info in RpcResponseHeader instead of sending it separately</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9150">HADOOP-9150</a>.
     Critical bug reported by Todd Lipcon and fixed by Todd Lipcon (fs/s3 , ha , performance , viewfs)<br>
     <b>Unnecessary DNS resolution attempts for logical URIs</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9140">HADOOP-9140</a>.
     Major sub-task reported by Sanjay Radia and fixed by Sanjay Radia (ipc)<br>
     <b>Cleanup rpc PB protos</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9131">HADOOP-9131</a>.
     Major bug reported by Chris Nauroth and fixed by Chris Nauroth (test)<br>
     <b>TestLocalFileSystem#testListStatusWithColons cannot run on Windows</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9125">HADOOP-9125</a>.
     Major bug reported by Kai Zheng and fixed by Kai Zheng (security)<br>
     <b>LdapGroupsMapping threw CommunicationException after some idle time</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9117">HADOOP-9117</a>.
     Major improvement reported by Alejandro Abdelnur and fixed by Alejandro Abdelnur (build)<br>
     <b>replace protoc ant plugin exec with a maven plugin</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9043">HADOOP-9043</a>.
     Major bug reported by Chris Nauroth and fixed by Chris Nauroth (util)<br>
     <b>disallow in winutils creating symlinks with forwards slashes</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8982">HADOOP-8982</a>.
     Major bug reported by Chris Nauroth and fixed by Chris Nauroth (net)<br>
     <b>TestSocketIOWithTimeout fails on Windows</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8973">HADOOP-8973</a>.
     Major bug reported by Chris Nauroth and fixed by Chris Nauroth (util)<br>
     <b>DiskChecker cannot reliably detect an inaccessible disk on Windows with NTFS ACLs</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8958">HADOOP-8958</a>.
     Major bug reported by Chris Nauroth and fixed by Chris Nauroth (viewfs)<br>
     <b>ViewFs:Non absolute mount name failures when running multiple tests on Windows</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8957">HADOOP-8957</a>.
     Major bug reported by Chris Nauroth and fixed by Chris Nauroth (fs)<br>
     <b>AbstractFileSystem#IsValidName should be overridden for embedded file systems like ViewFs</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8924">HADOOP-8924</a>.
     Major improvement reported by Chris Nauroth and fixed by Chris Nauroth (build)<br>
     <b>Add maven plugin alternative to shell script to save package-info.java</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8917">HADOOP-8917</a>.
     Major bug reported by Arpit Gupta and fixed by Arpit Gupta <br>
     <b>add LOCALE.US to toLowerCase in SecurityUtil.replacePattern</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8886">HADOOP-8886</a>.
     Major improvement reported by Eli Collins and fixed by Eli Collins (fs)<br>
     <b>Remove KFS support</b><br>
     <blockquote>Kosmos FS (KFS) is no longer maintained and Hadoop support has been removed. KFS has been replaced by QFS (HADOOP-8885).</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8711">HADOOP-8711</a>.
     Major improvement reported by Brandon Li and fixed by Brandon Li (ipc)<br>
     <b>provide an option for IPC server users to avoid printing stack information for certain exceptions</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8569">HADOOP-8569</a>.
     Minor bug reported by Colin Patrick McCabe and fixed by Colin Patrick McCabe <br>
     <b>CMakeLists.txt: define _GNU_SOURCE and _LARGEFILE_SOURCE</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8562">HADOOP-8562</a>.
     Major new feature reported by Bikas Saha and fixed by Bikas Saha <br>
     <b>Enhancements to support Hadoop on Windows Server and Windows Azure environments</b><br>
     <blockquote>This umbrella jira makes enhancements to support Hadoop natively on Windows Server and Windows Azure environments.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8470">HADOOP-8470</a>.
     Major sub-task reported by Junping Du and fixed by Junping Du <br>
     <b>Implementation of 4-layer subclass of NetworkTopology (NetworkTopologyWithNodeGroup)</b><br>
     <blockquote>This patch should be checked in together (or after) with JIRA Hadoop-8469: https://issues.apache.org/jira/browse/HADOOP-8469</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8469">HADOOP-8469</a>.
     Major sub-task reported by Junping Du and fixed by Junping Du <br>
     <b>Make NetworkTopology class pluggable</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8462">HADOOP-8462</a>.
     Major improvement reported by Govind Kamat and fixed by Govind Kamat (io)<br>
     <b>Native-code implementation of bzip2 codec</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8440">HADOOP-8440</a>.
     Minor bug reported by Ivan Mitic and fixed by Ivan Mitic (fs)<br>
     <b>HarFileSystem.decodeHarURI fails for URIs whose host contains numbers</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8415">HADOOP-8415</a>.
     Minor improvement reported by Jan van der Lugt and fixed by Jan van der Lugt (conf)<br>
     <b>getDouble() and setDouble() in org.apache.hadoop.conf.Configuration</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7487">HADOOP-7487</a>.
     Major bug reported by Todd Lipcon and fixed by Andrew Wang (fs)<br>
     <b>DF should throw a more reasonable exception when mount cannot be determined</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7391">HADOOP-7391</a>.
     Major bug reported by Sanjay Radia and fixed by Sanjay Radia <br>
     <b>Document Interface Classification from HADOOP-5073</b><br>
     <blockquote></blockquote></li>
</ul>
</body></html>
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Hadoop  2.0.5-alpha Release Notes</title>
<STYLE type="text/css">
	H1 {font-family: sans-serif}
	H2 {font-family: sans-serif; margin-left: 7mm}
	TABLE {margin-left: 7mm}
</STYLE>
</head>
<body>
<h1>Hadoop  2.0.5-alpha Release Notes</h1>
These release notes include new developer and user-facing incompatibilities, features, and major improvements. 
<a name="changes"/>
<h2>Changes since Hadoop 2.0.4-alpha</h2>
<ul>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5240">MAPREDUCE-5240</a>.
     Blocker bug reported by Roman Shaposhnik and fixed by Vinod Kumar Vavilapalli (mrv2)<br>
     <b>inside of FileOutputCommitter the initialized Credentials cache appears to be empty</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4482">HDFS-4482</a>.
     Blocker bug reported by Uma Maheswara Rao G and fixed by Uma Maheswara Rao G (namenode)<br>
     <b>ReplicationMonitor thread can exit with NPE due to the race between delete and replication of same file.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9407">HADOOP-9407</a>.
     Major bug reported by Sangjin Lee and fixed by Sangjin Lee (build)<br>
     <b>commons-daemon 1.0.3 dependency has bad group id causing build issues</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8419">HADOOP-8419</a>.
     Major bug reported by Luke Lu and fixed by Yu Li (io)<br>
     <b>GzipCodec NPE upon reset with IBM JDK</b><br>
     <blockquote></blockquote></li>
</ul>
</body></html>
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Hadoop  2.0.4-alpha Release Notes</title>
<STYLE type="text/css">
	H1 {font-family: sans-serif}
	H2 {font-family: sans-serif; margin-left: 7mm}
	TABLE {margin-left: 7mm}
</STYLE>
</head>
<body>
<h1>Hadoop  2.0.4-alpha Release Notes</h1>
These release notes include new developer and user-facing incompatibilities, features, and major improvements. 
<a name="changes"/>
<h2>Changes since Hadoop 2.0.3-alpha</h2>
<ul>
<li> <a href="https://issues.apache.org/jira/browse/YARN-470">YARN-470</a>.
     Major bug reported by Hitesh Shah and fixed by Siddharth Seth (nodemanager)<br>
     <b>Support a way to disable resource monitoring on the NodeManager</b><br>
     <blockquote>Currently, the memory management monitor's check is disabled when the maxMem is set to -1. However, the maxMem is also sent to the RM when the NM registers with it ( to define the max limit of allocate-able resources ). 

We need an explicit flag to disable monitoring to avoid the problems caused by the overloading of the max memory value.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-449">YARN-449</a>.
     Blocker bug reported by Siddharth Seth and fixed by  <br>
     <b>HBase test failures when running against Hadoop 2</b><br>
     <blockquote>Post YARN-429, unit tests for HBase continue to fail since the classpath for the MRAppMaster is not being set correctly.
Reverting YARN-129 may fix this, but I'm not sure that's the correct solution. My guess is, as Alexandro pointed out in YARN-129, maven classloader magic is messing up java.class.path.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-443">YARN-443</a>.
     Major improvement reported by Thomas Graves and fixed by Thomas Graves (nodemanager)<br>
     <b>allow OS scheduling priority of NM to be different than the containers it launches</b><br>
     <blockquote>It would be nice if we could have the nodemanager run at a different OS scheduling priority than the containers so that you can still communicate with the nodemanager if the containers out of control.  

On linux we could launch the nodemanager at a higher priority, but then all the containers it launches would also be at that higher priority, so we need a way for the container executor to launch them at a lower priority.

I'm not sure how this applies to windows if at all.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-429">YARN-429</a>.
     Blocker bug reported by Siddharth Seth and fixed by Siddharth Seth (resourcemanager)<br>
     <b>capacity-scheduler config missing from yarn-test artifact</b><br>
     <blockquote>MiniYARNCluster and MiniMRCluster are unusable by downstream projects with the 2.0.3-alpha release, since the capacity-scheduler configuration is missing from the test artifact.
hadoop-yarn-server-tests-3.0.0-SNAPSHOT-tests.jar should include the default capacity-scheduler configuration. Also, this doesn't need to be part of the default classpath - and should be moved out of the top level directory in the dist package.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5117">MAPREDUCE-5117</a>.
     Blocker bug reported by Roman Shaposhnik and fixed by Siddharth Seth (security)<br>
     <b>With security enabled HS delegation token renewer fails</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5094">MAPREDUCE-5094</a>.
     Major bug reported by Siddharth Seth and fixed by Siddharth Seth <br>
     <b>Disable mem monitoring by default in MiniMRYarnCluster</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5088">MAPREDUCE-5088</a>.
     Blocker bug reported by Roman Shaposhnik and fixed by Daryn Sharp <br>
     <b>MR Client gets an renewer token exception while Oozie is submitting a job</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5083">MAPREDUCE-5083</a>.
     Major bug reported by Siddharth Seth and fixed by Siddharth Seth (mrv2)<br>
     <b>MiniMRCluster should use a random component when creating an actual cluster</b><br>
     <blockquote>Committed to branch-2.0.4. Modified changes.txt in trunk, branch-2 and branch-2.0.4 accordingly.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5053">MAPREDUCE-5053</a>.
     Major bug reported by Robert Parker and fixed by Robert Parker <br>
     <b>java.lang.InternalError from decompression codec cause reducer to fail</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5023">MAPREDUCE-5023</a>.
     Critical bug reported by Kendall Thrapp and fixed by Ravi Prakash (jobhistoryserver , webapps)<br>
     <b>History Server Web Services missing Job Counters</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5006">MAPREDUCE-5006</a>.
     Major bug reported by Alejandro Abdelnur and fixed by Sandy Ryza (contrib/streaming)<br>
     <b>streaming tests failing</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4549">MAPREDUCE-4549</a>.
     Blocker bug reported by Robert Joseph Evans and fixed by Robert Joseph Evans (mrv2)<br>
     <b>Distributed cache conflicts breaks backwards compatability</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3685">MAPREDUCE-3685</a>.
     Critical bug reported by anty.rao and fixed by anty (mrv2)<br>
     <b>There are some bugs in implementation of MergeManager</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4649">HDFS-4649</a>.
     Blocker bug reported by Daryn Sharp and fixed by Daryn Sharp (namenode , security , webhdfs)<br>
     <b>Webhdfs cannot list large directories</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4646">HDFS-4646</a>.
     Minor bug reported by Jagane Sundar and fixed by  (namenode)<br>
     <b>createNNProxyWithClientProtocol ignores configured timeout value</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4581">HDFS-4581</a>.
     Major bug reported by Rohit Kochar and fixed by Rohit Kochar (datanode)<br>
     <b>DataNode#checkDiskError should not be called on network errors</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4577">HDFS-4577</a>.
     Major sub-task reported by Daryn Sharp and fixed by Daryn Sharp (webhdfs)<br>
     <b>Webhdfs operations should declare if authentication is required</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4571">HDFS-4571</a>.
     Major bug reported by Alejandro Abdelnur and fixed by Alejandro Abdelnur (webhdfs)<br>
     <b>WebHDFS should not set the service hostname on the server side</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4567">HDFS-4567</a>.
     Major sub-task reported by Daryn Sharp and fixed by Daryn Sharp (webhdfs)<br>
     <b>Webhdfs does not need a token for token operations</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4566">HDFS-4566</a>.
     Major sub-task reported by Daryn Sharp and fixed by Daryn Sharp (webhdfs)<br>
     <b>Webdhfs token cancelation should use authentication</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4560">HDFS-4560</a>.
     Major sub-task reported by Daryn Sharp and fixed by Daryn Sharp (webhdfs)<br>
     <b>Webhdfs cannot use tokens obtained by another user</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4548">HDFS-4548</a>.
     Blocker sub-task reported by Daryn Sharp and fixed by Daryn Sharp <br>
     <b>Webhdfs doesn't renegotiate SPNEGO token</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3344">HDFS-3344</a>.
     Major bug reported by Tsz Wo (Nicholas), SZE and fixed by Kihwal Lee (namenode)<br>
     <b>Unreliable corrupt blocks counting in TestProcessCorruptBlocks</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9471">HADOOP-9471</a>.
     Major bug reported by Alejandro Abdelnur and fixed by Alejandro Abdelnur (build)<br>
     <b>hadoop-client wrongfully excludes jetty-util JAR, breaking webhdfs</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9467">HADOOP-9467</a>.
     Major bug reported by Chris Nauroth and fixed by Chris Nauroth (metrics)<br>
     <b>Metrics2 record filtering (.record.filter.include/exclude) does not filter by name</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9444">HADOOP-9444</a>.
     Blocker bug reported by Konstantin Boudnik and fixed by Roman Shaposhnik (conf)<br>
     <b>$var shell substitution in properties are not expanded in hadoop-policy.xml</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9406">HADOOP-9406</a>.
     Major bug reported by Alejandro Abdelnur and fixed by Alejandro Abdelnur (build)<br>
     <b>hadoop-client leaks dependency on JDK tools jar</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9405">HADOOP-9405</a>.
     Minor bug reported by Andrew Wang and fixed by Andrew Wang (test , tools)<br>
     <b>TestGridmixSummary#testExecutionSummarizer is broken</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9399">HADOOP-9399</a>.
     Minor bug reported by Todd Lipcon and fixed by Konstantin Boudnik (build)<br>
     <b>protoc maven plugin doesn't work on mvn 3.0.2</b><br>
     <blockquote>Committed to 2.0.4-alpha branch</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9379">HADOOP-9379</a>.
     Trivial improvement reported by Arpit Gupta and fixed by Arpit Gupta <br>
     <b>capture the ulimit info after printing the log to the console</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9374">HADOOP-9374</a>.
     Major improvement reported by Daryn Sharp and fixed by Daryn Sharp (security)<br>
     <b>Add tokens from -tokenCacheFile into UGI</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9301">HADOOP-9301</a>.
     Blocker bug reported by Roman Shaposhnik and fixed by Alejandro Abdelnur (build)<br>
     <b>hadoop client servlet/jsp/jetty/tomcat JARs creating conflicts in Oozie &amp; HttpFS</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9299">HADOOP-9299</a>.
     Blocker bug reported by Roman Shaposhnik and fixed by Daryn Sharp (security)<br>
     <b>kerberos name resolution is kicking in even when kerberos is not configured</b><br>
     <blockquote></blockquote></li>
</ul>
</body></html>
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Hadoop  2.0.3-alpha Release Notes</title>
<STYLE type="text/css">
	H1 {font-family: sans-serif}
	H2 {font-family: sans-serif; margin-left: 7mm}
	TABLE {margin-left: 7mm}
</STYLE>
</head>
<body>
<h1>Hadoop  2.0.3-alpha Release Notes</h1>
These release notes include new developer and user-facing incompatibilities, features, and major improvements. 
<a name="changes"/>
<h2>Changes since Hadoop 2.0.2</h2>
<ul>
<li> <a href="https://issues.apache.org/jira/browse/YARN-372">YARN-372</a>.
     Minor task reported by Siddharth Seth and fixed by Siddharth Seth <br>
     <b>Move InlineDispatcher from hadoop-yarn-server-resourcemanager to hadoop-yarn-common</b><br>
     <blockquote>InlineDispatcher is a utility used in unit tests. Belongs in yarn-common instead of yarn-server-resource-manager.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-364">YARN-364</a>.
     Major bug reported by Jason Lowe and fixed by Jason Lowe <br>
     <b>AggregatedLogDeletionService can take too long to delete logs</b><br>
     <blockquote>AggregatedLogDeletionService uses the yarn.log-aggregation.retain-seconds property to determine which logs should be deleted, but it uses the same value to determine how often to check for old logs.  This means logs could actually linger up to twice as long as configured.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-360">YARN-360</a>.
     Critical bug reported by Daryn Sharp and fixed by Daryn Sharp <br>
     <b>Allow apps to concurrently register tokens for renewal</b><br>
     <blockquote>{{DelegationTokenRenewer#addApplication}} has an unnecessary {{synchronized}} keyword.  This serializes job submissions and can add unnecessary latency and/or hang all submissions if there are problems renewing the token.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-357">YARN-357</a>.
     Major bug reported by Daryn Sharp and fixed by Daryn Sharp (resourcemanager)<br>
     <b>App submission should not be synchronized</b><br>
     <blockquote>MAPREDUCE-2953 fixed a race condition with querying of app status by making {{RMClientService#submitApplication}} synchronously invoke {{RMAppManager#submitApplication}}. However, the {{synchronized}} keyword was also added to {{RMAppManager#submitApplication}} with the comment:
bq. I made the submitApplication synchronized to keep it consistent with the other routines in RMAppManager although I do not believe it needs it since the rmapp datastructure is already a concurrentMap and I don't see anything else that would be an issue.

It's been observed that app submission latency is being unnecessarily impacted.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-355">YARN-355</a>.
     Blocker bug reported by Daryn Sharp and fixed by Daryn Sharp (resourcemanager)<br>
     <b>RM app submission jams under load</b><br>
     <blockquote>The RM performs a loopback connection to itself to renew its own tokens.  If app submissions consume all RPC handlers for {{ClientRMProtocol}}, then app submissions block because it cannot loopback to itself to do the renewal.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-354">YARN-354</a>.
     Blocker bug reported by Liang Xie and fixed by Liang Xie <br>
     <b>WebAppProxyServer exits immediately after startup</b><br>
     <blockquote>Please see HDFS-4426 for detail, i found the yarn WebAppProxyServer is broken by HADOOP-9181 as well, here's the hot fix, and i verified manually in our test cluster.

I'm really applogized for bring about such trouble...</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-343">YARN-343</a>.
     Major bug reported by Thomas Graves and fixed by Xuan Gong (capacityscheduler)<br>
     <b>Capacity Scheduler maximum-capacity value -1 is invalid</b><br>
     <blockquote>I tried to start the resource manager using the capacity scheduler with a particular queues maximum-capacity set to -1 which is supposed to disable it according to the docs but I got the following exception:

java.lang.IllegalArgumentException: Illegal value  of maximumCapacity -0.01 used in call to setMaxCapacity for queue foo
    at org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CSQueueUtils.checkMaxCapacity(CSQueueUtils.java:31)
    at org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.LeafQueue.setupQueueConfigs(LeafQueue.java:220)
    at org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.LeafQueue.&lt;init&gt;(LeafQueue.java:191)
    at org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacityScheduler.parseQueue(CapacityScheduler.java:310)
    at org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacityScheduler.parseQueue(CapacityScheduler.java:325)
    at org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacityScheduler.initializeQueues(CapacityScheduler.java:232)
    at org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacityScheduler.reinitialize(CapacityScheduler.java:202)
</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-336">YARN-336</a>.
     Major bug reported by Sandy Ryza and fixed by Sandy Ryza (scheduler)<br>
     <b>Fair scheduler FIFO scheduling within a queue only allows 1 app at a time </b><br>
     <blockquote>The fair scheduler allows apps to be scheduled in FIFO fashion within a queue.  Currently, when this setting is turned on, the scheduler only allows one app to run at a time.  While apps submitted earlier should get first priority for allocations, when there is space remaining, other apps should have a change to get at them.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-334">YARN-334</a>.
     Critical bug reported by Thomas Graves and fixed by Thomas Graves <br>
     <b>Maven RAT plugin is not checking all source files</b><br>
     <blockquote>yarn side of HADOOP-9097



Running 'mvn apache-rat:check' passes, but running RAT by hand (by downloading the JAR) produces some warnings for Java files, amongst others.
</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-331">YARN-331</a>.
     Major improvement reported by Sandy Ryza and fixed by Sandy Ryza (scheduler)<br>
     <b>Fill in missing fair scheduler documentation</b><br>
     <blockquote>In the fair scheduler documentation, a few config options are missing:
locality.threshold.node
locality.threshold.rack
max.assign
aclSubmitApps
minSharePreemptionTimeout
</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-330">YARN-330</a>.
     Major bug reported by Hitesh Shah and fixed by Sandy Ryza (nodemanager)<br>
     <b>Flakey test: TestNodeManagerShutdown#testKillContainersOnShutdown</b><br>
     <blockquote>=Seems to be timing related as the container status RUNNING as returned by the ContainerManager does not really indicate that the container task has been launched. Sleep of 5 seconds is not reliable. 

Running org.apache.hadoop.yarn.server.nodemanager.TestNodeManagerShutdown
Tests run: 1, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 9.353 sec &lt;&lt;&lt; FAILURE!
testKillContainersOnShutdown(org.apache.hadoop.yarn.server.nodemanager.TestNodeManagerShutdown)  Time elapsed: 9283 sec  &lt;&lt;&lt; FAILURE!
junit.framework.AssertionFailedError: Did not find sigterm message
	at junit.framework.Assert.fail(Assert.java:47)
	at junit.framework.Assert.assertTrue(Assert.java:20)
	at org.apache.hadoop.yarn.server.nodemanager.TestNodeManagerShutdown.testKillContainersOnShutdown(TestNodeManagerShutdown.java:162)

Logs:

2013-01-09 14:13:08,401 INFO  [AsyncDispatcher event handler] container.Container (ContainerImpl.java:handle(835)) - Container container_0_0000_01_000000 transitioned from NEW to LOCALIZING
2013-01-09 14:13:08,412 INFO  [AsyncDispatcher event handler] localizer.LocalizedResource (LocalizedResource.java:handle(194)) - Resource file:hadoop-common/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/target/org.apache.hadoop.yarn.server.nodemanager.TestNodeManagerShutdown/tmpDir/scriptFile.sh transitioned from INIT to DOWNLOADING
2013-01-09 14:13:08,412 INFO  [AsyncDispatcher event handler] localizer.ResourceLocalizationService (ResourceLocalizationService.java:handle(521)) - Created localizer for container_0_0000_01_000000
2013-01-09 14:13:08,589 INFO  [LocalizerRunner for container_0_0000_01_000000] localizer.ResourceLocalizationService (ResourceLocalizationService.java:writeCredentials(895)) - Writing credentials to the nmPrivate file hadoop-common/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/target/org.apache.hadoop.yarn.server.nodemanager.TestNodeManagerShutdown/nm0/nmPrivate/container_0_0000_01_000000.tokens. Credentials list:
2013-01-09 14:13:08,628 INFO  [LocalizerRunner for container_0_0000_01_000000] nodemanager.DefaultContainerExecutor (DefaultContainerExecutor.java:createUserCacheDirs(373)) - Initializing user nobody
2013-01-09 14:13:08,709 INFO  [main] containermanager.ContainerManagerImpl (ContainerManagerImpl.java:getContainerStatus(538)) - Returning container_id {, app_attempt_id {, application_id {, id: 0, cluster_timestamp: 0, }, attemptId: 1, }, }, state: C_RUNNING, diagnostics: "", exit_status: -1000,
2013-01-09 14:13:08,781 INFO  [LocalizerRunner for container_0_0000_01_000000] nodemanager.DefaultContainerExecutor (DefaultContainerExecutor.java:startLocalizer(99)) - Copying from hadoop-common/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/target/org.apache.hadoop.yarn.server.nodemanager.TestNodeManagerShutdown/nm0/nmPrivate/container_0_0000_01_000000.tokens to hadoop-common/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/target/org.apache.hadoop.yarn.server.nodemanager.TestNodeManagerShutdown/nm0/usercache/nobody/appcache/application_0_0000/container_0_0000_01_000000.tokens


</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-328">YARN-328</a>.
     Major improvement reported by Suresh Srinivas and fixed by Suresh Srinivas (resourcemanager)<br>
     <b>Use token request messages defined in hadoop common </b><br>
     <blockquote>YARN changes related to HADOOP-9192 to reuse the protobuf messages defined in common.
</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-325">YARN-325</a>.
     Blocker bug reported by Jason Lowe and fixed by Arun C Murthy (capacityscheduler)<br>
     <b>RM CapacityScheduler can deadlock when getQueueInfo() is called and a container is completing</b><br>
     <blockquote>If a client calls getQueueInfo on a parent queue (e.g.: the root queue) and containers are completing then the RM can deadlock.  getQueueInfo() locks the ParentQueue and then calls the child queues' getQueueInfo() methods in turn.  However when a container completes, it locks the LeafQueue then calls back into the ParentQueue.  When the two mix, it's a recipe for deadlock.

Stacktrace to follow.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-320">YARN-320</a>.
     Blocker bug reported by Daryn Sharp and fixed by Daryn Sharp (resourcemanager)<br>
     <b>RM should always be able to renew its own tokens</b><br>
     <blockquote>YARN-280 introduced fast-fail for job submissions with bad tokens.  Unfortunately, other stack components like oozie and customers are acquiring RM tokens with a hardcoded dummy renewer value.  These jobs would fail after 24 hours because the RM token couldn't be renewed, but fast-fail is failing them immediately.  The RM should always be able to renew its own tokens submitted with a job.  The renewer field may continue to specify an external user who can renew.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-319">YARN-319</a>.
     Major bug reported by shenhong and fixed by shenhong (resourcemanager , scheduler)<br>
     <b>Submit a job to a queue that not allowed in fairScheduler, client will hold forever.</b><br>
     <blockquote>RM use fairScheduler, when client submit a job to a queue, but the queue do not allow the user to submit job it, in this case, client  will hold forever.
</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-315">YARN-315</a>.
     Major improvement reported by Suresh Srinivas and fixed by Suresh Srinivas <br>
     <b>Use security token protobuf definition from hadoop common</b><br>
     <blockquote>YARN part of HADOOP-9173.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-302">YARN-302</a>.
     Major bug reported by Sandy Ryza and fixed by Sandy Ryza (resourcemanager , scheduler)<br>
     <b>Fair scheduler assignmultiple should default to false</b><br>
     <blockquote>The MR1 default was false.  When true, it results in overloading some machines with many tasks and underutilizing others.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-301">YARN-301</a>.
     Major bug reported by shenhong and fixed by shenhong (resourcemanager , scheduler)<br>
     <b>Fair scheduler throws ConcurrentModificationException when iterating over app's priorities</b><br>
     <blockquote>In my test cluster, fairscheduler appear to concurrentModificationException and RM crash,  here is the message:

2012-12-30 17:14:17,171 FATAL org.apache.hadoop.yarn.server.resourcemanager.ResourceManager: Error in handling event type NODE_UPDATE to the scheduler
java.util.ConcurrentModificationException
        at java.util.TreeMap$PrivateEntryIterator.nextEntry(TreeMap.java:1100)
        at java.util.TreeMap$KeyIterator.next(TreeMap.java:1154)
        at org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.AppSchedulable.assignContainer(AppSchedulable.java:297)
        at org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.FSLeafQueue.assignContainer(FSLeafQueue.java:181)
        at org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.FairScheduler.nodeUpdate(FairScheduler.java:780)
        at org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.FairScheduler.handle(FairScheduler.java:842)
        at org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.FairScheduler.handle(FairScheduler.java:98)
        at org.apache.hadoop.yarn.server.resourcemanager.ResourceManager$SchedulerEventDispatcher$EventProcessor.run(ResourceManager.java:340)
        at java.lang.Thread.run(Thread.java:662)

</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-300">YARN-300</a>.
     Major bug reported by shenhong and fixed by Sandy Ryza (resourcemanager , scheduler)<br>
     <b>After YARN-271, fair scheduler can infinite loop and not schedule any application.</b><br>
     <blockquote>After yarn-271, when yarn.scheduler.fair.max.assign&lt;=0, when a node was been reserved, fairScheduler will  infinite loop and not schedule any application.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-293">YARN-293</a>.
     Critical bug reported by Devaraj K and fixed by Robert Joseph Evans (nodemanager)<br>
     <b>Node Manager leaks LocalizerRunner object for every Container </b><br>
     <blockquote>Node Manager creates a new LocalizerRunner object for every container and puts in ResourceLocalizationService.LocalizerTracker.privLocalizers map but it never removes from the map.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-288">YARN-288</a>.
     Major bug reported by Sandy Ryza and fixed by Sandy Ryza (resourcemanager , scheduler)<br>
     <b>Fair scheduler queue doesn't accept any jobs when ACLs are configured.</b><br>
     <blockquote>If a queue is configured with an ACL for who can submit jobs, no jobs are allowed, even if a user on the list tries.

This is caused by using the scheduler thinking the user is "yarn", because it calls UserGroupInformation.getCurrentUser() instead of UserGroupInformation.createRemoteUser() with the given user name.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-286">YARN-286</a>.
     Major new feature reported by Tom White and fixed by Tom White (applications)<br>
     <b>Add a YARN ApplicationClassLoader</b><br>
     <blockquote>Add a classloader that provides webapp-style class isolation for use by applications. This is the YARN part of MAPREDUCE-1700 (which was already developed in that JIRA).</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-285">YARN-285</a>.
     Major improvement reported by Derek Dagit and fixed by Derek Dagit <br>
     <b>RM should be able to provide a tracking link for apps that have already been purged</b><br>
     <blockquote>As applications complete, the RM tracks their IDs in a completed list.  This list is routinely truncated to limit the total number of application remembered by the RM.

When a user clicks the History for a job, either the browser is redirected to the application's tracking link obtained from the stored application instance.  But when the application has been purged from the RM, an error is displayed.

In very busy clusters the rate at which applications complete can cause applications to be purged from the RM's internal list within hours, which breaks the proxy URLs users have saved for their jobs.

We would like the RM to provide valid tracking links persist so that users are not frustrated by broken links.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-283">YARN-283</a>.
     Major bug reported by Sandy Ryza and fixed by Sandy Ryza (scheduler)<br>
     <b>Fair scheduler fails to get queue info without root prefix</b><br>
     <blockquote>If queue1 exists, and a client calls "mapred queue -info queue1", an exception is thrown.  If they use root.queue1, it works correctly.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-282">YARN-282</a>.
     Major bug reported by Sandy Ryza and fixed by Sandy Ryza <br>
     <b>Fair scheduler web UI double counts Apps Submitted</b><br>
     <blockquote>Each app submitted is reported twice under "Apps Submitted"</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-280">YARN-280</a>.
     Major sub-task reported by Daryn Sharp and fixed by Daryn Sharp (resourcemanager)<br>
     <b>RM does not reject app submission with invalid tokens</b><br>
     <blockquote>The RM will launch an app with invalid tokens.  The tasks will languish with failed connection retries, followed by task reattempts, followed by app reattempts.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-278">YARN-278</a>.
     Major bug reported by Sandy Ryza and fixed by Sandy Ryza (resourcemanager , scheduler)<br>
     <b>Fair scheduler maxRunningApps config causes no apps to make progress</b><br>
     <blockquote>This occurs because the scheduler erroneously chooses apps to offer resources to that are not runnable, then later decides they are not runnable, and doesn't try to give the resources to anyone else.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-277">YARN-277</a>.
     Major improvement reported by Bikas Saha and fixed by Bikas Saha <br>
     <b>Use AMRMClient in DistributedShell to exemplify the approach</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-272">YARN-272</a>.
     Major bug reported by Sandy Ryza and fixed by Sandy Ryza (scheduler)<br>
     <b>Fair scheduler log messages try to print objects without overridden toString methods</b><br>
     <blockquote>A lot of junk gets printed out like this:

2012-12-11 17:31:52,998 INFO org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.FSSchedulerApp: Application application_1355270529654_0003 reserved container org.apache.hadoop.yarn.server.resourcemanager.rmcontainer.RMContainerImpl@324f0f97 on node host: c1416.hal.cloudera.com:46356 #containers=7 available=0 used=8192, currently has 4 at priority org.apache.hadoop.yarn.api.records.impl.pb.PriorityPBImpl@33; currentReservation 4096</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-271">YARN-271</a>.
     Major bug reported by Sandy Ryza and fixed by Sandy Ryza (resourcemanager , scheduler)<br>
     <b>Fair scheduler hits IllegalStateException trying to reserve different apps on same node</b><br>
     <blockquote>After the fair scheduler reserves a container on a node, it doesn't check for reservations it just made when trying to make more reservations during the same heartbeat.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-267">YARN-267</a>.
     Major bug reported by Sandy Ryza and fixed by Sandy Ryza (resourcemanager , scheduler)<br>
     <b>Fix fair scheduler web UI</b><br>
     <blockquote>The fair scheduler web UI was broken by MAPREDUCE-4720.  The queues area is not shown, and changes are required to still show the fair share inside the applications table.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-266">YARN-266</a>.
     Critical bug reported by Ravi Prakash and fixed by Ravi Prakash (resourcemanager)<br>
     <b>RM and JHS Web UIs are blank because AppsBlock is not escaping string properly</b><br>
     <blockquote>e.g. Job names with a line feed "\n" are causing a line feed in the JSON array being written out (since we are only using StringEscapeUtils.escapeHtml() ) and the Javascript parser complains that string quotes are unclosed. This </blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-264">YARN-264</a>.
     Major bug reported by Karthik Kambatla and fixed by Karthik Kambatla <br>
     <b>y.s.rm.DelegationTokenRenewer attempts to renew token even after removing an app</b><br>
     <blockquote>yarn.s.rm.security.DelegationTokenRenewer uses TimerTask/Timer. When such a timer task is canceled, already scheduled tasks run to completion. The task should check for such cancellation before running. Also, delegationTokens needs to be synchronized on all accesses.

</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-258">YARN-258</a>.
     Major bug reported by Ravi Prakash and fixed by Ravi Prakash (resourcemanager)<br>
     <b>RM web page UI shows Invalid Date for start and finish times</b><br>
     <blockquote>Whenever the number of jobs was greater than a 100, two javascript arrays were being populated. appsData and appsTableData. appsData was winning out (because it was coming out later) and so renderHadoopDate was trying to render a &lt;br title=""...&gt; string.
</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-254">YARN-254</a>.
     Major improvement reported by Sandy Ryza and fixed by Sandy Ryza (resourcemanager , scheduler)<br>
     <b>Update fair scheduler web UI for hierarchical queues</b><br>
     <blockquote>The fair scheduler should have a web UI similar to the capacity scheduler that shows nested queues.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-253">YARN-253</a>.
     Critical bug reported by Tom White and fixed by Tom White (nodemanager)<br>
     <b>Container launch may fail if no files were localized</b><br>
     <blockquote>This can be demonstrated with DistributedShell. The containers running the shell do not have any files to localize (if there is no shell script to copy) so if they run on a different NM to the AM (which does localize files), then they will fail since the appcache directory does not exist.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-251">YARN-251</a>.
     Major bug reported by Tom White and fixed by Tom White (resourcemanager)<br>
     <b>Proxy URI generation fails for blank tracking URIs</b><br>
     <blockquote>If the URI is an empty string (the default if not set), then a warning is displayed. A null URI displays no such warning. These two cases should be handled in the same way.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-230">YARN-230</a>.
     Major sub-task reported by Bikas Saha and fixed by Bikas Saha (resourcemanager)<br>
     <b>Make changes for RM restart phase 1</b><br>
     <blockquote>As described in YARN-128, phase 1 of RM restart puts in place mechanisms to save application state and read them back after restart. Upon restart, the NM's are asked to reboot and the previously running AM's are restarted.
After this is done, RM HA and work preserving restart can continue in parallel. For more details please refer to the design document in YARN-128</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-229">YARN-229</a>.
     Major sub-task reported by Bikas Saha and fixed by Bikas Saha (resourcemanager)<br>
     <b>Remove old code for restart</b><br>
     <blockquote>Much of the code is dead/commented out and is not executed. Removing it will help with making and understanding new changes.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-225">YARN-225</a>.
     Critical bug reported by Devaraj K and fixed by Devaraj K (resourcemanager)<br>
     <b>Proxy Link in RM UI thows NPE in Secure mode</b><br>
     <blockquote>{code:xml}
java.lang.NullPointerException
	at org.apache.hadoop.yarn.server.webproxy.WebAppProxyServlet.doGet(WebAppProxyServlet.java:241)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
	at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511)
	at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1221)
	at org.apache.hadoop.http.lib.StaticUserWebFilter$StaticUserFilter.doFilter(StaticUserWebFilter.java:109)
	at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1212)
	at org.apache.hadoop.http.HttpServer$QuotingInputFilter.doFilter(HttpServer.java:975)
	at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1212)
	at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:399)
	at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
	at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)
	at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:766)
	at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:450)
	at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:230)
	at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
	at org.mortbay.jetty.Server.handle(Server.java:326)
	at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542)
	at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:928)
	at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:549)
	at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212)
	at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
	at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:410)
	at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582)


{code}</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-224">YARN-224</a>.
     Major bug reported by Sandy Ryza and fixed by Sandy Ryza <br>
     <b>Fair scheduler logs too many nodeUpdate INFO messages</b><br>
     <blockquote>The RM logs are filled with an INFO message the fair scheduler logs every time it receives a nodeUpdate.  It should be taken out or demoted to debug.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-223">YARN-223</a>.
     Critical bug reported by Radim Kolar and fixed by Radim Kolar <br>
     <b>Change processTree interface to work better with native code</b><br>
     <blockquote>Problem is that on every update of processTree new object is required. This is undesired when working with processTree implementation in native code.

replace ProcessTree.getProcessTree() with updateProcessTree(). No new object allocation is needed and it simplify application code a bit.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-222">YARN-222</a>.
     Major improvement reported by Sandy Ryza and fixed by Sandy Ryza (resourcemanager , scheduler)<br>
     <b>Fair scheduler should create queue for each user by default</b><br>
     <blockquote>In MR1 the fair scheduler's default behavior was to create a pool for each user.  The YARN fair scheduler has this capability, but it should be turned on by default, for consistency.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-219">YARN-219</a>.
     Critical sub-task reported by Robert Joseph Evans and fixed by Robert Joseph Evans (nodemanager)<br>
     <b>NM should aggregate logs when application finishes.</b><br>
     <blockquote>The NM should only aggregate logs when the application finishes.  This will reduce the load on the NN, especially with respect to lease renewal.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-217">YARN-217</a>.
     Blocker bug reported by Devaraj K and fixed by Devaraj K (resourcemanager)<br>
     <b>yarn rmadmin commands fail in secure cluster</b><br>
     <blockquote>All the rmadmin commands fail in secure mode with the "protocol org.apache.hadoop.yarn.server.nodemanager.api.RMAdminProtocolPB is unauthorized" message in RM logs.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-216">YARN-216</a>.
     Major improvement reported by Todd Lipcon and fixed by Robert Joseph Evans <br>
     <b>Remove jquery theming support</b><br>
     <blockquote>As of today we have 9.4MB of JQuery themes in our code tree. In addition to being a waste of space, it's a highly questionable feature. I've never heard anyone complain that the Hadoop interface isn't themeable enough, and there's far more value in consistency across installations than there is in themeability. Let's rip it out.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-214">YARN-214</a>.
     Major bug reported by Jason Lowe and fixed by Jonathan Eagles (resourcemanager)<br>
     <b>RMContainerImpl does not handle event EXPIRE at state RUNNING</b><br>
     <blockquote>RMContainerImpl has a race condition where a container can enter the RUNNING state just as the container expires.  This results in an invalid event transition error:

{noformat}
2012-11-11 05:31:38,954 [ResourceManager Event Processor] ERROR org.apache.hadoop.yarn.server.resourcemanager.rmcontainer.RMContainerImpl: Can't handle this event at current state
org.apache.hadoop.yarn.state.InvalidStateTransitonException: Invalid event: EXPIRE at RUNNING
        at org.apache.hadoop.yarn.state.StateMachineFactory.doTransition(StateMachineFactory.java:301)
        at org.apache.hadoop.yarn.state.StateMachineFactory.access$300(StateMachineFactory.java:43)
        at org.apache.hadoop.yarn.state.StateMachineFactory$InternalStateMachine.doTransition(StateMachineFactory.java:443)
        at org.apache.hadoop.yarn.server.resourcemanager.rmcontainer.RMContainerImpl.handle(RMContainerImpl.java:205)
        at org.apache.hadoop.yarn.server.resourcemanager.rmcontainer.RMContainerImpl.handle(RMContainerImpl.java:44)
        at org.apache.hadoop.yarn.server.resourcemanager.scheduler.SchedulerApp.containerCompleted(SchedulerApp.java:203)
        at org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.LeafQueue.completedContainer(LeafQueue.java:1337)
        at org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacityScheduler.completedContainer(CapacityScheduler.java:739)
        at org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacityScheduler.handle(CapacityScheduler.java:659)
        at org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacityScheduler.handle(CapacityScheduler.java:80)
        at org.apache.hadoop.yarn.server.resourcemanager.ResourceManager$SchedulerEventDispatcher$EventProcessor.run(ResourceManager.java:340)
        at java.lang.Thread.run(Thread.java:619)
{noformat}

EXPIRE needs to be handled (well at least ignored) in the RUNNING state to account for this race condition.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-212">YARN-212</a>.
     Blocker bug reported by Nathan Roberts and fixed by Nathan Roberts (nodemanager)<br>
     <b>NM state machine ignores an APPLICATION_CONTAINER_FINISHED event when it shouldn't</b><br>
     <blockquote>The NM state machines can make the following two invalid state transitions when a speculative attempt is killed shortly after it gets started. When this happens the NM keeps the log aggregation context open for this application and therefore chews up FDs and leases on the NN, eventually running the NN out of FDs and bringing down the entire cluster.


2012-11-07 05:36:33,774 [AsyncDispatcher event handler] WARN org.apache.hadoop.yarn.server.nodemanager.containermanager.application.Application: Can't handle this event at current state
org.apache.hadoop.yarn.state.InvalidStateTransitonException: Invalid event: APPLICATION_CONTAINER_FINISHED at INITING

2012-11-07 05:36:33,775 [AsyncDispatcher event handler] WARN org.apache.hadoop.yarn.server.nodemanager.containermanager.container.Container: Can't handle this event at current state: Current: [DONE], eventType: [INIT_CONTAINER]
org.apache.hadoop.yarn.state.InvalidStateTransitonException: Invalid event: INIT_CONTAINER at DONE


</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-206">YARN-206</a>.
     Major bug reported by Jason Lowe and fixed by Jason Lowe (resourcemanager)<br>
     <b>TestApplicationCleanup.testContainerCleanup occasionally fails</b><br>
     <blockquote>testContainerCleanup is occasionally failing with the error:

testContainerCleanup(org.apache.hadoop.yarn.server.resourcemanager.TestApplicationCleanup): expected:&lt;2&gt; but was:&lt;1&gt;
</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-204">YARN-204</a>.
     Major bug reported by Aleksey Gorshkov and fixed by Aleksey Gorshkov (applications)<br>
     <b>test coverage for org.apache.hadoop.tools</b><br>
     <blockquote>Added some tests for org.apache.hadoop.tools</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-202">YARN-202</a>.
     Critical bug reported by Kihwal Lee and fixed by Kihwal Lee <br>
     <b>Log Aggregation generates a storm of fsync() for namenode</b><br>
     <blockquote>When the log aggregation is on, write to each aggregated container log causes hflush() to be called. For large clusters, this can creates a lot of fsync() calls for namenode. 

We have seen 6-7x increase in the average number of fsync operations compared to 1.0.x on a large busy cluster. Over 99% of fsync ops were for log aggregation writing to tmp files.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-201">YARN-201</a>.
     Critical bug reported by Jason Lowe and fixed by Jason Lowe (capacityscheduler)<br>
     <b>CapacityScheduler can take a very long time to schedule containers if requests are off cluster</b><br>
     <blockquote>When a user runs a job where one of the input files is a large file on another cluster, the job can create many splits on nodes which are unreachable for computation from the current cluster.  The off-switch delay logic in LeafQueue can cause the ResourceManager to allocate containers for the job very slowly.  In one case the job was only getting one container every 23 seconds, and the queue had plenty of spare capacity.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-189">YARN-189</a>.
     Blocker bug reported by Thomas Graves and fixed by Thomas Graves (resourcemanager)<br>
     <b>deadlock in RM - AMResponse object</b><br>
     <blockquote>we ran into a deadlock in the RM.

=============================
"1128743461@qtp-1252749669-5201":
  waiting for ownable synchronizer 0x00002aabbc87b960, (a java.util.concurrent.locks.ReentrantReadWriteLock$NonfairSync),
  which is held by "AsyncDispatcher event handler"
"AsyncDispatcher event handler":
  waiting to lock monitor 0x00002ab0bba3a370 (object 0x00002aab3d4cd698, a org.apache.hadoop.yarn.api.records.impl.pb.AMResponsePBImpl),
  which is held by "IPC Server handler 36 on 8030"
"IPC Server handler 36 on 8030":
  waiting for ownable synchronizer 0x00002aabbc87b960, (a java.util.concurrent.locks.ReentrantReadWriteLock$NonfairSync),
  which is held by "AsyncDispatcher event handler"
Java stack information for the threads listed above:
===================================================
"1128743461@qtp-1252749669-5201":
        at sun.misc.Unsafe.park(Native Method)
        - parking to wait for  &lt;0x00002aabbc87b960&gt; (a java.util.concurrent.locks.ReentrantReadWriteLock$NonfairSync)
        at java.util.concurrent.locks.LockSupport.park(LockSupport.java:158)        at java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:811)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireShared(AbstractQueuedSynchronizer.java:941)        at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireShared(AbstractQueuedSynchronizer.java:1261)
        at java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock.lock(ReentrantReadWriteLock.java:594)        at org.apache.hadoop.yarn.server.resourcemanager.rmapp.attempt.RMAppAttemptImpl.getFinalApplicationStatus(RMAppAttemptImpl.java:2
95)
        at org.apache.hadoop.yarn.server.resourcemanager.rmapp.RMAppImpl.getFinalApplicationStatus(RMAppImpl.java:222)
        at org.apache.hadoop.yarn.server.resourcemanager.webapp.RMWebServices.getApps(RMWebServices.java:328)
        at sun.reflect.GeneratedMethodAccessor41.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at com.sun.jersey.spi.container.JavaMethodInvokerFactory$1.invoke(JavaMethodInvokerFactory.java:60)
        at com.sun.jersey.server.impl.model.method.dispatch.AbstractResourceMethodDispatchProvider$TypeOutInvoker._dispatch(AbstractResourceMethodDispatchProvider.java:185)
        at com.sun.jersey.server.impl.model.method.dispatch.ResourceJavaMethodDispatcher.dispatch(ResourceJavaM
...
...
..
  

"AsyncDispatcher event handler":
        at org.apache.hadoop.yarn.server.resourcemanager.ApplicationMasterService.unregisterAttempt(ApplicationMasterService.java:307)
        - waiting to lock &lt;0x00002aab3d4cd698&gt; (a org.apache.hadoop.yarn.api.records.impl.pb.AMResponsePBImpl)
        at org.apache.hadoop.yarn.server.resourcemanager.rmapp.attempt.RMAppAttemptImpl$BaseFinalTransition.transition(RMAppAttemptImpl.java:647)
        at org.apache.hadoop.yarn.server.resourcemanager.rmapp.attempt.RMAppAttemptImpl$FinalTransition.transition(RMAppAttemptImpl.java:809)
        at org.apache.hadoop.yarn.server.resourcemanager.rmapp.attempt.RMAppAttemptImpl$FinalTransition.transition(RMAppAttemptImpl.java:796)
        at org.apache.hadoop.yarn.state.StateMachineFactory$SingleInternalArc.doTransition(StateMachineFactory.java:357)
        at org.apache.hadoop.yarn.state.StateMachineFactory.doTransition(StateMachineFactory.java:298)
        at org.apache.hadoop.yarn.state.StateMachineFactory.access$300(StateMachineFactory.java:43)
        at org.apache.hadoop.yarn.state.StateMachineFactory$InternalStateMachine.doTransition(StateMachineFactory.java:443)
        - locked &lt;0x00002aabbb673090&gt; (a org.apache.hadoop.yarn.state.StateMachineFactory$InternalStateMachine)
        at org.apache.hadoop.yarn.server.resourcemanager.rmapp.attempt.RMAppAttemptImpl.handle(RMAppAttemptImpl.java:478)
        at org.apache.hadoop.yarn.server.resourcemanager.rmapp.attempt.RMAppAttemptImpl.handle(RMAppAttemptImpl.java:81)
        at org.apache.hadoop.yarn.server.resourcemanager.ResourceManager$ApplicationAttemptEventDispatcher.handle(ResourceManager.java:436)
        at org.apache.hadoop.yarn.server.resourcemanager.ResourceManager$ApplicationAttemptEventDispatcher.handle(ResourceManager.java:417)
        at org.apache.hadoop.yarn.event.AsyncDispatcher.dispatch(AsyncDispatcher.java:126)
        at org.apache.hadoop.yarn.event.AsyncDispatcher$1.run(AsyncDispatcher.java:75)
        at java.lang.Thread.run(Thread.java:619)
"IPC Server handler 36 on 8030":
        at sun.misc.Unsafe.park(Native Method)
        - parking to wait for  &lt;0x00002aabbc87b960&gt; (a java.util.concurrent.locks.ReentrantReadWriteLock$NonfairSync)
        at java.util.concurrent.locks.LockSupport.park(LockSupport.java:158)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:811)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireQueued(AbstractQueuedSynchronizer.java:842)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquire(AbstractQueuedSynchronizer.java:1178)
        at java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock.lock(ReentrantReadWriteLock.java:807)
        at org.apache.hadoop.yarn.server.resourcemanager.rmapp.attempt.RMAppAttemptImpl.pullJustFinishedContainers(RMAppAttemptImpl.java:437)
        at org.apache.hadoop.yarn.server.resourcemanager.ApplicationMasterService.allocate(ApplicationMasterService.java:285)
        - locked &lt;0x00002aab3d4cd698&gt; (a org.apache.hadoop.yarn.api.records.impl.pb.AMResponsePBImpl)
        at org.apache.hadoop.yarn.api.impl.pb.service.AMRMProtocolPBServiceImpl.allocate(AMRMProtocolPBServiceImpl.java:56)
        at org.apache.hadoop.yarn.proto.AMRMProtocol$AMRMProtocolService$2.callBlockingMethod(AMRMProtocol.java:87)
        at org.apache.hadoop.yarn.ipc.ProtoOverHadoopRpcEngine$Server.call(ProtoOverHadoopRpcEngine.java:353)
        at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:1528)
        at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:1524)
        at java.security.AccessController.doPrivileged(Native Method)
        at javax.security.auth.Subject.doAs(Subject.java:396)
        at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1212)
        at org.apache.hadoop.ipc.Server$Handler.run(Server.java:1522)
</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-188">YARN-188</a>.
     Major test reported by Aleksey Gorshkov and fixed by Aleksey Gorshkov (capacityscheduler)<br>
     <b>Coverage fixing for CapacityScheduler</b><br>
     <blockquote>some tests for CapacityScheduler
YARN-188-branch-0.23.patch patch for branch 0.23
YARN-188-branch-2.patch patch for branch 2
YARN-188-trunk.patch  patch for trunk

</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-187">YARN-187</a>.
     Major new feature reported by Sandy Ryza and fixed by Sandy Ryza (scheduler)<br>
     <b>Add hierarchical queues to the fair scheduler</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-186">YARN-186</a>.
     Major test reported by Aleksey Gorshkov and fixed by Aleksey Gorshkov (resourcemanager , scheduler)<br>
     <b>Coverage fixing LinuxContainerExecutor</b><br>
     <blockquote>Added some tests for LinuxContainerExecuror  
YARN-186-branch-0.23.patch patch for branch-0.23
YARN-186-branch-2.patch patch for branch-2
ARN-186-trunk.patch patch for trank
</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-184">YARN-184</a>.
     Major improvement reported by Sandy Ryza and fixed by Sandy Ryza <br>
     <b>Remove unnecessary locking in fair scheduler, and address findbugs excludes.</b><br>
     <blockquote>In YARN-12, locks were added to all fields of QueueManager to address findbugs.  In addition, findbugs exclusions were added in response to MAPREDUCE-4439, without a deep look at the code.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-183">YARN-183</a>.
     Minor improvement reported by Sandy Ryza and fixed by Sandy Ryza (scheduler)<br>
     <b>Clean up fair scheduler code</b><br>
     <blockquote>The fair scheduler code has a bunch of minor stylistic issues.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-181">YARN-181</a>.
     Critical bug reported by Siddharth Seth and fixed by Siddharth Seth (resourcemanager)<br>
     <b>capacity-scheduler.xml move breaks Eclipse import</b><br>
     <blockquote>Eclipse doesn't seem to handle "testResources" which resolve to an absolute path. YARN-140 moved capacity-scheduler.cfg a couple of levels up to the hadoop-yarn project.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-180">YARN-180</a>.
     Critical bug reported by Thomas Graves and fixed by Arun C Murthy (capacityscheduler)<br>
     <b>Capacity scheduler - containers that get reserved create container token to early</b><br>
     <blockquote>The capacity scheduler has the ability to 'reserve' containers.  Unfortunately before it decides that it goes to reserved rather then assigned, the Container object is created which creates a container token that expires in roughly 10 minutes by default.  

This means that by the time the NM frees up enough space on that node for the container to move to assigned the container token may have expired.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-179">YARN-179</a>.
     Blocker bug reported by Vinod Kumar Vavilapalli and fixed by Vinod Kumar Vavilapalli (capacityscheduler)<br>
     <b>Bunch of test failures on trunk</b><br>
     <blockquote>{{CapacityScheduler.setConf()}} mandates a YarnConfiguration. It doesn't need to, throughout all of YARN, components only depend on Configuration and depend on the callers to provide correct configuration.

This is causing multiple tests to fail.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-178">YARN-178</a>.
     Critical bug reported by Radim Kolar and fixed by Radim Kolar <br>
     <b>Fix custom ProcessTree instance creation</b><br>
     <blockquote>1. In current pluggable resourcecalculatorprocesstree is not passed root process id to custom implementation making it unusable.

2. pstree do not extend Configured as it should

Added constructor with pid argument with testsuite. Also added test that pstree is correctly configured.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-177">YARN-177</a>.
     Critical bug reported by Thomas Graves and fixed by Arun C Murthy (capacityscheduler)<br>
     <b>CapacityScheduler - adding a queue while the RM is running has wacky results</b><br>
     <blockquote>Adding a queue to the capacity scheduler while the RM is running and then running a job in the queue added results in very strange behavior.  The cluster Total Memory can either decrease or increase.  We had a cluster where total memory decreased to almost 1/6th the capacity. Running on a small test cluster resulted in the capacity going up by simply adding a queue and running wordcount.  

Looking at the RM logs, used memory can go negative but other logs show the number positive:


2012-10-21 22:56:44,796 [ResourceManager Event Processor] INFO org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.ParentQueue: assignedContainer queue=root usedCapacity=0.0375 absoluteUsedCapacity=0.0375 used=memory: 7680 cluster=memory: 204800

2012-10-21 22:56:45,831 [ResourceManager Event Processor] INFO org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.ParentQueue: completedContainer queue=root usedCapacity=-0.0225 absoluteUsedCapacity=-0.0225 used=memory: -4608 cluster=memory: 204800

  </blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-170">YARN-170</a>.
     Major bug reported by Sandy Ryza and fixed by Sandy Ryza (nodemanager)<br>
     <b>NodeManager stop() gets called twice on shutdown</b><br>
     <blockquote>The stop method in the NodeManager gets called twice when the NodeManager is shut down via the shutdown hook.

The first is the stop that gets called directly by the shutdown hook.  The second occurs when the NodeStatusUpdaterImpl is stopped.  The NodeManager responds to the NodeStatusUpdaterImpl stop stateChanged event by stopping itself.  This is so that NodeStatusUpdaterImpl can notify the NodeManager to stop, by stopping itself in response to a request from the ResourceManager

This could be avoided if the NodeStatusUpdaterImpl were to stop the NodeManager by calling its stop method directly.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-169">YARN-169</a>.
     Minor improvement reported by Anthony Rojas and fixed by Anthony Rojas (nodemanager)<br>
     <b>Update log4j.appender.EventCounter to use org.apache.hadoop.log.metrics.EventCounter</b><br>
     <blockquote>We should update the log4j.appender.EventCounter in hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/resources/container-log4j.properties to use *org.apache.hadoop.log.metrics.EventCounter* rather than *org.apache.hadoop.metrics.jvm.EventCounter* to avoid triggering the following warning:

{code}WARNING: org.apache.hadoop.metrics.jvm.EventCounter is deprecated. Please use org.apache.hadoop.log.metrics.EventCounter in all the log4j.properties files{code}</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-166">YARN-166</a>.
     Major bug reported by Thomas Graves and fixed by Thomas Graves (capacityscheduler)<br>
     <b>capacity scheduler doesn't allow capacity &lt; 1.0</b><br>
     <blockquote>1.x supports queue capacity &lt; 1, but in 0.23 the capacity scheduler doesn't.  This is an issue for us since we have a large cluster running 1.x that currently has a queue with capacity 0.5%.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-165">YARN-165</a>.
     Blocker improvement reported by Jason Lowe and fixed by Jason Lowe (resourcemanager)<br>
     <b>RM should point tracking URL to RM web page for app when AM fails</b><br>
     <blockquote>Currently when an ApplicationMaster fails the ResourceManager is updating the tracking URL to an empty string, see RMAppAttemptImpl.ContainerFinishedTransition.  Unfortunately when the client attempts to follow the proxy URL it results in a web page showing an HTTP 500 error and an ugly backtrace because "http://" isn't a very helpful tracking URL.

It would be much more helpful if the proxy URL redirected to the RM webapp page for the specific application.  That page shows the various AM attempts and pointers to their logs which will be useful for debugging the problems that caused the AM attempts to fail.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-163">YARN-163</a>.
     Major bug reported by Jason Lowe and fixed by Jason Lowe (nodemanager)<br>
     <b>Retrieving container log via NM webapp can hang with multibyte characters in log</b><br>
     <blockquote>ContainerLogsBlock.printLogs currently assumes that skipping N bytes in the log file is the same as skipping N characters, but that is not true when the log contains multibyte characters.  This can cause the loop that skips a portion of the log to try to skip past the end of the file and loop forever (or until Jetty kills the worker thread).</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-161">YARN-161</a>.
     Major bug reported by Chris Nauroth and fixed by Chris Nauroth (api)<br>
     <b>Yarn Common has multiple compiler warnings for unchecked operations</b><br>
     <blockquote>The warnings are in classes StateMachineFactory, RecordFactoryProvider, RpcFactoryProvider, and YarnRemoteExceptionFactoryProvider.  OpenJDK 1.6.0_24 actually treats these as compilation errors, causing the build to fail.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-159">YARN-159</a>.
     Major bug reported by Thomas Graves and fixed by Thomas Graves (resourcemanager)<br>
     <b>RM web ui applications page should be sorted to display last app first </b><br>
     <blockquote>RM web ui applications page should be sorted to display last app first.

It currently sorts with smallest application id first, which is the first apps that were submitted.  After you have one page worth of apps its much more useful for it to sort such that the biggest appid (last submitted app) shows up first.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-151">YARN-151</a>.
     Major bug reported by Robert Joseph Evans and fixed by Ravi Prakash <br>
     <b>Browser thinks RM main page JS is taking too long</b><br>
     <blockquote>The main RM page with the default settings of 10,000 applications can cause browsers to think that the JS on the page is stuck and ask you if you want to kill it.  This is a big usability problem.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-150">YARN-150</a>.
     Major bug reported by Bikas Saha and fixed by Bikas Saha <br>
     <b>AppRejectedTransition does not unregister app from master service and scheduler</b><br>
     <blockquote>AttemptStartedTransition() adds the app to the ApplicationMasterService and scheduler. when the scheduler rejects the app then AppRejectedTransition() forgets to unregister it from the ApplicationMasterService.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-146">YARN-146</a>.
     Major new feature reported by Sandy Ryza and fixed by Sandy Ryza (resourcemanager)<br>
     <b>Add unit tests for computing fair share in the fair scheduler</b><br>
     <blockquote>MR1 had TestComputeFairShares.  This should go into the YARN fair scheduler.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-145">YARN-145</a>.
     Major new feature reported by Sandy Ryza and fixed by Sandy Ryza (resourcemanager)<br>
     <b>Add a Web UI to the fair share scheduler</b><br>
     <blockquote>The fair scheduler had a UI in MR1.  Port the capacity scheduler web UI and modify appropriately for the fair share scheduler.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-140">YARN-140</a>.
     Major bug reported by Ahmed Radwan and fixed by Ahmed Radwan (capacityscheduler)<br>
     <b>Add capacity-scheduler-default.xml to provide a default set of configurations for the capacity scheduler.</b><br>
     <blockquote>When setting up the capacity scheduler users are faced with problems like:

{code}
FATAL org.apache.hadoop.yarn.server.resourcemanager.ResourceManager: Error starting ResourceManager
java.lang.IllegalArgumentException: Illegal capacity of -1 for queue root
{code}

Which basically arises from missing basic configurations, which in many cases, there is no need to explicitly provide, and a default configuration will be sufficient. For example, to address the error above, the user need to add a capacity of 100 to the root queue.

So, we need to add a capacity-scheduler-default.xml, this will be helpful to provide the basic set of default configurations required to run the capacity scheduler. The user can still override existing configurations or provide new ones in capacity-scheduler.xml. This is similar to *-default.xml vs *-site.xml for yarn, core, mapred, hdfs, etc.

</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-139">YARN-139</a>.
     Major bug reported by Nathan Roberts and fixed by Vinod Kumar Vavilapalli (api)<br>
     <b>Interrupted Exception within AsyncDispatcher leads to user confusion</b><br>
     <blockquote>Successful applications tend to get InterruptedExceptions during shutdown. The exception is harmless but it leads to lots of user confusion and therefore could be cleaned up.


2012-09-28 14:50:12,477 WARN [AsyncDispatcher event handler] org.apache.hadoop.yarn.event.AsyncDispatcher: Interrupted Exception while stopping
java.lang.InterruptedException
	at java.lang.Object.wait(Native Method)
	at java.lang.Thread.join(Thread.java:1143)
	at java.lang.Thread.join(Thread.java:1196)
	at org.apache.hadoop.yarn.event.AsyncDispatcher.stop(AsyncDispatcher.java:105)
	at org.apache.hadoop.yarn.service.CompositeService.stop(CompositeService.java:99)
	at org.apache.hadoop.yarn.service.CompositeService.stop(CompositeService.java:89)
	at org.apache.hadoop.mapreduce.v2.app.MRAppMaster$JobFinishEventHandler.handle(MRAppMaster.java:437)
	at org.apache.hadoop.mapreduce.v2.app.MRAppMaster$JobFinishEventHandler.handle(MRAppMaster.java:402)
	at org.apache.hadoop.yarn.event.AsyncDispatcher.dispatch(AsyncDispatcher.java:126)
	at org.apache.hadoop.yarn.event.AsyncDispatcher$1.run(AsyncDispatcher.java:75)
	at java.lang.Thread.run(Thread.java:619)
2012-09-28 14:50:12,477 INFO [AsyncDispatcher event handler] org.apache.hadoop.yarn.service.AbstractService: Service:Dispatcher is stopped.
2012-09-28 14:50:12,477 INFO [AsyncDispatcher event handler] org.apache.hadoop.yarn.service.AbstractService: Service:org.apache.hadoop.mapreduce.v2.app.MRAppMaster is stopped.
2012-09-28 14:50:12,477 INFO [AsyncDispatcher event handler] org.apache.hadoop.mapreduce.v2.app.MRAppMaster: Exiting MR AppMaster..GoodBye</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-136">YARN-136</a>.
     Major bug reported by Vinod Kumar Vavilapalli and fixed by Vinod Kumar Vavilapalli (resourcemanager)<br>
     <b>Make ClientTokenSecretManager part of RMContext</b><br>
     <blockquote>Helps to add it to the context instead of passing it all around as an extra parameter.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-135">YARN-135</a>.
     Major sub-task reported by Vinod Kumar Vavilapalli and fixed by Vinod Kumar Vavilapalli (resourcemanager)<br>
     <b>ClientTokens should be per app-attempt and be unregistered on App-finish.</b><br>
     <blockquote>Two issues:
 - ClientTokens are per app-attempt but are created per app.
 - Apps don't get unregistered from RMClientTokenSecretManager.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-134">YARN-134</a>.
     Major sub-task reported by Vinod Kumar Vavilapalli and fixed by Vinod Kumar Vavilapalli <br>
     <b>ClientToAMSecretManager creates keys without checking for validity of the appID</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-133">YARN-133</a>.
     Major bug reported by Thomas Graves and fixed by Ravi Prakash (resourcemanager)<br>
     <b>update web services docs for RM clusterMetrics</b><br>
     <blockquote>Looks like jira https://issues.apache.org/jira/browse/MAPREDUCE-3747 added in more RM cluster metrics but the docs didn't get updated: http://hadoop.apache.org/docs/r0.23.3/hadoop-yarn/hadoop-yarn-site/ResourceManagerRest.html#Cluster_Metrics_API


</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-131">YARN-131</a>.
     Major bug reported by Ahmed Radwan and fixed by Ahmed Radwan (capacityscheduler)<br>
     <b>Incorrect ACL properties in capacity scheduler documentation</b><br>
     <blockquote>The CapacityScheduler apt file incorrectly specifies the property names controlling acls for application submission and queue administration.

{{yarn.scheduler.capacity.root.&lt;queue-path&gt;.acl_submit_jobs}}
should be
{{yarn.scheduler.capacity.root.&lt;queue-path&gt;.acl_submit_applications}}

{{yarn.scheduler.capacity.root.&lt;queue-path&gt;.acl_administer_jobs}}
should be
{{yarn.scheduler.capacity.root.&lt;queue-path&gt;.acl_administer_queue}}

Uploading a patch momentarily.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-129">YARN-129</a>.
     Major improvement reported by Tom White and fixed by Tom White (client)<br>
     <b>Simplify classpath construction for mini YARN tests</b><br>
     <blockquote>The test classpath includes a special file called 'mrapp-generated-classpath' (or similar in distributed shell) that is constructed at build time, and whose contents are a classpath with all the dependencies needed to run the tests. When the classpath for a container (e.g. the AM) is constructed the contents of mrapp-generated-classpath is read and added to the classpath, and the file itself is then added to the classpath so that later when the AM constructs a classpath for a task container it can propagate the test classpath correctly.

This mechanism can be drastically simplified by propagating the system classpath of the current JVM (read from the java.class.path property) to a launched JVM, but only if running in the context of the mini YARN cluster. Any tests that use the mini YARN cluster will automatically work with this change. Although any that explicitly deal with mrapp-generated-classpath can be simplified.
</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-127">YARN-127</a>.
     Major bug reported by Vinod Kumar Vavilapalli and fixed by Vinod Kumar Vavilapalli <br>
     <b>Move RMAdmin tool to the client package</b><br>
     <blockquote>It belongs to the client package and not the RM clearly.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-116">YARN-116</a>.
     Major bug reported by xieguiming and fixed by xieguiming (resourcemanager)<br>
     <b>RM is missing ability to add include/exclude files without a restart</b><br>
     <blockquote>The "yarn.resourcemanager.nodes.include-path" default value is "", if we need to add an include file, we must currently restart the RM. 

I suggest that for adding an include or exclude file, there should be no need to restart the RM. We may only execute the refresh command. The HDFS NameNode already has this ability.

Fix is to the modify HostsFileReader class instances:

From:
{code}
public HostsFileReader(String inFile, 
                         String exFile)
{code}
To:
{code}
 public HostsFileReader(Configuration conf, 
                         String NODES_INCLUDE_FILE_PATH,String DEFAULT_NODES_INCLUDE_FILE_PATH,
                        String NODES_EXCLUDE_FILE_PATH,String DEFAULT_NODES_EXCLUDE_FILE_PATH)
{code}

And thus, we can read the config file dynamically when a {{refreshNodes}} is invoked and therefore have no need to restart the ResourceManager.
</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-103">YARN-103</a>.
     Major improvement reported by Bikas Saha and fixed by Bikas Saha <br>
     <b>Add a yarn AM - RM client module</b><br>
     <blockquote>Add a basic client wrapper library to the AM RM protocol in order to prevent proliferation of code being duplicated everywhere. Provide helper functions to perform reverse mapping of container requests to RM allocation resource request table format.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-102">YARN-102</a>.
     Trivial bug reported by Devaraj K and fixed by Devaraj K (resourcemanager)<br>
     <b>Move the apache licence header to the top of the file in MemStore.java</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-94">YARN-94</a>.
     Major bug reported by Vinod Kumar Vavilapalli and fixed by Hitesh Shah (applications/distributed-shell)<br>
     <b>DistributedShell jar should point to Client as the main class by default</b><br>
     <blockquote>Today, it says so..
{code}
$ $YARN_HOME/bin/yarn jar $YARN_HOME/share/hadoop/yarn/hadoop-yarn-applications-distributedshell-$VERSION.jar
RunJar jarFile [mainClass] args...
{code}</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-93">YARN-93</a>.
     Major bug reported by Jason Lowe and fixed by Jason Lowe (resourcemanager)<br>
     <b>Diagnostics missing from applications that have finished but failed</b><br>
     <blockquote>If an application finishes in the YARN sense but fails in the app framework sense (e.g.: a failed MapReduce job) then diagnostics are missing from the RM web page for the application.  The RM should be reporting diagnostic messages even for successful YARN applications.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-82">YARN-82</a>.
     Minor bug reported by Andy Isaacson and fixed by Hemanth Yamijala (nodemanager)<br>
     <b>YARN local-dirs defaults to /tmp/nm-local-dir</b><br>
     <blockquote>{{yarn.nodemanager.local-dirs}} defaults to {{/tmp/nm-local-dir}}.  It should be {hadoop.tmp.dir}/nm-local-dir or similar.  Among other problems, this can prevent multiple test clusters from starting on the same machine.

Thanks to Hemanth Yamijala for reporting this issue.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-78">YARN-78</a>.
     Major bug reported by Bikas Saha and fixed by Bikas Saha (applications)<br>
     <b>Change UnmanagedAMLauncher to use YarnClientImpl</b><br>
     <blockquote>YARN-29 added a common client impl to talk to the RM. Use that in the UnmanagedAMLauncher.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-72">YARN-72</a>.
     Major bug reported by Hitesh Shah and fixed by Sandy Ryza (nodemanager)<br>
     <b>NM should handle cleaning up containers when it shuts down</b><br>
     <blockquote>Ideally, the NM should wait for a limited amount of time when it gets a shutdown signal for existing containers to complete and kill the containers ( if we pick an aggressive approach ) after this time interval. 

For NMs which come up after an unclean shutdown, the NM should look through its directories for existing container.pids and try and kill an existing containers matching the pids found. </blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-57">YARN-57</a>.
     Major improvement reported by Radim Kolar and fixed by Radim Kolar (nodemanager)<br>
     <b>Plugable process tree</b><br>
     <blockquote>Trunk version of Pluggable process tree. Work based on MAPREDUCE-4204</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-50">YARN-50</a>.
     Blocker sub-task reported by Siddharth Seth and fixed by Siddharth Seth <br>
     <b>Implement renewal / cancellation of Delegation Tokens</b><br>
     <blockquote>Currently, delegation tokens issues by the RM and History server cannot be renewed or cancelled. This needs to be implemented.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-43">YARN-43</a>.
     Major bug reported by Thomas Graves and fixed by Thomas Graves <br>
     <b>TestResourceTrackerService fail intermittently on jdk7</b><br>
     <blockquote>Tests run: 6, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 1.73 sec &lt;&lt;&lt; FAILURE!
testDecommissionWithIncludeHosts(org.apache.hadoop.yarn.server.resourcemanager.TestResourceTrackerService)  Time elapsed: 0.086 sec  &lt;&lt;&lt; FAILURE!
junit.framework.AssertionFailedError: expected:&lt;0&gt; but was:&lt;1&gt;        at junit.framework.Assert.fail(Assert.java:47)
        at junit.framework.Assert.failNotEquals(Assert.java:283)
        at junit.framework.Assert.assertEquals(Assert.java:64)
        at junit.framework.Assert.assertEquals(Assert.java:195)
        at junit.framework.Assert.assertEquals(Assert.java:201)
        at org.apache.hadoop.yarn.server.resourcemanager.TestResourceTrackerService.testDecommissionWithIncludeHosts(TestResourceTrackerService.java:90)</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-40">YARN-40</a>.
     Major bug reported by Devaraj K and fixed by Devaraj K (client)<br>
     <b>Provide support for missing yarn commands</b><br>
     <blockquote>1. status &lt;app-id&gt;
2. kill &lt;app-id&gt; (Already issue present with Id : MAPREDUCE-3793)
3. list-apps [all]
4. nodes-report</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-33">YARN-33</a>.
     Major bug reported by Mayank Bansal and fixed by Mayank Bansal (nodemanager)<br>
     <b>LocalDirsHandler should validate the configured local and log dirs</b><br>
     <blockquote>WHen yarn.nodemanager.log-dirs is with file:// URI then startup of node manager creates the directory like file:// under CWD.

WHich should not be there.

Thanks,
Mayank </blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-32">YARN-32</a>.
     Major bug reported by Thomas Graves and fixed by Vinod Kumar Vavilapalli <br>
     <b>TestApplicationTokens fails intermintently on jdk7</b><br>
     <blockquote>TestApplicationsTokens fails intermintently on jdk7. </blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-30">YARN-30</a>.
     Major bug reported by Thomas Graves and fixed by Thomas Graves <br>
     <b>TestNMWebServicesApps, TestRMWebServicesApps and TestRMWebServicesNodes fail on jdk7</b><br>
     <blockquote>It looks like the string changed from "const class" to "constant". 


Tests run: 19, Failures: 3, Errors: 0, Skipped: 0, Time elapsed: 6.786 sec &lt;&lt;&lt; FAILURE!
testNodeAppsStateInvalid(org.apache.hadoop.yarn.server.nodemanager.webapp.TestNMWebServicesApps)  Time elapsed: 0.248 sec  &lt;&lt;&lt; FAILURE!
java.lang.AssertionError: exception message doesn't match, got: No enum constant org.apache.hadoop.yarn.server.nodemanager.containermanager.application.ApplicationState.FOO_STATE expected: No enum const class org.apache.hadoop.yarn.server.nodemanager.containermanager.application.ApplicationState.FOO_STATE</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-28">YARN-28</a>.
     Major bug reported by Thomas Graves and fixed by Thomas Graves <br>
     <b>TestCompositeService fails on jdk7</b><br>
     <blockquote>test TestCompositeService fails when run with jdk7.

It appears it expects test testCallSequence to be called first and the sequence numbers to start at 0. On jdk7 its not being called first and sequence number has already been incremented.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-23">YARN-23</a>.
     Major improvement reported by Karthik Kambatla and fixed by Karthik Kambatla (scheduler)<br>
     <b>FairScheduler: FSQueueSchedulable#updateDemand() - potential redundant aggregation</b><br>
     <blockquote>In FS, FSQueueSchedulable#updateDemand() limits the demand to maxTasks only after iterating though all the pools and computing the final demand. 

By checking if the demand has reached maxTasks in every iteration, we can avoid redundant work, at the expense of one condition check every iteration.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-3">YARN-3</a>.
     Major sub-task reported by Arun C Murthy and fixed by Andrew Ferguson <br>
     <b>Add support for CPU isolation/monitoring of containers</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-2">YARN-2</a>.
     Major new feature reported by Arun C Murthy and fixed by Arun C Murthy (capacityscheduler , scheduler)<br>
     <b>Enhance CS to schedule accounting for both memory and cpu cores</b><br>
     <blockquote>With YARN being a general purpose system, it would be useful for several applications (MPI et al) to specify not just memory but also CPU (cores) for their resource requirements. Thus, it would be useful to the CapacityScheduler to account for both.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4977">MAPREDUCE-4977</a>.
     Major improvement reported by Alejandro Abdelnur and fixed by Alejandro Abdelnur (documentation)<br>
     <b>Documentation for pluggable shuffle and pluggable sort</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4971">MAPREDUCE-4971</a>.
     Minor improvement reported by Arun C Murthy and fixed by Arun C Murthy <br>
     <b>Minor extensibility enhancements </b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4969">MAPREDUCE-4969</a>.
     Major bug reported by Arpit Agarwal and fixed by Arpit Agarwal (test)<br>
     <b>TestKeyValueTextInputFormat test fails with Open JDK 7</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4953">MAPREDUCE-4953</a>.
     Major bug reported by Andy Isaacson and fixed by Andy Isaacson (pipes)<br>
     <b>HadoopPipes misuses fprintf</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4949">MAPREDUCE-4949</a>.
     Minor improvement reported by Sandy Ryza and fixed by Sandy Ryza (examples)<br>
     <b>Enable multiple pi jobs to run in parallel</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4948">MAPREDUCE-4948</a>.
     Critical bug reported by Junping Du and fixed by Junping Du (client)<br>
     <b>TestYARNRunner.testHistoryServerToken failed on trunk</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4946">MAPREDUCE-4946</a>.
     Critical bug reported by Jason Lowe and fixed by Jason Lowe (mr-am)<br>
     <b>Type conversion of map completion events leads to performance problems with large jobs</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4936">MAPREDUCE-4936</a>.
     Critical bug reported by Daryn Sharp and fixed by Arun C Murthy (mrv2)<br>
     <b>JobImpl uber checks for cpu are wrong</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4934">MAPREDUCE-4934</a>.
     Critical bug reported by Thomas Graves and fixed by Thomas Graves (build)<br>
     <b>Maven RAT plugin is not checking all source files</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4928">MAPREDUCE-4928</a>.
     Major improvement reported by Suresh Srinivas and fixed by Suresh Srinivas (applicationmaster , security)<br>
     <b>Use token request messages defined in hadoop common </b><br>
     <blockquote>Protobuf message GetDelegationTokenRequestProto field renewer is made requried from optional. This change is not wire compatible with the older releases.
</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4925">MAPREDUCE-4925</a>.
     Major bug reported by Karthik Kambatla and fixed by Karthik Kambatla (examples)<br>
     <b>The pentomino option parser may be buggy</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4924">MAPREDUCE-4924</a>.
     Trivial bug reported by Robert Kanter and fixed by Robert Kanter (mrv1)<br>
     <b>flakey test: org.apache.hadoop.mapred.TestClusterMRNotification.testMR</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4923">MAPREDUCE-4923</a>.
     Minor bug reported by Sandy Ryza and fixed by Sandy Ryza (mrv1 , mrv2 , task)<br>
     <b>Add toString method to TaggedInputSplit</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4921">MAPREDUCE-4921</a>.
     Blocker bug reported by Daryn Sharp and fixed by Daryn Sharp (client)<br>
     <b>JobClient should acquire HS token with RM principal</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4920">MAPREDUCE-4920</a>.
     Major bug reported by Vinod Kumar Vavilapalli and fixed by Suresh Srinivas <br>
     <b>Use security token protobuf definition from hadoop common</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4913">MAPREDUCE-4913</a>.
     Major bug reported by Jason Lowe and fixed by Jason Lowe (mr-am)<br>
     <b>TestMRAppMaster#testMRAppMasterMissingStaging occasionally exits</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4907">MAPREDUCE-4907</a>.
     Major improvement reported by Sandy Ryza and fixed by Sandy Ryza (mrv1 , tasktracker)<br>
     <b>TrackerDistributedCacheManager issues too many getFileStatus calls</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4905">MAPREDUCE-4905</a>.
     Major test reported by Aleksey Gorshkov and fixed by Aleksey Gorshkov <br>
     <b>test org.apache.hadoop.mapred.pipes</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4902">MAPREDUCE-4902</a>.
     Trivial bug reported by Albert Chu and fixed by Albert Chu <br>
     <b>Fix typo "receievd" should be "received" in log output</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4899">MAPREDUCE-4899</a>.
     Major improvement reported by Derek Dagit and fixed by Derek Dagit <br>
     <b>Provide a plugin to the Yarn Web App Proxy to generate tracking links for M/R appllications given the ID</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4895">MAPREDUCE-4895</a>.
     Major bug reported by Dennis Y and fixed by Dennis Y <br>
     <b>Fix compilation failure of org.apache.hadoop.mapred.gridmix.TestResourceUsageEmulators</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4894">MAPREDUCE-4894</a>.
     Blocker bug reported by Siddharth Seth and fixed by Siddharth Seth (jobhistoryserver , mrv2)<br>
     <b>Renewal / cancellation of JobHistory tokens</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4893">MAPREDUCE-4893</a>.
     Major bug reported by Bikas Saha and fixed by Bikas Saha (applicationmaster)<br>
     <b>MR AppMaster can do sub-optimal assignment of containers to map tasks leading to poor node locality</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4890">MAPREDUCE-4890</a>.
     Critical bug reported by Jason Lowe and fixed by Jason Lowe (mr-am)<br>
     <b>Invalid TaskImpl state transitions when task fails while speculating</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4884">MAPREDUCE-4884</a>.
     Major bug reported by Chris Nauroth and fixed by Chris Nauroth (contrib/streaming , test)<br>
     <b>streaming tests fail to start MiniMRCluster due to "Queue configuration missing child queue names for root"</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4861">MAPREDUCE-4861</a>.
     Major bug reported by Karthik Kambatla and fixed by Karthik Kambatla <br>
     <b>Cleanup: Remove unused mapreduce.security.token.DelegationTokenRenewal</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4856">MAPREDUCE-4856</a>.
     Major bug reported by Sandy Ryza and fixed by Sandy Ryza (test)<br>
     <b>TestJobOutputCommitter uses same directory as TestJobCleanup</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4848">MAPREDUCE-4848</a>.
     Major bug reported by Jason Lowe and fixed by Jerry Chen (mr-am)<br>
     <b>TaskAttemptContext cast error during AM recovery</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4845">MAPREDUCE-4845</a>.
     Major improvement reported by Sandy Ryza and fixed by Sandy Ryza (client)<br>
     <b>ClusterStatus.getMaxMemory() and getUsedMemory() exist in MR1 but not MR2 </b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4842">MAPREDUCE-4842</a>.
     Blocker bug reported by Jason Lowe and fixed by Mariappan Asokan (mrv2)<br>
     <b>Shuffle race can hang reducer</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4838">MAPREDUCE-4838</a>.
     Major improvement reported by Arun C Murthy and fixed by Zhijie Shen <br>
     <b>Add extra info to JH files</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4836">MAPREDUCE-4836</a>.
     Major bug reported by Ravi Prakash and fixed by Ravi Prakash <br>
     <b>Elapsed time for running tasks on AM web UI tasks page is 0</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4833">MAPREDUCE-4833</a>.
     Critical bug reported by Robert Joseph Evans and fixed by Robert Parker (applicationmaster , mrv2)<br>
     <b>Task can get stuck in FAIL_CONTAINER_CLEANUP</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4832">MAPREDUCE-4832</a>.
     Critical bug reported by Robert Joseph Evans and fixed by Jason Lowe (applicationmaster)<br>
     <b>MR AM can get in a split brain situation</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4825">MAPREDUCE-4825</a>.
     Major bug reported by Jason Lowe and fixed by Jason Lowe (mr-am)<br>
     <b>JobImpl.finished doesn't expect ERROR as a final job state</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4822">MAPREDUCE-4822</a>.
     Trivial improvement reported by Robert Joseph Evans and fixed by Chu Tong (jobhistoryserver)<br>
     <b>Unnecessary conversions in History Events</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4819">MAPREDUCE-4819</a>.
     Blocker bug reported by Jason Lowe and fixed by Bikas Saha (mr-am)<br>
     <b>AM can rerun job after reporting final job status to the client</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4817">MAPREDUCE-4817</a>.
     Critical bug reported by Jason Lowe and fixed by Thomas Graves (applicationmaster , mr-am)<br>
     <b>Hardcoded task ping timeout kills tasks localizing large amounts of data</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4813">MAPREDUCE-4813</a>.
     Critical bug reported by Jason Lowe and fixed by Jason Lowe (applicationmaster)<br>
     <b>AM timing out during job commit</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4811">MAPREDUCE-4811</a>.
     Minor improvement reported by Ravi Prakash and fixed by Ravi Prakash (jobhistoryserver , mrv2)<br>
     <b>JobHistoryServer should show when it was started in WebUI About page</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4810">MAPREDUCE-4810</a>.
     Minor improvement reported by Jason Lowe and fixed by Jerry Chen (applicationmaster)<br>
     <b>Add admin command options for ApplicationMaster</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4809">MAPREDUCE-4809</a>.
     Major sub-task reported by Arun C Murthy and fixed by Mariappan Asokan <br>
     <b>Change visibility of classes for pluggable sort changes</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4808">MAPREDUCE-4808</a>.
     Major new feature reported by Arun C Murthy and fixed by Mariappan Asokan <br>
     <b>Refactor MapOutput and MergeManager to facilitate reuse by Shuffle implementations</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4807">MAPREDUCE-4807</a>.
     Major sub-task reported by Arun C Murthy and fixed by Mariappan Asokan <br>
     <b>Allow MapOutputBuffer to be pluggable</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4803">MAPREDUCE-4803</a>.
     Minor test reported by Mariappan Asokan and fixed by Mariappan Asokan (test)<br>
     <b>Duplicate copies of TestIndexCache.java</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4802">MAPREDUCE-4802</a>.
     Major improvement reported by Ravi Prakash and fixed by Ravi Prakash (mr-am , mrv2 , webapps)<br>
     <b>Takes a long time to load the task list on the AM for large jobs</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4801">MAPREDUCE-4801</a>.
     Critical bug reported by Jason Lowe and fixed by Jason Lowe <br>
     <b>ShuffleHandler can generate large logs due to prematurely closed channels</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4797">MAPREDUCE-4797</a>.
     Major bug reported by Jason Lowe and fixed by Jason Lowe (applicationmaster)<br>
     <b>LocalContainerAllocator can loop forever trying to contact the RM</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4787">MAPREDUCE-4787</a>.
     Major bug reported by Ravi Prakash and fixed by Robert Parker (test)<br>
     <b>TestJobMonitorAndPrint is broken</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4786">MAPREDUCE-4786</a>.
     Major bug reported by Ravi Prakash and fixed by Ravi Prakash (mrv2)<br>
     <b>Job End Notification retry interval is 5 milliseconds by default</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4782">MAPREDUCE-4782</a>.
     Blocker bug reported by Mark Fuhs and fixed by Mark Fuhs (client)<br>
     <b>NLineInputFormat skips first line of last InputSplit</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4778">MAPREDUCE-4778</a>.
     Major bug reported by Sandy Ryza and fixed by Sandy Ryza (jobtracker , scheduler)<br>
     <b>Fair scheduler event log is only written if directory exists on HDFS</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4777">MAPREDUCE-4777</a>.
     Minor improvement reported by Sandy Ryza and fixed by Sandy Ryza <br>
     <b>In TestIFile, testIFileReaderWithCodec relies on testIFileWriterWithCodec</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4774">MAPREDUCE-4774</a>.
     Major bug reported by Ivan A. Veselovsky and fixed by Jason Lowe (applicationmaster , mrv2)<br>
     <b>JobImpl does not handle asynchronous task events in FAILED state</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4772">MAPREDUCE-4772</a>.
     Critical bug reported by Robert Joseph Evans and fixed by Robert Joseph Evans (mrv2)<br>
     <b>Fetch failures can take way too long for a map to be restarted</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4771">MAPREDUCE-4771</a>.
     Major bug reported by Jason Lowe and fixed by Jason Lowe (mrv2)<br>
     <b>KeyFieldBasedPartitioner not partitioning properly when configured</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4764">MAPREDUCE-4764</a>.
     Major improvement reported by Ivan A. Veselovsky and fixed by  <br>
     <b>repair test org.apache.hadoop.mapreduce.security.TestBinaryTokenFile</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4763">MAPREDUCE-4763</a>.
     Minor improvement reported by Ivan A. Veselovsky and fixed by  <br>
     <b>repair test org.apache.hadoop.mapreduce.security.TestUmbilicalProtocolWithJobToken</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4752">MAPREDUCE-4752</a>.
     Major improvement reported by Robert Joseph Evans and fixed by Robert Joseph Evans (mrv2)<br>
     <b>Reduce MR AM memory usage through String Interning</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4751">MAPREDUCE-4751</a>.
     Major bug reported by Ravi Prakash and fixed by Vinod Kumar Vavilapalli <br>
     <b>AM stuck in KILL_WAIT for days</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4748">MAPREDUCE-4748</a>.
     Blocker bug reported by Robert Joseph Evans and fixed by Jason Lowe (mrv2)<br>
     <b>Invalid event: T_ATTEMPT_SUCCEEDED at SUCCEEDED</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4746">MAPREDUCE-4746</a>.
     Major bug reported by Robert Parker and fixed by Robert Parker (applicationmaster)<br>
     <b>The MR Application Master does not have a config to set environment variables</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4741">MAPREDUCE-4741</a>.
     Minor bug reported by Jason Lowe and fixed by Vinod Kumar Vavilapalli (applicationmaster , mrv2)<br>
     <b>WARN and ERROR messages logged during normal AM shutdown</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4740">MAPREDUCE-4740</a>.
     Blocker bug reported by Robert Joseph Evans and fixed by Robert Joseph Evans (mrv2)<br>
     <b>only .jars can be added to the Distributed Cache classpath</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4736">MAPREDUCE-4736</a>.
     Trivial improvement reported by Brandon Li and fixed by Brandon Li (test)<br>
     <b>Remove obsolete option [-rootDir] from TestDFSIO</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4733">MAPREDUCE-4733</a>.
     Major bug reported by Jason Lowe and fixed by Jason Lowe (applicationmaster , mrv2)<br>
     <b>Reducer can fail to make progress during shuffle if too many reducers complete consecutively</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4730">MAPREDUCE-4730</a>.
     Blocker bug reported by Jason Lowe and fixed by Jason Lowe (applicationmaster , mrv2)<br>
     <b>AM crashes due to OOM while serving up map task completion events</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4729">MAPREDUCE-4729</a>.
     Major bug reported by Thomas Graves and fixed by Vinod Kumar Vavilapalli (jobhistoryserver)<br>
     <b>job history UI not showing all job attempts</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4724">MAPREDUCE-4724</a>.
     Major bug reported by Thomas Graves and fixed by Thomas Graves (jobhistoryserver)<br>
     <b>job history web ui applications page should be sorted to display last app first</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4723">MAPREDUCE-4723</a>.
     Major improvement reported by Sandy Ryza and fixed by Sandy Ryza <br>
     <b>Fix warnings found by findbugs 2</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4721">MAPREDUCE-4721</a>.
     Major bug reported by Ravi Prakash and fixed by Ravi Prakash (jobhistoryserver)<br>
     <b>Task startup time in JHS is same as job startup time.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4720">MAPREDUCE-4720</a>.
     Major bug reported by Robert Joseph Evans and fixed by Ravi Prakash <br>
     <b>Browser thinks History Server main page JS is taking too long</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4712">MAPREDUCE-4712</a>.
     Major bug reported by Vinod Kumar Vavilapalli and fixed by Vinod Kumar Vavilapalli (jobhistoryserver)<br>
     <b>mr-jobhistory-daemon.sh doesn't accept --config</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4705">MAPREDUCE-4705</a>.
     Critical bug reported by Jason Lowe and fixed by Jason Lowe (jobhistoryserver , mrv2)<br>
     <b>Historyserver links expire before the history data does</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4703">MAPREDUCE-4703</a>.
     Major improvement reported by Ahmed Radwan and fixed by Ahmed Radwan (mrv1 , mrv2 , test)<br>
     <b>Add the ability to start the MiniMRClientCluster using the configurations used before it is being stopped.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4681">MAPREDUCE-4681</a>.
     Major bug reported by Arun C Murthy and fixed by Arun C Murthy <br>
     <b>HDFS-3910 broke MR tests</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4678">MAPREDUCE-4678</a>.
     Minor bug reported by Chris McConnell and fixed by Chris McConnell (examples)<br>
     <b>Running the Pentomino example with defaults throws java.lang.NegativeArraySizeException</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4674">MAPREDUCE-4674</a>.
     Minor bug reported by Robert Justice and fixed by Robert Justice <br>
     <b>Hadoop examples secondarysort has a typo "secondarysrot" in the usage</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4666">MAPREDUCE-4666</a>.
     Minor improvement reported by Jason Lowe and fixed by Jason Lowe (jobhistoryserver)<br>
     <b>JVM metrics for history server</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4654">MAPREDUCE-4654</a>.
     Critical bug reported by Colin Patrick McCabe and fixed by Sandy Ryza (test)<br>
     <b>TestDistCp is @ignored</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4637">MAPREDUCE-4637</a>.
     Major bug reported by Tom White and fixed by Mayank Bansal (mrv2)<br>
     <b>Killing an unassigned task attempt causes the job to fail</b><br>
     <blockquote>Handle TaskAttempt diagnostic updates while in the NEW and UNASSIGNED states.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4616">MAPREDUCE-4616</a>.
     Minor improvement reported by Tony Burton and fixed by Tony Burton (documentation)<br>
     <b>Improvement to MultipleOutputs javadocs</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4607">MAPREDUCE-4607</a>.
     Major bug reported by Bikas Saha and fixed by Bikas Saha <br>
     <b>Race condition in ReduceTask completion can result in Task being incorrectly failed</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4596">MAPREDUCE-4596</a>.
     Major task reported by Siddharth Seth and fixed by Siddharth Seth (applicationmaster , mrv2)<br>
     <b>Split StateMachine state from states seen by MRClientProtocol (for Job, Task, TaskAttempt)</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4554">MAPREDUCE-4554</a>.
     Major bug reported by Benoy Antony and fixed by Benoy Antony (job submission , security)<br>
     <b>Job Credentials are not transmitted if security is turned off</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4521">MAPREDUCE-4521</a>.
     Major bug reported by Jason Lowe and fixed by Ravi Prakash (mrv2)<br>
     <b>mapreduce.user.classpath.first incompatibility with 0.20/1.x</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4520">MAPREDUCE-4520</a>.
     Major new feature reported by Arun C Murthy and fixed by Arun C Murthy <br>
     <b>Add experimental support for MR AM to schedule CPUs along-with memory</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4517">MAPREDUCE-4517</a>.
     Minor improvement reported by James Kinley and fixed by Jason Lowe (applicationmaster)<br>
     <b>Too many INFO messages written out during AM to RM heartbeat</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4479">MAPREDUCE-4479</a>.
     Major bug reported by Mariappan Asokan and fixed by Mariappan Asokan (test)<br>
     <b>Fix parameter order in assertEquals() in TestCombineInputFileFormat.java</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4458">MAPREDUCE-4458</a>.
     Major improvement reported by Robert Joseph Evans and fixed by Robert Parker (mrv2)<br>
     <b>Warn if java.library.path is used for AM or Task</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4425">MAPREDUCE-4425</a>.
     Critical bug reported by Siddharth Seth and fixed by Jason Lowe (mrv2)<br>
     <b>Speculation + Fetch failures can lead to a hung job</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4279">MAPREDUCE-4279</a>.
     Major bug reported by Rahul Jain and fixed by Devaraj K (jobtracker)<br>
     <b>getClusterStatus() fails with null pointer exception when running jobs in local mode</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4278">MAPREDUCE-4278</a>.
     Major bug reported by Araceli Henley and fixed by Sandy Ryza <br>
     <b>cannot run two local jobs in parallel from the same gateway.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4272">MAPREDUCE-4272</a>.
     Major bug reported by Luke Lu and fixed by Yu Gao (task)<br>
     <b>SortedRanges.Range#compareTo is not spec compliant</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4266">MAPREDUCE-4266</a>.
     Major task reported by Alejandro Abdelnur and fixed by Alejandro Abdelnur (build)<br>
     <b>remove Ant remnants from MR</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4229">MAPREDUCE-4229</a>.
     Major improvement reported by Todd Lipcon and fixed by Miomir Boljanovic (jobtracker)<br>
     <b>Counter names' memory usage can be decreased by interning</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4123">MAPREDUCE-4123</a>.
     Critical bug reported by Nishan Shetty and fixed by Devaraj K (mrv2)<br>
     <b>./mapred groups gives NoClassDefFoundError</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4049">MAPREDUCE-4049</a>.
     Major sub-task reported by Avner BenHanoch and fixed by Avner BenHanoch (performance , task , tasktracker)<br>
     <b>plugin for generic shuffle service</b><br>
     <blockquote>Allow ReduceTask loading a third party plugin for shuffle (and merge) instead of the default shuffle.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3678">MAPREDUCE-3678</a>.
     Major new feature reported by Bejoy KS and fixed by Harsh J (mrv1 , mrv2)<br>
     <b>The Map tasks logs should have the value of input split it processed</b><br>
     <blockquote>A map-task's syslogs now carries basic info on the InputSplit it processed.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2454">MAPREDUCE-2454</a>.
     Minor new feature reported by Mariappan Asokan and fixed by Mariappan Asokan <br>
     <b>Allow external sorter plugin for MR</b><br>
     <blockquote>MAPREDUCE-4807 Allow external implementations of the sort phase in a Map task</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2264">MAPREDUCE-2264</a>.
     Major bug reported by Adam Kramer and fixed by Devaraj K (jobtracker)<br>
     <b>Job status exceeds 100% in some cases </b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-1806">MAPREDUCE-1806</a>.
     Major bug reported by Paul Yang and fixed by Gera Shegalov (harchive)<br>
     <b>CombineFileInputFormat does not work with paths not on default FS</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-1700">MAPREDUCE-1700</a>.
     Major bug reported by Tom White and fixed by Tom White (task)<br>
     <b>User supplied dependencies may conflict with MapReduce system JARs</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4468">HDFS-4468</a>.
     Minor bug reported by Tsz Wo (Nicholas), SZE and fixed by Tsz Wo (Nicholas), SZE <br>
     <b>Fix TestHDFSCLI and TestQuota for HADOOP-9252</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4462">HDFS-4462</a>.
     Major bug reported by Aaron T. Myers and fixed by Aaron T. Myers (namenode)<br>
     <b>2NN will fail to checkpoint after an HDFS upgrade from a pre-federation version of HDFS</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4458">HDFS-4458</a>.
     Major bug reported by wenwupeng and fixed by Binglin Chang (balancer)<br>
     <b>start balancer failed with "Failed to create file [/system/balancer.id]"  if configure IP on fs.defaultFS</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4456">HDFS-4456</a>.
     Major new feature reported by Tsz Wo (Nicholas), SZE and fixed by Plamen Jeliazkov (webhdfs)<br>
     <b>Add concat to HttpFS and WebHDFS REST API docs</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4452">HDFS-4452</a>.
     Critical bug reported by Konstantin Shvachko and fixed by Konstantin Shvachko (namenode)<br>
     <b>getAdditionalBlock() can create multiple blocks if the client times out and retries.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4451">HDFS-4451</a>.
     Major bug reported by Joshua Blatt and fixed by  (balancer)<br>
     <b>hdfs balancer command returns exit code 1 on success instead of 0</b><br>
     <blockquote>This is an incompatible change from release 2.0.2-alpha and prior releases. Balancer tool exited with exit code 1 on success. It is changed to exit with exit code 0 on success. Non 0 exit code indicates failure.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4445">HDFS-4445</a>.
     Blocker sub-task reported by Vinay and fixed by Vinay <br>
     <b>All BKJM ledgers are not checked while tailing, So failover will fail.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4444">HDFS-4444</a>.
     Trivial bug reported by Stephen Chu and fixed by Stephen Chu <br>
     <b>Add space between total transaction time and number of transactions in FSEditLog#printStatistics</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4443">HDFS-4443</a>.
     Trivial bug reported by Christian Rohling and fixed by Christian Rohling (namenode)<br>
     <b>Remove trailing '`' character from HDFS nodelist jsp</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4428">HDFS-4428</a>.
     Minor bug reported by Colin Patrick McCabe and fixed by Colin Patrick McCabe <br>
     <b>FsDatasetImpl should disclose what the error is when a rename fails</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4426">HDFS-4426</a>.
     Blocker bug reported by Jason Lowe and fixed by Arpit Agarwal (namenode)<br>
     <b>Secondary namenode shuts down immediately after startup</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4415">HDFS-4415</a>.
     Major bug reported by Robert Kanter and fixed by Robert Kanter <br>
     <b>HostnameFilter should handle hostname resolution failures and continue processing</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4404">HDFS-4404</a>.
     Critical bug reported by liaowenrui and fixed by Todd Lipcon (ha , hdfs-client)<br>
     <b>Create file failure when the machine of first attempted NameNode is down</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4403">HDFS-4403</a>.
     Minor bug reported by Todd Lipcon and fixed by Todd Lipcon (hdfs-client)<br>
     <b>DFSClient can infer checksum type when not provided by reading first byte</b><br>
     <blockquote>The HDFS implementation of getFileChecksum() can now operate correctly against earlier-version datanodes which do not include the checksum type information in their checksum response. The checksum type is automatically inferred by issuing a read of the first byte of each block.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4393">HDFS-4393</a>.
     Minor improvement reported by Brandon Li and fixed by Brandon Li <br>
     <b>Empty request and responses in protocol translators can be static final members</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4392">HDFS-4392</a>.
     Trivial improvement reported by Andrew Purtell and fixed by Andrew Purtell (test)<br>
     <b>Use NetUtils#getFreeSocketPort in MiniDFSCluster</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4385">HDFS-4385</a>.
     Critical bug reported by Thomas Graves and fixed by Thomas Graves (build)<br>
     <b>Maven RAT plugin is not checking all source files</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4384">HDFS-4384</a>.
     Minor bug reported by Colin Patrick McCabe and fixed by Colin Patrick McCabe (libhdfs)<br>
     <b>test_libhdfs_threaded gets SEGV if JNIEnv cannot be initialized</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4381">HDFS-4381</a>.
     Major improvement reported by Jing Zhao and fixed by Jing Zhao (namenode)<br>
     <b> Document fsimage format details in FSImageFormat class javadoc</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4377">HDFS-4377</a>.
     Trivial bug reported by Eli Collins and fixed by Eli Collins <br>
     <b>Some trivial DN comment cleanup</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4375">HDFS-4375</a>.
     Major improvement reported by Suresh Srinivas and fixed by Suresh Srinivas (namenode , security)<br>
     <b>Use token request messages defined in hadoop common</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4369">HDFS-4369</a>.
     Blocker bug reported by Suresh Srinivas and fixed by Suresh Srinivas (namenode)<br>
     <b>GetBlockKeysResponseProto does not handle null response</b><br>
     <blockquote>Protobuf message GetBlockKeysResponseProto member keys is made optional from required so that null values can be passed over the wire. This is an incompatible wire protocol change and does not affect the API backward compatibility.
</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4367">HDFS-4367</a>.
     Blocker bug reported by Suresh Srinivas and fixed by Suresh Srinivas (namenode)<br>
     <b>GetDataEncryptionKeyResponseProto  does not handle null response</b><br>
     <blockquote>Member dataEncryptionKey of the protobuf message GetDataEncryptionKeyResponseProto is made optional instead of required. This is incompatible change is not likely to affect the existing users (that are using HDFS FileSystem and other public APIs). </blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4364">HDFS-4364</a>.
     Blocker bug reported by Suresh Srinivas and fixed by Suresh Srinivas <br>
     <b>GetLinkTargetResponseProto does not handle null path</b><br>
     <blockquote>Protobuf message GetLinkTargetResponseProto member targetPath is made optional from required so that null values can be passed over the wire. This is an incompatible wire protocol change and does not affect the API backward compatibility.
</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4363">HDFS-4363</a>.
     Major bug reported by Suresh Srinivas and fixed by Suresh Srinivas <br>
     <b>Combine PBHelper and HdfsProtoUtil and remove redundant methods</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4362">HDFS-4362</a>.
     Critical bug reported by Suresh Srinivas and fixed by Suresh Srinivas <br>
     <b>GetDelegationTokenResponseProto does not handle null token</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4359">HDFS-4359</a>.
     Major bug reported by Liang Xie and fixed by Liang Xie (datanode)<br>
     <b>remove an unnecessary synchronized keyword in BPOfferService.java</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4351">HDFS-4351</a>.
     Major bug reported by Andrew Wang and fixed by Andrew Wang (namenode)<br>
     <b>Fix BlockPlacementPolicyDefault#chooseTarget when avoiding stale nodes</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4350">HDFS-4350</a>.
     Major bug reported by Andrew Wang and fixed by Andrew Wang <br>
     <b>Make enabling of stale marking on read and write paths independent</b><br>
     <blockquote>This patch makes an incompatible configuration change, as described below:
In releases 1.1.0 and other point releases 1.1.x, the configuration parameter "dfs.namenode.check.stale.datanode" could be used to turn on checking for the stale nodes. This configuration is no longer supported in release 1.2.0 onwards and is renamed as "dfs.namenode.avoid.read.stale.datanode". 

How feature works and configuring this feature:
As described in HDFS-3703 release notes, datanode stale period can be configured using parameter "dfs.namenode.stale.datanode.interval" in seconds (default value is 30 seconds). NameNode can be configured to use this staleness information for reads using configuration "dfs.namenode.avoid.read.stale.datanode". When this parameter is set to true, namenode picks a stale datanode as the last target to read from when returning block locations for reads. Using staleness information for writes is as described in the releases notes of HDFS-3912.
</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4349">HDFS-4349</a>.
     Major test reported by Konstantin Shvachko and fixed by Konstantin Shvachko (namenode , test)<br>
     <b>Test reading files from BackupNode</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4347">HDFS-4347</a>.
     Major bug reported by Konstantin Shvachko and fixed by Plamen Jeliazkov (namenode , test)<br>
     <b>TestBackupNode can go into infinite loop "Waiting checkpoint to complete."</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4344">HDFS-4344</a>.
     Major bug reported by tamtam180 and fixed by Andy Isaacson (namenode)<br>
     <b>dfshealth.jsp throws NumberFormatException when dfs.hosts/dfs.hosts.exclude includes port number</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4326">HDFS-4326</a>.
     Major task reported by Alejandro Abdelnur and fixed by Alejandro Abdelnur <br>
     <b>bump up Tomcat version for HttpFS to 6.0.36</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4315">HDFS-4315</a>.
     Major bug reported by Aaron T. Myers and fixed by Aaron T. Myers (datanode)<br>
     <b>DNs with multiple BPs can have BPOfferServices fail to start due to unsynchronized map access</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4308">HDFS-4308</a>.
     Major bug reported by Konstantin Shvachko and fixed by Plamen Jeliazkov (namenode)<br>
     <b>addBlock() should persist file blocks once</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4307">HDFS-4307</a>.
     Minor bug reported by Colin Patrick McCabe and fixed by Colin Patrick McCabe <br>
     <b>SocketCache should use monotonic time</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4306">HDFS-4306</a>.
     Major bug reported by Binglin Chang and fixed by Binglin Chang <br>
     <b>PBHelper.convertLocatedBlock miss convert BlockToken</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4302">HDFS-4302</a>.
     Major bug reported by Eugene Koontz and fixed by Eugene Koontz (ha , namenode)<br>
     <b>Precondition in EditLogFileInputStream's length() method is checked too early in NameNode startup, causing fatal exception</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4295">HDFS-4295</a>.
     Major bug reported by Stephen Chu and fixed by Stephen Chu (security)<br>
     <b>Using port 1023 should be valid when starting Secure DataNode</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4294">HDFS-4294</a>.
     Major bug reported by Robert Parker and fixed by Robert Parker <br>
     <b>Backwards compatibility is not maintained for TestVolumeId</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4292">HDFS-4292</a>.
     Minor bug reported by Binglin Chang and fixed by Binglin Chang <br>
     <b>Sanity check not correct in RemoteBlockReader2.newBlockReader</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4291">HDFS-4291</a>.
     Minor bug reported by Colin Patrick McCabe and fixed by Colin Patrick McCabe <br>
     <b>edit log unit tests leave stray test_edit_log_file around</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4288">HDFS-4288</a>.
     Critical bug reported by Daryn Sharp and fixed by Daryn Sharp (namenode)<br>
     <b>NN accepts incremental BR as IBR in safemode</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4282">HDFS-4282</a>.
     Major bug reported by Junping Du and fixed by Todd Lipcon (namenode , test)<br>
     <b>TestEditLog.testFuzzSequences FAILED in all pre-commit test</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4279">HDFS-4279</a>.
     Minor bug reported by Colin Patrick McCabe and fixed by Colin Patrick McCabe (namenode)<br>
     <b>NameNode does not initialize generic conf keys when started with -recover</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4274">HDFS-4274</a>.
     Minor bug reported by Chris Nauroth and fixed by Chris Nauroth (datanode)<br>
     <b>BlockPoolSliceScanner does not close verification log during shutdown</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4270">HDFS-4270</a>.
     Minor bug reported by Derek Dagit and fixed by Derek Dagit (namenode)<br>
     <b>Replications of the highest priority should be allowed to choose a source datanode that has reached its max replication limit</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4268">HDFS-4268</a>.
     Major bug reported by Konstantin Shvachko and fixed by Konstantin Shvachko (namenode)<br>
     <b>Remove redundant enum NNHAStatusHeartbeat.State</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4259">HDFS-4259</a>.
     Minor improvement reported by Harsh J and fixed by Harsh J (hdfs-client)<br>
     <b>Improve pipeline DN replacement failure message</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4247">HDFS-4247</a>.
     Blocker sub-task reported by Daryn Sharp and fixed by Daryn Sharp (namenode)<br>
     <b>saveNamespace should be tolerant of dangling lease</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4242">HDFS-4242</a>.
     Major bug reported by Tsz Wo (Nicholas), SZE and fixed by Tsz Wo (Nicholas), SZE (namenode)<br>
     <b>Map.Entry is incorrectly used in LeaseManager</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4238">HDFS-4238</a>.
     Major bug reported by Vinay and fixed by Todd Lipcon (ha)<br>
     <b>[HA] Standby namenode should not do purging of shared storage edits.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4236">HDFS-4236</a>.
     Blocker bug reported by Allen Wittenauer and fixed by Alejandro Abdelnur <br>
     <b>Regression: HDFS-4171 puts artificial limit on username length</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4232">HDFS-4232</a>.
     Blocker bug reported by Daryn Sharp and fixed by Daryn Sharp (namenode)<br>
     <b>NN fails to write a fsimage with stale leases</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4231">HDFS-4231</a>.
     Major improvement reported by Konstantin Shvachko and fixed by Konstantin Shvachko (ha , namenode)<br>
     <b>Introduce HAState for BackupNode</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4216">HDFS-4216</a>.
     Major bug reported by Tsz Wo (Nicholas), SZE and fixed by Tsz Wo (Nicholas), SZE (namenode)<br>
     <b>Adding symlink should not ignore QuotaExceededException</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4214">HDFS-4214</a>.
     Trivial improvement reported by Colin Patrick McCabe and fixed by Colin Patrick McCabe (tools)<br>
     <b>OfflineEditsViewer should print out the offset at which it encountered an error</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4213">HDFS-4213</a>.
     Major new feature reported by Jing Zhao and fixed by Jing Zhao (hdfs-client , namenode)<br>
     <b>When the client calls hsync, allows the client to update the file length in the NameNode</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4199">HDFS-4199</a>.
     Minor test reported by Ivan A. Veselovsky and fixed by Ivan A. Veselovsky <br>
     <b>Provide test for HdfsVolumeId</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4186">HDFS-4186</a>.
     Critical bug reported by Kihwal Lee and fixed by Kihwal Lee (namenode)<br>
     <b>logSync() is called with the write lock held while releasing lease</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4182">HDFS-4182</a>.
     Critical bug reported by Todd Lipcon and fixed by Robert Joseph Evans (namenode)<br>
     <b>SecondaryNameNode leaks NameCache entries</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4181">HDFS-4181</a>.
     Critical bug reported by Kihwal Lee and fixed by Kihwal Lee (namenode)<br>
     <b>LeaseManager tries to double remove and prints extra messages</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4179">HDFS-4179</a>.
     Major bug reported by Konstantin Shvachko and fixed by Konstantin Shvachko (namenode)<br>
     <b>BackupNode: allow reads, fix checkpointing, safeMode</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4178">HDFS-4178</a>.
     Major bug reported by Andy Isaacson and fixed by Andy Isaacson (scripts)<br>
     <b>shell scripts should not close stderr</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4172">HDFS-4172</a>.
     Minor bug reported by Derek Dagit and fixed by Derek Dagit (namenode)<br>
     <b>namenode does not URI-encode parameters when building URI for datanode request</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4171">HDFS-4171</a>.
     Major bug reported by Harsh J and fixed by Alejandro Abdelnur <br>
     <b>WebHDFS and HttpFs should accept only valid Unix user names</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4164">HDFS-4164</a>.
     Minor bug reported by Colin Patrick McCabe and fixed by Colin Patrick McCabe (fuse-dfs)<br>
     <b>fuse_dfs: add -lrt to the compiler command line on Linux</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4162">HDFS-4162</a>.
     Minor bug reported by Derek Dagit and fixed by Derek Dagit (datanode)<br>
     <b>Some malformed and unquoted HTML strings are returned from datanode web ui</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4156">HDFS-4156</a>.
     Major bug reported by Eli Collins and fixed by Eli Reisman <br>
     <b>Seeking to a negative position should throw an IOE</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4155">HDFS-4155</a>.
     Major improvement reported by Liang Xie and fixed by Liang Xie (libhdfs)<br>
     <b>libhdfs implementation of hsync API</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4153">HDFS-4153</a>.
     Major improvement reported by Liang Xie and fixed by Liang Xie (journal-node)<br>
     <b>Add START_MSG/SHUTDOWN_MSG for JournalNode</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4143">HDFS-4143</a>.
     Minor improvement reported by Tsz Wo (Nicholas), SZE and fixed by Tsz Wo (Nicholas), SZE (namenode)<br>
     <b>Change INodeFile.blocks to private</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4140">HDFS-4140</a>.
     Major bug reported by Andy Isaacson and fixed by Colin Patrick McCabe (fuse-dfs)<br>
     <b>fuse-dfs handles open(O_TRUNC) poorly</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4139">HDFS-4139</a>.
     Major bug reported by Andy Isaacson and fixed by Colin Patrick McCabe (fuse-dfs)<br>
     <b>fuse-dfs RO mode still allows file truncation</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4132">HDFS-4132</a>.
     Major bug reported by Colin Patrick McCabe and fixed by Colin Patrick McCabe (libhdfs)<br>
     <b>when libwebhdfs is not enabled, nativeMiniDfsClient frees uninitialized memory </b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4130">HDFS-4130</a>.
     Major sub-task reported by Han Xiao and fixed by Han Xiao (ha , performance)<br>
     <b>BKJM: The reading for editlog at NN starting using bkjm  is not efficient</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4127">HDFS-4127</a>.
     Minor bug reported by Junping Du and fixed by Junping Du (namenode)<br>
     <b>Log message is not correct in case of short of replica</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4122">HDFS-4122</a>.
     Major bug reported by Suresh Srinivas and fixed by Suresh Srinivas (datanode , hdfs-client , namenode)<br>
     <b>Cleanup HDFS logs and reduce the size of logged messages</b><br>
     <blockquote>The change from this jira changes the content of some of the log messages. No log message are removed. Only the content of the log messages is changed to reduce the size. If you have a tool that depends on the exact content of the log, please look at the patch and make appropriate updates to the tool.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4121">HDFS-4121</a>.
     Minor improvement reported by Binglin Chang and fixed by Binglin Chang <br>
     <b>Add namespace declarations in hdfs .proto files for languages other than java</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4112">HDFS-4112</a>.
     Major bug reported by Tsz Wo (Nicholas), SZE and fixed by Tsz Wo (Nicholas), SZE (namenode)<br>
     <b>A few improvements on INodeDirectory</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4110">HDFS-4110</a>.
     Trivial improvement reported by Liang Xie and fixed by Liang Xie (journal-node)<br>
     <b>Refine JNStorage log</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4107">HDFS-4107</a>.
     Major bug reported by Tsz Wo (Nicholas), SZE and fixed by Tsz Wo (Nicholas), SZE (namenode)<br>
     <b>Add utility methods to cast INode to INodeFile and INodeFileUnderConstruction</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4106">HDFS-4106</a>.
     Minor bug reported by Jing Zhao and fixed by Jing Zhao (namenode , test)<br>
     <b>BPServiceActor#lastHeartbeat, lastBlockReport and lastDeletedReport should be declared as volatile</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4105">HDFS-4105</a>.
     Major bug reported by Arpit Gupta and fixed by Arpit Gupta <br>
     <b>the SPNEGO user for secondary namenode should use the web keytab</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4104">HDFS-4104</a>.
     Minor bug reported by Andy Isaacson and fixed by Andy Isaacson <br>
     <b>dfs -test -d prints inappropriate error on nonexistent directory</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4100">HDFS-4100</a>.
     Major sub-task reported by Liang Xie and fixed by Liang Xie (datanode , journal-node , security)<br>
     <b>Fix all findbug security warings</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4099">HDFS-4099</a>.
     Minor bug reported by Tsz Wo (Nicholas), SZE and fixed by Tsz Wo (Nicholas), SZE (namenode)<br>
     <b>Clean up replication code and add more javadoc</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4090">HDFS-4090</a>.
     Critical bug reported by Kihwal Lee and fixed by Kihwal Lee (hdfs-client)<br>
     <b>getFileChecksum() result incompatible when called against zero-byte files.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4088">HDFS-4088</a>.
     Minor improvement reported by Tsz Wo (Nicholas), SZE and fixed by Tsz Wo (Nicholas), SZE (namenode)<br>
     <b>Remove "throws QuotaExceededException" from an INodeDirectoryWithQuota constructor</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4080">HDFS-4080</a>.
     Major bug reported by Kihwal Lee and fixed by Kihwal Lee (namenode)<br>
     <b>Add a separate logger for block state change logs to enable turning off those logs</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4075">HDFS-4075</a>.
     Critical bug reported by Kihwal Lee and fixed by Kihwal Lee (namenode)<br>
     <b>Reduce recommissioning overhead</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4074">HDFS-4074</a>.
     Trivial improvement reported by Brandon Li and fixed by Brandon Li (namenode)<br>
     <b>Remove empty constructors for INode</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4073">HDFS-4073</a>.
     Minor improvement reported by Tsz Wo (Nicholas), SZE and fixed by Jing Zhao (namenode)<br>
     <b>Two minor improvements to FSDirectory</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4072">HDFS-4072</a>.
     Minor bug reported by Jing Zhao and fixed by Jing Zhao (namenode)<br>
     <b>On file deletion remove corresponding blocks pending replication</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4068">HDFS-4068</a>.
     Minor improvement reported by Eli Collins and fixed by Eli Collins (datanode)<br>
     <b>DatanodeID and DatanodeInfo member should be private</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4061">HDFS-4061</a>.
     Major bug reported by Eli Collins and fixed by Eli Collins <br>
     <b>TestBalancer and TestUnderReplicatedBlocks need timeouts</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4059">HDFS-4059</a>.
     Minor sub-task reported by Jing Zhao and fixed by Jing Zhao (datanode , namenode)<br>
     <b>Add number of stale DataNodes to metrics</b><br>
     <blockquote>This jira adds a new metric with name "StaleDataNodes" under metrics context "dfs" of type Gauge. This tracks the number of DataNodes marked as stale. A DataNode is marked stale when the heartbeat message from the DataNode is not received within the configured time ""dfs.namenode.stale.datanode.interval". 


Please see hdfs-default.xml documentation corresponding to ""dfs.namenode.stale.datanode.interval"  for more details on how to configure this feature. When this feature is not configured, this metrics would return zero.
</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4058">HDFS-4058</a>.
     Major improvement reported by Eli Collins and fixed by Eli Collins (datanode)<br>
     <b>DirectoryScanner may fail with IOOB if the directory scanning threads return out of volume order</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4055">HDFS-4055</a>.
     Major bug reported by Binglin Chang and fixed by Binglin Chang <br>
     <b>TestAuditLogs is flaky</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4049">HDFS-4049</a>.
     Critical bug reported by Todd Lipcon and fixed by Todd Lipcon (datanode , performance)<br>
     <b>hflush performance regression due to nagling delays</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4048">HDFS-4048</a>.
     Major improvement reported by Stephen Chu and fixed by Stephen Chu <br>
     <b>Use ERROR instead of INFO for volume failure logs</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4046">HDFS-4046</a>.
     Minor bug reported by Binglin Chang and fixed by Binglin Chang (datanode , namenode)<br>
     <b>ChecksumTypeProto use NULL as enum value which is illegal in C/C++</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4044">HDFS-4044</a>.
     Major bug reported by Binglin Chang and fixed by Binglin Chang (datanode)<br>
     <b>Duplicate ChecksumType definition in HDFS .proto files</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4041">HDFS-4041</a>.
     Major improvement reported by Chris Nauroth and fixed by Chris Nauroth (build)<br>
     <b>Hadoop HDFS Maven protoc calls must not depend on external sh script</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4038">HDFS-4038</a>.
     Minor sub-task reported by Vinay and fixed by Vinay (ha)<br>
     <b>Override toString() for BookKeeperEditLogInputStream</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4037">HDFS-4037</a>.
     Major improvement reported by Tsz Wo (Nicholas), SZE and fixed by Tsz Wo (Nicholas), SZE (namenode)<br>
     <b>Rename the getReplication() method in BlockCollection to getBlockReplication()</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4036">HDFS-4036</a>.
     Major bug reported by Tsz Wo (Nicholas), SZE and fixed by Jing Zhao (namenode)<br>
     <b>FSDirectory.unprotectedAddFile(..) should not throw UnresolvedLinkException</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4035">HDFS-4035</a>.
     Major sub-task reported by Eli Collins and fixed by Eli Collins <br>
     <b>LightWeightGSet and LightWeightHashSet increment a volatile without synchronization</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4034">HDFS-4034</a>.
     Major sub-task reported by Eli Collins and fixed by Eli Collins <br>
     <b>Remove redundant null checks</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4033">HDFS-4033</a>.
     Major sub-task reported by Eli Collins and fixed by Eli Collins <br>
     <b>Miscellaneous findbugs 2 fixes</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4032">HDFS-4032</a>.
     Major sub-task reported by Eli Collins and fixed by Eli Collins <br>
     <b>Specify the charset explicitly rather than rely on the default</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4031">HDFS-4031</a>.
     Major sub-task reported by Eli Collins and fixed by Eli Collins (namenode)<br>
     <b>Update findbugsExcludeFile.xml to include findbugs 2 exclusions</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4030">HDFS-4030</a>.
     Major sub-task reported by Eli Collins and fixed by Eli Collins (namenode)<br>
     <b>BlockManager excessBlocksCount and postponedMisreplicatedBlocksCount should be AtomicLongs</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4029">HDFS-4029</a>.
     Major sub-task reported by Eli Collins and fixed by Eli Collins (namenode)<br>
     <b>GenerationStamp should use an AtomicLong </b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4022">HDFS-4022</a>.
     Blocker bug reported by suja s and fixed by Vinay <br>
     <b>Replication not happening for appended block</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4021">HDFS-4021</a>.
     Minor bug reported by Colin Patrick McCabe and fixed by Christopher Conner (namenode)<br>
     <b>Misleading error message when resources are low on the NameNode</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4020">HDFS-4020</a>.
     Major bug reported by Eli Collins and fixed by Eli Collins <br>
     <b>TestRBWBlockInvalidation may time out</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4018">HDFS-4018</a>.
     Minor bug reported by Eli Collins and fixed by Eli Collins <br>
     <b>TestDataNodeMultipleRegistrations#testMiniDFSClusterWithMultipleNN is missing some cluster cleanup</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4008">HDFS-4008</a>.
     Minor improvement reported by Eli Collins and fixed by Eli Collins (test)<br>
     <b>TestBalancerWithEncryptedTransfer needs a timeout</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4007">HDFS-4007</a>.
     Minor test reported by Colin Patrick McCabe and fixed by Colin Patrick McCabe (test)<br>
     <b>Rehabilitate bit-rotted unit tests under hadoop-hdfs-project/hadoop-hdfs/src/test/unit/</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4006">HDFS-4006</a>.
     Major bug reported by Eli Collins and fixed by Todd Lipcon (namenode)<br>
     <b>TestCheckpoint#testSecondaryHasVeryOutOfDateImage occasionally fails due to unexpected exit</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4000">HDFS-4000</a>.
     Major improvement reported by Eli Collins and fixed by Colin Patrick McCabe <br>
     <b>TestParallelLocalRead fails with "input ByteBuffers must be direct buffers"</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3999">HDFS-3999</a>.
     Major bug reported by Alejandro Abdelnur and fixed by Alejandro Abdelnur <br>
     <b>HttpFS OPEN operation expects len parameter, it should be length</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3997">HDFS-3997</a>.
     Trivial bug reported by Mithun Radhakrishnan and fixed by Mithun Radhakrishnan (namenode)<br>
     <b>OfflineImageViewer incorrectly passes value of imageVersion when visiting IS_COMPRESSED element</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3996">HDFS-3996</a>.
     Minor bug reported by Eli Collins and fixed by Eli Collins <br>
     <b>Add debug log removed in HDFS-3873 back</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3992">HDFS-3992</a>.
     Minor bug reported by Ivan A. Veselovsky and fixed by Ivan A. Veselovsky <br>
     <b>Method org.apache.hadoop.hdfs.TestHftpFileSystem.tearDown() sometimes throws NPEs</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3990">HDFS-3990</a>.
     Critical bug reported by Daryn Sharp and fixed by Daryn Sharp (namenode)<br>
     <b>NN's health report has severe performance problems</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3985">HDFS-3985</a>.
     Major bug reported by Eli Collins and fixed by  (test)<br>
     <b>Add timeouts to TestMulitipleNNDataBlockScanner</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3979">HDFS-3979</a>.
     Major bug reported by Lars Hofhansl and fixed by Lars Hofhansl (datanode)<br>
     <b>Fix hsync semantics</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3970">HDFS-3970</a>.
     Major bug reported by Vinay and fixed by Andrew Wang (datanode)<br>
     <b>BlockPoolSliceStorage#doRollback(..) should use BlockPoolSliceStorage instead of DataStorage to read prev version file.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3964">HDFS-3964</a>.
     Minor bug reported by Eli Collins and fixed by Eli Collins (namenode)<br>
     <b>Make NN log of fs.defaultFS debug rather than info</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3957">HDFS-3957</a>.
     Minor improvement reported by Andrew Wang and fixed by Andrew Wang <br>
     <b>Change MutableQuantiles to use a shared thread for rolling over metrics</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3951">HDFS-3951</a>.
     Major bug reported by Alejandro Abdelnur and fixed by Alejandro Abdelnur (datanode)<br>
     <b>datanode web ui does not work over HTTPS when datanode is started in secure mode</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3949">HDFS-3949</a>.
     Minor bug reported by Eli Collins and fixed by Eli Collins (namenode)<br>
     <b>NameNodeRpcServer#join should join on both client and server RPC servers</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3948">HDFS-3948</a>.
     Minor bug reported by Eli Collins and fixed by Jing Zhao (test)<br>
     <b>TestWebHDFS#testNamenodeRestart occasionally fails</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3944">HDFS-3944</a>.
     Major task reported by Alejandro Abdelnur and fixed by Alejandro Abdelnur <br>
     <b>Httpfs resolveAuthority() is not resolving host correctly</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3939">HDFS-3939</a>.
     Minor improvement reported by Eli Collins and fixed by Eli Collins (namenode)<br>
     <b>NN RPC address cleanup</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3938">HDFS-3938</a>.
     Major bug reported by Alejandro Abdelnur and fixed by Alejandro Abdelnur (documentation)<br>
     <b>remove current limitations from HttpFS docs</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3936">HDFS-3936</a>.
     Major bug reported by Eli Collins and fixed by Eli Collins <br>
     <b>MiniDFSCluster shutdown races with BlocksMap usage</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3935">HDFS-3935</a>.
     Major sub-task reported by Eli Collins and fixed by Andy Isaacson <br>
     <b>QJM: Add JournalNode to the start / stop scripts </b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3932">HDFS-3932</a>.
     Major bug reported by Eli Collins and fixed by Eli Collins <br>
     <b>NameNode Web UI broken if the rpc-address is set to the wildcard   </b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3931">HDFS-3931</a>.
     Minor bug reported by Eli Collins and fixed by Andy Isaacson (test)<br>
     <b>TestDatanodeBlockScanner#testBlockCorruptionPolicy2 is broken</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3925">HDFS-3925</a>.
     Minor improvement reported by Andrew Wang and fixed by Andrew Wang <br>
     <b>Prettify PipelineAck#toString() for printing to a log</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3924">HDFS-3924</a>.
     Major bug reported by Andrew Wang and fixed by Andrew Wang (hdfs-client)<br>
     <b>Multi-byte id in HdfsVolumeId</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3923">HDFS-3923</a>.
     Major sub-task reported by Jing Zhao and fixed by Jing Zhao <br>
     <b>libwebhdfs testing code cleanup</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3921">HDFS-3921</a>.
     Major bug reported by Stephen Chu and fixed by Aaron T. Myers <br>
     <b>NN will prematurely consider blocks missing when entering active state while still in safe mode</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3920">HDFS-3920</a>.
     Major sub-task reported by Jing Zhao and fixed by Jing Zhao <br>
     <b>libwebdhfs code cleanup: string processing and using strerror consistently to handle all errors</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3919">HDFS-3919</a>.
     Minor bug reported by Andy Isaacson and fixed by Andy Isaacson (test)<br>
     <b>MiniDFSCluster:waitClusterUp can hang forever</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3916">HDFS-3916</a>.
     Major bug reported by Colin Patrick McCabe and fixed by Colin Patrick McCabe (webhdfs)<br>
     <b>libwebhdfs (C client) code cleanups</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3912">HDFS-3912</a>.
     Major sub-task reported by Jing Zhao and fixed by Jing Zhao <br>
     <b>Detecting and avoiding stale datanodes for writing</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3910">HDFS-3910</a>.
     Minor improvement reported by Eli Collins and fixed by Eli Collins (test)<br>
     <b>DFSTestUtil#waitReplication should timeout</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3896">HDFS-3896</a>.
     Minor improvement reported by Jeff Lord and fixed by Jeff Lord <br>
     <b>Add descriptions for dfs.namenode.rpc-address and dfs.namenode.servicerpc-address to hdfs-default.xml</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3831">HDFS-3831</a>.
     Critical bug reported by Jason Lowe and fixed by Jason Lowe (security)<br>
     <b>Failure to renew tokens due to test-sources left in classpath</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3829">HDFS-3829</a>.
     Major bug reported by Trevor Robinson and fixed by Trevor Robinson (test)<br>
     <b>TestHftpURLTimeouts fails intermittently with JDK7</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3824">HDFS-3824</a>.
     Major bug reported by Trevor Robinson and fixed by Trevor Robinson (test)<br>
     <b>TestHftpDelegationToken fails intermittently with JDK7</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3813">HDFS-3813</a>.
     Major improvement reported by Stephen Chu and fixed by Stephen Chu (security , webhdfs)<br>
     <b>Log error message if security and WebHDFS are enabled but principal/keytab are not configured</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3810">HDFS-3810</a>.
     Major sub-task reported by Ivan Kelly and fixed by Ivan Kelly <br>
     <b>Implement format() for BKJM</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3809">HDFS-3809</a>.
     Major sub-task reported by Ivan Kelly and fixed by Ivan Kelly (namenode)<br>
     <b>Make BKJM use protobufs for all serialization with ZK</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3804">HDFS-3804</a>.
     Major bug reported by Trevor Robinson and fixed by Trevor Robinson (test)<br>
     <b>TestHftpFileSystem fails intermittently with JDK7</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3789">HDFS-3789</a>.
     Major sub-task reported by Ivan Kelly and fixed by Ivan Kelly (ha , namenode)<br>
     <b>JournalManager#format() should be able to throw IOException</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3753">HDFS-3753</a>.
     Major bug reported by Eli Collins and fixed by Colin Patrick McCabe (build , test)<br>
     <b>Tests don't run with native libraries</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3703">HDFS-3703</a>.
     Major improvement reported by nkeywal and fixed by Jing Zhao (datanode , namenode)<br>
     <b>Decrease the datanode failure detection time</b><br>
     <blockquote>This jira adds a new DataNode state called "stale" at the NameNode. DataNodes are marked as stale if it does not send heartbeat message to NameNode within the timeout configured using the configuration parameter "dfs.namenode.stale.datanode.interval" in seconds (default value is 30 seconds). NameNode picks a stale datanode as the last target to read from when returning block locations for reads.

This feature is by default turned * off *. To turn on the feature, set the HDFS configuration "dfs.namenode.check.stale.datanode" to true.
</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3695">HDFS-3695</a>.
     Major sub-task reported by Todd Lipcon and fixed by Todd Lipcon (ha , namenode)<br>
     <b>Genericize format() to non-file JournalManagers</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3682">HDFS-3682</a>.
     Minor improvement reported by Eli Collins and fixed by Todd Lipcon (test)<br>
     <b>MiniDFSCluster#init should provide more info when it fails</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3680">HDFS-3680</a>.
     Minor improvement reported by Marcelo Vanzin and fixed by Marcelo Vanzin (namenode)<br>
     <b>Allow customized audit logging in HDFS FSNamesystem</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3678">HDFS-3678</a>.
     Critical bug reported by Todd Lipcon and fixed by Aaron T. Myers (namenode)<br>
     <b>Edit log files are never being purged from 2NN</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3626">HDFS-3626</a>.
     Blocker bug reported by Todd Lipcon and fixed by Todd Lipcon (namenode)<br>
     <b>Creating file with invalid path can corrupt edit log</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3623">HDFS-3623</a>.
     Major sub-task reported by Uma Maheswara Rao G and fixed by Uma Maheswara Rao G (namenode)<br>
     <b>BKJM: zkLatchWaitTimeout hard coded to 6000. Make use of ZKSessionTimeout instead.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3616">HDFS-3616</a>.
     Major bug reported by Uma Maheswara Rao G and fixed by Jing Zhao (datanode)<br>
     <b>TestWebHdfsWithMultipleNameNodes fails with ConcurrentModificationException in DN shutdown</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3598">HDFS-3598</a>.
     Major new feature reported by Tsz Wo (Nicholas), SZE and fixed by Plamen Jeliazkov (webhdfs)<br>
     <b>WebHDFS: support file concat</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3573">HDFS-3573</a>.
     Minor sub-task reported by Todd Lipcon and fixed by Todd Lipcon (namenode)<br>
     <b>Supply NamespaceInfo when instantiating JournalManagers</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3571">HDFS-3571</a>.
     Major sub-task reported by Todd Lipcon and fixed by Todd Lipcon (ha , namenode)<br>
     <b>Allow EditLogFileInputStream to read from a remote URL</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3553">HDFS-3553</a>.
     Blocker bug reported by Daryn Sharp and fixed by Daryn Sharp <br>
     <b>Hftp proxy tokens are broken</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3510">HDFS-3510</a>.
     Major bug reported by Colin Patrick McCabe and fixed by Colin Patrick McCabe <br>
     <b>Improve FSEditLog pre-allocation</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3507">HDFS-3507</a>.
     Critical bug reported by Vinay and fixed by Vinay (ha)<br>
     <b>DFS#isInSafeMode needs to execute only on Active NameNode</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3483">HDFS-3483</a>.
     Major improvement reported by Stephen Chu and fixed by Stephen Fritz <br>
     <b>Better error message when hdfs fsck is run against a ViewFS config</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3429">HDFS-3429</a>.
     Major bug reported by Todd Lipcon and fixed by Todd Lipcon (datanode , performance)<br>
     <b>DataNode reads checksums even if client does not need them</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3373">HDFS-3373</a>.
     Major bug reported by Todd Lipcon and fixed by John George (hdfs-client)<br>
     <b>FileContext HDFS implementation can leak socket caches</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3224">HDFS-3224</a>.
     Minor bug reported by Eli Collins and fixed by Jason Lowe <br>
     <b>Bug in check for DN re-registration with different storage ID</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3077">HDFS-3077</a>.
     Major new feature reported by Todd Lipcon and fixed by Todd Lipcon (ha , namenode)<br>
     <b>Quorum-based protocol for reading and writing edit logs</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3049">HDFS-3049</a>.
     Minor new feature reported by Colin Patrick McCabe and fixed by Colin Patrick McCabe (namenode)<br>
     <b>During the normal loading NN startup process, fall back on a different EditLog if we see one that is corrupt</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2946">HDFS-2946</a>.
     Major improvement reported by Aaron T. Myers and fixed by Aaron T. Myers (ha , namenode)<br>
     <b>HA: Put a cap on the number of completed edits files retained by the NN</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2908">HDFS-2908</a>.
     Minor sub-task reported by Suresh Srinivas and fixed by Brandon Li <br>
     <b>Add apache license header for StorageReport.java</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2656">HDFS-2656</a>.
     Major improvement reported by Zhanwei.Wang and fixed by Jing Zhao (webhdfs)<br>
     <b>Implement a pure c client based on webhdfs</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2264">HDFS-2264</a>.
     Major bug reported by Aaron T. Myers and fixed by Aaron T. Myers (namenode)<br>
     <b>NamenodeProtocol has the wrong value for clientPrincipal in KerberosInfo annotation</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1331">HDFS-1331</a>.
     Minor bug reported by Allen Wittenauer and fixed by Andy Isaacson (tools)<br>
     <b>dfs -test should work like /bin/test</b><br>
     <blockquote>"test" will not print a warning for non-existent paths when testing for existence</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1322">HDFS-1322</a>.
     Major bug reported by Ravi Gummadi and fixed by Colin Patrick McCabe <br>
     <b>Document umask in DistributedFileSystem#mkdirs javadocs </b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1245">HDFS-1245</a>.
     Major new feature reported by Dmytro Molkov and fixed by Konstantin Shvachko (namenode)<br>
     <b>Plugable block id generation </b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9289">HADOOP-9289</a>.
     Blocker bug reported by Daryn Sharp and fixed by Daryn Sharp (fs)<br>
     <b>FsShell rm -f fails for non-matching globs</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9278">HADOOP-9278</a>.
     Major bug reported by Chris Nauroth and fixed by Chris Nauroth (fs)<br>
     <b>HarFileSystem may leak file handle</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9276">HADOOP-9276</a>.
     Minor improvement reported by Arun C Murthy and fixed by Arun C Murthy <br>
     <b>Allow BoundedByteArrayOutputStream to be resettable</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9260">HADOOP-9260</a>.
     Critical bug reported by Jerry Chen and fixed by Chris Nauroth <br>
     <b>Hadoop version may be not correct when starting name node or data node</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9255">HADOOP-9255</a>.
     Critical bug reported by Thomas Graves and fixed by Thomas Graves (scripts)<br>
     <b>relnotes.py missing last jira</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9252">HADOOP-9252</a>.
     Minor bug reported by Tsz Wo (Nicholas), SZE and fixed by Tsz Wo (Nicholas), SZE (util)<br>
     <b>StringUtils.humanReadableInt(..) has a race condition</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9247">HADOOP-9247</a>.
     Minor improvement reported by Ivan A. Veselovsky and fixed by Ivan A. Veselovsky <br>
     <b>parametrize Clover "generateXxx" properties to make them re-definable via -D in mvn calls</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9231">HADOOP-9231</a>.
     Major bug reported by Konstantin Boudnik and fixed by Konstantin Boudnik (build)<br>
     <b>Parametrize staging URL for the uniformity of distributionManagement</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9221">HADOOP-9221</a>.
     Major bug reported by Andy Isaacson and fixed by Andy Isaacson <br>
     <b>Convert remaining xdocs to APT</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9217">HADOOP-9217</a>.
     Major test reported by Andrey Klochkov and fixed by Andrey Klochkov (test)<br>
     <b>Print thread dumps when hadoop-common tests fail</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9216">HADOOP-9216</a>.
     Major improvement reported by Tsuyoshi OZAWA and fixed by Tsuyoshi OZAWA (io)<br>
     <b>CompressionCodecFactory#getCodecClasses should trim the result of parsing by Configuration.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9215">HADOOP-9215</a>.
     Blocker bug reported by Thomas Graves and fixed by Colin Patrick McCabe <br>
     <b>when using cmake-2.6, libhadoop.so doesn't get created (only libhadoop.so.1.0.0)</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9212">HADOOP-9212</a>.
     Major bug reported by Tom White and fixed by Tom White (fs)<br>
     <b>Potential deadlock in FileSystem.Cache/IPC/UGI</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9203">HADOOP-9203</a>.
     Trivial bug reported by Andrew Purtell and fixed by Andrew Purtell (ipc , test)<br>
     <b>RPCCallBenchmark should find a random available port</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9193">HADOOP-9193</a>.
     Minor bug reported by Jason Lowe and fixed by Andy Isaacson (scripts)<br>
     <b>hadoop script can inadvertently expand wildcard arguments when delegating to hdfs script</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9192">HADOOP-9192</a>.
     Major improvement reported by Suresh Srinivas and fixed by Suresh Srinivas (security)<br>
     <b>Move token related request/response messages to common</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9190">HADOOP-9190</a>.
     Major bug reported by Thomas Graves and fixed by Andy Isaacson (documentation)<br>
     <b>packaging docs is broken</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9183">HADOOP-9183</a>.
     Major bug reported by Tom White and fixed by Tom White (ha)<br>
     <b>Potential deadlock in ActiveStandbyElector</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9181">HADOOP-9181</a>.
     Major bug reported by Liang Xie and fixed by Liang Xie <br>
     <b>Set daemon flag for HttpServer's QueuedThreadPool</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9178">HADOOP-9178</a>.
     Minor bug reported by Sandy Ryza and fixed by Sandy Ryza <br>
     <b>src/main/conf is missing hadoop-policy.xml</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9173">HADOOP-9173</a>.
     Major bug reported by Suresh Srinivas and fixed by Suresh Srinivas <br>
     <b>Add security token protobuf definition to common and use it in hdfs</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9162">HADOOP-9162</a>.
     Minor improvement reported by Binglin Chang and fixed by Binglin Chang (native)<br>
     <b>Add utility to check native library availability</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9155">HADOOP-9155</a>.
     Minor bug reported by Binglin Chang and fixed by Binglin Chang <br>
     <b>FsPermission should have different default value, 777 for directory and 666 for file</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9153">HADOOP-9153</a>.
     Major improvement reported by Sandy Ryza and fixed by Sandy Ryza (viewfs)<br>
     <b>Support createNonRecursive in ViewFileSystem</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9152">HADOOP-9152</a>.
     Minor bug reported by Brock Noland and fixed by Brock Noland (fs)<br>
     <b>HDFS can report negative DFS Used on clusters with very small amounts of data</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9147">HADOOP-9147</a>.
     Trivial improvement reported by Jonathan Allen and fixed by Jonathan Allen <br>
     <b>Add missing fields to FIleStatus.toString</b><br>
     <blockquote>Update FileStatus.toString to include missing fields</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9135">HADOOP-9135</a>.
     Trivial bug reported by Colin Patrick McCabe and fixed by Colin Patrick McCabe (security)<br>
     <b>JniBasedUnixGroupsMappingWithFallback should log at debug rather than info during fallback</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9127">HADOOP-9127</a>.
     Major improvement reported by Daisuke Kobayashi and fixed by Daisuke Kobayashi (documentation)<br>
     <b>Update documentation for ZooKeeper Failover Controller</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9119">HADOOP-9119</a>.
     Minor test reported by Steve Loughran and fixed by Steve Loughran (fs , test)<br>
     <b>Add test to FileSystemContractBaseTest to verify integrity of overwritten files</b><br>
     <blockquote>Patches adds more tests to verify overwritten and more complex operations -write-delete-overwrite. By using differently sized datasets and different data inside, these tests verify that the overwrite really did take place. While HDFS meets all these requirements directly, eventually consistent object stores may not -hence these tests.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9118">HADOOP-9118</a>.
     Trivial improvement reported by Steve Loughran and fixed by  (test)<br>
     <b>FileSystemContractBaseTest test data for read/write isn't rigorous enough</b><br>
     <blockquote>Resolved as part of HADOOP-9119 -it's test data generator creates more bits in every test byte</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9113">HADOOP-9113</a>.
     Major bug reported by Karthik Kambatla and fixed by Karthik Kambatla (security , test)<br>
     <b>o.a.h.fs.TestDelegationTokenRenewer is failing intermittently</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9106">HADOOP-9106</a>.
     Major improvement reported by Todd Lipcon and fixed by Robert Parker (ipc)<br>
     <b>Allow configuration of IPC connect timeout</b><br>
     <blockquote>This jira introduces a new configuration parameter "ipc.client.connect.timeout". This configuration defines the Hadoop RPC connection timeout in milliseconds for a client to connect to a server. For details see the description associated with this configuration in core-default.xml.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9105">HADOOP-9105</a>.
     Major bug reported by Daryn Sharp and fixed by Daryn Sharp (fs)<br>
     <b>FsShell -moveFromLocal erroneously fails</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9103">HADOOP-9103</a>.
     Major bug reported by yixiaohua and fixed by Todd Lipcon (io)<br>
     <b>UTF8 class does not properly decode Unicode characters outside the basic multilingual plane</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9097">HADOOP-9097</a>.
     Critical bug reported by Tom White and fixed by Thomas Graves (build)<br>
     <b>Maven RAT plugin is not checking all source files</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9093">HADOOP-9093</a>.
     Major improvement reported by Suresh Srinivas and fixed by Suresh Srinivas <br>
     <b>Move all the Exception in PathExceptions to o.a.h.fs package</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9090">HADOOP-9090</a>.
     Minor new feature reported by Mostafa Elhemali and fixed by Mostafa Elhemali (metrics)<br>
     <b>Support on-demand publish of metrics</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9072">HADOOP-9072</a>.
     Major bug reported by Robert Parker and fixed by Robert Parker <br>
     <b>Hadoop-Common-0.23-Build Fails to build in Jenkins</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9070">HADOOP-9070</a>.
     Blocker sub-task reported by Daryn Sharp and fixed by Daryn Sharp (ipc)<br>
     <b>Kerberos SASL server cannot find kerberos key</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9067">HADOOP-9067</a>.
     Minor test reported by Ivan A. Veselovsky and fixed by Ivan A. Veselovsky <br>
     <b>provide test for method org.apache.hadoop.fs.LocalFileSystem.reportChecksumFailure(Path, FSDataInputStream, long, FSDataInputStream, long)</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9064">HADOOP-9064</a>.
     Major bug reported by Karthik Kambatla and fixed by Karthik Kambatla (security)<br>
     <b>Augment DelegationTokenRenewer API to cancel the tokens on calls to removeRenewAction</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9054">HADOOP-9054</a>.
     Major new feature reported by Robert Kanter and fixed by Robert Kanter (security)<br>
     <b>Add AuthenticationHandler that uses Kerberos but allows for an alternate form of authentication for browsers</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9049">HADOOP-9049</a>.
     Major bug reported by Karthik Kambatla and fixed by Karthik Kambatla (security)<br>
     <b>DelegationTokenRenewer needs to be Singleton and FileSystems should register/deregister to/from.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9042">HADOOP-9042</a>.
     Minor test reported by Colin Patrick McCabe and fixed by Colin Patrick McCabe <br>
     <b>Add a test for umask in FileSystemContractBaseTest</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9041">HADOOP-9041</a>.
     Critical bug reported by Radim Kolar and fixed by Radim Kolar (fs)<br>
     <b>FileSystem initialization can go into infinite loop</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9038">HADOOP-9038</a>.
     Minor test reported by Ivan A. Veselovsky and fixed by Ivan A. Veselovsky <br>
     <b>provide unit-test coverage of class org.apache.hadoop.fs.LocalDirAllocator.AllocatorPerContext.PathIterator</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9035">HADOOP-9035</a>.
     Major sub-task reported by Daryn Sharp and fixed by Daryn Sharp (security)<br>
     <b>Generalize setup of LoginContext</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9025">HADOOP-9025</a>.
     Major bug reported by Robert Joseph Evans and fixed by Jonathan Eagles <br>
     <b>org.apache.hadoop.tools.TestCopyListing failing</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9022">HADOOP-9022</a>.
     Major bug reported by Haiyang Jiang and fixed by Jonathan Eagles <br>
     <b>Hadoop distcp tool fails to copy file if -m 0 specified</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9021">HADOOP-9021</a>.
     Major sub-task reported by Daryn Sharp and fixed by Daryn Sharp (ipc , security)<br>
     <b>Enforce configured SASL method on the server</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9020">HADOOP-9020</a>.
     Major sub-task reported by Daryn Sharp and fixed by Daryn Sharp (ipc , security)<br>
     <b>Add a SASL PLAIN server</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9015">HADOOP-9015</a>.
     Major sub-task reported by Daryn Sharp and fixed by Daryn Sharp (ipc)<br>
     <b>Standardize creation of SaslRpcServers</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9014">HADOOP-9014</a>.
     Major sub-task reported by Daryn Sharp and fixed by Daryn Sharp (ipc)<br>
     <b>Standardize creation of SaslRpcClients</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9013">HADOOP-9013</a>.
     Major sub-task reported by Daryn Sharp and fixed by Daryn Sharp (fs , security)<br>
     <b>UGI should not hardcode loginUser's authenticationType</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9012">HADOOP-9012</a>.
     Major sub-task reported by Daryn Sharp and fixed by Daryn Sharp (ipc)<br>
     <b>IPC Client sends wrong connection context</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9010">HADOOP-9010</a>.
     Major sub-task reported by Daryn Sharp and fixed by Daryn Sharp (fs , security)<br>
     <b>Map UGI authenticationMethod to RPC authMethod</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9009">HADOOP-9009</a>.
     Major sub-task reported by Daryn Sharp and fixed by Daryn Sharp (fs , security)<br>
     <b>Add SecurityUtil methods to get/set authentication method</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9004">HADOOP-9004</a>.
     Major improvement reported by Stephen Chu and fixed by Stephen Chu (security , test)<br>
     <b>Allow security unit tests to use external KDC</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8999">HADOOP-8999</a>.
     Major sub-task reported by Daryn Sharp and fixed by Daryn Sharp (ipc)<br>
     <b>SASL negotiation is flawed</b><br>
     <blockquote>The RPC SASL negotiation now always ends with final response.  If the SASL mechanism does not have a final response (GSSAPI, PLAIN), then an empty success response is sent to the client.  The client will now always expect a final response to definitively know if negotiation is complete/successful.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8998">HADOOP-8998</a>.
     Minor improvement reported by Andy Isaacson and fixed by Alejandro Abdelnur <br>
     <b>set Cache-Control no-cache header on all dynamic content</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8994">HADOOP-8994</a>.
     Minor bug reported by Andy Isaacson and fixed by Andy Isaacson (test)<br>
     <b>TestDFSShell creates file named "noFileHere", making further tests hard to understand</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8992">HADOOP-8992</a>.
     Minor improvement reported by Ivan A. Veselovsky and fixed by Ivan A. Veselovsky <br>
     <b>Enhance unit-test coverage of class HarFileSystem</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8986">HADOOP-8986</a>.
     Critical bug reported by Robert Joseph Evans and fixed by Robert Joseph Evans (ipc)<br>
     <b>Server$Call object is never released after it is sent</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8985">HADOOP-8985</a>.
     Minor improvement reported by Binglin Chang and fixed by Binglin Chang (ha , ipc)<br>
     <b>Add namespace declarations in .proto files for languages other than java</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8981">HADOOP-8981</a>.
     Major bug reported by Chris Nauroth and fixed by Xuan Gong (metrics)<br>
     <b>TestMetricsSystemImpl fails on Windows</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8962">HADOOP-8962</a>.
     Critical bug reported by Jason Lowe and fixed by Jason Lowe (fs)<br>
     <b>RawLocalFileSystem.listStatus fails when a child filename contains a colon</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8951">HADOOP-8951</a>.
     Minor improvement reported by Steve Loughran and fixed by Steve Loughran (util)<br>
     <b>RunJar to fail with user-comprehensible error message if jar missing</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8948">HADOOP-8948</a>.
     Major bug reported by Chris Nauroth and fixed by Chris Nauroth (test)<br>
     <b>TestFileUtil.testGetDU fails on Windows due to incorrect assumption of line separator</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8932">HADOOP-8932</a>.
     Major improvement reported by Kihwal Lee and fixed by Kihwal Lee (security)<br>
     <b>JNI-based user-group mapping modules can be too chatty on lookup failures</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8931">HADOOP-8931</a>.
     Trivial improvement reported by Eli Collins and fixed by Eli Collins <br>
     <b>Add Java version to startup message</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8930">HADOOP-8930</a>.
     Major improvement reported by Andrey Klochkov and fixed by Andrey Klochkov (test)<br>
     <b>Cumulative code coverage calculation</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8929">HADOOP-8929</a>.
     Major improvement reported by Todd Lipcon and fixed by Todd Lipcon (metrics)<br>
     <b>Add toString, other improvements for SampleQuantiles</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8926">HADOOP-8926</a>.
     Major improvement reported by Gopal V and fixed by Gopal V (util)<br>
     <b>hadoop.util.PureJavaCrc32 cache hit-ratio is low for static data</b><br>
     <blockquote>Speed up Crc32 by improving the cache hit-ratio of hadoop.util.PureJavaCrc32 </blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8925">HADOOP-8925</a>.
     Minor improvement reported by Eli Collins and fixed by Eli Collins (build)<br>
     <b>Remove the packaging</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8922">HADOOP-8922</a>.
     Trivial improvement reported by Damien Hardy and fixed by Damien Hardy (metrics)<br>
     <b>Provide alternate JSONP output for JMXJsonServlet to allow javascript in browser dashboard</b><br>
     <blockquote>Add a JSONP alternative outpout for /jmx HTTP interface to provide a Javascript polling ability in browsers.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8913">HADOOP-8913</a>.
     Minor bug reported by Sandy Ryza and fixed by Sandy Ryza (metrics)<br>
     <b>hadoop-metrics2.properties should give units in comment for sampling period</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8912">HADOOP-8912</a>.
     Major bug reported by Raja Aluri and fixed by Raja Aluri (build)<br>
     <b>adding .gitattributes file to prevent CRLF and LF mismatches for source and text files</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8911">HADOOP-8911</a>.
     Major bug reported by Raja Aluri and fixed by Raja Aluri (build)<br>
     <b>CRLF characters in source and text files</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8909">HADOOP-8909</a>.
     Major improvement reported by Chris Nauroth and fixed by Chris Nauroth (build)<br>
     <b>Hadoop Common Maven protoc calls must not depend on external sh script</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8906">HADOOP-8906</a>.
     Critical bug reported by Daryn Sharp and fixed by Daryn Sharp (fs)<br>
     <b>paths with multiple globs are unreliable</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8901">HADOOP-8901</a>.
     Minor bug reported by Colin Patrick McCabe and fixed by Colin Patrick McCabe (native)<br>
     <b>GZip and Snappy support may not work without unversioned libraries</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8900">HADOOP-8900</a>.
     Major bug reported by Slavik Krassovsky and fixed by Andy Isaacson <br>
     <b>BuiltInGzipDecompressor throws IOException - stored gzip size doesn't match decompressed size</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8894">HADOOP-8894</a>.
     Major improvement reported by Todd Lipcon and fixed by Todd Lipcon <br>
     <b>GenericTestUtils.waitFor should dump thread stacks on timeout</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8889">HADOOP-8889</a>.
     Major improvement reported by Todd Lipcon and fixed by Todd Lipcon (build , test)<br>
     <b>Upgrade to Surefire 2.12.3</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8883">HADOOP-8883</a>.
     Major bug reported by Robert Kanter and fixed by Robert Kanter <br>
     <b>Anonymous fallback in KerberosAuthenticator is broken</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8881">HADOOP-8881</a>.
     Major bug reported by Alejandro Abdelnur and fixed by Alejandro Abdelnur (security)<br>
     <b>FileBasedKeyStoresFactory initialization logging should be debug not info</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8878">HADOOP-8878</a>.
     Major bug reported by Arpit Gupta and fixed by Arpit Gupta <br>
     <b>uppercase namenode hostname causes hadoop dfs calls with webhdfs filesystem and fsck to fail when security is on</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8866">HADOOP-8866</a>.
     Minor improvement reported by Andrew Wang and fixed by Andrew Wang <br>
     <b>SampleQuantiles#query is O(N^2) instead of O(N)</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8860">HADOOP-8860</a>.
     Major task reported by Tom White and fixed by Tom White (documentation)<br>
     <b>Split MapReduce and YARN sections in documentation navigation</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8855">HADOOP-8855</a>.
     Minor bug reported by Todd Lipcon and fixed by Todd Lipcon (security)<br>
     <b>SSL-based image transfer does not work when Kerberos is disabled</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8851">HADOOP-8851</a>.
     Minor improvement reported by Ivan A. Veselovsky and fixed by Ivan A. Veselovsky (test)<br>
     <b>Use -XX:+HeapDumpOnOutOfMemoryError JVM option in the forked tests</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8849">HADOOP-8849</a>.
     Minor improvement reported by Ivan A. Veselovsky and fixed by Ivan A. Veselovsky <br>
     <b>FileUtil#fullyDelete should grant the target directories +rwx permissions before trying to delete them</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8843">HADOOP-8843</a>.
     Critical bug reported by Robert Joseph Evans and fixed by Jason Lowe <br>
     <b>Old trash directories are never deleted on upgrade from 1.x</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8833">HADOOP-8833</a>.
     Major bug reported by Harsh J and fixed by Harsh J (fs)<br>
     <b>fs -text should make sure to call inputstream.seek(0) before using input stream</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8822">HADOOP-8822</a>.
     Major bug reported by Robert Joseph Evans and fixed by Robert Joseph Evans <br>
     <b>relnotes.py was deleted post mavenization</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8819">HADOOP-8819</a>.
     Major bug reported by Brandon Li and fixed by Brandon Li (fs)<br>
     <b>Should use &amp;&amp; instead of  &amp; in a few places in FTPFileSystem,FTPInputStream,S3InputStream,ViewFileSystem,ViewFs</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8816">HADOOP-8816</a>.
     Major bug reported by Moritz Moeller and fixed by Moritz Moeller (net)<br>
     <b>HTTP Error 413 full HEAD if using kerberos authentication</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8812">HADOOP-8812</a>.
     Minor improvement reported by Eli Collins and fixed by Eli Collins <br>
     <b>ExitUtil#terminate should print Exception#toString </b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8811">HADOOP-8811</a>.
     Critical bug reported by Radim Kolar and fixed by Radim Kolar (native)<br>
     <b>Compile hadoop native library in FreeBSD</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8806">HADOOP-8806</a>.
     Minor improvement reported by Colin Patrick McCabe and fixed by Colin Patrick McCabe (build)<br>
     <b>libhadoop.so: dlopen should be better at locating libsnappy.so, etc.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8804">HADOOP-8804</a>.
     Minor improvement reported by Eli Collins and fixed by Senthil V Kumar <br>
     <b>Improve Web UIs when the wildcard address is used</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8795">HADOOP-8795</a>.
     Minor bug reported by Sean Mackrory and fixed by Sean Mackrory (scripts)<br>
     <b>BASH tab completion doesn't look in PATH, assumes path to executable is specified</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8791">HADOOP-8791</a>.
     Major bug reported by Bertrand Dechoux and fixed by Jing Zhao (documentation)<br>
     <b>rm "Only deletes non empty directory and files."</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8789">HADOOP-8789</a>.
     Minor improvement reported by Andy Isaacson and fixed by Andy Isaacson (test)<br>
     <b>Tests setLevel(Level.OFF) should be Level.ERROR</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8786">HADOOP-8786</a>.
     Major bug reported by Todd Lipcon and fixed by Todd Lipcon <br>
     <b>HttpServer continues to start even if AuthenticationFilter fails to init</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8784">HADOOP-8784</a>.
     Major sub-task reported by Daryn Sharp and fixed by Daryn Sharp (ipc , security)<br>
     <b>Improve IPC.Client's token use</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8783">HADOOP-8783</a>.
     Major sub-task reported by Daryn Sharp and fixed by Daryn Sharp (ipc , security)<br>
     <b>Improve RPC.Server's digest auth</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8780">HADOOP-8780</a>.
     Major bug reported by Ahmed Radwan and fixed by Ahmed Radwan <br>
     <b>Update DeprecatedProperties apt file</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8756">HADOOP-8756</a>.
     Minor bug reported by Colin Patrick McCabe and fixed by Colin Patrick McCabe (native)<br>
     <b>Fix SEGV when libsnappy is in java.library.path but not LD_LIBRARY_PATH</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8755">HADOOP-8755</a>.
     Major improvement reported by Andrey Klochkov and fixed by Andrey Klochkov (test)<br>
     <b>Print thread dump when tests fail due to timeout </b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8736">HADOOP-8736</a>.
     Major improvement reported by Brandon Li and fixed by Brandon Li (ipc)<br>
     <b>Add Builder for building an RPC server</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8713">HADOOP-8713</a>.
     Major bug reported by Trevor Robinson and fixed by Trevor Robinson (test)<br>
     <b>TestRPCCompatibility fails intermittently with JDK7</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8712">HADOOP-8712</a>.
     Minor improvement reported by Robert Parker and fixed by Robert Parker (security)<br>
     <b>Change default hadoop.security.group.mapping</b><br>
     <blockquote>The default group mapping policy has been changed to JniBasedUnixGroupsNetgroupMappingWithFallback. This should maintain the same semantics as the prior default for most users.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8684">HADOOP-8684</a>.
     Minor bug reported by Hiroshi Ikeda and fixed by Jing Zhao (io)<br>
     <b>Deadlock between WritableComparator and WritableComparable</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8616">HADOOP-8616</a>.
     Major bug reported by Eli Collins and fixed by Sandy Ryza (viewfs)<br>
     <b>ViewFS configuration requires a trailing slash</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8597">HADOOP-8597</a>.
     Major new feature reported by Harsh J and fixed by Ivan Vladimirov Ivanov (fs)<br>
     <b>FsShell's Text command should be able to read avro data files</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8589">HADOOP-8589</a>.
     Major bug reported by Andrey Klochkov and fixed by Sanjay Radia (fs , test)<br>
     <b>ViewFs tests fail when tests and home dirs are nested</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8561">HADOOP-8561</a>.
     Major improvement reported by Luke Lu and fixed by Yu Gao (security)<br>
     <b>Introduce HADOOP_PROXY_USER for secure impersonation in child hadoop client processes</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8427">HADOOP-8427</a>.
     Major task reported by Eli Collins and fixed by Andy Isaacson (documentation)<br>
     <b>Convert Forrest docs to APT, incremental</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8418">HADOOP-8418</a>.
     Major bug reported by Luke Lu and fixed by Yu Gao (security)<br>
     <b>Fix UGI for IBM JDK running on Windows</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7886">HADOOP-7886</a>.
     Minor improvement reported by Jakob Homan and fixed by SreeHari <br>
     <b>Add toString to FileStatus</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7688">HADOOP-7688</a>.
     Major improvement reported by Tsz Wo (Nicholas), SZE and fixed by Uma Maheswara Rao G <br>
     <b>When a servlet filter throws an exception in init(..), the Jetty server failed silently. </b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7115">HADOOP-7115</a>.
     Major bug reported by Arun C Murthy and fixed by Alejandro Abdelnur <br>
     <b>Add a cache for getpwuid_r and getpwgid_r calls</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-6762">HADOOP-6762</a>.
     Critical bug reported by sam rash and fixed by sam rash <br>
     <b>exception while doing RPC I/O closes channel</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-6607">HADOOP-6607</a>.
     Minor bug reported by Steve Loughran and fixed by Alejandro Abdelnur (io)<br>
     <b>Add different variants of non caching HTTP headers</b><br>
     <blockquote></blockquote></li>
</ul>
</body></html>
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Hadoop  2.0.2-alpha Release Notes</title>
<STYLE type="text/css">
	H1 {font-family: sans-serif}
	H2 {font-family: sans-serif; margin-left: 7mm}
	TABLE {margin-left: 7mm}
</STYLE>
</head>
<body>
<h1>Hadoop  2.0.2-alpha Release Notes</h1>
These release notes include new developer and user-facing incompatibilities, features, and major improvements. 
<a name="changes"/>
<h2>Changes since Hadoop 2.0.1-alpha</h2>
<ul>
<li> <a href="https://issues.apache.org/jira/browse/YARN-137">YARN-137</a>.
     Major improvement reported by Siddharth Seth and fixed by Siddharth Seth (scheduler)<br>
     <b>Change the default scheduler to the CapacityScheduler</b><br>
     <blockquote>There's some bugs in the FifoScheduler atm - doesn't distribute tasks across nodes and some headroom (available resource) issues.
That's not the best experience for users trying out the 2.0 branch. The CS with the default configuration of a single queue behaves the same as the FifoScheduler and doesn't have these issues.
</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-108">YARN-108</a>.
     Critical bug reported by Jason Lowe and fixed by Jason Lowe (nodemanager)<br>
     <b>FSDownload can create cache directories with the wrong permissions</b><br>
     <blockquote>When the cluster is configured with a restrictive umask, e.g.: {{fs.permissions.umask-mode=0077}}, the nodemanager can end up creating directory entries in the public cache with the wrong permissions.  The permissions can end up where only the nodemanager user can access files in the public cache, preventing jobs from running properly.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-106">YARN-106</a>.
     Major bug reported by Jason Lowe and fixed by Jason Lowe (nodemanager)<br>
     <b>Nodemanager needs to set permissions of local directories</b><br>
     <blockquote>If the nodemanager process is running with a restrictive default umask (e.g.: 0077) then it will create its local directories with permissions that are too restrictive to allow containers from other users to run.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-88">YARN-88</a>.
     Major bug reported by Jason Lowe and fixed by Jason Lowe (nodemanager)<br>
     <b>DefaultContainerExecutor can fail to set proper permissions</b><br>
     <blockquote>{{DefaultContainerExecutor}} can fail to set the proper permissions on its local directories if the cluster has been configured with a restrictive umask, e.g.: fs.permissions.umask-mode=0077.  The configured umask ends up defeating the permissions requested by {{DefaultContainerExecutor}} when it creates directories.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-87">YARN-87</a>.
     Critical bug reported by Jason Lowe and fixed by Jason Lowe (nodemanager)<br>
     <b>NM ResourceLocalizationService does not set permissions of local cache directories</b><br>
     <blockquote>{{ResourceLocalizationService}} creates a file cache and user cache directory when it starts up but doesn't specify the permissions for them when they are created.  If the cluster configs are set to limit the default permissions (e.g.: fs.permissions.umask-mode=0077 instead of the default 0022), then the cache directories are created with too-restrictive permissions and no jobs are able to run.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-83">YARN-83</a>.
     Major bug reported by Bikas Saha and fixed by Bikas Saha (client)<br>
     <b>Change package of YarnClient to include apache</b><br>
     <blockquote>Currently its org.hadoop.* instead of org.apache.hadoop.*</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-80">YARN-80</a>.
     Major improvement reported by Todd Lipcon and fixed by Arun C Murthy (capacityscheduler)<br>
     <b>Support delay scheduling for node locality in MR2's capacity scheduler</b><br>
     <blockquote>The capacity scheduler in MR2 doesn't support delay scheduling for achieving node-level locality. So, jobs exhibit poor data locality even if they have good rack locality. Especially on clusters where disk throughput is much better than network capacity, this hurts overall job performance. We should optionally support node-level delay scheduling heuristics similar to what the fair scheduler implements in MR1.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-79">YARN-79</a>.
     Major bug reported by Bikas Saha and fixed by Vinod Kumar Vavilapalli (client)<br>
     <b>Calling YarnClientImpl.close throws Exception</b><br>
     <blockquote>The following exception is thrown
===========
*org.apache.hadoop.HadoopIllegalArgumentException: Cannot close proxy - is not Closeable or does not provide closeable invocation handler class org.apache.hadoop.yarn.api.impl.pb.client.ClientRMProtocolPBClientImpl*
	*at org.apache.hadoop.ipc.RPC.stopProxy(RPC.java:624)*
	*at org.hadoop.yarn.client.YarnClientImpl.stop(YarnClientImpl.java:102)*
	at org.apache.hadoop.yarn.applications.unmanagedamlauncher.UnmanagedAMLauncher.run(UnmanagedAMLauncher.java:336)
	at org.apache.hadoop.yarn.applications.unmanagedamlauncher.TestUnmanagedAMLauncher.testDSShell(TestUnmanagedAMLauncher.java:156)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)
	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
	at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)
	at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
	at org.junit.runners.BlockJUnit4ClassRunner.runNotIgnored(BlockJUnit4ClassRunner.java:79)
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:71)
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:49)
	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193)
	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52)
	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191)
	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42)
	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184)
	at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
	at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31)
	at org.junit.runners.ParentRunner.run(ParentRunner.java:236)
	at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:236)
	at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:134)
	at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:113)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at org.apache.maven.surefire.util.ReflectionUtils.invokeMethodWithArray(ReflectionUtils.java:189)
	at org.apache.maven.surefire.booter.ProviderFactory$ProviderProxy.invoke(ProviderFactory.java:165)
	at org.apache.maven.surefire.booter.ProviderFactory.invokeProvider(ProviderFactory.java:85)
	at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:103)
	at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:74)
===========</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-75">YARN-75</a>.
     Major bug reported by Siddharth Seth and fixed by Siddharth Seth <br>
     <b>RMContainer should handle a RELEASE event while RUNNING</b><br>
     <blockquote>An AppMaster can send a container release at any point. Currently this results in an exception, if this is done while the RM considers the container to be RUNNING.
The event not being processed correctly also implies that these containers do not show up in the Completed Container List seen by the AM (AMRMProtocol). MR-3902 depends on this set being complete. </blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-68">YARN-68</a>.
     Major bug reported by patrick white and fixed by Daryn Sharp (nodemanager)<br>
     <b>NodeManager will refuse to shutdown indefinitely due to container log aggregation</b><br>
     <blockquote>The nodemanager is able to get into a state where containermanager.logaggregation.AppLogAggregatorImpl will apparently wait
indefinitely for log aggregation to complete for an application, even if that application has abnormally terminated and is no longer present. 

Observed behavior is that an attempt to stop the nodemanager daemon will return but have no effect, the nm log continually displays messages similar to this:

[Thread-1]2012-08-21 17:44:07,581 INFO
org.apache.hadoop.yarn.server.nodemanager.containermanager.logaggregation.AppLogAggregatorImpl:
Waiting for aggregation to complete for application_1345221477405_2733

The only recovery we found to work was to 'kill -9' the nm process.

What exactly causes the NM to enter this state is unclear but we do see this behavior reliably when the NM has run a task which failed, for example when debugging oozie distcp actions and having a distcp map task fail, the NM that was running the container will now enter this state where a shutdown on said NM will never complete, 'never' in this case was waiting for 2 hours before killing the nodemanager process.
</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-66">YARN-66</a>.
     Critical bug reported by Thomas Graves and fixed by Thomas Graves (nodemanager)<br>
     <b>aggregated logs permissions not set properly</b><br>
     <blockquote>If the default file permissions are set to something restrictive - like 700, application logs get aggregated and created with those restrictive file permissions which doesn't allow the history server to serve them up.


They need to be created with group readable similar to how log aggregation sets up the directory permissions.
</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-63">YARN-63</a>.
     Major bug reported by Jason Lowe and fixed by Jason Lowe (resourcemanager)<br>
     <b>RMNodeImpl is missing valid transitions from the UNHEALTHY state</b><br>
     <blockquote>The ResourceManager isn't properly handling nodes that have been marked UNHEALTHY when they are lost or are decommissioned.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-60">YARN-60</a>.
     Blocker sub-task reported by Daryn Sharp and fixed by Vinod Kumar Vavilapalli (nodemanager)<br>
     <b>NMs rejects all container tokens after secret key rolls</b><br>
     <blockquote>The NM's token secret manager will reject all container tokens after the secret key is activated which means the NM will not launch _any_ containers including AMs.  The whole yarn cluster becomes inoperable in 1d.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-58">YARN-58</a>.
     Critical bug reported by Daryn Sharp and fixed by Jason Lowe (nodemanager)<br>
     <b>NM leaks filesystems</b><br>
     <blockquote>The NM is exhausting its fds because it's not closing fs instances when the app is finished.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-42">YARN-42</a>.
     Major bug reported by Devaraj K and fixed by Devaraj K (nodemanager)<br>
     <b>Node Manager throws NPE on startup</b><br>
     <blockquote>NM throws NPE on startup if it doesn't have persmission's on nm local dir's


{code:xml}
2012-05-14 16:32:13,468 FATAL org.apache.hadoop.yarn.server.nodemanager.NodeManager: Error starting NodeManager
org.apache.hadoop.yarn.YarnException: Failed to initialize LocalizationService
	at org.apache.hadoop.yarn.server.nodemanager.containermanager.localizer.ResourceLocalizationService.init(ResourceLocalizationService.java:202)
	at org.apache.hadoop.yarn.service.CompositeService.init(CompositeService.java:58)
	at org.apache.hadoop.yarn.server.nodemanager.containermanager.ContainerManagerImpl.init(ContainerManagerImpl.java:183)
	at org.apache.hadoop.yarn.service.CompositeService.init(CompositeService.java:58)
	at org.apache.hadoop.yarn.server.nodemanager.NodeManager.init(NodeManager.java:166)
	at org.apache.hadoop.yarn.server.nodemanager.NodeManager.initAndStartNodeManager(NodeManager.java:268)
	at org.apache.hadoop.yarn.server.nodemanager.NodeManager.main(NodeManager.java:284)
Caused by: java.io.IOException: mkdir of /mrv2/tmp/nm-local-dir/usercache failed
	at org.apache.hadoop.fs.FileSystem.primitiveMkdir(FileSystem.java:907)
	at org.apache.hadoop.fs.DelegateToFileSystem.mkdir(DelegateToFileSystem.java:143)
	at org.apache.hadoop.fs.FilterFs.mkdir(FilterFs.java:189)
	at org.apache.hadoop.fs.FileContext$4.next(FileContext.java:706)
	at org.apache.hadoop.fs.FileContext$4.next(FileContext.java:703)
	at org.apache.hadoop.fs.FileContext$FSLinkResolver.resolve(FileContext.java:2325)
	at org.apache.hadoop.fs.FileContext.mkdir(FileContext.java:703)
	at org.apache.hadoop.yarn.server.nodemanager.containermanager.localizer.ResourceLocalizationService.init(ResourceLocalizationService.java:188)
	... 6 more
2012-05-14 16:32:13,472 INFO org.apache.hadoop.yarn.service.CompositeService: Error stopping org.apache.hadoop.yarn.server.nodemanager.containermanager.loghandler.NonAggregatingLogHandler
java.lang.NullPointerException
	at org.apache.hadoop.yarn.server.nodemanager.containermanager.loghandler.NonAggregatingLogHandler.stop(NonAggregatingLogHandler.java:82)
	at org.apache.hadoop.yarn.service.CompositeService.stop(CompositeService.java:99)
	at org.apache.hadoop.yarn.service.CompositeService.stop(CompositeService.java:89)
	at org.apache.hadoop.yarn.server.nodemanager.containermanager.ContainerManagerImpl.stop(ContainerManagerImpl.java:266)
	at org.apache.hadoop.yarn.service.CompositeService.stop(CompositeService.java:99)
	at org.apache.hadoop.yarn.service.CompositeService.stop(CompositeService.java:89)
	at org.apache.hadoop.yarn.server.nodemanager.NodeManager.stop(NodeManager.java:182)
	at org.apache.hadoop.yarn.service.CompositeService$CompositeServiceShutdownHook.run(CompositeService.java:122)
	at org.apache.hadoop.util.ShutdownHookManager$1.run(ShutdownHookManager.java:54)
{code}
</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-39">YARN-39</a>.
     Critical sub-task reported by Vinod Kumar Vavilapalli and fixed by Vinod Kumar Vavilapalli <br>
     <b>RM-NM secret-keys should be randomly generated and rolled every so often</b><br>
     <blockquote> - RM should generate the master-key randomly
 - The master-key should roll every so often
 - NM should remember old expired keys so that already doled out container-requests can be satisfied.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-37">YARN-37</a>.
     Minor bug reported by Jason Lowe and fixed by Mayank Bansal (resourcemanager)<br>
     <b>TestRMAppTransitions.testAppSubmittedKilled passes for the wrong reason</b><br>
     <blockquote>TestRMAppTransitions#testAppSubmittedKilled causes an invalid event exception but the test doesn't catch the error since the final app state is still killed.  Killed for the wrong reason, but the final state is the same.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-36">YARN-36</a>.
     Blocker bug reported by Eli Collins and fixed by Radim Kolar <br>
     <b>branch-2.1.0-alpha doesn't build</b><br>
     <blockquote>branch-2.1.0-alpha doesn't build due to the following. Per YARN-1 I updated the mvn version to be 2.1.0-SNAPSHOT, before I hit this issue it didn't compile due to the bogus version. 

{noformat}
hadoop-branch-2.1.0-alpha $ mvn compile
[INFO] Scanning for projects...
[ERROR] The build could not read 1 project -&gt; [Help 1]
[ERROR]   
[ERROR]   The project org.apache.hadoop:hadoop-yarn-project:2.1.0-SNAPSHOT (/home/eli/src/hadoop-branch-2.1.0-alpha/hadoop-yarn-project/pom.xml) has 1 error
[ERROR]     'dependencies.dependency.version' for org.hsqldb:hsqldb:jar is missing. @ line 160, column 17
{noformat}</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-31">YARN-31</a>.
     Major bug reported by Thomas Graves and fixed by Thomas Graves <br>
     <b>TestDelegationTokenRenewer fails on jdk7</b><br>
     <blockquote>TestDelegationTokenRenewer fails when run with jdk7.  

With JDK7, test methods run in an undefined order. Here it is expecting that testDTRenewal runs first but it no longer is.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-29">YARN-29</a>.
     Major bug reported by Vinod Kumar Vavilapalli and fixed by Vinod Kumar Vavilapalli (client)<br>
     <b>Add a yarn-client module</b><br>
     <blockquote>I see that we are duplicating (some) code for talking to RM via client API. In this light, a yarn-client module will be useful so that clients of all frameworks can use/extend it.

And that same module can be the destination for all the YARN's command line tools.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-27">YARN-27</a>.
     Major bug reported by Ramya Sunil and fixed by Arun C Murthy <br>
     <b>Failed refreshQueues due to misconfiguration prevents further refreshing of queues</b><br>
     <blockquote>Stumbled upon this problem while refreshing queues with incorrect configuration. The exact scenario was:
1. Added a new queue "newQueue" without defining its capacity.
2. "bin/mapred queue -refreshQueues" fails correctly with "Illegal capacity of -1 for queue root.newQueue"
3. However, after defining the capacity of "newQueue" followed by a second "bin/mapred queue -refreshQueues" throws "org.apache.hadoop.metrics2.MetricsException: Metrics source QueueMetrics,q0=root,q1=newQueue already exists!" Also see Hadoop:name=QueueMetrics,q0=root,q1=newQueue,service=ResourceManager metrics being available even though the queue was not added.

The expected behavior would be to refresh the queues correctly and allow addition of "newQueue". </blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-25">YARN-25</a>.
     Major bug reported by Thomas Graves and fixed by Robert Joseph Evans <br>
     <b>remove old aggregated logs</b><br>
     <blockquote>Currently the aggregated user logs under NM_REMOTE_APP_LOG_DIR are never removed.  We should have mechanism to remove them after certain period.

It might make sense for job history server to remove them.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-22">YARN-22</a>.
     Minor bug reported by Eli Collins and fixed by Mayank Bansal <br>
     <b>Using URI for yarn.nodemanager log dirs fails</b><br>
     <blockquote>If I use URIs (eg file:///home/eli/hadoop/dirs) for yarn.nodemanager.log-dirs or yarn.nodemanager.remote-app-log-dir the container log servlet fails with an NPE (works if I remove the "file" scheme). Using a URI for yarn.nodemanager.local-dirs works.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-15">YARN-15</a>.
     Critical bug reported by Alejandro Abdelnur and fixed by Arun C Murthy (nodemanager)<br>
     <b>YarnConfiguration DEFAULT_YARN_APPLICATION_CLASSPATH should be updated</b><br>
     <blockquote>
{code}
  /**
   * Default CLASSPATH for YARN applications. A comma-separated list of
   * CLASSPATH entries
   */
  public static final String[] DEFAULT_YARN_APPLICATION_CLASSPATH = {
      "$HADOOP_CONF_DIR", "$HADOOP_COMMON_HOME/share/hadoop/common/*",
      "$HADOOP_COMMON_HOME/share/hadoop/common/lib/*",
      "$HADOOP_HDFS_HOME/share/hadoop/hdfs/*",
      "$HADOOP_HDFS_HOME/share/hadoop/hdfs/lib/*",
      "$YARN_HOME/share/hadoop/mapreduce/*",
      "$YARN_HOME/share/hadoop/mapreduce/lib/*"};
{code}

It should have {{share/yarn/}} and MR should add the {{share/mapreduce/}} (another JIRA?)</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-14">YARN-14</a>.
     Major bug reported by Jason Lowe and fixed by Jason Lowe (nodemanager)<br>
     <b>Symlinks to peer distributed cache files no longer work</b><br>
     <blockquote>Trying to create a symlink to another file that is specified for the distributed cache will fail to create the link.  For example:

hadoop jar ... -files "x,y,x#z"

will localize the files x and y as x and y, but the z symlink for x will not be created.  This is a regression from 1.x behavior.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-13">YARN-13</a>.
     Critical bug reported by Todd Lipcon and fixed by  <br>
     <b>Merge of yarn reorg into branch-2 copied trunk tree</b><br>
     <blockquote>When the move of yarn from inside MR to the project root was merged into branch-2, it seems like the trunk code base was actually copied into the branch-2 branch, instead of a parallel move occurring. So, the poms in branch-2 show the version as 3.0.0-SNAPSHOT instead of a 2.x snapshot version. This is breaking the branch-2 build.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-12">YARN-12</a>.
     Major bug reported by Junping Du and fixed by Junping Du (scheduler)<br>
     <b>Several Findbugs issues with new FairScheduler in YARN</b><br>
     <blockquote>The good feature of FairScheduler is added recently to YARN. As recently PreCommit test from MAPREDUCE-4309, there are several bugs found by Findbugs related to FairScheduler:
org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.FairSchedulerEventLog.shutdown() might ignore java.lang.Exception
Inconsistent synchronization of org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.FairSchedulerEventLog.logDisabled; locked 50% of time
Inconsistent synchronization of org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.QueueManager.queueMaxAppsDefault; locked 50% of time
Inconsistent synchronization of org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.QueueManager.userMaxAppsDefault; locked 50% of time
The details are in:https://builds.apache.org/job/PreCommit-MAPREDUCE-Build/2612//artifact/trunk/patchprocess/newPatchFindbugsWarningshadoop-yarn-server-resourcemanager.html#DE_MIGHT_IGNORE 

</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-10">YARN-10</a>.
     Major improvement reported by Arun C Murthy and fixed by Hitesh Shah <br>
     <b>dist-shell shouldn't have a (test) dependency on hadoop-mapreduce-client-core</b><br>
     <blockquote>dist-shell shouldn't have a (test) dependency on hadoop-mapreduce-client-core, this should be removed.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-9">YARN-9</a>.
     Major improvement reported by Arun C Murthy and fixed by Vinod Kumar Vavilapalli <br>
     <b>Rename YARN_HOME to HADOOP_YARN_HOME</b><br>
     <blockquote>We should rename YARN_HOME to HADOOP_YARN_HOME to be consistent with rest of Hadoop sub-projects.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-1">YARN-1</a>.
     Major task reported by Arun C Murthy and fixed by Arun C Murthy <br>
     <b>Move YARN out of hadoop-mapreduce</b><br>
     <blockquote>Move YARN out of hadoop-mapreduce-project into hadoop-yarn-project in hadoop trunk</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4691">MAPREDUCE-4691</a>.
     Critical bug reported by Jason Lowe and fixed by Robert Joseph Evans (jobhistoryserver , mrv2)<br>
     <b>Historyserver can report "Unknown job" after RM says job has completed</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4689">MAPREDUCE-4689</a>.
     Major bug reported by Jason Lowe and fixed by Jason Lowe (client)<br>
     <b>JobClient.getMapTaskReports on failed job results in NPE</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4649">MAPREDUCE-4649</a>.
     Major bug reported by Vinod Kumar Vavilapalli and fixed by Vinod Kumar Vavilapalli (jobhistoryserver)<br>
     <b>mr-jobhistory-daemon.sh needs to be updated post YARN-1</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4647">MAPREDUCE-4647</a>.
     Major bug reported by Robert Joseph Evans and fixed by Robert Joseph Evans (mrv2)<br>
     <b>We should only unjar jobjar if there is a lib directory in it.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4646">MAPREDUCE-4646</a>.
     Major bug reported by Jason Lowe and fixed by Jason Lowe (mrv2)<br>
     <b>client does not receive job diagnostics for failed jobs</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4642">MAPREDUCE-4642</a>.
     Major bug reported by Robert Kanter and fixed by Robert Kanter (test)<br>
     <b>MiniMRClientClusterFactory should not use job.setJar()</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4641">MAPREDUCE-4641</a>.
     Major bug reported by Jason Lowe and fixed by Jason Lowe (mrv2)<br>
     <b>Exception in commitJob marks job as successful in job history</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4638">MAPREDUCE-4638</a>.
     Major improvement reported by Arun C Murthy and fixed by Arun C Murthy <br>
     <b>MR AppMaster shouldn't rely on YARN_APPLICATION_CLASSPATH providing MR jars</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4635">MAPREDUCE-4635</a>.
     Major bug reported by Bikas Saha and fixed by Bikas Saha <br>
     <b>MR side of YARN-83. Changing package of YarnClient</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4633">MAPREDUCE-4633</a>.
     Critical bug reported by Thomas Graves and fixed by Thomas Graves (jobhistoryserver)<br>
     <b>history server doesn't set permissions on all subdirs </b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4629">MAPREDUCE-4629</a>.
     Major bug reported by Karthik Kambatla and fixed by Karthik Kambatla <br>
     <b>Remove JobHistory.DEBUG_MODE</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4614">MAPREDUCE-4614</a>.
     Major improvement reported by Daryn Sharp and fixed by Daryn Sharp (client , task)<br>
     <b>Simplify debugging a job's tokens</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4612">MAPREDUCE-4612</a>.
     Critical bug reported by Thomas Graves and fixed by Thomas Graves <br>
     <b>job summary file permissions not set when its created</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4611">MAPREDUCE-4611</a>.
     Critical bug reported by Robert Joseph Evans and fixed by Robert Joseph Evans <br>
     <b>MR AM dies badly when Node is decomissioned</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4610">MAPREDUCE-4610</a>.
     Major bug reported by Tom White and fixed by Tom White (mrv2)<br>
     <b>Support deprecated mapreduce.job.counters.limit property in MR2</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4608">MAPREDUCE-4608</a>.
     Major bug reported by Alejandro Abdelnur and fixed by Alejandro Abdelnur (build)<br>
     <b>hadoop-mapreduce-client is missing some dependencies</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4604">MAPREDUCE-4604</a>.
     Critical bug reported by Ravi Prakash and fixed by Ravi Prakash (mrv2)<br>
     <b>In mapred-default, mapreduce.map.maxattempts &amp; mapreduce.reduce.maxattempts defaults are set to 4 as well as mapreduce.job.maxtaskfailures.per.tracker. </b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4600">MAPREDUCE-4600</a>.
     Critical bug reported by Robert Joseph Evans and fixed by Daryn Sharp <br>
     <b>TestTokenCache.java from MRV1 no longer compiles</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4580">MAPREDUCE-4580</a>.
     Major bug reported by Vinod Kumar Vavilapalli and fixed by Vinod Kumar Vavilapalli <br>
     <b>Change MapReduce to use the yarn-client module</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4579">MAPREDUCE-4579</a>.
     Major bug reported by Thomas Graves and fixed by Thomas Graves <br>
     <b>TestTaskAttempt fails jdk7</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4577">MAPREDUCE-4577</a>.
     Minor bug reported by Alejandro Abdelnur and fixed by Aaron T. Myers (test)<br>
     <b>HDFS-3672 broke TestCombineFileInputFormat.testMissingBlocks() test</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4572">MAPREDUCE-4572</a>.
     Major bug reported by Ahmed Radwan and fixed by Ahmed Radwan (tasktracker , webapps)<br>
     <b>Can not access user logs - Jetty is not configured by default to serve aliases/symlinks</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4570">MAPREDUCE-4570</a>.
     Minor bug reported by Ahmed Radwan and fixed by Ahmed Radwan (mrv2)<br>
     <b>ProcfsBasedProcessTree#constructProcessInfo() prints a warning if procfsDir/&lt;pid&gt;/stat is not found.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4569">MAPREDUCE-4569</a>.
     Major bug reported by Thomas Graves and fixed by Thomas Graves <br>
     <b>TestHsWebServicesJobsQuery fails on jdk7</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4562">MAPREDUCE-4562</a>.
     Major bug reported by Jarek Jarcec Cecho and fixed by Jarek Jarcec Cecho <br>
     <b>Support for "FileSystemCounter" legacy counter group name for compatibility reasons is creating incorrect counter name</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4511">MAPREDUCE-4511</a>.
     Major improvement reported by Ahmed Radwan and fixed by Ahmed Radwan (mrv1 , mrv2 , performance)<br>
     <b>Add IFile readahead</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4504">MAPREDUCE-4504</a>.
     Major bug reported by Robert Joseph Evans and fixed by Robert Joseph Evans (mrv2)<br>
     <b>SortValidator writes to wrong directory</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4503">MAPREDUCE-4503</a>.
     Major bug reported by Robert Joseph Evans and fixed by Robert Joseph Evans (mrv2)<br>
     <b>Should throw InvalidJobConfException if duplicates found in cacheArchives or cacheFiles</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4498">MAPREDUCE-4498</a>.
     Critical bug reported by Robert Kanter and fixed by Robert Kanter (build , examples)<br>
     <b>Remove hsqldb jar from Hadoop runtime classpath</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4496">MAPREDUCE-4496</a>.
     Major bug reported by Jason Lowe and fixed by Jason Lowe (applicationmaster , mrv2)<br>
     <b>AM logs link is missing user name</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4494">MAPREDUCE-4494</a>.
     Major bug reported by Ahmed Radwan and fixed by Ahmed Radwan (mrv2 , test)<br>
     <b>TestFifoScheduler failing with Metrics source QueueMetrics,q0=default already exists!</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4493">MAPREDUCE-4493</a>.
     Critical bug reported by Robert Joseph Evans and fixed by Robert Joseph Evans (mrv2)<br>
     <b>Distibuted Cache Compatability Issues</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4492">MAPREDUCE-4492</a>.
     Minor bug reported by Nishan Shetty and fixed by Mayank Bansal (mrv2)<br>
     <b>Configuring total queue capacity between 100.5 and 99.5 at perticular level is sucessfull</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4484">MAPREDUCE-4484</a>.
     Major bug reported by Ahmed Radwan and fixed by Ahmed Radwan (mrv2)<br>
     <b>Incorrect IS_MINI_YARN_CLUSTER property name in YarnConfiguration</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4483">MAPREDUCE-4483</a>.
     Major bug reported by John George and fixed by John George <br>
     <b>2.0 build does not work </b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4470">MAPREDUCE-4470</a>.
     Major bug reported by Kihwal Lee and fixed by Ilya Katsov (test)<br>
     <b>Fix TestCombineFileInputFormat.testForEmptyFile</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4467">MAPREDUCE-4467</a>.
     Critical bug reported by Andrey Klochkov and fixed by Kihwal Lee (nodemanager)<br>
     <b>IndexCache failures due to missing synchronization</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4465">MAPREDUCE-4465</a>.
     Trivial bug reported by Bo Wang and fixed by Bo Wang <br>
     <b>Update description of yarn.nodemanager.address property</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4457">MAPREDUCE-4457</a>.
     Critical bug reported by Thomas Graves and fixed by Robert Joseph Evans (mrv2)<br>
     <b>mr job invalid transition TA_TOO_MANY_FETCH_FAILURE at FAILED</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4456">MAPREDUCE-4456</a>.
     Major bug reported by Robert Joseph Evans and fixed by Robert Joseph Evans (mrv2)<br>
     <b>LocalDistributedCacheManager can get an ArrayIndexOutOfBounds when creating symlinks</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4449">MAPREDUCE-4449</a>.
     Major bug reported by Ahmed Radwan and fixed by Ahmed Radwan (mrv2)<br>
     <b>Incorrect MR_HISTORY_STORAGE property name in JHAdminConfig</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4448">MAPREDUCE-4448</a>.
     Critical bug reported by Jason Lowe and fixed by Jason Lowe (mrv2 , nodemanager)<br>
     <b>Nodemanager crashes upon application cleanup if aggregation failed to start</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4447">MAPREDUCE-4447</a>.
     Major bug reported by Eli Collins and fixed by Eli Collins (build)<br>
     <b>Remove aop from cruft from the ant build </b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4444">MAPREDUCE-4444</a>.
     Blocker bug reported by Nathan Roberts and fixed by Jason Lowe (nodemanager)<br>
     <b>nodemanager fails to start when one of the local-dirs is bad</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4441">MAPREDUCE-4441</a>.
     Blocker bug reported by Karthik Kambatla and fixed by Karthik Kambatla <br>
     <b>Fix build issue caused by MR-3451</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4440">MAPREDUCE-4440</a>.
     Major bug reported by Arun C Murthy and fixed by Arun C Murthy <br>
     <b>Change SchedulerApp &amp; SchedulerNode to be a minimal interface </b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4437">MAPREDUCE-4437</a>.
     Critical bug reported by Jason Lowe and fixed by Jason Lowe (applicationmaster , mrv2)<br>
     <b>Race in MR ApplicationMaster can cause reducers to never be scheduled</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4432">MAPREDUCE-4432</a>.
     Trivial bug reported by Gabriel Reid and fixed by  <br>
     <b>Confusing warning message when GenericOptionsParser is not used</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4427">MAPREDUCE-4427</a>.
     Major improvement reported by Bikas Saha and fixed by Bikas Saha <br>
     <b>Enable the RM to work with AM's that are not managed by it</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4423">MAPREDUCE-4423</a>.
     Critical bug reported by Robert Joseph Evans and fixed by Robert Joseph Evans (mrv2)<br>
     <b>Potential infinite fetching of map output</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4422">MAPREDUCE-4422</a>.
     Major improvement reported by Arun C Murthy and fixed by Ahmed Radwan (nodemanager)<br>
     <b>YARN_APPLICATION_CLASSPATH needs a documented default value in YarnConfiguration</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4419">MAPREDUCE-4419</a>.
     Major bug reported by Nishan Shetty and fixed by Devaraj K (mrv2)<br>
     <b>./mapred queue -info &lt;queuename&gt; -showJobs displays all the jobs irrespective of &lt;queuename&gt; </b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4417">MAPREDUCE-4417</a>.
     Major new feature reported by Alejandro Abdelnur and fixed by Alejandro Abdelnur (mrv2 , security)<br>
     <b>add support for encrypted shuffle</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4416">MAPREDUCE-4416</a>.
     Critical bug reported by Kihwal Lee and fixed by Kihwal Lee (client , mrv2)<br>
     <b>Some tests fail if Clover is enabled</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4408">MAPREDUCE-4408</a>.
     Major improvement reported by Alejandro Abdelnur and fixed by Robert Kanter (mrv1 , mrv2)<br>
     <b>allow jobs to set a JAR that is in the distributed cached</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4407">MAPREDUCE-4407</a>.
     Major bug reported by Ahmed Radwan and fixed by Ahmed Radwan (build , mrv2)<br>
     <b>Add hadoop-yarn-server-tests-&lt;version&gt;-tests.jar to hadoop dist package</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4406">MAPREDUCE-4406</a>.
     Major bug reported by Ahmed Radwan and fixed by Ahmed Radwan (mrv2 , test)<br>
     <b>Users should be able to specify the MiniCluster ResourceManager and JobHistoryServer ports</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4402">MAPREDUCE-4402</a>.
     Major bug reported by Jason Lowe and fixed by Jason Lowe (test)<br>
     <b>TestFileInputFormat fails intermittently</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4395">MAPREDUCE-4395</a>.
     Critical bug reported by Bhallamudi Venkata Siva Kamesh and fixed by Bhallamudi Venkata Siva Kamesh (distributed-cache , job submission , mrv2)<br>
     <b>Possible NPE at ClientDistributedCacheManager#determineTimestamps</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4392">MAPREDUCE-4392</a>.
     Major bug reported by Jason Lowe and fixed by Jason Lowe (mrv2)<br>
     <b>Counters.makeCompactString() changed behavior from 0.20</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4387">MAPREDUCE-4387</a>.
     Major bug reported by Kihwal Lee and fixed by Kihwal Lee (resourcemanager)<br>
     <b>RM gets fatal error and exits during TestRM</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4384">MAPREDUCE-4384</a>.
     Major bug reported by Kihwal Lee and fixed by Kihwal Lee (nodemanager)<br>
     <b>Race conditions in IndexCache</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4383">MAPREDUCE-4383</a>.
     Minor bug reported by Andy Isaacson and fixed by Andy Isaacson (pipes)<br>
     <b>HadoopPipes.cc needs to include unistd.h</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4380">MAPREDUCE-4380</a>.
     Minor bug reported by Devaraj K and fixed by Devaraj K (mrv2 , nodemanager)<br>
     <b>Empty Userlogs directory is getting created under logs directory</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4379">MAPREDUCE-4379</a>.
     Blocker bug reported by Devaraj K and fixed by Devaraj K (mrv2 , nodemanager)<br>
     <b>Node Manager throws java.lang.OutOfMemoryError: Java heap space due to org.apache.hadoop.fs.LocalDirAllocator.contexts</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4376">MAPREDUCE-4376</a>.
     Major bug reported by Jason Lowe and fixed by Kihwal Lee (mrv2 , test)<br>
     <b>TestClusterMRNotification times out</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4375">MAPREDUCE-4375</a>.
     Major improvement reported by Robert Joseph Evans and fixed by Robert Joseph Evans (applicationmaster)<br>
     <b>Show Configuration Tracability in MR UI</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4372">MAPREDUCE-4372</a>.
     Major bug reported by Devaraj K and fixed by Devaraj K (mrv2 , resourcemanager)<br>
     <b>Deadlock in Resource Manager between SchedulerEventDispatcher.EventProcessor and Shutdown hook manager</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4361">MAPREDUCE-4361</a>.
     Major bug reported by Jason Lowe and fixed by Jason Lowe (mrv2)<br>
     <b>Fix detailed metrics for protobuf-based RPC on 0.23</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4355">MAPREDUCE-4355</a>.
     Major new feature reported by Karthik Kambatla and fixed by Karthik Kambatla (mrv1 , mrv2)<br>
     <b>Add RunningJob.getJobStatus()</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4341">MAPREDUCE-4341</a>.
     Major bug reported by Thomas Graves and fixed by Karthik Kambatla (capacity-sched , mrv2)<br>
     <b>add types to capacity scheduler properties documentation</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4336">MAPREDUCE-4336</a>.
     Major bug reported by Siddharth Seth and fixed by Ahmed Radwan (mrv2)<br>
     <b>Distributed Shell fails when used with the CapacityScheduler</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4320">MAPREDUCE-4320</a>.
     Major bug reported by Thomas Graves and fixed by Thomas Graves (contrib/gridmix)<br>
     <b>gridmix mainClass wrong in pom.xml</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4313">MAPREDUCE-4313</a>.
     Blocker bug reported by Eli Collins and fixed by Robert Joseph Evans (build , test)<br>
     <b>TestTokenCache doesn't compile due TokenCache.getDelegationToken compilation error</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4311">MAPREDUCE-4311</a>.
     Major bug reported by Thomas Graves and fixed by Karthik Kambatla (capacity-sched , mrv2)<br>
     <b>Capacity scheduler.xml does not accept decimal values for capacity and maximum-capacity settings</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4307">MAPREDUCE-4307</a>.
     Major bug reported by Ahmed Radwan and fixed by Ahmed Radwan (mrv2)<br>
     <b>TeraInputFormat calls FileSystem.getDefaultBlockSize() without a Path - Failure when using ViewFileSystem</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4306">MAPREDUCE-4306</a>.
     Major bug reported by Ahmed Radwan and fixed by Ahmed Radwan (mrv2)<br>
     <b>Problem running Distributed Shell applications as a user other than the one started the daemons</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4302">MAPREDUCE-4302</a>.
     Critical bug reported by Daryn Sharp and fixed by Daryn Sharp (nodemanager)<br>
     <b>NM goes down if error encountered during log aggregation</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4301">MAPREDUCE-4301</a>.
     Major improvement reported by Robert Joseph Evans and fixed by Robert Joseph Evans (applicationmaster)<br>
     <b>Dedupe some strings in MRAM for memory savings</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4300">MAPREDUCE-4300</a>.
     Major bug reported by Robert Joseph Evans and fixed by Robert Joseph Evans (applicationmaster)<br>
     <b>OOM in AM can turn it into a zombie.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4299">MAPREDUCE-4299</a>.
     Major bug reported by Tom White and fixed by Tom White (mrv2)<br>
     <b>Terasort hangs with MR2 FifoScheduler</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4297">MAPREDUCE-4297</a>.
     Major bug reported by Ravi Prakash and fixed by Ravi Prakash (contrib/gridmix)<br>
     <b>Usersmap file in gridmix should not fail on empty lines</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4295">MAPREDUCE-4295</a>.
     Critical bug reported by Thomas Graves and fixed by Thomas Graves (mrv2 , resourcemanager)<br>
     <b>RM crashes due to DNS issue</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4290">MAPREDUCE-4290</a>.
     Major bug reported by Nishan Shetty and fixed by Devaraj K (mrv2)<br>
     <b>JobStatus.getState() API is giving ambiguous values</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4283">MAPREDUCE-4283</a>.
     Major improvement reported by Jason Lowe and fixed by Jason Lowe (jobhistoryserver , mrv2)<br>
     <b>Display tail of aggregated logs by default</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4276">MAPREDUCE-4276</a>.
     Major bug reported by Ahmed Radwan and fixed by Ahmed Radwan (mrv2)<br>
     <b>Allow setting yarn.nodemanager.delete.debug-delay-sec property to "-1" for easier container debugging.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4270">MAPREDUCE-4270</a>.
     Major bug reported by Brock Noland and fixed by Thomas Graves (mrv2)<br>
     <b>data_join test classes are in the wrong packge</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4269">MAPREDUCE-4269</a>.
     Major bug reported by Jonathan Eagles and fixed by Jonathan Eagles (mrv2)<br>
     <b>documentation: Gridmix has javadoc warnings in StressJobFactory</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4267">MAPREDUCE-4267</a>.
     Critical bug reported by Thomas Graves and fixed by Thomas Graves (mrv2)<br>
     <b>mavenize pipes</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4264">MAPREDUCE-4264</a>.
     Blocker bug reported by Thomas Graves and fixed by Thomas Graves (mrv2)<br>
     <b>Got ClassCastException when using mapreduce.history.server.delegationtoken.required=true</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4262">MAPREDUCE-4262</a>.
     Minor bug reported by Devaraj K and fixed by Devaraj K (mrv2 , nodemanager)<br>
     <b>NM gives wrong log message saying "Connected to ResourceManager" before trying to connect</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4252">MAPREDUCE-4252</a>.
     Major bug reported by Tom White and fixed by Tom White (mrv2)<br>
     <b>MR2 job never completes with 1 pending task</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4250">MAPREDUCE-4250</a>.
     Major bug reported by Patrick Hunt and fixed by Patrick Hunt (nodemanager)<br>
     <b>hadoop-config.sh missing variable exports, causes Yarn jobs to fail with ClassNotFoundException MRAppMaster</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4238">MAPREDUCE-4238</a>.
     Critical bug reported by Thomas Graves and fixed by Thomas Graves (mrv2)<br>
     <b>mavenize data_join</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4237">MAPREDUCE-4237</a>.
     Major bug reported by Robert Joseph Evans and fixed by Robert Joseph Evans <br>
     <b>TestNodeStatusUpdater can fail if localhost has a domain associated with it</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4233">MAPREDUCE-4233</a>.
     Critical bug reported by Robert Joseph Evans and fixed by Robert Joseph Evans <br>
     <b>NPE can happen in RMNMNodeInfo.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4228">MAPREDUCE-4228</a>.
     Major bug reported by Jason Lowe and fixed by Jason Lowe (applicationmaster , mrv2)<br>
     <b>mapreduce.job.reduce.slowstart.completedmaps is not working properly to delay the scheduling of the reduce tasks</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4226">MAPREDUCE-4226</a>.
     Major bug reported by Tom White and fixed by Tom White (mrv2)<br>
     <b>ConcurrentModificationException in FileSystemCounterGroup</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4224">MAPREDUCE-4224</a>.
     Major bug reported by Devaraj K and fixed by Devaraj K (mrv2 , scheduler , test)<br>
     <b>TestFifoScheduler throws org.apache.hadoop.metrics2.MetricsException </b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4220">MAPREDUCE-4220</a>.
     Minor bug reported by Jonathan Eagles and fixed by Jonathan Eagles (mrv2)<br>
     <b>RM apps page starttime/endtime sorts are incorrect</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4215">MAPREDUCE-4215</a>.
     Major bug reported by Jonathan Eagles and fixed by Jonathan Eagles (mrv2)<br>
     <b>RM app page shows 500 error on appid parse error</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4212">MAPREDUCE-4212</a>.
     Major test reported by Daryn Sharp and fixed by Daryn Sharp (test)<br>
     <b>TestJobClientGetJob sometimes fails</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4211">MAPREDUCE-4211</a>.
     Minor bug reported by Jonathan Eagles and fixed by Jonathan Eagles (mrv2)<br>
     <b>Error conditions (missing appid, appid not found) are masked in the RM app page</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4210">MAPREDUCE-4210</a>.
     Major improvement reported by Daryn Sharp and fixed by Daryn Sharp (webapps)<br>
     <b>Expose listener address for WebApp</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4209">MAPREDUCE-4209</a>.
     Major bug reported by Radim Kolar and fixed by  (build)<br>
     <b>junit dependency in hadoop-mapreduce-client is missing scope test</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4206">MAPREDUCE-4206</a>.
     Minor bug reported by Jonathan Eagles and fixed by Jonathan Eagles (mrv2)<br>
     <b>Sorting by Last Health-Update on the RM nodes page sorts does not work correctly</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4205">MAPREDUCE-4205</a>.
     Major improvement reported by Alejandro Abdelnur and fixed by Alejandro Abdelnur (mrv2)<br>
     <b>retrofit all JVM shutdown hooks to use ShutdownHookManager</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4197">MAPREDUCE-4197</a>.
     Major bug reported by Ravi Prakash and fixed by Ravi Prakash <br>
     <b>Include the hsqldb jar in the hadoop-mapreduce tar file</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4194">MAPREDUCE-4194</a>.
     Major bug reported by Jonathan Eagles and fixed by Jonathan Eagles (mrv2)<br>
     <b>ConcurrentModificationError in DirectoryCollection</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4190">MAPREDUCE-4190</a>.
     Major improvement reported by Thomas Graves and fixed by Thomas Graves (mrv2 , webapps)<br>
     <b> Improve web UI for task attempts userlog link</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4189">MAPREDUCE-4189</a>.
     Critical bug reported by Devaraj K and fixed by Devaraj K (mrv2)<br>
     <b>TestContainerManagerSecurity is failing</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4169">MAPREDUCE-4169</a>.
     Minor bug reported by Jonathan Eagles and fixed by Jonathan Eagles (mrv2)<br>
     <b>Container Logs appear in unsorted order</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4165">MAPREDUCE-4165</a>.
     Trivial bug reported by Jonathan Eagles and fixed by Jonathan Eagles (mrv2)<br>
     <b>Committing is misspelled as commiting in task logs</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4163">MAPREDUCE-4163</a>.
     Major sub-task reported by Daryn Sharp and fixed by Daryn Sharp (mrv2)<br>
     <b>consistently set the bind address</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4162">MAPREDUCE-4162</a>.
     Major sub-task reported by Daryn Sharp and fixed by Daryn Sharp (client , mrv2)<br>
     <b>Correctly set token service</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4161">MAPREDUCE-4161</a>.
     Major sub-task reported by Daryn Sharp and fixed by Daryn Sharp (client , mrv2)<br>
     <b>create sockets consistently</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4160">MAPREDUCE-4160</a>.
     Major bug reported by Thomas Graves and fixed by Thomas Graves (test)<br>
     <b>some mrv1 ant tests fail with timeout - due to 4156</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4159">MAPREDUCE-4159</a>.
     Major bug reported by Nishan Shetty and fixed by Devaraj K (mrv2)<br>
     <b>Job is running in Uber mode after setting "mapreduce.job.ubertask.maxreduces" to zero</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4157">MAPREDUCE-4157</a>.
     Major improvement reported by Jason Lowe and fixed by Jason Lowe (mrv2)<br>
     <b>ResourceManager should not kill apps that are well behaved</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4156">MAPREDUCE-4156</a>.
     Major bug reported by Thomas Graves and fixed by Thomas Graves (build)<br>
     <b>ant build fails compiling JobInProgress</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4152">MAPREDUCE-4152</a>.
     Major bug reported by Thomas Graves and fixed by Thomas Graves (mrv2)<br>
     <b>map task left hanging after AM dies trying to connect to RM</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4151">MAPREDUCE-4151</a>.
     Major improvement reported by Jason Lowe and fixed by Jason Lowe (mrv2 , webapps)<br>
     <b>RM scheduler web page should filter apps to those that are relevant to scheduling</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4148">MAPREDUCE-4148</a>.
     Major bug reported by Tom White and fixed by Tom White (mrv2)<br>
     <b>MapReduce should not have a compile-time dependency on HDFS</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4146">MAPREDUCE-4146</a>.
     Major improvement reported by Tom White and fixed by Ahmed Radwan <br>
     <b>Support limits on task status string length and number of block locations in branch-2</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4144">MAPREDUCE-4144</a>.
     Critical bug reported by Jason Lowe and fixed by Jason Lowe (mrv2)<br>
     <b>ResourceManager NPE while handling NODE_UPDATE</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4140">MAPREDUCE-4140</a>.
     Major bug reported by Patrick Hunt and fixed by Patrick Hunt (client , mrv2)<br>
     <b>mapreduce classes incorrectly importing "clover.org.apache.*" classes</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4139">MAPREDUCE-4139</a>.
     Major bug reported by Jason Lowe and fixed by Jason Lowe (mrv2)<br>
     <b>Potential ResourceManager deadlock when SchedulerEventDispatcher is stopped</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4134">MAPREDUCE-4134</a>.
     Major task reported by Ravi Prakash and fixed by Ravi Prakash (mrv2)<br>
     <b>Remove references of mapred.child.ulimit etc. since they are not being used any more</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4133">MAPREDUCE-4133</a>.
     Major bug reported by John George and fixed by John George <br>
     <b>MR over viewfs is broken</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4129">MAPREDUCE-4129</a>.
     Major bug reported by Ahmed Radwan and fixed by Ahmed Radwan (mrv2)<br>
     <b>Lots of unneeded counters log messages</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4128">MAPREDUCE-4128</a>.
     Major bug reported by Bikas Saha and fixed by Bikas Saha (mrv2)<br>
     <b>AM Recovery expects all attempts of a completed task to also be completed.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4117">MAPREDUCE-4117</a>.
     Critical bug reported by Devaraj K and fixed by Devaraj K (client , mrv2)<br>
     <b>mapred job -status throws NullPointerException</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4102">MAPREDUCE-4102</a>.
     Major bug reported by Thomas Graves and fixed by Bhallamudi Venkata Siva Kamesh (webapps)<br>
     <b>job counters not available in Jobhistory webui for killed jobs</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4099">MAPREDUCE-4099</a>.
     Critical bug reported by Jason Lowe and fixed by Jason Lowe (mrv2)<br>
     <b>ApplicationMaster may fail to remove staging directory</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4097">MAPREDUCE-4097</a>.
     Major bug reported by Alejandro Abdelnur and fixed by Roman Shaposhnik (build)<br>
     <b>tools testcases fail because missing mrapp-generated-classpath file in classpath</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4092">MAPREDUCE-4092</a>.
     Blocker bug reported by Jonathan Eagles and fixed by Jonathan Eagles (mrv2)<br>
     <b>commitJob Exception does not fail job (regression in 0.23 vs 0.20)</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4091">MAPREDUCE-4091</a>.
     Critical bug reported by Alejandro Abdelnur and fixed by Alejandro Abdelnur (build , test)<br>
     <b>tools testcases failing because of MAPREDUCE-4082</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4089">MAPREDUCE-4089</a>.
     Blocker bug reported by Robert Joseph Evans and fixed by Robert Joseph Evans (mrv2)<br>
     <b>Hung Tasks never time out. </b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4082">MAPREDUCE-4082</a>.
     Critical bug reported by Alejandro Abdelnur and fixed by Alejandro Abdelnur (build)<br>
     <b>hadoop-mapreduce-client-app's mrapp-generated-classpath file should not be in the module JAR</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4079">MAPREDUCE-4079</a>.
     Blocker improvement reported by Robert Joseph Evans and fixed by Robert Joseph Evans (mr-am , mrv2)<br>
     <b>Allow MR AppMaster to limit ephemeral port range.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4074">MAPREDUCE-4074</a>.
     Major bug reported by Devaraj K and fixed by xieguiming <br>
     <b>Client continuously retries to RM When RM goes down before launching Application Master</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4073">MAPREDUCE-4073</a>.
     Critical bug reported by Siddharth Seth and fixed by Siddharth Seth (mrv2 , scheduler)<br>
     <b>CS assigns multiple off-switch containers when using multi-level-queues</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4072">MAPREDUCE-4072</a>.
     Major bug reported by Anupam Seth and fixed by Anupam Seth (mrv2)<br>
     <b>User set java.library.path seems to overwrite default creating problems native lib loading</b><br>
     <blockquote>-Djava.library.path in mapred.child.java.opts can cause issues with native libraries.  LD_LIBRARY_PATH through mapred.child.env should be used instead.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4068">MAPREDUCE-4068</a>.
     Blocker bug reported by Ahmed Radwan and fixed by Robert Kanter (mrv2)<br>
     <b>Jars in lib subdirectory of the submittable JAR are not added to the classpath</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4062">MAPREDUCE-4062</a>.
     Major bug reported by Thomas Graves and fixed by Thomas Graves (mrv2)<br>
     <b>AM Launcher thread can hang forever</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4060">MAPREDUCE-4060</a>.
     Major bug reported by Jason Lowe and fixed by Jason Lowe (build)<br>
     <b>Multiple SLF4J binding warning</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4059">MAPREDUCE-4059</a>.
     Major improvement reported by Robert Joseph Evans and fixed by Robert Joseph Evans (mrv2)<br>
     <b>The history server should have a separate pluggable storage/query interface</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4053">MAPREDUCE-4053</a>.
     Major bug reported by Alejandro Abdelnur and fixed by Robert Joseph Evans (mrv2)<br>
     <b>Counters group names deprecation is wrong, iterating over group names deprecated names don't show up</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4051">MAPREDUCE-4051</a>.
     Major task reported by Ravi Prakash and fixed by Ravi Prakash <br>
     <b>Remove the empty hadoop-mapreduce-project/assembly/all.xml file</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4050">MAPREDUCE-4050</a>.
     Major bug reported by Bhallamudi Venkata Siva Kamesh and fixed by Bhallamudi Venkata Siva Kamesh (mrv2)<br>
     <b>Invalid node link</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4048">MAPREDUCE-4048</a>.
     Major bug reported by Devaraj K and fixed by Devaraj K (mrv2)<br>
     <b>NullPointerException exception while accessing the Application Master UI</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4040">MAPREDUCE-4040</a>.
     Minor bug reported by Bhallamudi Venkata Siva Kamesh and fixed by Bhallamudi Venkata Siva Kamesh (jobhistoryserver , mrv2)<br>
     <b>History links should use hostname rather than IP address.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4031">MAPREDUCE-4031</a>.
     Critical bug reported by Devaraj K and fixed by Devaraj K (mrv2 , nodemanager)<br>
     <b>Node Manager hangs on shut down</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4024">MAPREDUCE-4024</a>.
     Major bug reported by Thomas Graves and fixed by Thomas Graves (mrv2)<br>
     <b>RM webservices can't query on finalStatus</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4020">MAPREDUCE-4020</a>.
     Major bug reported by Jason Lowe and fixed by Anupam Seth (mrv2 , webapps)<br>
     <b>Web services returns incorrect JSON for deep queue tree</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4017">MAPREDUCE-4017</a>.
     Trivial improvement reported by Koji Noguchi and fixed by Thomas Graves (jobhistoryserver , jobtracker)<br>
     <b>Add jobname to jobsummary log</b><br>
     <blockquote>The Job Summary log may contain commas in values that are escaped by a '\' character.  This was true before, but is more likely to be exposed now. </blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4012">MAPREDUCE-4012</a>.
     Minor bug reported by Koji Noguchi and fixed by Thomas Graves <br>
     <b>Hadoop Job setup error leaves no useful info to users (when LinuxTaskController is used)</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4010">MAPREDUCE-4010</a>.
     Critical bug reported by Jason Lowe and fixed by Alejandro Abdelnur (mrv2)<br>
     <b>TestWritableJobConf fails on trunk</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4002">MAPREDUCE-4002</a>.
     Major bug reported by Bhallamudi Venkata Siva Kamesh and fixed by Bhallamudi Venkata Siva Kamesh (examples)<br>
     <b>MultiFileWordCount job fails if the input path is not from default file system</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3999">MAPREDUCE-3999</a>.
     Major bug reported by Ravi Prakash and fixed by Ravi Prakash (mrv2 , webapps)<br>
     <b>Tracking link gives an error if the AppMaster hasn't started yet</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3993">MAPREDUCE-3993</a>.
     Major bug reported by Todd Lipcon and fixed by Karthik Kambatla (mrv1 , mrv2)<br>
     <b>Graceful handling of codec errors during decompression</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3992">MAPREDUCE-3992</a>.
     Major bug reported by Todd Lipcon and fixed by Todd Lipcon (mrv1)<br>
     <b>Reduce fetcher doesn't verify HTTP status code of response</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3988">MAPREDUCE-3988</a>.
     Major bug reported by Vinod Kumar Vavilapalli and fixed by Eric Payne (mrv2)<br>
     <b>mapreduce.job.local.dir doesn't point to a single directory on a node.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3983">MAPREDUCE-3983</a>.
     Major test reported by Robert Joseph Evans and fixed by Ravi Prakash (mrv1)<br>
     <b>TestTTResourceReporting can fail, and should just be deleted</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3972">MAPREDUCE-3972</a>.
     Major sub-task reported by Robert Joseph Evans and fixed by Robert Joseph Evans (mrv2)<br>
     <b>Locking and exception issues in JobHistory Server.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3947">MAPREDUCE-3947</a>.
     Minor bug reported by Todd Lipcon and fixed by Devaraj K <br>
     <b>yarn.app.mapreduce.am.resource.mb not documented</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3942">MAPREDUCE-3942</a>.
     Major sub-task reported by Vinod Kumar Vavilapalli and fixed by Vinod Kumar Vavilapalli (mrv2 , security)<br>
     <b>Randomize master key generation for ApplicationTokenSecretManager and roll it every so often</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3940">MAPREDUCE-3940</a>.
     Major sub-task reported by Vinod Kumar Vavilapalli and fixed by Vinod Kumar Vavilapalli (mrv2 , security)<br>
     <b>ContainerTokens should have an expiry interval</b><br>
     <blockquote>ContainerTokens now have an expiry interval so that stale tokens cannot be used for launching containers.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3932">MAPREDUCE-3932</a>.
     Critical bug reported by Vinod Kumar Vavilapalli and fixed by Robert Joseph Evans (mr-am , mrv2)<br>
     <b>MR tasks failing and crashing the AM when available-resources/headRoom becomes zero</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3927">MAPREDUCE-3927</a>.
     Critical bug reported by MengWang and fixed by Bhallamudi Venkata Siva Kamesh (mrv2)<br>
     <b>Shuffle hang when set map.failures.percent</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3907">MAPREDUCE-3907</a>.
     Minor improvement reported by Eugene Koontz and fixed by Eugene Koontz (documentation)<br>
     <b>Document entries mapred-default.xml for the jobhistory server.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3906">MAPREDUCE-3906</a>.
     Trivial improvement reported by Eugene Koontz and fixed by Eugene Koontz (documentation)<br>
     <b>Fix inconsistency in documentation regarding mapreduce.jobhistory.principal</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3893">MAPREDUCE-3893</a>.
     Critical bug reported by Thomas Graves and fixed by Thomas Graves (mrv2)<br>
     <b>allow capacity scheduler configs maximum-applications and maximum-am-resource-percent configurable on a per queue basis</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3889">MAPREDUCE-3889</a>.
     Critical bug reported by Thomas Graves and fixed by Devaraj K (mrv2)<br>
     <b>job client tries to use /tasklog interface, but that doesn't exist anymore</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3873">MAPREDUCE-3873</a>.
     Minor bug reported by Nishan Shetty and fixed by xieguiming (mrv2 , nodemanager)<br>
     <b>Nodemanager is not getting decommisioned if the absolute ip is given in exclude file.</b><br>
     <blockquote>Fixed NodeManagers' decommissioning at RM to accept IP addresses also.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3871">MAPREDUCE-3871</a>.
     Major improvement reported by Tom White and fixed by Tom White (distributed-cache)<br>
     <b>Allow symlinking in LocalJobRunner DistributedCache</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3870">MAPREDUCE-3870</a>.
     Major bug reported by Bhallamudi Venkata Siva Kamesh and fixed by Bhallamudi Venkata Siva Kamesh (mrv2)<br>
     <b>Invalid App Metrics</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3850">MAPREDUCE-3850</a>.
     Major improvement reported by Daryn Sharp and fixed by Daryn Sharp (security)<br>
     <b>Avoid redundant calls for tokens in TokenCache</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3842">MAPREDUCE-3842</a>.
     Critical improvement reported by Alejandro Abdelnur and fixed by Thomas Graves (mrv2 , webapps)<br>
     <b>stop webpages from automatic refreshing</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3812">MAPREDUCE-3812</a>.
     Major sub-task reported by Vinod Kumar Vavilapalli and fixed by Harsh J (mrv2 , performance)<br>
     <b>Lower default allocation sizes, fix allocation configurations and document them</b><br>
     <blockquote>Removes two sets of previously available config properties:

1. ( yarn.scheduler.fifo.minimum-allocation-mb and yarn.scheduler.fifo.maximum-allocation-mb ) and,
2. ( yarn.scheduler.capacity.minimum-allocation-mb and yarn.scheduler.capacity.maximum-allocation-mb )

In favor of two new, generically named properties:

1. yarn.scheduler.minimum-allocation-mb - This acts as the floor value of memory resource requests for containers.
2. yarn.scheduler.maximum-allocation-mb - This acts as the ceiling value of memory resource requests for containers.

Both these properties need to be set at the ResourceManager (RM) to take effect, as the RM is where the scheduler resides.

Also changes the default minimum and maximums to 128 MB and 10 GB respectively.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3782">MAPREDUCE-3782</a>.
     Critical bug reported by Arpit Gupta and fixed by Jason Lowe (mrv2)<br>
     <b>teragen terasort jobs fail when using webhdfs:// </b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3773">MAPREDUCE-3773</a>.
     Major new feature reported by Owen O'Malley and fixed by Owen O'Malley (jobtracker)<br>
     <b>Add queue metrics with buckets for job run times</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3728">MAPREDUCE-3728</a>.
     Critical bug reported by Roman Shaposhnik and fixed by Giridharan Kesavan (mrv2 , nodemanager)<br>
     <b>ShuffleHandler can't access results when configured in a secure mode</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3682">MAPREDUCE-3682</a>.
     Major bug reported by David Capwell and fixed by Ravi Prakash (mrv2)<br>
     <b>Tracker URL says AM tasks run on localhost</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3672">MAPREDUCE-3672</a>.
     Major bug reported by Vinod Kumar Vavilapalli and fixed by Anupam Seth (mr-am , mrv2)<br>
     <b>Killed maps shouldn't be counted towards JobCounter.NUM_FAILED_MAPS</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3659">MAPREDUCE-3659</a>.
     Major improvement reported by Daryn Sharp and fixed by Daryn Sharp (security)<br>
     <b>Host-based token support</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3650">MAPREDUCE-3650</a>.
     Blocker bug reported by Thomas Graves and fixed by Ravi Prakash (mrv2)<br>
     <b>testGetTokensForHftpFS() fails</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3621">MAPREDUCE-3621</a>.
     Major bug reported by Thomas Graves and fixed by Ravi Prakash (mrv2)<br>
     <b>TestDBJob and TestDataDrivenDBInputFormat ant tests fail</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3613">MAPREDUCE-3613</a>.
     Critical sub-task reported by Thomas Graves and fixed by Thomas Graves (mrv2)<br>
     <b>web service calls header contains 2 content types</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3543">MAPREDUCE-3543</a>.
     Critical bug reported by Mahadev konar and fixed by Thomas Graves (mrv2)<br>
     <b>Mavenize Gridmix.</b><br>
     <blockquote>Note that to apply this you should first run the script - ./MAPREDUCE-3543v3.sh svn, then apply the patch.

If this is merged to more then trunk, the version inside of hadoop-tools/hadoop-gridmix/pom.xml will need to be udpated accordingly.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3506">MAPREDUCE-3506</a>.
     Minor bug reported by Ratandeep Ratti and fixed by Jason Lowe (client , mrv2)<br>
     <b>Calling getPriority on JobInfo after parsing a history log with JobHistoryParser throws a NullPointerException</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3493">MAPREDUCE-3493</a>.
     Minor bug reported by Ahmed Radwan and fixed by  (mrv2)<br>
     <b>Add the default mapreduce.shuffle.port property to mapred-default.xml</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3451">MAPREDUCE-3451</a>.
     Major new feature reported by Patrick Wendell and fixed by Patrick Wendell (mrv2 , scheduler)<br>
     <b>Port Fair Scheduler to MR2</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3350">MAPREDUCE-3350</a>.
     Critical bug reported by Vinod Kumar Vavilapalli and fixed by Jonathan Eagles (mrv2 , webapps)<br>
     <b>Per-app RM page should have the list of application-attempts like on the app JHS page</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3348">MAPREDUCE-3348</a>.
     Major bug reported by Devaraj K and fixed by Devaraj K (mrv2)<br>
     <b>mapred job -status fails to give info even if the job is present in History</b><br>
     <blockquote>Fixed a bug in MR client to redirect to JobHistoryServer correctly when RM forgets the app.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3289">MAPREDUCE-3289</a>.
     Major improvement reported by Todd Lipcon and fixed by Todd Lipcon (mrv2 , nodemanager , performance)<br>
     <b>Make use of fadvise in the NM's shuffle handler</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3082">MAPREDUCE-3082</a>.
     Major bug reported by Rajit Saha and fixed by John George (harchive)<br>
     <b>archive command take wrong path for input file with current directory</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2786">MAPREDUCE-2786</a>.
     Minor improvement reported by Plamen Jeliazkov and fixed by Plamen Jeliazkov (benchmarks)<br>
     <b>TestDFSIO should also test compression reading/writing from command-line.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2739">MAPREDUCE-2739</a>.
     Minor bug reported by Ahmed Radwan and fixed by Bo Wang (mrv2)<br>
     <b>MR-279: Update installation docs (remove YarnClientFactory)</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2374">MAPREDUCE-2374</a>.
     Major bug reported by Todd Lipcon and fixed by Andy Isaacson <br>
     <b>"Text File Busy" errors launching MR tasks</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2289">MAPREDUCE-2289</a>.
     Major bug reported by Todd Lipcon and fixed by Ahmed Radwan (job submission)<br>
     <b>Permissions race can make getStagingDir fail on local filesystem</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2220">MAPREDUCE-2220</a>.
     Minor bug reported by Rui KUBO and fixed by Rui KUBO (documentation)<br>
     <b>Fix new API FileOutputFormat-related typos in mapred-default.xml</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-987">MAPREDUCE-987</a>.
     Minor new feature reported by Philip Zeyliger and fixed by Ahmed Radwan (build , test)<br>
     <b>Exposing MiniDFS and MiniMR clusters as a single process command-line</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3972">HDFS-3972</a>.
     Critical bug reported by Todd Lipcon and fixed by Todd Lipcon (name-node)<br>
     <b>Trash emptier fails in secure HA cluster</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3928">HDFS-3928</a>.
     Major bug reported by Eli Collins and fixed by Eli Collins (test)<br>
     <b>MiniDFSCluster should reset the first ExitException on shutdown</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3902">HDFS-3902</a>.
     Minor bug reported by Andy Isaacson and fixed by Andy Isaacson <br>
     <b>TestDatanodeBlockScanner#testBlockCorruptionPolicy is broken</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3895">HDFS-3895</a>.
     Major bug reported by Alejandro Abdelnur and fixed by Alejandro Abdelnur (build)<br>
     <b>hadoop-client must include commons-cli</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3890">HDFS-3890</a>.
     Critical bug reported by Thomas Graves and fixed by Thomas Graves <br>
     <b>filecontext mkdirs doesn't apply umask as expected</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3888">HDFS-3888</a>.
     Minor bug reported by Jing Zhao and fixed by Jing Zhao <br>
     <b>BlockPlacementPolicyDefault code cleanup</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3887">HDFS-3887</a>.
     Trivial improvement reported by Jing Zhao and fixed by Jing Zhao (name-node)<br>
     <b>Remove redundant chooseTarget methods in BlockPlacementPolicy.java</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3879">HDFS-3879</a>.
     Minor bug reported by Eli Collins and fixed by Eli Collins (name-node)<br>
     <b>Fix findbugs warning in TransferFsImage on branch-2 </b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3873">HDFS-3873</a>.
     Major bug reported by Daryn Sharp and fixed by Daryn Sharp (hdfs client)<br>
     <b>Hftp assumes security is disabled if token fetch fails</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3871">HDFS-3871</a>.
     Minor improvement reported by Arun C Murthy and fixed by Arun C Murthy (hdfs client)<br>
     <b>Change NameNodeProxies to use HADOOP-8748</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3866">HDFS-3866</a>.
     Minor improvement reported by Ryan Hennig and fixed by Plamen Jeliazkov (build)<br>
     <b>HttpFS POM should have property where to download tomcat from</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3864">HDFS-3864</a>.
     Major bug reported by Aaron T. Myers and fixed by Aaron T. Myers (name-node)<br>
     <b>NN does not update internal file mtime for OP_CLOSE when reading from the edit log</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3861">HDFS-3861</a>.
     Blocker bug reported by Kihwal Lee and fixed by Kihwal Lee (hdfs client)<br>
     <b>Deadlock in DFSClient</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3860">HDFS-3860</a>.
     Major bug reported by Jing Zhao and fixed by Jing Zhao <br>
     <b>HeartbeatManager#Monitor may wrongly hold the writelock of namesystem</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3856">HDFS-3856</a>.
     Blocker bug reported by Thomas Graves and fixed by Eli Collins (test)<br>
     <b>TestHDFSServerPorts failure is causing surefire fork failure</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3853">HDFS-3853</a>.
     Minor bug reported by Colin Patrick McCabe and fixed by Colin Patrick McCabe (name-node)<br>
     <b>Port MiniDFSCluster enableManagedDfsDirsRedundancy option to branch-2</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3852">HDFS-3852</a>.
     Major bug reported by Aaron T. Myers and fixed by Daryn Sharp (hdfs client , security)<br>
     <b>TestHftpDelegationToken is broken after HADOOP-8225</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3849">HDFS-3849</a>.
     Critical bug reported by Colin Patrick McCabe and fixed by Colin Patrick McCabe (name-node)<br>
     <b>When re-loading the FSImage, we should clear the existing genStamp and leases.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3844">HDFS-3844</a>.
     Trivial improvement reported by Jing Zhao and fixed by Jing Zhao <br>
     <b>Add @Override where necessary and remove unnecessary {@inheritdoc} and imports</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3841">HDFS-3841</a>.
     Major bug reported by Robert Joseph Evans and fixed by Robert Joseph Evans <br>
     <b>Port HDFS-3835 to branch-0.23</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3837">HDFS-3837</a>.
     Major bug reported by Eli Collins and fixed by Eli Collins (data-node)<br>
     <b>Fix DataNode.recoverBlock findbugs warning</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3835">HDFS-3835</a>.
     Major bug reported by Aaron T. Myers and fixed by Aaron T. Myers (name-node , security)<br>
     <b>Long-lived 2NN cannot perform a checkpoint if security is enabled and the NN restarts with outstanding delegation tokens</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3833">HDFS-3833</a>.
     Major bug reported by Brandon Li and fixed by Brandon Li (test)<br>
     <b>TestDFSShell fails on Windows due to file concurrent read write</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3832">HDFS-3832</a>.
     Major bug reported by Suresh Srinivas and fixed by Suresh Srinivas (data-node , name-node)<br>
     <b>Remove protocol methods related to DistributedUpgrade</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3830">HDFS-3830</a>.
     Minor bug reported by Colin Patrick McCabe and fixed by Colin Patrick McCabe (libhdfs)<br>
     <b>test_libhdfs_threaded: use forceNewInstance</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3819">HDFS-3819</a>.
     Minor improvement reported by Jing Zhao and fixed by Jing Zhao <br>
     <b>Should check whether invalidate work percentage default value is not greater than 1.0f</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3816">HDFS-3816</a>.
     Major bug reported by Jing Zhao and fixed by Jing Zhao (name-node)<br>
     <b>Invalidate work percentage default value should be 0.32f instead of 32</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3808">HDFS-3808</a>.
     Critical bug reported by Colin Patrick McCabe and fixed by Colin Patrick McCabe (fuse-dfs)<br>
     <b>fuse_dfs: postpone libhdfs intialization until after fork</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3803">HDFS-3803</a>.
     Minor bug reported by Andrew Purtell and fixed by  (data-node)<br>
     <b>BlockPoolSliceScanner new work period notice is very chatty at INFO level</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3802">HDFS-3802</a>.
     Trivial improvement reported by Jing Zhao and fixed by Jing Zhao <br>
     <b>StartupOption.name in HdfsServerConstants should be final</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3796">HDFS-3796</a>.
     Minor improvement reported by Todd Lipcon and fixed by Todd Lipcon (test)<br>
     <b>Speed up edit log tests by avoiding fsync()</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3794">HDFS-3794</a>.
     Major bug reported by Ravi Prakash and fixed by Ravi Prakash (webhdfs)<br>
     <b>WebHDFS Open used with Offset returns the original (and incorrect) Content Length in the HTTP Header.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3790">HDFS-3790</a>.
     Minor bug reported by Colin Patrick McCabe and fixed by Colin Patrick McCabe (fuse-dfs)<br>
     <b>test_fuse_dfs.c doesn't compile on centos 5</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3788">HDFS-3788</a>.
     Critical bug reported by Eli Collins and fixed by Tsz Wo (Nicholas), SZE (webhdfs)<br>
     <b>distcp can't copy large files using webhdfs due to missing Content-Length header</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3765">HDFS-3765</a>.
     Major improvement reported by Vinay and fixed by Vinay (ha)<br>
     <b>Namenode INITIALIZESHAREDEDITS should be able to initialize all shared storages</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3760">HDFS-3760</a>.
     Minor bug reported by Andy Isaacson and fixed by Andy Isaacson (hdfs client)<br>
     <b>primitiveCreate is a write, not a read</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3758">HDFS-3758</a>.
     Minor bug reported by Colin Patrick McCabe and fixed by Colin Patrick McCabe (fuse-dfs)<br>
     <b>TestFuseDFS test failing</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3756">HDFS-3756</a>.
     Critical bug reported by Alejandro Abdelnur and fixed by Alejandro Abdelnur (security)<br>
     <b>DelegationTokenFetcher creates 2 HTTP connections, the second one not properly configured</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3755">HDFS-3755</a>.
     Major bug reported by Todd Lipcon and fixed by Todd Lipcon (name-node)<br>
     <b>Creating an already-open-for-write file with overwrite=true fails</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3754">HDFS-3754</a>.
     Major bug reported by Eli Collins and fixed by Eli Collins (data-node)<br>
     <b>BlockSender doesn't shutdown ReadaheadPool threads</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3738">HDFS-3738</a>.
     Minor bug reported by Aaron T. Myers and fixed by Aaron T. Myers (test)<br>
     <b>TestDFSClientRetries#testFailuresArePerOperation sets incorrect timeout config</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3733">HDFS-3733</a>.
     Major bug reported by Andy Isaacson and fixed by Andy Isaacson (webhdfs)<br>
     <b>Audit logs should include WebHDFS access</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3732">HDFS-3732</a>.
     Minor bug reported by Colin Patrick McCabe and fixed by Colin Patrick McCabe (fuse-dfs)<br>
     <b>fuse_dfs: incorrect configuration value checked for connection expiry timer period</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3731">HDFS-3731</a>.
     Blocker bug reported by Suresh Srinivas and fixed by Kihwal Lee (data-node)<br>
     <b>2.0 release upgrade must handle blocks being written from 1.0</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3724">HDFS-3724</a>.
     Major bug reported by Alejandro Abdelnur and fixed by Alejandro Abdelnur <br>
     <b>add InterfaceAudience annotations to HttpFS classes and making inner enum static</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3723">HDFS-3723</a>.
     Major improvement reported by E. Sammer and fixed by Jing Zhao (scripts , tools)<br>
     <b>All commands should support meaningful --help</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3721">HDFS-3721</a>.
     Critical bug reported by Todd Lipcon and fixed by Aaron T. Myers (data-node , hdfs client)<br>
     <b>hsync support broke wire compatibility</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3720">HDFS-3720</a>.
     Major bug reported by Colin Patrick McCabe and fixed by Colin Patrick McCabe (libhdfs)<br>
     <b>hdfs.h must get packaged</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3718">HDFS-3718</a>.
     Critical bug reported by Kihwal Lee and fixed by Kihwal Lee (data-node)<br>
     <b>Datanode won't shutdown because of runaway DataBlockScanner thread</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3715">HDFS-3715</a>.
     Major bug reported by Eli Collins and fixed by Andrew Wang (test)<br>
     <b>Fix TestFileCreation#testFileCreationNamenodeRestart</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3711">HDFS-3711</a>.
     Major improvement reported by Andrew Wang and fixed by Andrew Wang <br>
     <b>Manually convert remaining tests to JUnit4</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3710">HDFS-3710</a>.
     Minor bug reported by Andy Isaacson and fixed by Andy Isaacson (libhdfs)<br>
     <b>libhdfs misuses O_RDONLY/WRONLY/RDWR</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3709">HDFS-3709</a>.
     Major test reported by Eli Collins and fixed by Eli Collins (test)<br>
     <b>TestStartup tests still binding to the ephemeral port </b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3707">HDFS-3707</a>.
     Minor bug reported by Colin Patrick McCabe and fixed by Colin Patrick McCabe <br>
     <b>TestFSInputChecker: improper use of skip</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3697">HDFS-3697</a>.
     Minor improvement reported by Todd Lipcon and fixed by Todd Lipcon (data-node , performance)<br>
     <b>Enable fadvise readahead by default</b><br>
     <blockquote>The datanode now performs 4MB readahead by default when reading data from its disks, if the native libraries are present. This has been shown to improve performance in many workloads. The feature may be disabled by setting dfs.datanode.readahead.bytes to "0".</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3696">HDFS-3696</a>.
     Critical bug reported by Kihwal Lee and fixed by Tsz Wo (Nicholas), SZE <br>
     <b>Create files with WebHdfsFileSystem goes OOM when file size is big</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3690">HDFS-3690</a>.
     Major bug reported by Eli Collins and fixed by Eli Collins <br>
     <b>BlockPlacementPolicyDefault incorrectly casts LOG</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3688">HDFS-3688</a>.
     Major bug reported by Jason Lowe and fixed by Jason Lowe (data-node)<br>
     <b>Namenode loses datanode hostname if datanode re-registers</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3683">HDFS-3683</a>.
     Minor bug reported by Todd Lipcon and fixed by Plamen Jeliazkov (name-node)<br>
     <b>Edit log replay progress indicator shows &gt;100% complete</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3679">HDFS-3679</a>.
     Minor bug reported by Conrad Meyer and fixed by Conrad Meyer (fuse-dfs)<br>
     <b>fuse_dfs notrash option sets usetrash</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3675">HDFS-3675</a>.
     Minor bug reported by Colin Patrick McCabe and fixed by Colin Patrick McCabe (libhdfs)<br>
     <b>libhdfs: follow documented return codes</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3673">HDFS-3673</a>.
     Minor bug reported by Colin Patrick McCabe and fixed by Colin Patrick McCabe <br>
     <b>libhdfs: fix some compiler warnings</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3672">HDFS-3672</a>.
     Major improvement reported by Andrew Wang and fixed by Andrew Wang <br>
     <b>Expose disk-location information for blocks to enable better scheduling</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3666">HDFS-3666</a>.
     Minor improvement reported by Eli Collins and fixed by Eli Collins <br>
     <b>Plumb more exception messages to terminate</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3665">HDFS-3665</a>.
     Major test reported by Eli Collins and fixed by Eli Collins (test)<br>
     <b>Add a test for renaming across file systems via a symlink</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3664">HDFS-3664</a>.
     Major bug reported by Eli Collins and fixed by Colin Patrick McCabe (test)<br>
     <b>BlockManager race when stopping active services</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3663">HDFS-3663</a>.
     Major improvement reported by Eli Collins and fixed by Eli Collins (test)<br>
     <b>MiniDFSCluster should capture the code path that led to the first ExitException </b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3658">HDFS-3658</a>.
     Major bug reported by Eli Collins and fixed by Tsz Wo (Nicholas), SZE <br>
     <b>TestDFSClientRetries#testNamenodeRestart failed</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3650">HDFS-3650</a>.
     Major improvement reported by Andrew Wang and fixed by Andrew Wang <br>
     <b>Use MutableQuantiles to provide latency histograms for various operations</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3646">HDFS-3646</a>.
     Critical bug reported by Kihwal Lee and fixed by Kihwal Lee (hdfs client)<br>
     <b>LeaseRenewer can hold reference to inactive DFSClient instances forever</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3641">HDFS-3641</a>.
     Minor improvement reported by Eli Collins and fixed by Eli Collins <br>
     <b>Move server Util time methods to common and use now instead of System#currentTimeMillis</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3637">HDFS-3637</a>.
     Major new feature reported by Aaron T. Myers and fixed by Aaron T. Myers (data-node , hdfs client , security)<br>
     <b>Add support for encrypting the DataTransferProtocol</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3634">HDFS-3634</a>.
     Minor test reported by Colin Patrick McCabe and fixed by Colin Patrick McCabe (fuse-dfs)<br>
     <b>Add self-contained, mavenized fuse_dfs test</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3633">HDFS-3633</a>.
     Minor bug reported by Colin Patrick McCabe and fixed by Colin Patrick McCabe (libhdfs)<br>
     <b>libhdfs: hdfsDelete should pass JNI_FALSE or JNI_TRUE</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3629">HDFS-3629</a>.
     Trivial bug reported by Brandon Li and fixed by Brandon Li (name-node)<br>
     <b>fix the typo in the error message about inconsistent storage layout version</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3622">HDFS-3622</a>.
     Major bug reported by Robert Joseph Evans and fixed by Robert Joseph Evans <br>
     <b>Backport HDFS-3541 to branch-0.23</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3615">HDFS-3615</a>.
     Major bug reported by Eli Collins and fixed by Aaron T. Myers (security)<br>
     <b>Two BlockTokenSecretManager findbugs warnings</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3613">HDFS-3613</a>.
     Trivial improvement reported by Harsh J and fixed by Andrew Wang (name-node)<br>
     <b>GSet prints some INFO level values, which aren't really very useful to all</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3612">HDFS-3612</a>.
     Trivial improvement reported by Harsh J and fixed by Andy Isaacson (name-node)<br>
     <b>Single namenode image directory config warning can be improved</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3611">HDFS-3611</a>.
     Trivial bug reported by Harsh J and fixed by Colin Patrick McCabe (name-node)<br>
     <b>NameNode prints unnecessary WARNs about edit log normally skipping a few bytes</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3610">HDFS-3610</a>.
     Minor improvement reported by Colin Patrick McCabe and fixed by Colin Patrick McCabe <br>
     <b>fuse_dfs: Provide a way to use the default (configured) NN URI</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3609">HDFS-3609</a>.
     Major bug reported by Colin Patrick McCabe and fixed by Colin Patrick McCabe (libhdfs)<br>
     <b>libhdfs: don't force the URI to look like hdfs://hostname:port</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3608">HDFS-3608</a>.
     Minor bug reported by Colin Patrick McCabe and fixed by Colin Patrick McCabe <br>
     <b>fuse_dfs: detect changes in UID ticket cache</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3606">HDFS-3606</a>.
     Minor test reported by Colin Patrick McCabe and fixed by Colin Patrick McCabe (libhdfs)<br>
     <b>libhdfs: create self-contained unit test</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3605">HDFS-3605</a>.
     Major bug reported by Brahma Reddy Battula and fixed by Todd Lipcon (ha , name-node)<br>
     <b>Block mistakenly marked corrupt during edit log catchup phase of failover</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3604">HDFS-3604</a>.
     Minor improvement reported by Eli Collins and fixed by Eli Collins <br>
     <b>Add dfs.webhdfs.enabled to hdfs-default.xml</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3603">HDFS-3603</a>.
     Major bug reported by Jason Lowe and fixed by Jason Lowe (test)<br>
     <b>Decouple TestHDFSTrash from TestTrash</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3597">HDFS-3597</a>.
     Minor bug reported by Andy Isaacson and fixed by Andy Isaacson <br>
     <b>SNN can fail to start on upgrade</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3591">HDFS-3591</a>.
     Major bug reported by Robert Joseph Evans and fixed by Robert Joseph Evans <br>
     <b>Backport HDFS-3357 to branch-0.23</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3583">HDFS-3583</a>.
     Major improvement reported by Eli Collins and fixed by Andrew Wang (test)<br>
     <b>Convert remaining tests to Junit4</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3582">HDFS-3582</a>.
     Minor improvement reported by Eli Collins and fixed by Eli Collins (test)<br>
     <b>Hook daemon process exit for testing </b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3581">HDFS-3581</a>.
     Major bug reported by Eli Collins and fixed by Eli Collins (name-node)<br>
     <b>FSPermissionChecker#checkPermission sticky bit check missing range check </b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3580">HDFS-3580</a>.
     Minor bug reported by Andy Isaacson and fixed by Andy Isaacson <br>
     <b>incompatible types; no instance(s) of type variable(s) V exist so that V conforms to boolean compiling HttpFSServer.java with OpenJDK</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3579">HDFS-3579</a>.
     Major bug reported by Colin Patrick McCabe and fixed by Colin Patrick McCabe (libhdfs)<br>
     <b>libhdfs: fix exception handling</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3577">HDFS-3577</a>.
     Blocker bug reported by Alejandro Abdelnur and fixed by Tsz Wo (Nicholas), SZE (hdfs client)<br>
     <b>WebHdfsFileSystem can not read files larger than 24KB</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3575">HDFS-3575</a>.
     Minor bug reported by Brock Noland and fixed by Brock Noland <br>
     <b>HttpFS does not log Exception Stacktraces</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3574">HDFS-3574</a>.
     Minor bug reported by Todd Lipcon and fixed by Todd Lipcon (name-node)<br>
     <b>Fix small race and do some cleanup in GetImageServlet</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3572">HDFS-3572</a>.
     Minor bug reported by Todd Lipcon and fixed by Todd Lipcon (name-node , security)<br>
     <b>Cleanup code which inits SPNEGO in HttpServer</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3568">HDFS-3568</a>.
     Major improvement reported by Colin Patrick McCabe and fixed by Colin Patrick McCabe <br>
     <b>fuse_dfs: add support for security</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3559">HDFS-3559</a>.
     Minor bug reported by Colin Patrick McCabe and fixed by Colin Patrick McCabe <br>
     <b>DFSTestUtil: use Builder class to construct DFSTestUtil instances</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3555">HDFS-3555</a>.
     Major bug reported by Jeff Lord and fixed by Andy Isaacson (data-node , hdfs client)<br>
     <b>idle client socket triggers DN ERROR log (should be INFO or DEBUG)</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3551">HDFS-3551</a>.
     Major bug reported by Tsz Wo (Nicholas), SZE and fixed by Tsz Wo (Nicholas), SZE (webhdfs)<br>
     <b>WebHDFS CREATE does not use client location for redirection</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3548">HDFS-3548</a>.
     Critical bug reported by Todd Lipcon and fixed by Colin Patrick McCabe (name-node)<br>
     <b>NamenodeFsck.copyBlock fails to create a Block Reader</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3541">HDFS-3541</a>.
     Major bug reported by suja s and fixed by Vinay (data-node)<br>
     <b>Deadlock between recovery, xceiver and packet responder</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3539">HDFS-3539</a>.
     Minor bug reported by Colin Patrick McCabe and fixed by Colin Patrick McCabe <br>
     <b>libhdfs code cleanups</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3537">HDFS-3537</a>.
     Minor improvement reported by Colin Patrick McCabe and fixed by Colin Patrick McCabe (fuse-dfs , libhdfs)<br>
     <b>Move libhdfs and fuse-dfs source to native subdirectories</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3535">HDFS-3535</a>.
     Major new feature reported by Andy Isaacson and fixed by Andy Isaacson (name-node)<br>
     <b>Audit logging should log denied accesses</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3531">HDFS-3531</a>.
     Minor bug reported by Colin Patrick McCabe and fixed by Colin Patrick McCabe (name-node)<br>
     <b>EditLogFileOutputStream#preallocate should check for incomplete writes</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3524">HDFS-3524</a>.
     Major bug reported by Eli Collins and fixed by Brandon Li (test)<br>
     <b>TestFileLengthOnClusterRestart failed due to error message change</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3522">HDFS-3522</a>.
     Major bug reported by Brandon Li and fixed by Brandon Li (name-node)<br>
     <b>If NN is in safemode, it should throw SafeModeException when getBlockLocations has zero locations</b><br>
     <blockquote>getBlockLocations(), and hence open() for read, will now throw SafeModeException if the NameNode is still in safe mode and there are no replicas reported yet for one of the blocks in the file.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3520">HDFS-3520</a>.
     Major improvement reported by Eli Collins and fixed by Eli Collins (name-node)<br>
     <b>Add transfer rate logging to TransferFsImage</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3518">HDFS-3518</a>.
     Major bug reported by Bikas Saha and fixed by Tsz Wo (Nicholas), SZE (hdfs client)<br>
     <b>Provide API to check HDFS operational state</b><br>
     <blockquote>Add a utility method HdfsUtils.isHealthy(uri) for checking if the given HDFS is healthy.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3517">HDFS-3517</a>.
     Minor bug reported by Eli Collins and fixed by Eli Collins (test)<br>
     <b>TestStartup should bind ephemeral ports</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3516">HDFS-3516</a>.
     Major improvement reported by Tsz Wo (Nicholas), SZE and fixed by Tsz Wo (Nicholas), SZE (hdfs client)<br>
     <b>Check content-type in WebHdfsFileSystem</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3514">HDFS-3514</a>.
     Major improvement reported by Henry Robinson and fixed by Henry Robinson (test)<br>
     <b>Add missing TestParallelLocalRead</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3513">HDFS-3513</a>.
     Major improvement reported by Alejandro Abdelnur and fixed by Alejandro Abdelnur <br>
     <b>HttpFS should cache filesystems</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3505">HDFS-3505</a>.
     Minor bug reported by Colin Patrick McCabe and fixed by Colin Patrick McCabe <br>
     <b>DirectoryScanner does not join all threads in shutdown</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3504">HDFS-3504</a>.
     Major improvement reported by Siddharth Seth and fixed by Tsz Wo (Nicholas), SZE <br>
     <b>Configurable retry in DFSClient</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3502">HDFS-3502</a>.
     Major sub-task reported by Tsz Wo (Nicholas), SZE and fixed by Tsz Wo (Nicholas), SZE (name-node)<br>
     <b>Change INodeFile and INodeFileUnderConstruction to package private</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3501">HDFS-3501</a>.
     Major bug reported by Aaron T. Myers and fixed by Aaron T. Myers (ha , name-node)<br>
     <b>Checkpointing with security enabled will stop working after ticket lifetime expires</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3491">HDFS-3491</a>.
     Major bug reported by Romain Rigaux and fixed by Alejandro Abdelnur <br>
     <b>HttpFs does not set permissions correctly</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3490">HDFS-3490</a>.
     Minor bug reported by Todd Lipcon and fixed by Tsz Wo (Nicholas), SZE (webhdfs)<br>
     <b>DN WebHDFS methods throw NPE if Namenode RPC address param not specified</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3487">HDFS-3487</a>.
     Minor bug reported by Colin Patrick McCabe and fixed by Colin Patrick McCabe (tools)<br>
     <b>offlineimageviewer should give byte offset information when it encounters an exception</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3486">HDFS-3486</a>.
     Minor bug reported by Colin Patrick McCabe and fixed by Colin Patrick McCabe (security , tools)<br>
     <b>offlineimageviewer can't read fsimage files that contain persistent delegation tokens</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3485">HDFS-3485</a>.
     Minor bug reported by Andy Isaacson and fixed by Andy Isaacson <br>
     <b>DataTransferThrottler will over-throttle when currentTimeMillis jumps</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3484">HDFS-3484</a>.
     Minor bug reported by Aaron T. Myers and fixed by Aaron T. Myers (hdfs client)<br>
     <b>hdfs fsck doesn't work if NN HTTP address is set to 0.0.0.0 even if NN RPC address is configured</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3481">HDFS-3481</a>.
     Major improvement reported by Alejandro Abdelnur and fixed by Alejandro Abdelnur <br>
     <b>Refactor HttpFS handling of JAX-RS query string parameters</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3480">HDFS-3480</a>.
     Major bug reported by Eli Collins and fixed by Vinay (build)<br>
     <b>Multiple SLF4J binding warning</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3475">HDFS-3475</a>.
     Trivial improvement reported by Harsh J and fixed by Harsh J <br>
     <b>Make the replication and invalidation rates configurable</b><br>
     <blockquote>This change adds two new configuration parameters. 
# {{dfs.namenode.invalidate.work.pct.per.iteration}} for controlling deletion rate of blocks. 
# {{dfs.namenode.replication.work.multiplier.per.iteration}} for controlling replication rate. This in turn allows controlling the time it takes for decommissioning. 

Please see hdfs-default.xml for detailed description.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3474">HDFS-3474</a>.
     Major sub-task reported by Ivan Kelly and fixed by Ivan Kelly <br>
     <b>Cleanup Exception handling in BookKeeper journal manager</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3469">HDFS-3469</a>.
     Minor bug reported by Vinay and fixed by Vinay (auto-failover)<br>
     <b>start-dfs.sh will start zkfc, but stop-dfs.sh will not stop zkfc similarly.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3468">HDFS-3468</a>.
     Major sub-task reported by Uma Maheswara Rao G and fixed by Uma Maheswara Rao G <br>
     <b>Make BKJM-ZK session timeout configurable.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3466">HDFS-3466</a>.
     Major bug reported by Owen O'Malley and fixed by Owen O'Malley (name-node , security)<br>
     <b>The SPNEGO filter for the NameNode should come out of the web keytab file</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3460">HDFS-3460</a>.
     Critical bug reported by Alejandro Abdelnur and fixed by Alejandro Abdelnur <br>
     <b>HttpFS proxyuser validation with Kerberos ON uses full principal name</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3454">HDFS-3454</a>.
     Minor improvement reported by Eli Collins and fixed by Eli Collins (balancer)<br>
     <b>Balancer unconditionally logs InterruptedException at INFO level on shutdown if security is enabled </b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3452">HDFS-3452</a>.
     Blocker sub-task reported by suja s and fixed by Uma Maheswara Rao G <br>
     <b>BKJM:Switch from standby to active fails and NN gets shut down due to delay in clearing of lock</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3446">HDFS-3446</a>.
     Major bug reported by Matthew Jacobs and fixed by Matthew Jacobs (name-node)<br>
     <b>HostsFileReader silently ignores bad includes/excludes</b><br>
     <blockquote>HDFS no longer silently ignores missing or unreadable host files specified by dfs.hosts or dfs.hosts.exclude. In order to specify that no hosts should be included or excluded, administrators should either refrain from setting the relevant config properties, or create an empty file in order to represent an empty list.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3444">HDFS-3444</a>.
     Major bug reported by Aaron T. Myers and fixed by Aaron T. Myers (hdfs client)<br>
     <b>hdfs groups command doesn't work with security enabled</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3442">HDFS-3442</a>.
     Minor bug reported by suja s and fixed by Andrew Wang <br>
     <b>Incorrect count for Missing Replicas in FSCK report</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3441">HDFS-3441</a>.
     Major sub-task reported by suja s and fixed by Rakesh R <br>
     <b>Race condition between rolling logs at active NN and purging at standby</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3440">HDFS-3440</a>.
     Minor bug reported by Colin Patrick McCabe and fixed by Colin Patrick McCabe <br>
     <b>should more effectively limit stream memory consumption when reading corrupt edit logs</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3438">HDFS-3438</a>.
     Major improvement reported by Todd Lipcon and fixed by Todd Lipcon (ha)<br>
     <b>BootstrapStandby should not require a rollEdits on active node</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3436">HDFS-3436</a>.
     Major bug reported by Brahma Reddy Battula and fixed by Vinay (data-node)<br>
     <b>adding new datanode to existing  pipeline fails in case of Append/Recovery</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3433">HDFS-3433</a>.
     Major bug reported by Aaron T. Myers and fixed by Aaron T. Myers (name-node)<br>
     <b>GetImageServlet should allow administrative requestors when security is enabled</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3428">HDFS-3428</a>.
     Major bug reported by Alejandro Abdelnur and fixed by Alejandro Abdelnur (security)<br>
     <b>move DelegationTokenRenewer to common</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3423">HDFS-3423</a>.
     Major sub-task reported by Rakesh R and fixed by Ivan Kelly <br>
     <b>BKJM: NN startup is failing, when tries to recoverUnfinalizedSegments() a bad inProgress_ ZNodes</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3422">HDFS-3422</a>.
     Minor bug reported by Todd Lipcon and fixed by Todd Lipcon (test)<br>
     <b>TestStandbyIsHot timeouts too aggressive</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3419">HDFS-3419</a>.
     Minor improvement reported by Eli Collins and fixed by Eli Collins <br>
     <b>Cleanup LocatedBlock</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3417">HDFS-3417</a>.
     Minor improvement reported by Eli Collins and fixed by Eli Collins (data-node)<br>
     <b>Rename BalancerDatanode#getName to getDisplayName to be consistent with Datanode</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3416">HDFS-3416</a>.
     Minor improvement reported by Eli Collins and fixed by Eli Collins (data-node)<br>
     <b>Cleanup DatanodeID and DatanodeRegistration constructors used by testing </b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3415">HDFS-3415</a>.
     Major bug reported by Brahma Reddy Battula and fixed by Brandon Li (name-node)<br>
     <b>During NameNode starting up, it may pick wrong storage directory inspector when the layout versions of the storage directories are different</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3414">HDFS-3414</a>.
     Minor bug reported by Aaron T. Myers and fixed by Aaron T. Myers (balancer)<br>
     <b>Balancer does not find NameNode if rpc-address or servicerpc-address are not set in client configs</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3413">HDFS-3413</a>.
     Critical bug reported by Todd Lipcon and fixed by Aaron T. Myers (ha , test)<br>
     <b>TestFailureToReadEdits timing out</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3408">HDFS-3408</a>.
     Minor sub-task reported by Rakesh R and fixed by Rakesh R (name-node)<br>
     <b>BKJM : Namenode format fails, if there is no BK root</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3404">HDFS-3404</a>.
     Major improvement reported by Aaron T. Myers and fixed by Aaron T. Myers <br>
     <b>Make putImage in GetImageServlet infer remote address to fetch from request</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3401">HDFS-3401</a>.
     Major improvement reported by Eli Collins and fixed by Eli Collins (data-node , test)<br>
     <b>Cleanup DatanodeDescriptor creation in the tests</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3400">HDFS-3400</a>.
     Major improvement reported by Aaron T. Myers and fixed by Aaron T. Myers (data-node , scripts)<br>
     <b>DNs should be able start with jsvc even if security is disabled</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3398">HDFS-3398</a>.
     Minor bug reported by Brahma Reddy Battula and fixed by amith (hdfs client)<br>
     <b>Client will not retry when primaryDN is down once it's just got pipeline</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3394">HDFS-3394</a>.
     Minor improvement reported by Tsz Wo (Nicholas), SZE and fixed by Tsz Wo (Nicholas), SZE (name-node)<br>
     <b>Do not use generic in INodeFile.getLastBlock()</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3391">HDFS-3391</a>.
     Critical bug reported by Arun C Murthy and fixed by Todd Lipcon <br>
     <b>TestPipelinesFailover#testLeaseRecoveryAfterFailover is failing</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3390">HDFS-3390</a>.
     Minor improvement reported by Aaron T. Myers and fixed by Aaron T. Myers (hdfs client)<br>
     <b>DFSAdmin should print full stack traces of errors when DEBUG logging is enabled</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3389">HDFS-3389</a>.
     Major sub-task reported by Uma Maheswara Rao G and fixed by Uma Maheswara Rao G (name-node)<br>
     <b>Document the BKJM usage in Namenode HA.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3385">HDFS-3385</a>.
     Major bug reported by Brahma Reddy Battula and fixed by Tsz Wo (Nicholas), SZE (name-node)<br>
     <b>ClassCastException when trying to append a file</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3372">HDFS-3372</a>.
     Minor improvement reported by Colin Patrick McCabe and fixed by Colin Patrick McCabe (tools)<br>
     <b>offlineEditsViewer should be able to read a binary edits file with recovery mode</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3369">HDFS-3369</a>.
     Minor sub-task reported by John George and fixed by John George (name-node)<br>
     <b>change variable names referring to inode in blockmanagement to more appropriate</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3368">HDFS-3368</a>.
     Major bug reported by Konstantin Shvachko and fixed by Konstantin Shvachko (name-node)<br>
     <b>Missing blocks due to bad DataNodes coming up and down.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3359">HDFS-3359</a>.
     Critical bug reported by Todd Lipcon and fixed by Todd Lipcon (hdfs client)<br>
     <b>DFSClient.close should close cached sockets</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3341">HDFS-3341</a>.
     Minor improvement reported by Todd Lipcon and fixed by Todd Lipcon <br>
     <b>Change minimum RPC versions to 2.0.0-SNAPSHOT instead of 2.0.0</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3335">HDFS-3335</a>.
     Major improvement reported by Colin Patrick McCabe and fixed by Colin Patrick McCabe <br>
     <b>check for edit log corruption at the end of the log</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3334">HDFS-3334</a>.
     Major bug reported by Daryn Sharp and fixed by Daryn Sharp (hdfs client)<br>
     <b>ByteRangeInputStream leaks streams</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3331">HDFS-3331</a>.
     Major bug reported by Tsz Wo (Nicholas), SZE and fixed by Tsz Wo (Nicholas), SZE (name-node)<br>
     <b>setBalancerBandwidth do not checkSuperuserPrivilege</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3321">HDFS-3321</a>.
     Major bug reported by Ravi Prakash and fixed by Ravi Prakash <br>
     <b>Error message for insufficient data nodes to come out of safemode is wrong.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3318">HDFS-3318</a>.
     Blocker bug reported by Daryn Sharp and fixed by Daryn Sharp (hdfs client)<br>
     <b>Hftp hangs on transfers &gt;2GB</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3312">HDFS-3312</a>.
     Blocker bug reported by Daryn Sharp and fixed by Daryn Sharp (hdfs client)<br>
     <b>Hftp selects wrong token service</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3308">HDFS-3308</a>.
     Critical bug reported by Daryn Sharp and fixed by Daryn Sharp (webhdfs)<br>
     <b>hftp/webhdfs can't get tokens if authority has no port</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3306">HDFS-3306</a>.
     Minor bug reported by Colin Patrick McCabe and fixed by Colin Patrick McCabe <br>
     <b>fuse_dfs: don't lock release operations</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3291">HDFS-3291</a>.
     Major test reported by Alejandro Abdelnur and fixed by Alejandro Abdelnur <br>
     <b>add test that covers HttpFS working w/ a non-HDFS Hadoop filesystem</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3276">HDFS-3276</a>.
     Minor improvement reported by Vinithra Varadharajan and fixed by Todd Lipcon (ha , name-node)<br>
     <b>initializeSharedEdits should have a -nonInteractive flag</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3266">HDFS-3266</a>.
     Minor bug reported by Aaron T. Myers and fixed by madhukara phatak <br>
     <b>DFSTestUtil#waitCorruptReplicas doesn't sleep between checks</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3258">HDFS-3258</a>.
     Major test reported by Eli Collins and fixed by Junping Du (test)<br>
     <b>Test for HADOOP-8144 (pseudoSortByDistance in NetworkTopology for first rack local node)</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3243">HDFS-3243</a>.
     Major bug reported by Todd Lipcon and fixed by Henry Robinson (hdfs client , test)<br>
     <b>TestParallelRead timing out on jenkins</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3235">HDFS-3235</a>.
     Minor bug reported by Henry Robinson and fixed by Henry Robinson <br>
     <b>MiniDFSClusterManager doesn't correctly support -format option</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3230">HDFS-3230</a>.
     Minor improvement reported by Eli Collins and fixed by Eli Collins (test)<br>
     <b>Cleanup DatanodeID creation in the tests</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3194">HDFS-3194</a>.
     Major bug reported by suja s and fixed by Andy Isaacson (data-node)<br>
     <b>DataNode block scanner is running too frequently</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3190">HDFS-3190</a>.
     Minor sub-task reported by Todd Lipcon and fixed by Todd Lipcon (name-node)<br>
     <b>Simple refactors in existing NN code to assist QuorumJournalManager extension</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3177">HDFS-3177</a>.
     Major bug reported by Kihwal Lee and fixed by Kihwal Lee (data-node , hdfs client)<br>
     <b>Allow DFSClient to find out and use the CRC type being used for a file.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3176">HDFS-3176</a>.
     Major bug reported by Kihwal Lee and fixed by Kihwal Lee (hdfs client)<br>
     <b>JsonUtil should not parse the MD5MD5CRC32FileChecksum bytes on its own.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3170">HDFS-3170</a>.
     Major improvement reported by Todd Lipcon and fixed by Matthew Jacobs (data-node)<br>
     <b>Add more useful metrics for write latency</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3168">HDFS-3168</a>.
     Major sub-task reported by Tsz Wo (Nicholas), SZE and fixed by Tsz Wo (Nicholas), SZE (name-node)<br>
     <b>Clean up FSNamesystem and BlockManager</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3166">HDFS-3166</a>.
     Critical bug reported by Daryn Sharp and fixed by Daryn Sharp (hdfs client)<br>
     <b>Hftp connections do not have a timeout</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3157">HDFS-3157</a>.
     Major bug reported by J.Andreina and fixed by Ashish Singhi (name-node)<br>
     <b>Error in deleting block is keep on coming from DN even after the block report and directory scanning has happened</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3150">HDFS-3150</a>.
     Major new feature reported by Eli Collins and fixed by Eli Collins (data-node , hdfs client)<br>
     <b>Add option for clients to contact DNs via hostname</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3136">HDFS-3136</a>.
     Major bug reported by Jason Lowe and fixed by Jason Lowe (build)<br>
     <b>Multiple SLF4J binding warning</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3134">HDFS-3134</a>.
     Major improvement reported by Colin Patrick McCabe and fixed by Colin Patrick McCabe (name-node)<br>
     <b>Harden edit log loader against malformed or malicious input</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3113">HDFS-3113</a>.
     Major new feature reported by Alejandro Abdelnur and fixed by Alejandro Abdelnur <br>
     <b>httpfs does not support delegation tokens</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3110">HDFS-3110</a>.
     Major improvement reported by Henry Robinson and fixed by Henry Robinson (libhdfs , performance)<br>
     <b>libhdfs implementation of direct read API</b><br>
     <blockquote>libhdfs is enhanced to read directly into user-supplied buffers when possible, reducing the number of memory copies.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3067">HDFS-3067</a>.
     Major bug reported by Henry Robinson and fixed by Henry Robinson (hdfs client)<br>
     <b>NPE in DFSInputStream.readBuffer if read is repeated on corrupted block</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3058">HDFS-3058</a>.
     Major sub-task reported by Ivan Kelly and fixed by Ivan Kelly <br>
     <b>HA: Bring BookKeeperJournalManager up to date with HA changes</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3054">HDFS-3054</a>.
     Major bug reported by patrick white and fixed by Colin Patrick McCabe (tools)<br>
     <b>distcp -skipcrccheck has no effect</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3048">HDFS-3048</a>.
     Major bug reported by Eli Collins and fixed by Andy Isaacson (name-node)<br>
     <b>Small race in BlockManager#close</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3042">HDFS-3042</a>.
     Major new feature reported by Todd Lipcon and fixed by Todd Lipcon (auto-failover , ha)<br>
     <b>Automatic failover support for NN HA</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3040">HDFS-3040</a>.
     Trivial improvement reported by Aaron T. Myers and fixed by madhukara phatak (test)<br>
     <b>TestMulitipleNNDataBlockScanner is misspelled</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3037">HDFS-3037</a>.
     Minor bug reported by Aaron T. Myers and fixed by Aaron T. Myers (test)<br>
     <b>TestMulitipleNNDataBlockScanner#testBlockScannerAfterRestart is racy</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3031">HDFS-3031</a>.
     Major bug reported by Stephen Chu and fixed by Todd Lipcon (ha)<br>
     <b>HA: Error (failed to close file) when uploading large file + kill active NN + manual failover</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3002">HDFS-3002</a>.
     Trivial improvement reported by Suresh Srinivas and fixed by Suresh Srinivas (test)<br>
     <b>TestNameNodeMetrics need not wait for metrics update with new metrics framework</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2988">HDFS-2988</a>.
     Minor improvement reported by Todd Lipcon and fixed by Miomir Boljanovic (name-node)<br>
     <b>Improve error message when storage directory lock fails</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2982">HDFS-2982</a>.
     Critical bug reported by Todd Lipcon and fixed by Colin Patrick McCabe (name-node)<br>
     <b>Startup performance suffers when there are many edit log segments</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2978">HDFS-2978</a>.
     Major new feature reported by Aaron T. Myers and fixed by Aaron T. Myers (name-node)<br>
     <b>The NameNode should expose name dir statuses via JMX</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2966">HDFS-2966</a>.
     Minor bug reported by Steve Loughran and fixed by Steve Loughran (test)<br>
     <b>TestNameNodeMetrics tests can fail under load</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2963">HDFS-2963</a>.
     Minor bug reported by J.Andreina and fixed by Andrew Wang <br>
     <b>Console Output is confusing while executing metasave (dfsadmin command) </b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2914">HDFS-2914</a>.
     Major bug reported by Hari Mankude and fixed by Vinay (ha , name-node)<br>
     <b>HA: Standby should not enter safemode when resources are low</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2885">HDFS-2885</a>.
     Major improvement reported by Eli Collins and fixed by Tsz Wo (Nicholas), SZE (name-node)<br>
     <b>Remove "federation" from the nameservice config options</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2834">HDFS-2834</a>.
     Major improvement reported by Henry Robinson and fixed by Henry Robinson (hdfs client , performance)<br>
     <b>ByteBuffer-based read API for DFSInputStream</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2800">HDFS-2800</a>.
     Major bug reported by Aaron T. Myers and fixed by Todd Lipcon (ha , test)<br>
     <b>HA: TestStandbyCheckpoints.testCheckpointCancellation is racy</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2797">HDFS-2797</a>.
     Major bug reported by Aaron T. Myers and fixed by Colin Patrick McCabe (ha , name-node)<br>
     <b>Fix misuses of InputStream#skip in the edit log code</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2793">HDFS-2793</a>.
     Major new feature reported by Aaron T. Myers and fixed by Todd Lipcon (name-node)<br>
     <b>Add an admin command to trigger an edit log roll</b><br>
     <blockquote>Introduced a new command, "hdfs dfsadmin -rollEdits" which requests that the active NameNode roll its edit log. This can be useful for administrators manually backing up log segments.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2759">HDFS-2759</a>.
     Major bug reported by Aaron T. Myers and fixed by Aaron T. Myers (ha , name-node)<br>
     <b>Pre-allocate HDFS edit log files after writing version number</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2757">HDFS-2757</a>.
     Major bug reported by Jean-Daniel Cryans and fixed by Jean-Daniel Cryans <br>
     <b>Cannot read a local block that's being written to when using the local read short circuit</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2727">HDFS-2727</a>.
     Minor improvement reported by Sho Shimauchi and fixed by Colin Patrick McCabe (libhdfs)<br>
     <b>libhdfs should get the default block size from the server</b><br>
     <blockquote>libhdfs now uses the server block size configuration rather than the deprecated dfs.block.size client configuration.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2717">HDFS-2717</a>.
     Major sub-task reported by Ivan Kelly and fixed by Ivan Kelly <br>
     <b>BookKeeper Journal output stream doesn't check addComplete rc</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2686">HDFS-2686</a>.
     Major improvement reported by Todd Lipcon and fixed by Suresh Srinivas (data-node , name-node)<br>
     <b>Remove DistributedUpgrade related code</b><br>
     <blockquote>This jira removes functionality that has not been used/applicable since release 0.17. The incompatibility introduced by this change will not affect any HDFS users.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2652">HDFS-2652</a>.
     Major improvement reported by Daryn Sharp and fixed by Daryn Sharp <br>
     <b>Port token service changes from 205</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2619">HDFS-2619</a>.
     Major bug reported by Owen O'Malley and fixed by Owen O'Malley (build)<br>
     <b>Remove my personal email address from the libhdfs build file.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2617">HDFS-2617</a>.
     Major improvement reported by Jakob Homan and fixed by Jakob Homan (security)<br>
     <b>Replaced Kerberized SSL for image transfer and fsck with SPNEGO-based solution</b><br>
     <blockquote>Due to the requirement that KSSL use weak encryption types for Kerberos tickets, HTTP authentication to the NameNode will now use SPNEGO by default. This will require users of previous branch-1 releases with security enabled to modify their configurations and create new Kerberos principals in order to use SPNEGO. The old behavior of using KSSL can optionally be enabled by setting the configuration option "hadoop.security.use-weak-http-crypto" to "true".</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2421">HDFS-2421</a>.
     Major improvement reported by Hairong Kuang and fixed by Jing Zhao (name-node)<br>
     <b>Improve the concurrency of  SerialNumberMap in NameNode</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2391">HDFS-2391</a>.
     Major improvement reported by Rajit Saha and fixed by Harsh J (balancer)<br>
     <b>Newly set BalancerBandwidth value is not displayed anywhere</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2330">HDFS-2330</a>.
     Major sub-task reported by Uma Maheswara Rao G and fixed by Uma Maheswara Rao G (name-node)<br>
     <b>In NNStorage.java, IOExceptions of stream closures  can mask root exceptions.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2285">HDFS-2285</a>.
     Major bug reported by Konstantin Shvachko and fixed by Konstantin Shvachko (name-node)<br>
     <b>BackupNode should reject requests trying to modify namespace</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2025">HDFS-2025</a>.
     Minor bug reported by sravankorumilli and fixed by Ashish Singhi (data-node)<br>
     <b>Go Back to File View link is not working in tail.jsp</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1490">HDFS-1490</a>.
     Minor bug reported by Dmytro Molkov and fixed by Vinay (name-node)<br>
     <b>TransferFSImage should timeout</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1249">HDFS-1249</a>.
     Minor bug reported by matsusaka kentaro and fixed by Colin Patrick McCabe (fuse-dfs)<br>
     <b>with fuse-dfs, chown which only has owner (or only group) argument fails with Input/output error.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1153">HDFS-1153</a>.
     Minor bug reported by Ravi Phulari and fixed by Ravi Phulari (data-node)<br>
     <b>dfsnodelist.jsp should handle invalid input parameters</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1013">HDFS-1013</a>.
     Minor improvement reported by Todd Lipcon and fixed by Eugene Koontz <br>
     <b>Miscellaneous improvements to HTML markup for web UIs</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-799">HDFS-799</a>.
     Major improvement reported by Christian Kunz and fixed by Colin Patrick McCabe <br>
     <b>libhdfs must call DetachCurrentThread when a thread is destroyed</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-766">HDFS-766</a>.
     Minor bug reported by Ravi Phulari and fixed by Jon Zuanich <br>
     <b>Error message not clear for set space quota out of boundary  values. </b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-744">HDFS-744</a>.
     Major new feature reported by Hairong Kuang and fixed by Lars Hofhansl (data-node , hdfs client)<br>
     <b>Support hsync in HDFS</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-711">HDFS-711</a>.
     Major bug reported by freestyler and fixed by Colin Patrick McCabe (documentation)<br>
     <b>hdfsUtime does not handle atime = 0 or mtime = 0 correctly</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-470">HDFS-470</a>.
     Minor bug reported by Pete Wyckoff and fixed by Colin Patrick McCabe <br>
     <b>libhdfs should handle 0-length reads from FSInputStream correctly</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8801">HADOOP-8801</a>.
     Major bug reported by Eli Collins and fixed by Eli Collins <br>
     <b>ExitUtil#terminate should capture the exception stack trace</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8794">HADOOP-8794</a>.
     Major bug reported by Vinod Kumar Vavilapalli and fixed by Vinod Kumar Vavilapalli <br>
     <b>Modifiy bin/hadoop to point to HADOOP_YARN_HOME</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8781">HADOOP-8781</a>.
     Major bug reported by Alejandro Abdelnur and fixed by Alejandro Abdelnur (scripts)<br>
     <b>hadoop-config.sh should add JAVA_LIBRARY_PATH to LD_LIBRARY_PATH</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8775">HADOOP-8775</a>.
     Major bug reported by Sandy Ryza and fixed by Sandy Ryza <br>
     <b>MR2 distcp permits non-positive value to -bandwidth option which causes job never to complete</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8770">HADOOP-8770</a>.
     Blocker bug reported by Todd Lipcon and fixed by Eli Collins (trash)<br>
     <b>NN should not RPC to self to find trash defaults (causes deadlock)</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8766">HADOOP-8766</a>.
     Major bug reported by Eli Collins and fixed by Colin Patrick McCabe (test)<br>
     <b>FileContextMainOperationsBaseTest should randomize the root dir </b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8764">HADOOP-8764</a>.
     Major bug reported by Trevor Robinson and fixed by Trevor Robinson (build)<br>
     <b>CMake: HADOOP-8737 broke ARM build</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8754">HADOOP-8754</a>.
     Minor improvement reported by Brandon Li and fixed by Brandon Li (ipc)<br>
     <b>Deprecate all the RPC.getServer() variants</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8749">HADOOP-8749</a>.
     Major bug reported by Ahmed Radwan and fixed by Ahmed Radwan (conf)<br>
     <b>HADOOP-8031 changed the way in which relative xincludes are handled in Configuration.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8748">HADOOP-8748</a>.
     Minor improvement reported by Arun C Murthy and fixed by Arun C Murthy (io)<br>
     <b>Move dfsclient retry to a util class</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8747">HADOOP-8747</a>.
     Major bug reported by Colin Patrick McCabe and fixed by Colin Patrick McCabe (native)<br>
     <b>Syntax error on cmake version 2.6 patch 2 in JNIFlags.cmake</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8737">HADOOP-8737</a>.
     Minor bug reported by Colin Patrick McCabe and fixed by Colin Patrick McCabe (native)<br>
     <b>cmake: always use JAVA_HOME to find libjvm.so, jni.h, jni_md.h</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8727">HADOOP-8727</a>.
     Major bug reported by Harsh J and fixed by Harsh J (conf)<br>
     <b>Gracefully deprecate dfs.umaskmode in 2.x onwards</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8726">HADOOP-8726</a>.
     Major bug reported by Benoy Antony and fixed by Daryn Sharp (security)<br>
     <b>The Secrets in Credentials are not available to MR tasks</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8725">HADOOP-8725</a>.
     Blocker bug reported by Daryn Sharp and fixed by Daryn Sharp (security)<br>
     <b>MR is broken when security is off</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8722">HADOOP-8722</a>.
     Minor bug reported by Eli Collins and fixed by Colin Patrick McCabe (documentation)<br>
     <b>Update BUILDING.txt with latest snappy info</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8721">HADOOP-8721</a>.
     Critical bug reported by suja s and fixed by Vinay (auto-failover , ha)<br>
     <b>ZKFC should not retry 45 times when attempting a graceful fence during a failover</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8720">HADOOP-8720</a>.
     Trivial bug reported by Vlad Rozov and fixed by Vlad Rozov (test)<br>
     <b>TestLocalFileSystem should use test root subdirectory</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8710">HADOOP-8710</a>.
     Major improvement reported by Eli Collins and fixed by Eli Collins (fs)<br>
     <b>Remove ability for users to easily run the trash emptier</b><br>
     <blockquote>The trash emptier may no longer be run using "hadoop org.apache.hadoop.fs.Trash". The trash emptier runs on the NameNode (if configured). Old trash checkpoints may be deleted using "hadoop fs -expunge".</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8709">HADOOP-8709</a>.
     Critical bug reported by Jason Lowe and fixed by Jason Lowe (fs)<br>
     <b>globStatus changed behavior from 0.20/1.x</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8703">HADOOP-8703</a>.
     Major bug reported by Dave Thompson and fixed by Dave Thompson <br>
     <b>distcpV2: turn CRC checking off for 0 byte size</b><br>
     <blockquote>distcp skips CRC on 0 byte files.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8700">HADOOP-8700</a>.
     Minor improvement reported by Tsz Wo (Nicholas), SZE and fixed by Tsz Wo (Nicholas), SZE (util)<br>
     <b>Move the checksum type constants to an enum</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8699">HADOOP-8699</a>.
     Critical bug reported by Alejandro Abdelnur and fixed by Alejandro Abdelnur (test)<br>
     <b>some common testcases create core-site.xml in test-classes making other testcases to fail</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8697">HADOOP-8697</a>.
     Major bug reported by Trevor Robinson and fixed by Trevor Robinson (test)<br>
     <b>TestWritableName fails intermittently with JDK7</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8695">HADOOP-8695</a>.
     Major bug reported by Trevor Robinson and fixed by Trevor Robinson (test)<br>
     <b>TestPathData fails intermittently with JDK7</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8693">HADOOP-8693</a>.
     Major bug reported by Trevor Robinson and fixed by Trevor Robinson (test)<br>
     <b>TestSecurityUtil fails intermittently with JDK7</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8692">HADOOP-8692</a>.
     Major bug reported by Trevor Robinson and fixed by Trevor Robinson (test)<br>
     <b>TestLocalDirAllocator fails intermittently with JDK7</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8689">HADOOP-8689</a>.
     Major improvement reported by Eli Collins and fixed by Eli Collins (fs)<br>
     <b>Make trash a server side configuration option</b><br>
     <blockquote>If fs.trash.interval is configured on the server then the client's value for this configuration is ignored. </blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8686">HADOOP-8686</a>.
     Minor bug reported by Colin Patrick McCabe and fixed by Colin Patrick McCabe (native)<br>
     <b>Fix warnings in native code</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8660">HADOOP-8660</a>.
     Major bug reported by Eli Collins and fixed by Alejandro Abdelnur <br>
     <b>TestPseudoAuthenticator failing with NPE</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8659">HADOOP-8659</a>.
     Major bug reported by Trevor Robinson and fixed by Colin Patrick McCabe (native)<br>
     <b>Native libraries must build with soft-float ABI for Oracle JVM on ARM</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8655">HADOOP-8655</a>.
     Major bug reported by Arun A K and fixed by  (util)<br>
     <b>In TextInputFormat, while specifying textinputformat.record.delimiter the character/character sequences in data file similar to starting character/starting character sequence in delimiter were found missing in certain cases in the Map Output</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8654">HADOOP-8654</a>.
     Major bug reported by Gelesh and fixed by  (util)<br>
     <b>TextInputFormat delimiter  bug:- Input Text portion ends with &amp; Delimiter starts with same char/char sequence</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8648">HADOOP-8648</a>.
     Major bug reported by Colin Patrick McCabe and fixed by Colin Patrick McCabe <br>
     <b>libhadoop:  native CRC32 validation crashes when io.bytes.per.checksum=1</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8644">HADOOP-8644</a>.
     Critical new feature reported by Alejandro Abdelnur and fixed by Alejandro Abdelnur (security)<br>
     <b>AuthenticatedURL should be able to use SSLFactory</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8637">HADOOP-8637</a>.
     Critical bug reported by Daryn Sharp and fixed by Daryn Sharp (fs)<br>
     <b>FilterFileSystem#setWriteChecksum is broken</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8635">HADOOP-8635</a>.
     Critical improvement reported by Daryn Sharp and fixed by Daryn Sharp (fs)<br>
     <b>Cannot cancel paths registered deleteOnExit</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8634">HADOOP-8634</a>.
     Critical bug reported by Daryn Sharp and fixed by Daryn Sharp (fs)<br>
     <b>Ensure FileSystem#close doesn't squawk for deleteOnExit paths</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8633">HADOOP-8633</a>.
     Critical bug reported by Daryn Sharp and fixed by Daryn Sharp (fs)<br>
     <b>Interrupted FsShell copies may leave tmp files</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8632">HADOOP-8632</a>.
     Major bug reported by Costin Leau and fixed by Costin Leau (conf)<br>
     <b>Configuration leaking class-loaders</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8627">HADOOP-8627</a>.
     Critical bug reported by Daryn Sharp and fixed by Daryn Sharp (fs)<br>
     <b>FS deleteOnExit may delete the wrong path</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8626">HADOOP-8626</a>.
     Major bug reported by Jonathan Natkins and fixed by Jonathan Natkins (security)<br>
     <b>Typo in default setting for hadoop.security.group.mapping.ldap.search.filter.user</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8624">HADOOP-8624</a>.
     Minor improvement reported by Todd Lipcon and fixed by Todd Lipcon (ipc)<br>
     <b>ProtobufRpcEngine should log all RPCs if TRACE logging is enabled</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8623">HADOOP-8623</a>.
     Minor improvement reported by Steven Willis and fixed by Steven Willis (scripts)<br>
     <b>hadoop jar command should respect HADOOP_OPTS</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8620">HADOOP-8620</a>.
     Minor improvement reported by Colin Patrick McCabe and fixed by Colin Patrick McCabe (build)<br>
     <b>Add -Drequire.fuse and -Drequire.snappy</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8614">HADOOP-8614</a>.
     Minor bug reported by Colin Patrick McCabe and fixed by Colin Patrick McCabe <br>
     <b>IOUtils#skipFully hangs forever on EOF</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8613">HADOOP-8613</a>.
     Critical bug reported by Daryn Sharp and fixed by Daryn Sharp <br>
     <b>AbstractDelegationTokenIdentifier#getUser() should set token auth type</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8611">HADOOP-8611</a>.
     Major bug reported by Kihwal Lee and fixed by Robert Parker (security)<br>
     <b>Allow fall-back to the shell-based implementation when JNI-based users-group mapping fails</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8609">HADOOP-8609</a>.
     Major improvement reported by Todd Lipcon and fixed by Jon Zuanich <br>
     <b>IPC server logs a useless message when shutting down socket</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8606">HADOOP-8606</a>.
     Major bug reported by Daryn Sharp and fixed by Daryn Sharp (fs)<br>
     <b>FileSystem.get may return the wrong filesystem</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8599">HADOOP-8599</a>.
     Major bug reported by Andrey Klochkov and fixed by Andrey Klochkov (fs)<br>
     <b>Non empty response from FileSystem.getFileBlockLocations when asking for data beyond the end of file </b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8587">HADOOP-8587</a>.
     Minor bug reported by Eli Collins and fixed by Eli Collins (fs)<br>
     <b>HarFileSystem access of harMetaCache isn't threadsafe</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8586">HADOOP-8586</a>.
     Major bug reported by Eli Collins and fixed by Eli Collins <br>
     <b>Fixup a bunch of SPNEGO misspellings</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8585">HADOOP-8585</a>.
     Minor bug reported by Colin Patrick McCabe and fixed by Colin Patrick McCabe <br>
     <b>Fix initialization circularity between UserGroupInformation and HadoopConfiguration</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8581">HADOOP-8581</a>.
     Major new feature reported by Alejandro Abdelnur and fixed by Alejandro Abdelnur (security)<br>
     <b>add support for HTTPS to the web UIs</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8573">HADOOP-8573</a>.
     Major bug reported by Robert Joseph Evans and fixed by Robert Joseph Evans (conf)<br>
     <b>Configuration tries to read from an inputstream resource multiple times. </b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8566">HADOOP-8566</a>.
     Major bug reported by Alejandro Abdelnur and fixed by Alejandro Abdelnur (io)<br>
     <b>AvroReflectSerializer.accept(Class) throws a NPE if the class has no package (primitive types and arrays)</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8563">HADOOP-8563</a>.
     Minor bug reported by Colin Patrick McCabe and fixed by Colin Patrick McCabe (build)<br>
     <b>don't package hadoop-pipes examples/bin</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8551">HADOOP-8551</a>.
     Major bug reported by Robert Joseph Evans and fixed by John George (fs)<br>
     <b>fs -mkdir creates parent directories without the -p option</b><br>
     <blockquote>FsShell's "mkdir" no longer implicitly creates all non-existent parent directories.  The command adopts the posix compliant behavior of requiring the "-p" flag to auto-create parent directories.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8550">HADOOP-8550</a>.
     Major bug reported by Robert Joseph Evans and fixed by John George (fs)<br>
     <b>hadoop fs -touchz automatically created parent directories</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8547">HADOOP-8547</a>.
     Minor bug reported by Colin Patrick McCabe and fixed by Colin Patrick McCabe <br>
     <b>Package hadoop-pipes examples/bin directory (again)</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8543">HADOOP-8543</a>.
     Major bug reported by Radim Kolar and fixed by Radim Kolar (build)<br>
     <b>Invalid pom.xml files on 0.23 branch</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8541">HADOOP-8541</a>.
     Major improvement reported by Andrew Wang and fixed by Andrew Wang (metrics)<br>
     <b>Better high-percentile latency metrics</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8538">HADOOP-8538</a>.
     Major bug reported by Trevor Robinson and fixed by Trevor Robinson (native)<br>
     <b>CMake builds fail on ARM</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8537">HADOOP-8537</a>.
     Major bug reported by Todd Lipcon and fixed by Todd Lipcon (io)<br>
     <b>Two TFile tests failing recently</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8535">HADOOP-8535</a>.
     Major improvement reported by Jonathan Eagles and fixed by Jonathan Eagles (build)<br>
     <b>Cut hadoop build times in half (upgrade maven-compiler-plugin to 2.5.1)</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8533">HADOOP-8533</a>.
     Major improvement reported by Suresh Srinivas and fixed by Brandon Li (ipc)<br>
     <b>Remove Parallel Call in IPC</b><br>
     <blockquote>Merged the change to branch-2</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8531">HADOOP-8531</a>.
     Trivial improvement reported by Harsh J and fixed by madhukara phatak (io)<br>
     <b>SequenceFile Writer can throw out a better error if a serializer or deserializer isn't available</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8525">HADOOP-8525</a>.
     Trivial improvement reported by Robert Joseph Evans and fixed by Robert Joseph Evans <br>
     <b>Provide Improved Traceability for Configuration</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8524">HADOOP-8524</a>.
     Trivial improvement reported by Harsh J and fixed by Harsh J (conf)<br>
     <b>Allow users to get source of a Configuration parameter</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8512">HADOOP-8512</a>.
     Minor bug reported by Alejandro Abdelnur and fixed by Alejandro Abdelnur (security)<br>
     <b>AuthenticatedURL should reset the Token when the server returns other than OK on authentication</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8509">HADOOP-8509</a>.
     Minor bug reported by Matteo Bertozzi and fixed by Alejandro Abdelnur (util)<br>
     <b>JarFinder duplicate entry: META-INF/MANIFEST.MF exception</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8507">HADOOP-8507</a>.
     Minor bug reported by Colin Patrick McCabe and fixed by Colin Patrick McCabe <br>
     <b>Avoid OOM while deserializing DelegationTokenIdentifer</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8501">HADOOP-8501</a>.
     Major bug reported by Radim Kolar and fixed by Radim Kolar (benchmarks)<br>
     <b>Gridmix fails to compile on OpenJDK7u4</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8499">HADOOP-8499</a>.
     Minor bug reported by Colin Patrick McCabe and fixed by Colin Patrick McCabe <br>
     <b>Lower min.user.id to 500 for the tests</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8495">HADOOP-8495</a>.
     Critical bug reported by Jason Lowe and fixed by Jason Lowe (build)<br>
     <b>Update Netty to avoid leaking file descriptors during shuffle</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8488">HADOOP-8488</a>.
     Minor bug reported by Colin Patrick McCabe and fixed by Colin Patrick McCabe <br>
     <b>test-patch.sh gives +1 even if the native build fails.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8485">HADOOP-8485</a>.
     Minor bug reported by Eli Collins and fixed by Eli Collins (documentation)<br>
     <b>Don't hardcode "Apache Hadoop 0.23" in the docs</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8481">HADOOP-8481</a>.
     Trivial bug reported by Colin Patrick McCabe and fixed by Colin Patrick McCabe (documentation)<br>
     <b>update BUILDING.txt to talk about cmake rather than autotools</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8480">HADOOP-8480</a>.
     Trivial bug reported by Colin Patrick McCabe and fixed by Colin Patrick McCabe <br>
     <b>The native build should honor -DskipTests</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8466">HADOOP-8466</a>.
     Major bug reported by Bruno Mah&#233; and fixed by Bruno Mah&#233; (build)<br>
     <b>hadoop-client POM incorrectly excludes avro</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8465">HADOOP-8465</a>.
     Major new feature reported by Alejandro Abdelnur and fixed by Alejandro Abdelnur (security)<br>
     <b>hadoop-auth should support ephemeral authentication</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8463">HADOOP-8463</a>.
     Major improvement reported by Eli Collins and fixed by madhukara phatak (security)<br>
     <b>hadoop.security.auth_to_local needs a key definition and doc </b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8460">HADOOP-8460</a>.
     Major bug reported by Robert Joseph Evans and fixed by Robert Joseph Evans (documentation)<br>
     <b>Document proper setting of HADOOP_PID_DIR and HADOOP_SECURE_DN_PID_DIR</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8458">HADOOP-8458</a>.
     Major new feature reported by Alejandro Abdelnur and fixed by Alejandro Abdelnur (security)<br>
     <b>Add management hook to AuthenticationHandler to enable delegation token operations support</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8452">HADOOP-8452</a>.
     Minor bug reported by Andy Isaacson and fixed by Andy Isaacson <br>
     <b>DN logs backtrace when running under jsvc and /jmx is loaded</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8450">HADOOP-8450</a>.
     Trivial bug reported by Colin Patrick McCabe and fixed by Eli Collins (test)<br>
     <b>Remove src/test/system</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8449">HADOOP-8449</a>.
     Minor bug reported by Joey Echeverria and fixed by Harsh J <br>
     <b>hadoop fs -text fails with compressed sequence files with the codec file extension</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8444">HADOOP-8444</a>.
     Major bug reported by Mariappan Asokan and fixed by madhukara phatak (fs , test)<br>
     <b>Fix the tests FSMainOperationsBaseTest.java and F ileContextMainOperationsBaseTest.java to avoid potential test failure</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8438">HADOOP-8438</a>.
     Major bug reported by Devaraj K and fixed by Devaraj K <br>
     <b>hadoop-validate-setup.sh refers to examples jar file which doesn't exist</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8433">HADOOP-8433</a>.
     Major bug reported by Brahma Reddy Battula and fixed by Brahma Reddy Battula (scripts)<br>
     <b>Don't set HADOOP_LOG_DIR in hadoop-env.sh</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8431">HADOOP-8431</a>.
     Major bug reported by Eli Collins and fixed by Sandy Ryza <br>
     <b>Running distcp wo args throws IllegalArgumentException</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8423">HADOOP-8423</a>.
     Major bug reported by Jason B and fixed by Todd Lipcon (io)<br>
     <b>MapFile.Reader.get() crashes jvm or throws EOFException on Snappy or LZO block-compressed data</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8422">HADOOP-8422</a>.
     Minor bug reported by Eli Collins and fixed by Eli Collins (fs)<br>
     <b>Deprecate FileSystem#getDefault* and getServerDefault methods that don't take a Path argument </b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8408">HADOOP-8408</a>.
     Major bug reported by Aaron T. Myers and fixed by Aaron T. Myers (viewfs)<br>
     <b>MR doesn't work with a non-default ViewFS mount table and security enabled</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8406">HADOOP-8406</a>.
     Major bug reported by Todd Lipcon and fixed by Todd Lipcon (io)<br>
     <b>CompressionCodecFactory.CODEC_PROVIDERS iteration is thread-unsafe</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8403">HADOOP-8403</a>.
     Major task reported by Alejandro Abdelnur and fixed by Alejandro Abdelnur (build)<br>
     <b>bump up POMs version to 2.0.1-SNAPSHOT</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8400">HADOOP-8400</a>.
     Major bug reported by Eli Collins and fixed by Alejandro Abdelnur (security)<br>
     <b>All commands warn "Kerberos krb5 configuration not found" when security is not enabled</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8393">HADOOP-8393</a>.
     Major bug reported by Patrick Hunt and fixed by Patrick Hunt (scripts)<br>
     <b>hadoop-config.sh missing variable exports, causes Yarn jobs to fail with ClassNotFoundException MRAppMaster</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8390">HADOOP-8390</a>.
     Major bug reported by Trevor Robinson and fixed by Trevor Robinson (test)<br>
     <b>TestFileSystemCanonicalization fails with JDK7</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8373">HADOOP-8373</a>.
     Major improvement reported by Daryn Sharp and fixed by Daryn Sharp (ipc)<br>
     <b>Port RPC.getServerAddress to 0.23</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8372">HADOOP-8372</a>.
     Major bug reported by Junping Du and fixed by Junping Du (io , util)<br>
     <b>normalizeHostName() in NetUtils is not working properly in resolving a hostname start with numeric character</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8370">HADOOP-8370</a>.
     Major bug reported by Trevor Robinson and fixed by Trevor Robinson (native)<br>
     <b>Native build failure: javah: class file for org.apache.hadoop.classification.InterfaceAudience not found</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8368">HADOOP-8368</a>.
     Minor improvement reported by Colin Patrick McCabe and fixed by Colin Patrick McCabe <br>
     <b>Use CMake rather than autotools to build native code</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8367">HADOOP-8367</a>.
     Major improvement reported by Sanjay Radia and fixed by Sanjay Radia <br>
     <b>Improve documentation of declaringClassProtocolName in rpc headers </b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8362">HADOOP-8362</a>.
     Trivial improvement reported by Todd Lipcon and fixed by madhukara phatak (conf)<br>
     <b>Improve exception message when Configuration.set() is called with a null key or value</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8361">HADOOP-8361</a>.
     Minor improvement reported by Colin Patrick McCabe and fixed by Colin Patrick McCabe <br>
     <b>Avoid out-of-memory problems when deserializing strings</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8358">HADOOP-8358</a>.
     Trivial improvement reported by Harsh J and fixed by Harsh J (conf)<br>
     <b>Config-related WARN for dfs.web.ugi can be avoided.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8342">HADOOP-8342</a>.
     Major bug reported by Randy Clayton and fixed by Alejandro Abdelnur (fs)<br>
     <b>HDFS command fails with exception following merge of HADOOP-8325</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8341">HADOOP-8341</a>.
     Major bug reported by Robert Joseph Evans and fixed by Robert Joseph Evans <br>
     <b>Fix or filter findbugs issues in hadoop-tools</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8340">HADOOP-8340</a>.
     Minor improvement reported by Todd Lipcon and fixed by Todd Lipcon (util)<br>
     <b>SNAPSHOT build versions should compare as less than their eventual final release</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8335">HADOOP-8335</a>.
     Major improvement reported by Daryn Sharp and fixed by Daryn Sharp (util)<br>
     <b>Improve Configuration's address handling</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8334">HADOOP-8334</a>.
     Major bug reported by Daryn Sharp and fixed by Daryn Sharp <br>
     <b>HttpServer sometimes returns incorrect port</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8330">HADOOP-8330</a>.
     Minor bug reported by John George and fixed by John George (test)<br>
     <b>TestSequenceFile.testCreateUsesFsArg() is broken</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8329">HADOOP-8329</a>.
     Major bug reported by Kumar Ravi and fixed by Eli Collins (build)<br>
     <b>Build fails with Java 7</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8328">HADOOP-8328</a>.
     Major bug reported by Tom White and fixed by Tom White (fs)<br>
     <b>Duplicate FileSystem Statistics object for 'file' scheme</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8327">HADOOP-8327</a>.
     Major bug reported by Dave Thompson and fixed by Dave Thompson <br>
     <b>distcpv2 and distcpv1 jars should not coexist</b><br>
     <blockquote>Resolve sporadic distcp issue due to having two DistCp classes (v1 &amp; v2) in the classpath.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8325">HADOOP-8325</a>.
     Critical bug reported by Alejandro Abdelnur and fixed by Alejandro Abdelnur (fs)<br>
     <b>Add a ShutdownHookManager to be used by different components instead of the JVM shutdownhook</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8323">HADOOP-8323</a>.
     Critical improvement reported by Harsh J and fixed by Harsh J (io)<br>
     <b>Revert HADOOP-7940 and improve javadocs and test for Text.clear()</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8317">HADOOP-8317</a>.
     Major bug reported by Radim Kolar and fixed by  (build)<br>
     <b>Update maven-assembly-plugin to 2.3 - fix build on FreeBSD</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8316">HADOOP-8316</a>.
     Major bug reported by Eli Collins and fixed by Eli Collins (conf)<br>
     <b>Audit logging should be disabled by default</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8305">HADOOP-8305</a>.
     Major bug reported by John George and fixed by John George (viewfs)<br>
     <b>distcp over viewfs is broken</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8288">HADOOP-8288</a>.
     Major bug reported by Ravi Prakash and fixed by Ravi Prakash <br>
     <b>Remove references of mapred.child.ulimit etc. since they are not being used any more</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8287">HADOOP-8287</a>.
     Major bug reported by Eli Collins and fixed by Eli Collins (conf)<br>
     <b>etc/hadoop is missing hadoop-env.sh</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8286">HADOOP-8286</a>.
     Major improvement reported by Daryn Sharp and fixed by Daryn Sharp (conf)<br>
     <b>Simplify getting a socket address from conf</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8283">HADOOP-8283</a>.
     Major test reported by Daryn Sharp and fixed by Daryn Sharp (test)<br>
     <b>Allow tests to control token service value</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8278">HADOOP-8278</a>.
     Major improvement reported by Tom White and fixed by Tom White (build)<br>
     <b>Make sure components declare correct set of dependencies</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8268">HADOOP-8268</a>.
     Major bug reported by Radim Kolar and fixed by Radim Kolar (build)<br>
     <b>A few pom.xml across Hadoop project may fail XML validation</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8244">HADOOP-8244</a>.
     Major improvement reported by Henry Robinson and fixed by Henry Robinson <br>
     <b>Improve comments on ByteBufferReadable.read</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8242">HADOOP-8242</a>.
     Minor improvement reported by Colin Patrick McCabe and fixed by Colin Patrick McCabe <br>
     <b>AbstractDelegationTokenIdentifier: add getter methods for owner and realuser</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8240">HADOOP-8240</a>.
     Major improvement reported by Kihwal Lee and fixed by Kihwal Lee (fs)<br>
     <b>Allow users to specify a checksum type on create()</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8239">HADOOP-8239</a>.
     Major improvement reported by Kihwal Lee and fixed by Kihwal Lee (fs)<br>
     <b>Extend MD5MD5CRC32FileChecksum to show the actual checksum type being used</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8227">HADOOP-8227</a>.
     Blocker improvement reported by Robert Joseph Evans and fixed by Robert Joseph Evans <br>
     <b>Allow RPC to limit ephemeral port range.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8225">HADOOP-8225</a>.
     Blocker bug reported by Mithun Radhakrishnan and fixed by Daryn Sharp (security)<br>
     <b>DistCp fails when invoked by Oozie</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8224">HADOOP-8224</a>.
     Major improvement reported by Eli Collins and fixed by Tomohiko Kinebuchi (conf)<br>
     <b>Don't hardcode hdfs.audit.logger in the scripts</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8197">HADOOP-8197</a>.
     Critical bug reported by Alejandro Abdelnur and fixed by Alejandro Abdelnur (conf)<br>
     <b>Configuration logs WARNs on every use of a deprecated key</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8180">HADOOP-8180</a>.
     Major bug reported by Ravi Prakash and fixed by Ravi Prakash <br>
     <b>Remove hsqldb since its not needed from pom.xml</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8179">HADOOP-8179</a>.
     Minor bug reported by Steve Loughran and fixed by Daryn Sharp (fs)<br>
     <b>risk of NPE in CopyCommands processArguments()</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8172">HADOOP-8172</a>.
     Critical bug reported by Robert Joseph Evans and fixed by Anupam Seth (conf)<br>
     <b>Configuration no longer sets all keys in a deprecated key list.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8168">HADOOP-8168</a>.
     Major bug reported by Eugene Koontz and fixed by Eugene Koontz (fs)<br>
     <b>empty-string owners or groups causes {{MissingFormatWidthException}} in o.a.h.fs.shell.Ls.ProcessPath()</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8167">HADOOP-8167</a>.
     Blocker bug reported by Alejandro Abdelnur and fixed by Alejandro Abdelnur (conf)<br>
     <b>Configuration deprecation logic breaks backwards compatibility</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8144">HADOOP-8144</a>.
     Minor bug reported by Junping Du and fixed by Junping Du (io)<br>
     <b>pseudoSortByDistance in NetworkTopology doesn't work properly if no local node and first node is local rack node</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8135">HADOOP-8135</a>.
     Major new feature reported by Henry Robinson and fixed by Henry Robinson (fs)<br>
     <b>Add ByteBufferReadable interface to FSDataInputStream</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8129">HADOOP-8129</a>.
     Major bug reported by Ravi Prakash and fixed by Ahmed Radwan (fs , test)<br>
     <b>ViewFileSystemTestSetup setupForViewFileSystem is erring when the user's home directory is somewhere other than /home (eg. /User) etc.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8110">HADOOP-8110</a>.
     Major bug reported by Tsz Wo (Nicholas), SZE and fixed by Jason Lowe (fs)<br>
     <b>TestViewFsTrash occasionally fails</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8104">HADOOP-8104</a>.
     Major bug reported by Colin Patrick McCabe and fixed by Alejandro Abdelnur <br>
     <b>Inconsistent Jackson versions</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8088">HADOOP-8088</a>.
     Major bug reported by Kihwal Lee and fixed by Kihwal Lee (security)<br>
     <b>User-group mapping cache incorrectly does negative caching on transient failures</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8075">HADOOP-8075</a>.
     Major improvement reported by Eli Collins and fixed by H&#305;z&#305;r Sefa &#304;rken (native)<br>
     <b>Lower native-hadoop library log from info to debug </b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8060">HADOOP-8060</a>.
     Major bug reported by Kihwal Lee and fixed by Kihwal Lee (fs , util)<br>
     <b>Add a capability to discover and set checksum types per file.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8031">HADOOP-8031</a>.
     Major bug reported by Elias Ross and fixed by Elias Ross (conf)<br>
     <b>Configuration class fails to find embedded .jar resources; should use URL.openStream()</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8014">HADOOP-8014</a>.
     Major bug reported by Daryn Sharp and fixed by John George (fs)<br>
     <b>ViewFileSystem does not correctly implement getDefaultBlockSize, getDefaultReplication, getContentSummary</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8005">HADOOP-8005</a>.
     Major bug reported by Joe Crobak and fixed by Jason Lowe (scripts)<br>
     <b>Multiple SLF4J binding message in .out file for all daemons</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7967">HADOOP-7967</a>.
     Critical bug reported by Daryn Sharp and fixed by Daryn Sharp (fs , security)<br>
     <b>Need generalized multi-token filesystem support</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7868">HADOOP-7868</a>.
     Major bug reported by James Page and fixed by Trevor Robinson (native)<br>
     <b>Hadoop native fails to compile when default linker option is -Wl,--as-needed</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7818">HADOOP-7818</a>.
     Minor bug reported by Eli Collins and fixed by madhukara phatak (util)<br>
     <b>DiskChecker#checkDir should fail if the directory is not executable</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7754">HADOOP-7754</a>.
     Major sub-task reported by Todd Lipcon and fixed by Todd Lipcon (native , performance)<br>
     <b>Expose file descriptors from Hadoop-wrapped local FileSystems</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7703">HADOOP-7703</a>.
     Major bug reported by Devaraj K and fixed by Devaraj K <br>
     <b>WebAppContext should also be stopped and cleared</b><br>
     <blockquote>Improved excpetion handling of shutting down web server. (Devaraj K via Eric Yang)</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7510">HADOOP-7510</a>.
     Major improvement reported by Daryn Sharp and fixed by Daryn Sharp (security)<br>
     <b>Tokens should use original hostname provided instead of ip</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-6963">HADOOP-6963</a>.
     Critical bug reported by Owen O'Malley and fixed by Ravi Prakash (fs)<br>
     <b>Fix FileUtil.getDU. It should not include the size of the directory or follow symbolic links</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-6802">HADOOP-6802</a>.
     Major improvement reported by Erik Steffl and fixed by Sho Shimauchi (conf , fs)<br>
     <b>Remove FS_CLIENT_BUFFER_DIR_KEY = "fs.client.buffer.dir" from CommonConfigurationKeys.java (not used, deprecated)</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-3886">HADOOP-3886</a>.
     Minor bug reported by brien colwell and fixed by Jingguo Yao (documentation)<br>
     <b>Error in javadoc of Reporter, Mapper and Progressable</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-3450">HADOOP-3450</a>.
     Minor improvement reported by Ari Rabkin and fixed by Sho Shimauchi (fs)<br>
     <b>Add tests to Local Directory Allocator for asserting their URI-returning capability</b><br>
     <blockquote></blockquote></li>
</ul>
</body></html>
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Hadoop  2.0.1-alpha Release Notes</title>
<STYLE type="text/css">
	H1 {font-family: sans-serif}
	H2 {font-family: sans-serif; margin-left: 7mm}
	TABLE {margin-left: 7mm}
</STYLE>
</head>
<body>
<h1>Hadoop  2.0.1-alpha Release Notes</h1>
These release notes include new developer and user-facing incompatibilities, features, and major improvements. 
<a name="changes"/>
<h2>Changes since Hadoop 2.0.0-alpha</h2>
<ul>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8552">HADOOP-8552</a>.
     Major bug reported by Karthik Kambatla and fixed by Karthik Kambatla (conf , security)<br>
     <b>Conflict: Same security.log.file for multiple users. </b><br>
     <blockquote></blockquote></li>
</ul>
</body></html>
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Hadoop  2.0.0-alpha Release Notes</title>
<STYLE type="text/css">
	H1 {font-family: sans-serif}
	H2 {font-family: sans-serif; margin-left: 7mm}
	TABLE {margin-left: 7mm}
</STYLE>
</head>
<body>
<h1>Hadoop  2.0.0-alpha Release Notes</h1>
These release notes include new developer and user-facing incompatibilities, features, and major improvements. 
<a name="changes"/>
<h2>Changes since Hadoop 0.23.2</h2>
<ul>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4274">MAPREDUCE-4274</a>.
     Minor improvement reported by Todd Lipcon and fixed by Todd Lipcon (performance , task)<br>
     <b>MapOutputBuffer should use native byte order for kvmeta</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4231">MAPREDUCE-4231</a>.
     Major bug reported by Tsz Wo (Nicholas), SZE and fixed by Tsz Wo (Nicholas), SZE (contrib/raid)<br>
     <b>Update RAID to not to use FSInodeInfo</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4219">MAPREDUCE-4219</a>.
     Major improvement reported by Roman Shaposhnik and fixed by Roman Shaposhnik (security)<br>
     <b>make default container-executor.conf.dir be a path relative to the container-executor binary</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4202">MAPREDUCE-4202</a>.
     Major bug reported by Daryn Sharp and fixed by Daryn Sharp (test)<br>
     <b>TestYarnClientProtocolProvider is broken</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4193">MAPREDUCE-4193</a>.
     Major bug reported by Patrick Hunt and fixed by Patrick Hunt (documentation)<br>
     <b>broken doc link for yarn-default.xml in site.xml</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4147">MAPREDUCE-4147</a>.
     Major bug reported by Tom White and fixed by Tom White <br>
     <b>YARN should not have a compile-time dependency on HDFS</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4138">MAPREDUCE-4138</a>.
     Major improvement reported by Tom White and fixed by Tom White <br>
     <b>Reduce memory usage of counters due to non-static nested classes</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4113">MAPREDUCE-4113</a>.
     Major sub-task reported by Devaraj K and fixed by Devaraj K (mrv2 , test)<br>
     <b>Fix tests org.apache.hadoop.mapred.TestClusterMRNotification</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4112">MAPREDUCE-4112</a>.
     Major sub-task reported by Devaraj K and fixed by Devaraj K (mrv2 , test)<br>
     <b>Fix tests org.apache.hadoop.mapred.TestClusterMapReduceTestCase</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4111">MAPREDUCE-4111</a>.
     Major sub-task reported by Devaraj K and fixed by Devaraj K (mrv2 , test)<br>
     <b>Fix tests in org.apache.hadoop.mapred.TestJobName</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4110">MAPREDUCE-4110</a>.
     Major sub-task reported by Devaraj K and fixed by Devaraj K (mrv2 , test)<br>
     <b>Fix tests in org.apache.hadoop.mapred.TestMiniMRClasspath &amp; org.apache.hadoop.mapred.TestMiniMRWithDFSWithDistinctUsers</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4108">MAPREDUCE-4108</a>.
     Major sub-task reported by Devaraj K and fixed by Devaraj K (mrv2)<br>
     <b>Fix tests in org.apache.hadoop.util.TestRunJar</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4107">MAPREDUCE-4107</a>.
     Major sub-task reported by Devaraj K and fixed by Devaraj K (mrv2)<br>
     <b>Fix tests in org.apache.hadoop.ipc.TestSocketFactory</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4105">MAPREDUCE-4105</a>.
     Major bug reported by Ahmed Radwan and fixed by Ahmed Radwan (mrv2)<br>
     <b>Yarn RackResolver ignores rack configurations</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4103">MAPREDUCE-4103</a>.
     Major improvement reported by Todd Lipcon and fixed by Todd Lipcon (documentation)<br>
     <b>Fix HA docs for changes to shell command fencer args</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4098">MAPREDUCE-4098</a>.
     Major bug reported by Alejandro Abdelnur and fixed by Alejandro Abdelnur (test)<br>
     <b>TestMRApps testSetClasspath fails</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4093">MAPREDUCE-4093</a>.
     Major improvement reported by Devaraj K and fixed by Devaraj K (mrv2)<br>
     <b>Improve RM WebApp start up when proxy address is not set</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4081">MAPREDUCE-4081</a>.
     Blocker bug reported by Jason Lowe and fixed by Jason Lowe (build , mrv2)<br>
     <b>TestMROutputFormat.java does not compile</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4076">MAPREDUCE-4076</a>.
     Blocker bug reported by Devaraj K and fixed by Devaraj K (mrv2)<br>
     <b>Stream job fails with ZipException when use yarn jar command</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4066">MAPREDUCE-4066</a>.
     Minor bug reported by xieguiming and fixed by xieguiming (job submission , mrv2)<br>
     <b>To get "yarn.app.mapreduce.am.staging-dir" value, should set the default value</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4057">MAPREDUCE-4057</a>.
     Major bug reported by Tsz Wo (Nicholas), SZE and fixed by Devaraj K (contrib/raid)<br>
     <b>Compilation error in RAID </b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4008">MAPREDUCE-4008</a>.
     Major bug reported by Devaraj K and fixed by Devaraj K (mrv2 , scheduler)<br>
     <b>ResourceManager throws MetricsException on start up saying QueueMetrics MBean already exists</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4007">MAPREDUCE-4007</a>.
     Major bug reported by Alejandro Abdelnur and fixed by Alejandro Abdelnur (mrv2)<br>
     <b>JobClient getJob(JobID) should return NULL if the job does not exist (for backwards compatibility)</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3991">MAPREDUCE-3991</a>.
     Trivial improvement reported by Harsh J and fixed by Harsh J (documentation)<br>
     <b>Streaming FAQ has some wrong instructions about input files splitting</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3989">MAPREDUCE-3989</a>.
     Major improvement reported by Patrick Hunt and fixed by Patrick Hunt <br>
     <b>cap space usage of default log4j rolling policy (mr specific changes)</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3974">MAPREDUCE-3974</a>.
     Blocker bug reported by Arun C Murthy and fixed by Aaron T. Myers <br>
     <b>TestSubmitJob in MR1 tests doesn't compile after HDFS-1623 merge</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3958">MAPREDUCE-3958</a>.
     Major bug reported by Bikas Saha and fixed by Bikas Saha (mrv2)<br>
     <b>RM: Remove RMNodeState and replace it with NodeState</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3955">MAPREDUCE-3955</a>.
     Blocker improvement reported by Jitendra Nath Pandey and fixed by Jitendra Nath Pandey (mrv2)<br>
     <b>Replace ProtoOverHadoopRpcEngine with ProtobufRpcEngine.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3952">MAPREDUCE-3952</a>.
     Major bug reported by Zhenxiao Luo and fixed by Bhallamudi Venkata Siva Kamesh (mrv2)<br>
     <b>In MR2, when Total input paths to process == 1, CombinefileInputFormat.getSplits() returns 0 split.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3935">MAPREDUCE-3935</a>.
     Major improvement reported by Tom White and fixed by Tom White (client)<br>
     <b>Annotate Counters.Counter and Counters.Group as @Public</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3933">MAPREDUCE-3933</a>.
     Major bug reported by Ahmed Radwan and fixed by Ahmed Radwan (mrv2 , test)<br>
     <b>Failures because MALLOC_ARENA_MAX is not set</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3916">MAPREDUCE-3916</a>.
     Critical bug reported by Roman Shaposhnik and fixed by Devaraj K (mrv2 , resourcemanager , webapps)<br>
     <b>various issues with running yarn proxyserver</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3909">MAPREDUCE-3909</a>.
     Trivial improvement reported by Steve Loughran and fixed by Steve Loughran (mrv2)<br>
     <b>javadoc the Service interfaces</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3885">MAPREDUCE-3885</a>.
     Major improvement reported by Devaraj Das and fixed by Devaraj Das (mrv2)<br>
     <b>Apply the fix similar to HADOOP-8084</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3883">MAPREDUCE-3883</a>.
     Minor improvement reported by Eugene Koontz and fixed by Eugene Koontz (documentation , mrv2)<br>
     <b>Document yarn.nodemanager.delete.debug-delay-sec configuration property</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3869">MAPREDUCE-3869</a>.
     Blocker bug reported by Devaraj K and fixed by Devaraj K (mrv2)<br>
     <b>Distributed shell application fails with NoClassDefFoundError</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3867">MAPREDUCE-3867</a>.
     Major bug reported by Alejandro Abdelnur and fixed by Alejandro Abdelnur (test)<br>
     <b>MiniMRYarn/MiniYarn uses fixed ports</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3818">MAPREDUCE-3818</a>.
     Blocker bug reported by Vinod Kumar Vavilapalli and fixed by Suresh Srinivas (build , test)<br>
     <b>Trunk MRV1 compilation is broken.</b><br>
     <blockquote>Fixed broken compilation in TestSubmitJob after the patch for HDFS-2895.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3740">MAPREDUCE-3740</a>.
     Blocker bug reported by Devaraj K and fixed by Devaraj K (mrv2)<br>
     <b>Mapreduce Trunk compilation fails</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3578">MAPREDUCE-3578</a>.
     Major bug reported by Gilad Wolff and fixed by Tom White (nodemanager)<br>
     <b>starting nodemanager as 'root' gives "Unknown -jvm option"</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3545">MAPREDUCE-3545</a>.
     Major bug reported by Suresh Srinivas and fixed by Suresh Srinivas <br>
     <b>Remove Avro RPC</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3431">MAPREDUCE-3431</a>.
     Minor bug reported by Steve Loughran and fixed by Steve Loughran (resourcemanager)<br>
     <b>NPE in Resource Manager shutdown</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3377">MAPREDUCE-3377</a>.
     Major bug reported by Jane Chen and fixed by Jane Chen <br>
     <b>Compatibility issue with 0.20.203.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3353">MAPREDUCE-3353</a>.
     Major bug reported by Vinod Kumar Vavilapalli and fixed by Bikas Saha (applicationmaster , mrv2 , resourcemanager)<br>
     <b>Need a RM-&gt;AM channel to inform AMs about faulty/unhealthy/lost nodes</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3173">MAPREDUCE-3173</a>.
     Critical bug reported by Devaraj K and fixed by Devaraj K (mrv2)<br>
     <b>MRV2 UI doesn't work properly without internet</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2942">MAPREDUCE-2942</a>.
     Critical bug reported by Vinod Kumar Vavilapalli and fixed by Thomas Graves <br>
     <b>TestNMAuditLogger.testNMAuditLoggerWithIP failing</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2934">MAPREDUCE-2934</a>.
     Major improvement reported by Aaron T. Myers and fixed by Aaron T. Myers (mrv2)<br>
     <b>MR portion of HADOOP-7607 - Simplify the RPC proxy cleanup process</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2887">MAPREDUCE-2887</a>.
     Major improvement reported by Sanjay Radia and fixed by Sanjay Radia <br>
     <b>MR changes to match HADOOP-7524 (multiple RPC protocols)</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3418">HDFS-3418</a>.
     Minor improvement reported by Eli Collins and fixed by Eli Collins <br>
     <b>Rename BlockWithLocationsProto datanodeIDs field to storageIDs</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3396">HDFS-3396</a>.
     Minor bug reported by Colin Patrick McCabe and fixed by Colin Patrick McCabe (fuse-dfs)<br>
     <b>FUSE build fails on Ubuntu 12.04</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3395">HDFS-3395</a>.
     Major bug reported by Aaron T. Myers and fixed by Aaron T. Myers (name-node)<br>
     <b>NN doesn't start with HA+security enabled and HTTP address set to 0.0.0.0</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3378">HDFS-3378</a>.
     Trivial improvement reported by Eli Collins and fixed by Eli Collins <br>
     <b>Remove DFS_NAMENODE_SECONDARY_HTTPS_PORT_KEY and DEFAULT</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3376">HDFS-3376</a>.
     Critical bug reported by Todd Lipcon and fixed by Todd Lipcon (hdfs client)<br>
     <b>DFSClient fails to make connection to DN if there are many unusable cached sockets</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3375">HDFS-3375</a>.
     Trivial improvement reported by Todd Lipcon and fixed by Todd Lipcon (data-node)<br>
     <b>Put client name in DataXceiver thread name for readBlock and keepalive</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3365">HDFS-3365</a>.
     Minor improvement reported by Todd Lipcon and fixed by Todd Lipcon (hdfs client)<br>
     <b>Enable users to disable socket caching in DFS client configuration</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3363">HDFS-3363</a>.
     Minor sub-task reported by John George and fixed by John George (name-node)<br>
     <b>blockmanagement should stop using INodeFile &amp; INodeFileUC </b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3357">HDFS-3357</a>.
     Critical bug reported by Todd Lipcon and fixed by Todd Lipcon (data-node)<br>
     <b>DataXceiver reads from client socket with incorrect/no timeout</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3351">HDFS-3351</a>.
     Major bug reported by Aaron T. Myers and fixed by Aaron T. Myers (name-node)<br>
     <b>NameNode#initializeGenericKeys should always set fs.defaultFS regardless of whether HA or Federation is enabled</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3350">HDFS-3350</a>.
     Major bug reported by Tsz Wo (Nicholas), SZE and fixed by Tsz Wo (Nicholas), SZE (name-node)<br>
     <b>findbugs warning: INodeFileUnderConstruction doesn't override INodeFile.equals(Object)</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3339">HDFS-3339</a>.
     Minor sub-task reported by John George and fixed by John George (name-node)<br>
     <b>change INode to package private</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3336">HDFS-3336</a>.
     Minor bug reported by Roman Shaposhnik and fixed by Roman Shaposhnik (scripts)<br>
     <b>hdfs launcher script will be better off not special casing namenode command with regards to hadoop.security.logger</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3332">HDFS-3332</a>.
     Major bug reported by amith and fixed by amith (data-node)<br>
     <b>NullPointerException in DN when directoryscanner is trying to report bad blocks</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3330">HDFS-3330</a>.
     Critical bug reported by Todd Lipcon and fixed by Todd Lipcon (name-node)<br>
     <b>If GetImageServlet throws an Error or RTE, response has HTTP "OK" status</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3328">HDFS-3328</a>.
     Minor bug reported by Uma Maheswara Rao G and fixed by Eli Collins (data-node)<br>
     <b>NPE in DataNode.getIpcPort</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3326">HDFS-3326</a>.
     Trivial bug reported by J.Andreina and fixed by Matthew Jacobs (name-node)<br>
     <b>Append enabled log message uses the wrong variable</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3322">HDFS-3322</a>.
     Major sub-task reported by Tsz Wo (Nicholas), SZE and fixed by Tsz Wo (Nicholas), SZE (hdfs client)<br>
     <b>Update file context to use HdfsDataInputStream and HdfsDataOutputStream</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3319">HDFS-3319</a>.
     Minor improvement reported by Tsz Wo (Nicholas), SZE and fixed by Tsz Wo (Nicholas), SZE (hdfs client)<br>
     <b>DFSOutputStream should not start a thread in constructors</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3314">HDFS-3314</a>.
     Major bug reported by Alejandro Abdelnur and fixed by Alejandro Abdelnur <br>
     <b>HttpFS operation for getHomeDirectory is incorrect</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3309">HDFS-3309</a>.
     Major bug reported by Romain Rigaux and fixed by Alejandro Abdelnur <br>
     <b>HttpFS (Hoop) chmod not supporting octal and sticky bit permissions</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3305">HDFS-3305</a>.
     Major bug reported by Aaron T. Myers and fixed by Aaron T. Myers (ha , name-node)<br>
     <b>GetImageServlet should consider SBN a valid requestor in a secure HA setup</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3303">HDFS-3303</a>.
     Minor bug reported by Brandon Li and fixed by Brandon Li (name-node)<br>
     <b>RemoteEditLogManifest doesn't need to implements Writable</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3298">HDFS-3298</a>.
     Major sub-task reported by Tsz Wo (Nicholas), SZE and fixed by Tsz Wo (Nicholas), SZE (hdfs client)<br>
     <b>Add HdfsDataOutputStream as a public API</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3294">HDFS-3294</a>.
     Trivial improvement reported by Tsz Wo (Nicholas), SZE and fixed by Tsz Wo (Nicholas), SZE (data-node , name-node)<br>
     <b>Fix indentation in NamenodeWebHdfsMethods and DatanodeWebHdfsMethods</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3286">HDFS-3286</a>.
     Major bug reported by J.Andreina and fixed by Ashish Singhi (balancer)<br>
     <b>When the threshold value for balancer is 0(zero) ,unexpected output is displayed</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3284">HDFS-3284</a>.
     Minor bug reported by Todd Lipcon and fixed by Todd Lipcon (ha , security)<br>
     <b>bootstrapStandby fails in secure cluster</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3282">HDFS-3282</a>.
     Major sub-task reported by Uma Maheswara Rao G and fixed by Uma Maheswara Rao G (hdfs client)<br>
     <b>Add HdfsDataInputStream as a public API</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3280">HDFS-3280</a>.
     Critical bug reported by Todd Lipcon and fixed by Todd Lipcon (hdfs client)<br>
     <b>DFSOutputStream.sync should not be synchronized</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3279">HDFS-3279</a>.
     Minor improvement reported by Tsz Wo (Nicholas), SZE and fixed by Arpit Gupta (name-node)<br>
     <b>One of the FSEditLog constructors should be moved to TestEditLog</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3275">HDFS-3275</a>.
     Major bug reported by Vinithra Varadharajan and fixed by amith (ha , name-node)<br>
     <b>Format command overwrites contents of non-empty shared edits dir if name dirs are empty without any prompting</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3268">HDFS-3268</a>.
     Critical bug reported by Daryn Sharp and fixed by Daryn Sharp (ha , hdfs client)<br>
     <b>Hdfs mishandles token service &amp; incompatible with HA</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3263">HDFS-3263</a>.
     Major improvement reported by Alejandro Abdelnur and fixed by Alejandro Abdelnur <br>
     <b>HttpFS should read HDFS config from Hadoop site.xml files</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3260">HDFS-3260</a>.
     Major bug reported by Aaron T. Myers and fixed by Aaron T. Myers <br>
     <b>TestDatanodeRegistration should set minimum DN version in addition to minimum NN version</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3259">HDFS-3259</a>.
     Major improvement reported by Aaron T. Myers and fixed by Aaron T. Myers (ha , name-node)<br>
     <b>NameNode#initializeSharedEdits should populate shared edits dir with edit log segments</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3256">HDFS-3256</a>.
     Major bug reported by Aaron T. Myers and fixed by Aaron T. Myers <br>
     <b>HDFS considers blocks under-replicated if topology script is configured with only 1 rack</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3255">HDFS-3255</a>.
     Critical bug reported by Daryn Sharp and fixed by Daryn Sharp (ha , hdfs client)<br>
     <b>HA DFS returns wrong token service</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3254">HDFS-3254</a>.
     Major bug reported by Anupam Seth and fixed by Anupam Seth (fuse-dfs)<br>
     <b>Branch-2 build broken due to wrong version number in fuse-dfs' pom.xml</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3249">HDFS-3249</a>.
     Trivial improvement reported by Todd Lipcon and fixed by Todd Lipcon (name-node)<br>
     <b>Use ToolRunner.confirmPrompt in NameNode</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3248">HDFS-3248</a>.
     Minor bug reported by Colin Patrick McCabe and fixed by Colin Patrick McCabe <br>
     <b>bootstrapstanby repeated twice in hdfs namenode usage message</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3247">HDFS-3247</a>.
     Minor improvement reported by Todd Lipcon and fixed by Todd Lipcon (ha)<br>
     <b>Improve bootstrapStandby behavior when original NN is not active</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3244">HDFS-3244</a>.
     Major improvement reported by Eli Collins and fixed by Eli Collins <br>
     <b>Remove dead writable code from hdfs/protocol</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3240">HDFS-3240</a>.
     Trivial improvement reported by Todd Lipcon and fixed by Todd Lipcon (data-node)<br>
     <b>Drop log level of "heartbeat: ..." in BPServiceActor to DEBUG</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3238">HDFS-3238</a>.
     Major improvement reported by Eli Collins and fixed by Eli Collins <br>
     <b>ServerCommand and friends don't need to be writables</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3236">HDFS-3236</a>.
     Minor bug reported by Aaron T. Myers and fixed by Aaron T. Myers (ha , name-node)<br>
     <b>NameNode does not initialize generic conf keys when started with -initializeSharedEditsDir</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3234">HDFS-3234</a>.
     Trivial bug reported by Todd Lipcon and fixed by Todd Lipcon (tools)<br>
     <b>Accidentally left log message in GetConf after HDFS-3226</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3226">HDFS-3226</a>.
     Major improvement reported by Todd Lipcon and fixed by Todd Lipcon (tools)<br>
     <b>Allow GetConf tool to print arbitrary keys</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3222">HDFS-3222</a>.
     Major bug reported by Uma Maheswara Rao G and fixed by Uma Maheswara Rao G (hdfs client)<br>
     <b>DFSInputStream#openInfo should not silently get the length as 0 when locations length is zero for last partial block.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3214">HDFS-3214</a>.
     Blocker bug reported by Todd Lipcon and fixed by Todd Lipcon (data-node)<br>
     <b>InterDatanodeProtocolServerSideTranslatorPB doesn't handle null response from initReplicaRecovery</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3211">HDFS-3211</a>.
     Major sub-task reported by Suresh Srinivas and fixed by Suresh Srinivas (ha , name-node)<br>
     <b>JournalProtocol changes required for introducing epoch and fencing</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3210">HDFS-3210</a>.
     Major bug reported by Eli Collins and fixed by Eli Collins <br>
     <b>JsonUtil#toJsonMap for for a DatanodeInfo should use "ipAddr" instead of "name"</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3208">HDFS-3208</a>.
     Major bug reported by Eli Collins and fixed by Eli Collins (name-node)<br>
     <b>Bogus entries in hosts files are incorrectly displayed in the report </b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3204">HDFS-3204</a>.
     Major improvement reported by Suresh Srinivas and fixed by Suresh Srinivas (name-node)<br>
     <b>Minor modification to JournalProtocol.proto to make it generic</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3202">HDFS-3202</a>.
     Major bug reported by Aaron T. Myers and fixed by Aaron T. Myers (data-node)<br>
     <b>NamespaceInfo PB translation drops build version</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3199">HDFS-3199</a>.
     Major bug reported by Eli Collins and fixed by Todd Lipcon <br>
     <b>TestValidateConfigurationSettings is failing</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3187">HDFS-3187</a>.
     Minor sub-task reported by Todd Lipcon and fixed by Todd Lipcon (build)<br>
     <b>Upgrade guava to 11.0.2</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3181">HDFS-3181</a>.
     Minor bug reported by Colin Patrick McCabe and fixed by Tsz Wo (Nicholas), SZE (test)<br>
     <b>testHardLeaseRecoveryAfterNameNodeRestart fails when length before restart is 1 byte less than CRC chunk size</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3179">HDFS-3179</a>.
     Major improvement reported by Zhanwei.Wang and fixed by Tsz Wo (Nicholas), SZE (hdfs client)<br>
     <b>Improve the error message: DataStreamer throw an exception, "nodes.length != original.length + 1" on single datanode cluster</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3172">HDFS-3172</a>.
     Trivial improvement reported by Eli Collins and fixed by Eli Collins (name-node)<br>
     <b>dfs.upgrade.permission is dead code</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3171">HDFS-3171</a>.
     Major improvement reported by Eli Collins and fixed by Eli Collins (data-node)<br>
     <b>The DatanodeID "name" field is overloaded </b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3169">HDFS-3169</a>.
     Minor improvement reported by Colin Patrick McCabe and fixed by Colin Patrick McCabe (test)<br>
     <b>TestFsck should test multiple -move operations in a row</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3167">HDFS-3167</a>.
     Minor new feature reported by Henry Robinson and fixed by Henry Robinson (test)<br>
     <b>CLI-based driver for MiniDFSCluster</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3164">HDFS-3164</a>.
     Major improvement reported by Eli Collins and fixed by Eli Collins (data-node)<br>
     <b>Move DatanodeInfo#hostName to DatanodeID</b><br>
     <blockquote>This change modifies DatanodeID, which is part of the client to server protocol, therefore clients must be upgraded with servers.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3160">HDFS-3160</a>.
     Major bug reported by Roman Shaposhnik and fixed by Roman Shaposhnik (scripts)<br>
     <b>httpfs should exec catalina instead of forking it</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3158">HDFS-3158</a>.
     Major improvement reported by Aaron T. Myers and fixed by Aaron T. Myers (name-node)<br>
     <b>LiveNodes member of NameNodeMXBean should list non-DFS used space and capacity per DN</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3156">HDFS-3156</a>.
     Major bug reported by Aaron T. Myers and fixed by Aaron T. Myers (test)<br>
     <b>TestDFSHAAdmin is failing post HADOOP-8202</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3155">HDFS-3155</a>.
     Major sub-task reported by Tsz Wo (Nicholas), SZE and fixed by Tsz Wo (Nicholas), SZE (data-node)<br>
     <b>Clean up FSDataset implemenation related code.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3148">HDFS-3148</a>.
     Major new feature reported by Eli Collins and fixed by Eli Collins (hdfs client , performance)<br>
     <b>The client should be able to use multiple local interfaces for data transfer</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3144">HDFS-3144</a>.
     Major improvement reported by Eli Collins and fixed by Eli Collins (data-node)<br>
     <b>Refactor DatanodeID#getName by use</b><br>
     <blockquote>This change modifies DatanodeID, which is part of the client to server protocol, therefore clients must be upgraded with servers.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3143">HDFS-3143</a>.
     Major bug reported by Eli Collins and fixed by Arpit Gupta (test)<br>
     <b>TestGetBlocks.testGetBlocks is failing</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3142">HDFS-3142</a>.
     Blocker bug reported by Eli Collins and fixed by Brandon Li (test)<br>
     <b>TestHDFSCLI.testAll is failing</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3139">HDFS-3139</a>.
     Minor improvement reported by Eli Collins and fixed by Eli Collins (data-node)<br>
     <b>Minor Datanode logging improvement</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3138">HDFS-3138</a>.
     Major improvement reported by Eli Collins and fixed by Eli Collins <br>
     <b>Move DatanodeInfo#ipcPort to DatanodeID</b><br>
     <blockquote>This change modifies DatanodeID, which is part of the client to server protocol, therefore clients must be upgraded with servers.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3137">HDFS-3137</a>.
     Major improvement reported by Eli Collins and fixed by Eli Collins (name-node)<br>
     <b>Bump LAST_UPGRADABLE_LAYOUT_VERSION to -16</b><br>
     <blockquote>Upgrade from Hadoop versions earlier than 0.18 is not supported as of 2.0. To upgrade from an earlier release, first upgrade to 0.18, and then upgrade again from there.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3132">HDFS-3132</a>.
     Minor bug reported by Todd Lipcon and fixed by Todd Lipcon (name-node)<br>
     <b>Findbugs warning on HDFS trunk</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3130">HDFS-3130</a>.
     Major sub-task reported by Tsz Wo (Nicholas), SZE and fixed by Tsz Wo (Nicholas), SZE (data-node)<br>
     <b>Move FSDataset implemenation to a package</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3129">HDFS-3129</a>.
     Minor test reported by Colin Patrick McCabe and fixed by Colin Patrick McCabe <br>
     <b>NetworkTopology: add test that getLeaf should check for invalid topologies</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3121">HDFS-3121</a>.
     Major bug reported by John George and fixed by John George <br>
     <b>hdfs tests for HADOOP-8014</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3120">HDFS-3120</a>.
     Major improvement reported by Eli Collins and fixed by Eli Collins <br>
     <b>Enable hsync and hflush by default</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3119">HDFS-3119</a>.
     Minor bug reported by J.Andreina and fixed by Ashish Singhi (name-node)<br>
     <b>Overreplicated block is not deleted even after the replication factor is reduced after sync follwed by closing that file</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3111">HDFS-3111</a>.
     Trivial task reported by Todd Lipcon and fixed by Uma Maheswara Rao G <br>
     <b>Missing license headers in trunk</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3109">HDFS-3109</a>.
     Major bug reported by Ravi Prakash and fixed by Ravi Prakash <br>
     <b>Remove hsqldb exclusions from pom.xml</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3105">HDFS-3105</a>.
     Major sub-task reported by Tsz Wo (Nicholas), SZE and fixed by Tsz Wo (Nicholas), SZE (data-node , hdfs client)<br>
     <b>Add DatanodeStorage information to block recovery</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3102">HDFS-3102</a>.
     Major new feature reported by Todd Lipcon and fixed by Aaron T. Myers (ha , name-node)<br>
     <b>Add CLI tool to initialize the shared-edits dir</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3101">HDFS-3101</a>.
     Major bug reported by Zhanwei.Wang and fixed by Tsz Wo (Nicholas), SZE (webhdfs)<br>
     <b>cannot read empty file using webhdfs</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3100">HDFS-3100</a>.
     Major bug reported by Zhanwei.Wang and fixed by Brandon Li (data-node)<br>
     <b>failed to append data</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3099">HDFS-3099</a>.
     Major bug reported by Aaron T. Myers and fixed by Aaron T. Myers (name-node)<br>
     <b>SecondaryNameNode does not properly initialize metrics system</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3094">HDFS-3094</a>.
     Major improvement reported by Arpit Gupta and fixed by Arpit Gupta <br>
     <b>add -nonInteractive and -force option to namenode -format command</b><br>
     <blockquote>The 'namenode -format' command now supports the flags '-nonInteractive' and '-force' to improve usefulness without user input.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3093">HDFS-3093</a>.
     Critical bug reported by Todd Lipcon and fixed by Todd Lipcon <br>
     <b>TestAllowFormat is trying to be interactive</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3091">HDFS-3091</a>.
     Major improvement reported by Uma Maheswara Rao G and fixed by Tsz Wo (Nicholas), SZE (data-node , hdfs client , name-node)<br>
     <b>Update the usage limitations of ReplaceDatanodeOnFailure policy in the config description for the smaller clusters.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3089">HDFS-3089</a>.
     Major sub-task reported by Tsz Wo (Nicholas), SZE and fixed by Tsz Wo (Nicholas), SZE (data-node)<br>
     <b>Move FSDatasetInterface and other related classes/interfaces to a package</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3088">HDFS-3088</a>.
     Major sub-task reported by Tsz Wo (Nicholas), SZE and fixed by Tsz Wo (Nicholas), SZE (data-node)<br>
     <b>Move FSDatasetInterface inner classes to a package</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3086">HDFS-3086</a>.
     Major sub-task reported by Tsz Wo (Nicholas), SZE and fixed by Tsz Wo (Nicholas), SZE (data-node)<br>
     <b>Change Datanode not to send storage list in registration - it will be sent in block report</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3084">HDFS-3084</a>.
     Major improvement reported by Philip Zeyliger and fixed by Todd Lipcon (ha)<br>
     <b>FenceMethod.tryFence() and ShellCommandFencer should pass namenodeId as well as host:port</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3083">HDFS-3083</a>.
     Critical bug reported by Mingjie Lai and fixed by Aaron T. Myers (ha , security)<br>
     <b>Cannot run an MR job with HA and security enabled when second-listed NN active</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3082">HDFS-3082</a>.
     Major sub-task reported by Tsz Wo (Nicholas), SZE and fixed by Tsz Wo (Nicholas), SZE (data-node)<br>
     <b>Clean up FSDatasetInterface</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3071">HDFS-3071</a>.
     Major improvement reported by Philip Zeyliger and fixed by Todd Lipcon (ha)<br>
     <b>haadmin failover command does not provide enough detail for when target NN is not ready to be active</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3070">HDFS-3070</a>.
     Major bug reported by Stephen Chu and fixed by Aaron T. Myers (balancer)<br>
     <b>HDFS balancer doesn't ensure that hdfs-site.xml is loaded</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3066">HDFS-3066</a>.
     Major improvement reported by Patrick Hunt and fixed by Patrick Hunt (scripts)<br>
     <b>cap space usage of default log4j rolling policy (hdfs specific changes)</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3062">HDFS-3062</a>.
     Critical bug reported by Mingjie Lai and fixed by Mingjie Lai (ha , security)<br>
     <b>Fail to submit mapred job on a secured-HA-HDFS: logic URI cannot be picked up by job submission.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3057">HDFS-3057</a>.
     Major bug reported by Roman Shaposhnik and fixed by Roman Shaposhnik (scripts)<br>
     <b>httpfs and hdfs launcher scripts should honor CATALINA_HOME and HADOOP_LIBEXEC_DIR</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3056">HDFS-3056</a>.
     Major improvement reported by Tsz Wo (Nicholas), SZE and fixed by Tsz Wo (Nicholas), SZE (data-node)<br>
     <b>Add an interface for DataBlockScanner logging</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3050">HDFS-3050</a>.
     Minor improvement reported by Colin Patrick McCabe and fixed by Colin Patrick McCabe (name-node)<br>
     <b>rework OEV to share more code with the NameNode</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3044">HDFS-3044</a>.
     Major improvement reported by Eli Collins and fixed by Colin Patrick McCabe (name-node)<br>
     <b>fsck move should be non-destructive by default</b><br>
     <blockquote>The fsck "move" option is no longer destructive. It copies the accessible blocks of corrupt files to lost and found as before, but no longer deletes the corrupt files after copying the blocks. The original, destructive behavior can be enabled by specifying both the "move" and "delete" options. </blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3038">HDFS-3038</a>.
     Trivial bug reported by Todd Lipcon and fixed by Todd Lipcon <br>
     <b>Add FSEditLog.metrics to findbugs exclude list</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3036">HDFS-3036</a>.
     Trivial improvement reported by Aaron T. Myers and fixed by Aaron T. Myers (name-node)<br>
     <b>Remove unused method DFSUtil#isDefaultNamenodeAddress</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3032">HDFS-3032</a>.
     Major bug reported by Kihwal Lee and fixed by Kihwal Lee (hdfs client)<br>
     <b>Lease renewer tries forever even if renewal is not possible</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3030">HDFS-3030</a>.
     Major improvement reported by Jitendra Nath Pandey and fixed by Jitendra Nath Pandey <br>
     <b>Remove getProtocolVersion and getProtocolSignature from translators</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3026">HDFS-3026</a>.
     Major bug reported by Aaron T. Myers and fixed by Aaron T. Myers (ha , name-node)<br>
     <b>HA: Handle failure during HA state transition</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3024">HDFS-3024</a>.
     Minor improvement reported by Todd Lipcon and fixed by Todd Lipcon (name-node)<br>
     <b>Improve performance of stringification in addStoredBlock</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3021">HDFS-3021</a>.
     Major improvement reported by Tsz Wo (Nicholas), SZE and fixed by Tsz Wo (Nicholas), SZE (data-node)<br>
     <b>Use generic type to declare FSDatasetInterface</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3020">HDFS-3020</a>.
     Critical bug reported by Todd Lipcon and fixed by Todd Lipcon (name-node)<br>
     <b>Auto-logSync based on edit log buffer size broken</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3014">HDFS-3014</a>.
     Major improvement reported by Sho Shimauchi and fixed by Sho Shimauchi (name-node)<br>
     <b>FSEditLogOp and its subclasses should have toString() method</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3005">HDFS-3005</a>.
     Major bug reported by Tsz Wo (Nicholas), SZE and fixed by Tsz Wo (Nicholas), SZE (data-node)<br>
     <b>ConcurrentModificationException in FSDataset$FSVolume.getDfsUsed(..)</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3004">HDFS-3004</a>.
     Major new feature reported by Colin Patrick McCabe and fixed by Colin Patrick McCabe (tools)<br>
     <b>Implement Recovery Mode</b><br>
     <blockquote>This is a new feature.  It is documented in hdfs_user_guide.xml.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3003">HDFS-3003</a>.
     Trivial improvement reported by Brandon Li and fixed by Brandon Li (name-node)<br>
     <b>Remove getHostPortString() from NameNode, replace it with NetUtils.getHostPortString()</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3000">HDFS-3000</a>.
     Major new feature reported by Aaron T. Myers and fixed by Aaron T. Myers (hdfs client)<br>
     <b>Add a public API for setting quotas</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2995">HDFS-2995</a>.
     Major bug reported by Todd Lipcon and fixed by Eli Collins (scripts)<br>
     <b>start-dfs.sh should only start the 2NN for namenodes with dfs.namenode.secondary.http-address configured</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2983">HDFS-2983</a>.
     Major improvement reported by Eli Collins and fixed by Aaron T. Myers <br>
     <b>Relax the build version check to permit rolling upgrades within a release</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2968">HDFS-2968</a>.
     Blocker bug reported by Todd Lipcon and fixed by Todd Lipcon (data-node , name-node)<br>
     <b>Protocol translator for BlockRecoveryCommand broken when multiple blocks need recovery</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2941">HDFS-2941</a>.
     Major new feature reported by Aaron T. Myers and fixed by Aaron T. Myers (hdfs client , name-node)<br>
     <b>Add an administrative command to download a copy of the fsimage from the NN</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2899">HDFS-2899</a>.
     Major sub-task reported by Suresh Srinivas and fixed by Suresh Srinivas <br>
     <b>Service protocol change to support multiple storages added in HDFS-2880</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2895">HDFS-2895</a>.
     Major improvement reported by Suresh Srinivas and fixed by Suresh Srinivas (data-node , name-node)<br>
     <b>Remove Writable wire protocol related code that is no longer necessary</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2880">HDFS-2880</a>.
     Major sub-task reported by Suresh Srinivas and fixed by Suresh Srinivas (data-node , name-node)<br>
     <b>Protocol buffer changes to add support multiple storages</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2878">HDFS-2878</a>.
     Blocker bug reported by Eli Collins and fixed by Todd Lipcon (test)<br>
     <b>TestBlockRecovery does not compile</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2815">HDFS-2815</a>.
     Critical bug reported by Uma Maheswara Rao G and fixed by Uma Maheswara Rao G (name-node)<br>
     <b>Namenode is not coming out of safemode when we perform ( NN crash + restart ) .  Also FSCK report shows blocks missed.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2801">HDFS-2801</a>.
     Major sub-task reported by Jitendra Nath Pandey and fixed by Jitendra Nath Pandey <br>
     <b>Provide a method in client side translators to check for a methods supported in underlying protocol.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2799">HDFS-2799</a>.
     Major bug reported by Eli Collins and fixed by amith (name-node)<br>
     <b>Trim fs.checkpoint.dir values</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2768">HDFS-2768</a>.
     Major bug reported by Uma Maheswara Rao G and fixed by Uma Maheswara Rao G (name-node)<br>
     <b>BackupNode stop can not close proxy connections because it is not a proxy instance.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2765">HDFS-2765</a>.
     Major bug reported by Aaron T. Myers and fixed by Aaron T. Myers (test)<br>
     <b>TestNameEditsConfigs is incorrectly swallowing IOE</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2739">HDFS-2739</a>.
     Critical bug reported by Sho Shimauchi and fixed by Jitendra Nath Pandey <br>
     <b>SecondaryNameNode doesn't start up</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2731">HDFS-2731</a>.
     Major new feature reported by Aaron T. Myers and fixed by Todd Lipcon (ha)<br>
     <b>HA: Autopopulate standby name dirs if they're empty</b><br>
     <blockquote>The HA NameNode may now be started with the "-bootstrapStandby" flag. This causes it to copy the namespace information and most recent checkpoint from its HA pair, and save it to local storage, allowing an HA setup to be bootstrapped without use of rsync or external tools.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2708">HDFS-2708</a>.
     Minor improvement reported by Eli Collins and fixed by Aaron T. Myers (data-node , name-node)<br>
     <b>Stats for the # of blocks per DN</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2700">HDFS-2700</a>.
     Major bug reported by Uma Maheswara Rao G and fixed by Uma Maheswara Rao G <br>
     <b>TestDataNodeMultipleRegistrations is failing in trunk</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2697">HDFS-2697</a>.
     Major sub-task reported by Suresh Srinivas and fixed by Jitendra Nath Pandey <br>
     <b>Move RefreshAuthPolicy, RefreshUserMappings, GetUserMappings protocol to protocol buffers</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2696">HDFS-2696</a>.
     Major bug reported by Petru Dimulescu and fixed by Bruno Mah&#233; (build , fuse-dfs)<br>
     <b>Fix the fuse-fds build</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2694">HDFS-2694</a>.
     Major bug reported by Aaron T. Myers and fixed by Aaron T. Myers (name-node)<br>
     <b>Removal of Avro broke non-PB NN services</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2687">HDFS-2687</a>.
     Major sub-task reported by Uma Maheswara Rao G and fixed by Suresh Srinivas (test)<br>
     <b>Tests are failing with ClassCastException, due to new protocol changes </b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2676">HDFS-2676</a>.
     Major bug reported by Suresh Srinivas and fixed by Suresh Srinivas <br>
     <b>Remove Avro RPC</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2669">HDFS-2669</a>.
     Major sub-task reported by Sanjay Radia and fixed by Sanjay Radia <br>
     <b>Enable protobuf rpc for ClientNamenodeProtocol</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2666">HDFS-2666</a>.
     Major sub-task reported by Suresh Srinivas and fixed by Suresh Srinivas (test)<br>
     <b>TestBackupNode fails</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2663">HDFS-2663</a>.
     Major sub-task reported by Suresh Srinivas and fixed by Suresh Srinivas <br>
     <b>Optional parameters are not handled correctly</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2661">HDFS-2661</a>.
     Major sub-task reported by Jitendra Nath Pandey and fixed by Jitendra Nath Pandey <br>
     <b>Enable protobuf RPC for DatanodeProtocol</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2651">HDFS-2651</a>.
     Major sub-task reported by Sanjay Radia and fixed by Sanjay Radia <br>
     <b>ClientNameNodeProtocol Translators for Protocol Buffers</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2650">HDFS-2650</a>.
     Minor improvement reported by Hari Mankude and fixed by Hari Mankude <br>
     <b>Replace @inheritDoc with @Override </b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2647">HDFS-2647</a>.
     Major sub-task reported by Suresh Srinivas and fixed by Suresh Srinivas (balancer , data-node , hdfs client , name-node)<br>
     <b>Enable protobuf RPC for InterDatanodeProtocol, ClientDatanodeProtocol, JournalProtocol and NamenodeProtocol</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2642">HDFS-2642</a>.
     Major sub-task reported by Jitendra Nath Pandey and fixed by Jitendra Nath Pandey <br>
     <b>Protobuf translators for DatanodeProtocol</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2636">HDFS-2636</a>.
     Major sub-task reported by Suresh Srinivas and fixed by Suresh Srinivas <br>
     <b>Implement protobuf service for ClientDatanodeProtocol</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2629">HDFS-2629</a>.
     Major sub-task reported by Suresh Srinivas and fixed by Suresh Srinivas (data-node)<br>
     <b>Implement protobuf service for InterDatanodeProtocol</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2618">HDFS-2618</a>.
     Major sub-task reported by Suresh Srinivas and fixed by Suresh Srinivas (name-node)<br>
     <b>Implement protobuf service for NamenodeProtocol</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2597">HDFS-2597</a>.
     Major sub-task reported by Sanjay Radia and fixed by Sanjay Radia <br>
     <b> ClientNameNodeProtocol in Protocol Buffers</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2581">HDFS-2581</a>.
     Major sub-task reported by Suresh Srinivas and fixed by Suresh Srinivas (name-node)<br>
     <b>Implement protobuf service for JournalProtocol</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2532">HDFS-2532</a>.
     Critical bug reported by Todd Lipcon and fixed by Uma Maheswara Rao G (test)<br>
     <b>TestDfsOverAvroRpc timing out in trunk</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2526">HDFS-2526</a>.
     Major bug reported by Aaron T. Myers and fixed by Aaron T. Myers (hdfs client , name-node)<br>
     <b>(Client)NamenodeProtocolTranslatorR23 do not need to keep a reference to rpcProxyWithoutRetry</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2520">HDFS-2520</a>.
     Major sub-task reported by Suresh Srinivas and fixed by Suresh Srinivas (data-node)<br>
     <b>Protobuf - Add protobuf service for InterDatanodeProtocol</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2519">HDFS-2519</a>.
     Major sub-task reported by Suresh Srinivas and fixed by Suresh Srinivas (data-node , name-node)<br>
     <b>Protobuf - Add protobuf service for DatanodeProtocol</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2518">HDFS-2518</a>.
     Major sub-task reported by Suresh Srinivas and fixed by Suresh Srinivas (name-node)<br>
     <b>Protobuf - Add protobuf service for NamenodeProtocol</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2517">HDFS-2517</a>.
     Major sub-task reported by Suresh Srinivas and fixed by Suresh Srinivas (name-node)<br>
     <b>Protobuf - Add protocol service for JournalProtocol</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2507">HDFS-2507</a>.
     Major improvement reported by Todd Lipcon and fixed by Todd Lipcon (name-node)<br>
     <b>HA: Allow saveNamespace operations to be canceled</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2505">HDFS-2505</a>.
     Minor test reported by Ravi Prakash and fixed by Ravi Prakash (test)<br>
     <b>Add a test to verify getFileChecksum works with ViewFS</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2499">HDFS-2499</a>.
     Major sub-task reported by Suresh Srinivas and fixed by Suresh Srinivas (name-node)<br>
     <b>Fix RPC client creation bug from HDFS-2459</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2497">HDFS-2497</a>.
     Major bug reported by Suresh Srinivas and fixed by Suresh Srinivas <br>
     <b>Fix TestBackupNode failure</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2496">HDFS-2496</a>.
     Major improvement reported by Suresh Srinivas and fixed by Suresh Srinivas <br>
     <b>Separate datatypes for DatanodeProtocol</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2495">HDFS-2495</a>.
     Major sub-task reported by Tomasz Nykiel and fixed by Tomasz Nykiel (name-node)<br>
     <b>Increase granularity of write operations in ReplicationMonitor thus reducing contention for write lock</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2489">HDFS-2489</a>.
     Major sub-task reported by Suresh Srinivas and fixed by Suresh Srinivas <br>
     <b>Move commands Finalize and Register out of DatanodeCommand class.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2488">HDFS-2488</a>.
     Major sub-task reported by Suresh Srinivas and fixed by Suresh Srinivas (data-node)<br>
     <b>Separate datatypes for InterDatanodeProtocol</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2481">HDFS-2481</a>.
     Major bug reported by Tsz Wo (Nicholas), SZE and fixed by Sanjay Radia <br>
     <b>Unknown protocol: org.apache.hadoop.hdfs.protocol.ClientProtocol</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2480">HDFS-2480</a>.
     Major sub-task reported by Suresh Srinivas and fixed by Suresh Srinivas <br>
     <b>Separate datatypes for NamenodeProtocol</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2479">HDFS-2479</a>.
     Major sub-task reported by Sanjay Radia and fixed by Sanjay Radia <br>
     <b>HDFS Client Data Types in Protocol Buffers</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2477">HDFS-2477</a>.
     Major sub-task reported by Tomasz Nykiel and fixed by Tomasz Nykiel (name-node)<br>
     <b>Optimize computing the diff between a block report and the namenode state.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2476">HDFS-2476</a>.
     Major sub-task reported by Tomasz Nykiel and fixed by Tomasz Nykiel (name-node)<br>
     <b>More CPU efficient data structure for under-replicated/over-replicated/invalidate blocks</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2459">HDFS-2459</a>.
     Major sub-task reported by Suresh Srinivas and fixed by Suresh Srinivas <br>
     <b>Separate datatypes for Journal protocol</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2430">HDFS-2430</a>.
     Major new feature reported by Aaron T. Myers and fixed by Aaron T. Myers (name-node)<br>
     <b>The number of failed or low-resource volumes the NN can tolerate should be configurable</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2413">HDFS-2413</a>.
     Major improvement reported by Todd Lipcon and fixed by Harsh J (hdfs client)<br>
     <b>Add public APIs for safemode</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2410">HDFS-2410</a>.
     Minor improvement reported by Suresh Srinivas and fixed by Suresh Srinivas (data-node , name-node , test)<br>
     <b>Further clean up hard-coded configuration keys</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2351">HDFS-2351</a>.
     Major improvement reported by Sanjay Radia and fixed by Sanjay Radia <br>
     <b>Change Namenode and Datanode to register each of their protocols seperately </b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2337">HDFS-2337</a>.
     Major improvement reported by Aaron T. Myers and fixed by Aaron T. Myers (hdfs client)<br>
     <b>DFSClient shouldn't keep multiple RPC proxy references</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2334">HDFS-2334</a>.
     Major sub-task reported by Ivan Kelly and fixed by Ivan Kelly (name-node)<br>
     <b>Add Closeable to JournalManager</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2303">HDFS-2303</a>.
     Major improvement reported by Roman Shaposhnik and fixed by Mingjie Lai (build , scripts)<br>
     <b>Unbundle jsvc</b><br>
     <blockquote>To run secure Datanodes users must install jsvc for their platform and set JSVC_HOME to point to the location of jsvc in their environment.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2223">HDFS-2223</a>.
     Major improvement reported by Todd Lipcon and fixed by Todd Lipcon (name-node)<br>
     <b>Untangle depencencies between NN components</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2181">HDFS-2181</a>.
     Major sub-task reported by Sanjay Radia and fixed by Sanjay Radia <br>
     <b>Separate HDFS Client wire protocol data types</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2158">HDFS-2158</a>.
     Major sub-task reported by Jitendra Nath Pandey and fixed by Jitendra Nath Pandey <br>
     <b>Add JournalSet to manage the set of journals.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2038">HDFS-2038</a>.
     Critical test reported by Daryn Sharp and fixed by Kihwal Lee (test)<br>
     <b>Update test to handle relative paths with globs</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2018">HDFS-2018</a>.
     Major sub-task reported by Ivan Kelly and fixed by Ivan Kelly <br>
     <b>1073: Move all journal stream management code into one place</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1765">HDFS-1765</a>.
     Major bug reported by Hairong Kuang and fixed by Uma Maheswara Rao G (name-node)<br>
     <b>Block Replication should respect under-replication block priority</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1623">HDFS-1623</a>.
     Major new feature reported by Sanjay Radia and fixed by  <br>
     <b>High Availability Framework for HDFS NN</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1580">HDFS-1580</a>.
     Major improvement reported by Ivan Kelly and fixed by Jitendra Nath Pandey (name-node)<br>
     <b>Add interface for generic Write Ahead Logging mechanisms</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-891">HDFS-891</a>.
     Minor bug reported by Steve Loughran and fixed by Harsh J (data-node)<br>
     <b>DataNode no longer needs to check for dfs.network.script</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-860">HDFS-860</a>.
     Minor wish reported by Brian Bockelman and fixed by Brian Bockelman (fuse-dfs)<br>
     <b>fuse-dfs truncate behavior causes issues with scp</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-395">HDFS-395</a>.
     Major sub-task reported by dhruba borthakur and fixed by Tomasz Nykiel (data-node , name-node)<br>
     <b>DFS Scalability: Incremental block reports</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-309">HDFS-309</a>.
     Major improvement reported by Todd Lipcon and fixed by Sho Shimauchi <br>
     <b>FSEditLog should log progress during replay</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-234">HDFS-234</a>.
     Major new feature reported by Luca Telloli and fixed by Ivan Kelly <br>
     <b>Integration with BookKeeper logging system</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-208">HDFS-208</a>.
     Minor improvement reported by Allen Wittenauer and fixed by Uma Maheswara Rao G (name-node)<br>
     <b>name node should warn if only one dir is listed in dfs.name.dir</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8619">HADOOP-8619</a>.
     Major improvement reported by Radim Kolar and fixed by Chris Douglas (io)<br>
     <b>WritableComparator must implement no-arg constructor</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8398">HADOOP-8398</a>.
     Minor improvement reported by Eli Collins and fixed by Eli Collins <br>
     <b>Cleanup BlockLocation</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8388">HADOOP-8388</a>.
     Minor improvement reported by Colin Patrick McCabe and fixed by Colin Patrick McCabe <br>
     <b>Remove unused BlockLocation serialization</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8366">HADOOP-8366</a>.
     Blocker improvement reported by Sanjay Radia and fixed by Sanjay Radia <br>
     <b>Use ProtoBuf for RpcResponseHeader</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8359">HADOOP-8359</a>.
     Trivial task reported by Harsh J and fixed by Anupam Seth (conf)<br>
     <b>Clear up javadoc warnings in hadoop-common-project</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8356">HADOOP-8356</a>.
     Major improvement reported by Alejandro Abdelnur and fixed by Alejandro Abdelnur (fs)<br>
     <b>FileSystem service loading mechanism should print the FileSystem impl it is failing to load</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8355">HADOOP-8355</a>.
     Minor bug reported by Alejandro Abdelnur and fixed by Alejandro Abdelnur (security)<br>
     <b>SPNEGO filter throws/logs exception when authentication fails</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8353">HADOOP-8353</a>.
     Major improvement reported by Roman Shaposhnik and fixed by Roman Shaposhnik (scripts)<br>
     <b>hadoop-daemon.sh and yarn-daemon.sh can be misleading on stop</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8350">HADOOP-8350</a>.
     Major improvement reported by Todd Lipcon and fixed by Todd Lipcon (util)<br>
     <b>Improve NetUtils.getInputStream to return a stream which has a tunable timeout</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8349">HADOOP-8349</a>.
     Major bug reported by Aaron T. Myers and fixed by Aaron T. Myers (viewfs)<br>
     <b>ViewFS doesn't work when the root of a file system is mounted</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8347">HADOOP-8347</a>.
     Major bug reported by Philip Zeyliger and fixed by Philip Zeyliger (security)<br>
     <b>Hadoop Common logs misspell 'successful'</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8343">HADOOP-8343</a>.
     Major new feature reported by Philip Zeyliger and fixed by Alejandro Abdelnur (util)<br>
     <b>Allow configuration of authorization for JmxJsonServlet and MetricsServlet</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8314">HADOOP-8314</a>.
     Major bug reported by Alejandro Abdelnur and fixed by Alejandro Abdelnur (security)<br>
     <b>HttpServer#hasAdminAccess should return false if authorization is enabled but user is not authenticated</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8310">HADOOP-8310</a>.
     Major bug reported by Aaron T. Myers and fixed by Aaron T. Myers (fs)<br>
     <b>FileContext#checkPath should handle URIs with no port</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8309">HADOOP-8309</a>.
     Major bug reported by Alejandro Abdelnur and fixed by Alejandro Abdelnur (security)<br>
     <b>Pseudo &amp; Kerberos AuthenticationHandler should use getType() to create token</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8296">HADOOP-8296</a>.
     Minor bug reported by Thomas Graves and fixed by Devaraj K <br>
     <b>hadoop/yarn daemonlog usage wrong </b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8285">HADOOP-8285</a>.
     Major improvement reported by Sanjay Radia and fixed by Sanjay Radia (ipc)<br>
     <b>Use ProtoBuf for RpcPayLoadHeader</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8282">HADOOP-8282</a>.
     Minor bug reported by Devaraj K and fixed by Devaraj K (scripts)<br>
     <b>start-all.sh refers incorrectly start-dfs.sh existence for starting start-yarn.sh</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8280">HADOOP-8280</a>.
     Major improvement reported by Ahmed Radwan and fixed by Ahmed Radwan (test , util)<br>
     <b> Move VersionUtil/TestVersionUtil and GenericTestUtils from HDFS into Common.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8275">HADOOP-8275</a>.
     Minor bug reported by Colin Patrick McCabe and fixed by Colin Patrick McCabe <br>
     <b>Range check DelegationKey length </b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8270">HADOOP-8270</a>.
     Minor bug reported by Roman Shaposhnik and fixed by Roman Shaposhnik (scripts)<br>
     <b>hadoop-daemon.sh stop action should return 0 for an already stopped service </b><br>
     <blockquote>The daemon stop action no longer returns failure when stopping an already stopped service.  </blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8264">HADOOP-8264</a>.
     Trivial bug reported by Bernd Fondermann and fixed by Bernd Fondermann <br>
     <b>Remove irritating double double quotes in front of hostname </b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8263">HADOOP-8263</a>.
     Minor bug reported by Todd Lipcon and fixed by Todd Lipcon (ipc)<br>
     <b>Stringification of IPC calls not useful</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8261">HADOOP-8261</a>.
     Major bug reported by Aaron T. Myers and fixed by Aaron T. Myers (fs)<br>
     <b>Har file system doesn't deal with FS URIs with a host but no port</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8251">HADOOP-8251</a>.
     Blocker bug reported by Todd Lipcon and fixed by Todd Lipcon (security)<br>
     <b>SecurityUtil.fetchServiceTicket broken after HADOOP-6941</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8243">HADOOP-8243</a>.
     Critical bug reported by Todd Lipcon and fixed by Todd Lipcon (ha , security)<br>
     <b>Security support broken in CLI (manual) failover controller</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8238">HADOOP-8238</a>.
     Major bug reported by Eli Collins and fixed by Eli Collins <br>
     <b>NetUtils#getHostNameOfIP blows up if given ip:port string w/o port</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8236">HADOOP-8236</a>.
     Major improvement reported by Philip Zeyliger and fixed by Todd Lipcon (ha)<br>
     <b>haadmin should have configurable timeouts for failover commands</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8218">HADOOP-8218</a>.
     Critical bug reported by Todd Lipcon and fixed by Todd Lipcon (ipc , test)<br>
     <b>RPC.closeProxy shouldn't throw error when closing a mock</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8214">HADOOP-8214</a>.
     Major improvement reported by Roman Shaposhnik and fixed by Roman Shaposhnik (scripts)<br>
     <b>make hadoop script recognize a full set of deprecated commands</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8211">HADOOP-8211</a>.
     Major sub-task reported by Eli Collins and fixed by Eli Collins (io , performance)<br>
     <b>Update commons-net version to 3.1</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8210">HADOOP-8210</a>.
     Major sub-task reported by Eli Collins and fixed by Eli Collins (io , performance)<br>
     <b>Common side of HDFS-3148</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8206">HADOOP-8206</a>.
     Major new feature reported by Todd Lipcon and fixed by Todd Lipcon (ha)<br>
     <b>Common portion of ZK-based failover controller</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8204">HADOOP-8204</a>.
     Major bug reported by Tom White and fixed by Todd Lipcon <br>
     <b>TestHealthMonitor fails occasionally </b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8202">HADOOP-8202</a>.
     Minor bug reported by Hari Mankude and fixed by Hari Mankude (ipc)<br>
     <b>stopproxy() is not closing the proxies correctly</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8200">HADOOP-8200</a>.
     Minor improvement reported by Eli Collins and fixed by Eli Collins (conf)<br>
     <b>Remove HADOOP_[JOBTRACKER|TASKTRACKER]_OPTS </b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8199">HADOOP-8199</a>.
     Major bug reported by Nishan Shetty and fixed by Devaraj K <br>
     <b>Fix issues in start-all.sh and stop-all.sh</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8193">HADOOP-8193</a>.
     Major improvement reported by Todd Lipcon and fixed by Todd Lipcon (ha)<br>
     <b>Refactor FailoverController/HAAdmin code to add an abstract class for "target" services</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8191">HADOOP-8191</a>.
     Major bug reported by Philip Zeyliger and fixed by Todd Lipcon (ha)<br>
     <b>SshFenceByTcpPort uses netcat incorrectly</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8189">HADOOP-8189</a>.
     Major bug reported by Jonathan Natkins and fixed by Jonathan Natkins (security)<br>
     <b>LdapGroupsMapping shouldn't throw away IOException</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8185">HADOOP-8185</a>.
     Major improvement reported by Arpit Gupta and fixed by Arpit Gupta (documentation)<br>
     <b>Update namenode -format documentation and add -nonInteractive and -force</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8184">HADOOP-8184</a>.
     Major improvement reported by Sanjay Radia and fixed by Sanjay Radia (ipc)<br>
     <b>ProtoBuf RPC engine does not need it own reply packet - it can use the IPC layer reply packet.</b><br>
     <blockquote>This change will affect the output of errors for some Hadoop CLI commands. Specifically, the name of the exception class will no longer appear, and instead only the text of the exception message will appear.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8183">HADOOP-8183</a>.
     Minor improvement reported by Harsh J and fixed by Harsh J (util)<br>
     <b>Stop using "mapred.used.genericoptionsparser" to avoid unnecessary warnings</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8169">HADOOP-8169</a>.
     Critical bug reported by Thomas Graves and fixed by Thomas Graves (build)<br>
     <b>javadoc generation fails with java.lang.OutOfMemoryError: Java heap space</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8164">HADOOP-8164</a>.
     Major sub-task reported by Suresh Srinivas and fixed by Daryn Sharp (fs)<br>
     <b>Handle paths using back slash as path separator for windows only</b><br>
     <blockquote>This jira only allows providing paths using back slash as separator on Windows. The back slash on *nix system will be used as escape character. The support for paths using back slash as path separator will be removed in HADOOP-8139 in release 23.3.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8163">HADOOP-8163</a>.
     Major improvement reported by Todd Lipcon and fixed by Todd Lipcon (ha)<br>
     <b>Improve ActiveStandbyElector to provide hooks for fencing old active</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8159">HADOOP-8159</a>.
     Major bug reported by Colin Patrick McCabe and fixed by Colin Patrick McCabe <br>
     <b>NetworkTopology: getLeaf should check for invalid topologies</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8154">HADOOP-8154</a>.
     Major bug reported by Eli Collins and fixed by Eli Collins (conf)<br>
     <b>DNS#getIPs shouldn't silently return the local host IP for bogus interface names</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8152">HADOOP-8152</a>.
     Major improvement reported by Aaron T. Myers and fixed by Aaron T. Myers (security)<br>
     <b>Expand public APIs for security library classes</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8149">HADOOP-8149</a>.
     Major improvement reported by Patrick Hunt and fixed by Patrick Hunt (conf)<br>
     <b>cap space usage of default log4j rolling policy </b><br>
     <blockquote>Hadoop log files are now rolled by size instead of date (daily) by default. Tools that depend on the log file name format will need to be updated. Users who would like to maintain the previous settings of hadoop.root.logger and hadoop.security.logger can use their current log4j.properties files and update the HADOOP_ROOT_LOGGER and HADOOP_SECURITY_LOGGER environment variables to use DRFA and DRFAS respectively.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8142">HADOOP-8142</a>.
     Major task reported by Tsz Wo (Nicholas), SZE and fixed by Tsz Wo (Nicholas), SZE (build)<br>
     <b>Update versions from 0.23.2 to 0.23.3</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8141">HADOOP-8141</a>.
     Trivial improvement reported by Todd Lipcon and fixed by Todd Lipcon (security)<br>
     <b>Add method to init krb5 cipher suites</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8121">HADOOP-8121</a>.
     Major new feature reported by Jonathan Natkins and fixed by Jonathan Natkins (security)<br>
     <b>Active Directory Group Mapping Service</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8119">HADOOP-8119</a>.
     Minor bug reported by Tsz Wo (Nicholas), SZE and fixed by Tsz Wo (Nicholas), SZE (test)<br>
     <b>Fix javac warnings in TestAuthenticationFilter</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8118">HADOOP-8118</a>.
     Minor improvement reported by Tsz Wo (Nicholas), SZE and fixed by Tsz Wo (Nicholas), SZE (metrics)<br>
     <b>Print the stack trace of InstanceAlreadyExistsException in trace level</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8117">HADOOP-8117</a>.
     Trivial improvement reported by Todd Lipcon and fixed by Todd Lipcon (build , test)<br>
     <b>Upgrade test build to Surefire 2.12</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8113">HADOOP-8113</a>.
     Trivial improvement reported by Eugene Koontz and fixed by Eugene Koontz (documentation)<br>
     <b>Correction to BUILDING.txt: HDFS needs ProtocolBuffer, too (not just MapReduce)</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8098">HADOOP-8098</a>.
     Major improvement reported by Alejandro Abdelnur and fixed by Alejandro Abdelnur (security)<br>
     <b>KerberosAuthenticatorHandler should use _HOST replacement to resolve principal name</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8086">HADOOP-8086</a>.
     Minor improvement reported by Alejandro Abdelnur and fixed by Alejandro Abdelnur (security)<br>
     <b>KerberosName silently sets defaultRealm to "" if the Kerberos config is not found, it should log a WARN</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8084">HADOOP-8084</a>.
     Major improvement reported by Devaraj Das and fixed by Devaraj Das (ipc)<br>
     <b>Protobuf RPC engine can be optimized to not do copying for the RPC request/response</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8077">HADOOP-8077</a>.
     Major improvement reported by Todd Lipcon and fixed by Todd Lipcon (ha)<br>
     <b>HA: fencing method should be able to be configured on a per-NN or per-NS basis</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8070">HADOOP-8070</a>.
     Major improvement reported by Todd Lipcon and fixed by Todd Lipcon (benchmarks , ipc)<br>
     <b>Add standalone benchmark of protobuf IPC</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8007">HADOOP-8007</a>.
     Major improvement reported by Aaron T. Myers and fixed by Todd Lipcon (ha)<br>
     <b>HA: use substitution token for fencing argument</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7994">HADOOP-7994</a>.
     Major sub-task reported by Jitendra Nath Pandey and fixed by Jitendra Nath Pandey <br>
     <b>Remove getProtocolVersion and getProtocolSignature from the client side translator and server side implementation</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7968">HADOOP-7968</a>.
     Minor bug reported by Todd Lipcon and fixed by Sho Shimauchi (ipc)<br>
     <b>Errant println left in RPC.getHighestSupportedProtocol</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7965">HADOOP-7965</a>.
     Major sub-task reported by Jitendra Nath Pandey and fixed by Jitendra Nath Pandey (ipc)<br>
     <b>Support for protocol version and signature in PB</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7957">HADOOP-7957</a>.
     Major improvement reported by Jitendra Nath Pandey and fixed by Jitendra Nath Pandey <br>
     <b>Classes deriving GetGroupsBase should be able to override proxy creation.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7940">HADOOP-7940</a>.
     Major bug reported by Aaron, and fixed by Csaba Miklos (io)<br>
     <b>method clear() in org.apache.hadoop.io.Text does not work</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7931">HADOOP-7931</a>.
     Major bug reported by Aaron T. Myers and fixed by Aaron T. Myers (ipc)<br>
     <b>o.a.h.ipc.WritableRpcEngine should have a way to force initialization</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7920">HADOOP-7920</a>.
     Major bug reported by Suresh Srinivas and fixed by Suresh Srinivas (ipc)<br>
     <b>Remove Avro RPC</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7913">HADOOP-7913</a>.
     Major sub-task reported by Sanjay Radia and fixed by Sanjay Radia (ipc)<br>
     <b>Fix bug in ProtoBufRpcEngine - </b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7900">HADOOP-7900</a>.
     Major bug reported by Ravi Gummadi and fixed by Ravi Gummadi (fs)<br>
     <b>LocalDirAllocator confChanged() accesses conf.get() twice</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7899">HADOOP-7899</a>.
     Major improvement reported by Alejandro Abdelnur and fixed by Alejandro Abdelnur (build)<br>
     <b>Generate proto java files as part of the build</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7897">HADOOP-7897</a>.
     Major bug reported by Suresh Srinivas and fixed by Suresh Srinivas (ipc)<br>
     <b>ProtobufRPCEngine client side exception mechanism is not consistent with WritableRpcEngine</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7892">HADOOP-7892</a>.
     Trivial bug reported by Todd Lipcon and fixed by Todd Lipcon (ipc)<br>
     <b>IPC logs too verbose after "RpcKind" introduction</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7888">HADOOP-7888</a>.
     Major bug reported by Jason Lowe and fixed by Jason Lowe (test)<br>
     <b>TestFailoverProxy fails intermittently on trunk</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7876">HADOOP-7876</a>.
     Major new feature reported by Suresh Srinivas and fixed by Suresh Srinivas (ipc)<br>
     <b>Allow access to BlockKey/DelegationKey endoded key for RPC over protobuf</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7875">HADOOP-7875</a>.
     Major improvement reported by Suresh Srinivas and fixed by Suresh Srinivas (ipc)<br>
     <b>Add helper class to unwrap RemoteException from ServiceException thrown on protobuf based RPC</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7862">HADOOP-7862</a>.
     Major sub-task reported by Sanjay Radia and fixed by Sanjay Radia (ipc)<br>
     <b>Move the support for multiple protocols to lower layer so that Writable, PB and Avro can all use it</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7833">HADOOP-7833</a>.
     Major bug reported by John Lee and fixed by John Lee (ipc)<br>
     <b>Inner classes of org.apache.hadoop.ipc.protobuf.HadoopRpcProtos generates findbugs warnings which results in -1 for findbugs</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7806">HADOOP-7806</a>.
     Major new feature reported by Harsh J and fixed by Harsh J (util)<br>
     <b>Support binding to sub-interfaces</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7788">HADOOP-7788</a>.
     Major new feature reported by Todd Lipcon and fixed by Todd Lipcon (ha)<br>
     <b>HA: Simple HealthMonitor class to watch an HAService</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7776">HADOOP-7776</a>.
     Major sub-task reported by Sanjay Radia and fixed by Sanjay Radia (ipc)<br>
     <b>Make the Ipc-Header in a RPC-Payload an explicit header</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7773">HADOOP-7773</a>.
     Major sub-task reported by Suresh Srinivas and fixed by Suresh Srinivas (ipc)<br>
     <b>Add support for protocol buffer based RPC engine</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7729">HADOOP-7729</a>.
     Major improvement reported by Todd Lipcon and fixed by Todd Lipcon (ipc)<br>
     <b>Send back valid HTTP response if user hits IPC port with HTTP GET</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7717">HADOOP-7717</a>.
     Major improvement reported by Aaron T. Myers and fixed by Aaron T. Myers (ipc)<br>
     <b>Move handling of concurrent client fail-overs to RetryInvocationHandler</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7716">HADOOP-7716</a>.
     Minor improvement reported by Sanjay Radia and fixed by Sanjay Radia <br>
     <b>RPC protocol registration on SS does not log the protocol name (only the class which may be different)</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7695">HADOOP-7695</a>.
     Major bug reported by Aaron T. Myers and fixed by Aaron T. Myers (ipc)<br>
     <b>RPC.stopProxy can throw unintended exception while logging error</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7693">HADOOP-7693</a>.
     Major improvement reported by Doug Cutting and fixed by Doug Cutting (ipc)<br>
     <b>fix RPC.Server#addProtocol to work in AvroRpcEngine</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7687">HADOOP-7687</a>.
     Minor improvement reported by Sanjay Radia and fixed by Sanjay Radia <br>
     <b>Make getProtocolSignature public </b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7635">HADOOP-7635</a>.
     Major improvement reported by Aaron T. Myers and fixed by Aaron T. Myers (ipc)<br>
     <b>RetryInvocationHandler should release underlying resources on close</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7621">HADOOP-7621</a>.
     Critical bug reported by Alejandro Abdelnur and fixed by Aaron T. Myers (security)<br>
     <b>alfredo config should be in a file not readable by users</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7607">HADOOP-7607</a>.
     Major improvement reported by Aaron T. Myers and fixed by Aaron T. Myers (ipc)<br>
     <b>Simplify the RPC proxy cleanup process</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7557">HADOOP-7557</a>.
     Major sub-task reported by Sanjay Radia and fixed by Sanjay Radia <br>
     <b>Make  IPC  header be extensible</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7549">HADOOP-7549</a>.
     Major improvement reported by Alejandro Abdelnur and fixed by Alejandro Abdelnur (fs)<br>
     <b>Use JDK ServiceLoader mechanism to find FileSystem implementations</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7524">HADOOP-7524</a>.
     Major sub-task reported by Sanjay Radia and fixed by Sanjay Radia (ipc)<br>
     <b>Change RPC to allow multiple protocols including multiple versions of the same protocol</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7454">HADOOP-7454</a>.
     Major new feature reported by Aaron T. Myers and fixed by  <br>
     <b>Common side of High Availability Framework (HDFS-1623)</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7358">HADOOP-7358</a>.
     Minor improvement reported by Todd Lipcon and fixed by Todd Lipcon (ipc)<br>
     <b>Improve log levels when exceptions caught in RPC handler</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7350">HADOOP-7350</a>.
     Major improvement reported by Tom White and fixed by Tom White (conf , io)<br>
     <b>Use ServiceLoader to discover compression codec classes</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7069">HADOOP-7069</a>.
     Major improvement reported by Jakob Homan and fixed by  (documentation)<br>
     <b>Replace forrest with supported framework</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7030">HADOOP-7030</a>.
     Major new feature reported by Patrick Angeles and fixed by Tom White <br>
     <b>Add TableMapping topology implementation to read host to rack mapping from a file</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-6941">HADOOP-6941</a>.
     Major bug reported by Stephen Watt and fixed by Devaraj Das <br>
     <b>Support non-SUN JREs in UserGroupInformation</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-6924">HADOOP-6924</a>.
     Major bug reported by Stephen Watt and fixed by Devaraj Das <br>
     <b>Build fails with non-Sun JREs due to different pathing to the operating system architecture shared libraries</b><br>
     <blockquote></blockquote></li>
</ul>
</body></html>
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Hadoop  0.23.2 Release Notes</title>
<STYLE type="text/css">
	H1 {font-family: sans-serif}
	H2 {font-family: sans-serif; margin-left: 7mm}
	TABLE {margin-left: 7mm}
</STYLE>
</head>
<body>
<h1>Hadoop  0.23.2 Release Notes</h1>
These release notes include new developer and user-facing incompatibilities, features, and major improvements. 
<a name="changes"/>
<h2>Changes since Hadoop 0.23.1</h2>
<ul>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4043">MAPREDUCE-4043</a>.
     Blocker bug reported by Jason Lowe and fixed by Jason Lowe (mrv2 , security)<br>
     <b>Secret keys set in Credentials are not seen by tasks</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4034">MAPREDUCE-4034</a>.
     Blocker bug reported by Jason Lowe and fixed by Jason Lowe (mrv2)<br>
     <b>Unable to view task logs on history server with mapreduce.job.acl-view-job=*</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4025">MAPREDUCE-4025</a>.
     Blocker bug reported by Jason Lowe and fixed by Jason Lowe (mr-am , mrv2)<br>
     <b>AM can crash if task attempt reports bogus progress value</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4006">MAPREDUCE-4006</a>.
     Major bug reported by Jason Lowe and fixed by Siddharth Seth (jobhistoryserver , mrv2)<br>
     <b>history server container log web UI sometimes combines stderr/stdout/syslog contents together</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4005">MAPREDUCE-4005</a>.
     Major bug reported by Jason Lowe and fixed by Jason Lowe (mrv2)<br>
     <b>AM container logs URL is broken for completed apps when log aggregation is enabled</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3982">MAPREDUCE-3982</a>.
     Critical bug reported by Robert Joseph Evans and fixed by Robert Joseph Evans (mrv2)<br>
     <b>TestEmptyJob fails with FileNotFound</b><br>
     <blockquote>Fixed FileOutputCommitter to not err out for an 'empty-job' whose tasks don't write any outputs.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3977">MAPREDUCE-3977</a>.
     Critical bug reported by Jason Lowe and fixed by Jason Lowe (mrv2 , nodemanager)<br>
     <b>LogAggregationService leaks log aggregator objects</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3976">MAPREDUCE-3976</a>.
     Major bug reported by Bikas Saha and fixed by Jason Lowe (mrv2)<br>
     <b>TestRMContainerAllocator failing</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3975">MAPREDUCE-3975</a>.
     Blocker bug reported by Eric Payne and fixed by Eric Payne (mrv2)<br>
     <b>Default value not set for Configuration parameter mapreduce.job.local.dir</b><br>
     <blockquote>Exporting mapreduce.job.local.dir for mapreduce tasks to use as job-level shared scratch space.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3964">MAPREDUCE-3964</a>.
     Critical bug reported by Jason Lowe and fixed by Jason Lowe (mrv2 , resourcemanager)<br>
     <b>ResourceManager does not have JVM metrics</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3961">MAPREDUCE-3961</a>.
     Major bug reported by Siddharth Seth and fixed by Siddharth Seth (mrv2)<br>
     <b>Map/ReduceSlotMillis computation incorrect</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3960">MAPREDUCE-3960</a>.
     Critical bug reported by Thomas Graves and fixed by Thomas Graves (mrv2)<br>
     <b>web proxy doesn't forward request to AM with configured hostname/IP</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3954">MAPREDUCE-3954</a>.
     Blocker bug reported by Robert Joseph Evans and fixed by Robert Joseph Evans (mrv2)<br>
     <b>Clean up passing HEAPSIZE to yarn and mapred commands.</b><br>
     <blockquote>Added new envs to separate heap size for different daemons started via bin scripts.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3944">MAPREDUCE-3944</a>.
     Blocker sub-task reported by Robert Joseph Evans and fixed by Robert Joseph Evans (mrv2)<br>
     <b>JobHistory web services are slower then the UI and can easly overload the JH</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3931">MAPREDUCE-3931</a>.
     Major bug reported by Vinod Kumar Vavilapalli and fixed by Siddharth Seth (mrv2)<br>
     <b>MR tasks failing due to changing timestamps on Resources to download</b><br>
     <blockquote>Changed PB implementation of LocalResource to take locks so that race conditions don't fail tasks by inadvertantly changing the timestamps.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3930">MAPREDUCE-3930</a>.
     Critical bug reported by Robert Joseph Evans and fixed by Robert Joseph Evans (mrv2)<br>
     <b>The AM page for a Reducer that has not been launched causes an NPE</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3929">MAPREDUCE-3929</a>.
     Major bug reported by John George and fixed by John George (mrv2)<br>
     <b>output of mapred -showacl is not clear</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3922">MAPREDUCE-3922</a>.
     Minor improvement reported by Eugene Koontz and fixed by Hitesh Shah (build , mrv2)<br>
     <b>Fix the potential problem compiling 32 bit binaries on a x86_64 host.</b><br>
     <blockquote>Fixed build to not compile 32bit container-executor binary by default on all platforms.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3920">MAPREDUCE-3920</a>.
     Major bug reported by Dave Thompson and fixed by Dave Thompson (nodemanager , resourcemanager)<br>
     <b>Revise yarn default port number selection</b><br>
     <blockquote>port number changes for resourcemanager and nodemanager</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3918">MAPREDUCE-3918</a>.
     Major bug reported by Jonathan Eagles and fixed by Jonathan Eagles (mrv2)<br>
     <b>proc_historyserver no longer in command line arguments for HistoryServer</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3913">MAPREDUCE-3913</a>.
     Critical bug reported by Jason Lowe and fixed by Jason Lowe (mrv2 , webapps)<br>
     <b>RM application webpage is unresponsive after 2000 jobs</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3910">MAPREDUCE-3910</a>.
     Blocker bug reported by John George and fixed by John George (mrv2)<br>
     <b>user not allowed to submit jobs even though queue -showacls shows it allows</b><br>
     <blockquote>Fixed a bug in CapacityScheduler LeafQueue which was causing app-submission to fail.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3904">MAPREDUCE-3904</a>.
     Major bug reported by Jonathan Eagles and fixed by Jonathan Eagles (mrv2)<br>
     <b>[NPE] Job history produced with mapreduce.cluster.acls.enabled false can not be viewed with mapreduce.cluster.acls.enabled true</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3903">MAPREDUCE-3903</a>.
     Critical bug reported by Thomas Graves and fixed by Thomas Graves (mrv2)<br>
     <b>no admin override to view jobs on mr app master and job history server</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3901">MAPREDUCE-3901</a>.
     Major improvement reported by Siddharth Seth and fixed by Siddharth Seth (jobhistoryserver , mrv2)<br>
     <b>lazy load JobHistory Task and TaskAttempt details</b><br>
     <blockquote>Modified JobHistory records in YARN to lazily load job and task reports so as to improve UI response times.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3897">MAPREDUCE-3897</a>.
     Critical bug reported by Thomas Graves and fixed by Eric Payne (mrv2)<br>
     <b>capacity scheduler - maxActiveApplicationsPerUser calculation can be wrong</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3896">MAPREDUCE-3896</a>.
     Blocker bug reported by John George and fixed by Vinod Kumar Vavilapalli (jobhistoryserver , mrv2)<br>
     <b>pig job through oozie hangs </b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3884">MAPREDUCE-3884</a>.
     Critical bug reported by Alejandro Abdelnur and fixed by Alejandro Abdelnur (mrv2)<br>
     <b>PWD should be first in the classpath of MR tasks</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3878">MAPREDUCE-3878</a>.
     Critical bug reported by Jonathan Eagles and fixed by Jonathan Eagles (mrv2)<br>
     <b>Null user on filtered jobhistory job page</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3877">MAPREDUCE-3877</a>.
     Minor test reported by Steve Loughran and fixed by Steve Loughran (mrv2)<br>
     <b>Add a test to formalise the current state transitions of the yarn lifecycle</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3866">MAPREDUCE-3866</a>.
     Minor bug reported by Vinod Kumar Vavilapalli and fixed by Vinod Kumar Vavilapalli (mrv2)<br>
     <b>bin/yarn prints the command line unnecessarily</b><br>
     <blockquote>Fixed the bin/yarn script to not print the command line unnecessarily.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3864">MAPREDUCE-3864</a>.
     Minor improvement reported by Todd Lipcon and fixed by Todd Lipcon (documentation , security)<br>
     <b>Fix cluster setup docs for correct SNN HTTPS parameters</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3862">MAPREDUCE-3862</a>.
     Major bug reported by Jason Lowe and fixed by Jason Lowe (mrv2 , nodemanager)<br>
     <b>Nodemanager can appear to hang on shutdown due to lingering DeletionService threads</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3852">MAPREDUCE-3852</a>.
     Blocker bug reported by Thomas Graves and fixed by Thomas Graves (mrv2)<br>
     <b>test TestLinuxResourceCalculatorPlugin failing</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3849">MAPREDUCE-3849</a>.
     Major improvement reported by Daryn Sharp and fixed by Daryn Sharp (security)<br>
     <b>Change TokenCache's reading of the binary token file</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3816">MAPREDUCE-3816</a>.
     Critical bug reported by Thomas Graves and fixed by Thomas Graves (mrv2)<br>
     <b>capacity scheduler web ui bar graphs for used capacity wrong</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3798">MAPREDUCE-3798</a>.
     Major test reported by Ravi Prakash and fixed by Ravi Prakash (test)<br>
     <b>TestJobCleanup testCustomCleanup is failing</b><br>
     <blockquote>Fixed failing TestJobCleanup.testCusomCleanup() and moved it to the maven build.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3792">MAPREDUCE-3792</a>.
     Critical bug reported by Ramya Sunil and fixed by Jason Lowe (mrv2)<br>
     <b>job -list displays only the jobs submitted by a particular user</b><br>
     <blockquote>Fix "bin/mapred job -list" to display all jobs instead of only the jobs owned by the user. </blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3790">MAPREDUCE-3790</a>.
     Major bug reported by Jason Lowe and fixed by Jason Lowe (contrib/streaming , mrv2)<br>
     <b>Broken pipe on streaming job can lead to truncated output for a successful job</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3738">MAPREDUCE-3738</a>.
     Critical bug reported by Jason Lowe and fixed by Jason Lowe (mrv2 , nodemanager)<br>
     <b>NM can hang during shutdown if AppLogAggregatorImpl thread dies unexpectedly</b><br>
     <blockquote>Committed to trunk and branch-0.23. Thanks Jason.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3730">MAPREDUCE-3730</a>.
     Minor improvement reported by Jason Lowe and fixed by Jason Lowe (mrv2 , resourcemanager)<br>
     <b>Allow restarted NM to rejoin cluster before RM expires it</b><br>
     <blockquote>Modified RM to allow restarted NMs to be able to join the cluster without waiting for expiry.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3706">MAPREDUCE-3706</a>.
     Critical bug reported by Thomas Graves and fixed by Robert Joseph Evans (mrv2)<br>
     <b>HTTP Circular redirect error on the job attempts page</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3687">MAPREDUCE-3687</a>.
     Major bug reported by David Capwell and fixed by Ravi Prakash (mrv2)<br>
     <b>If AM dies before it returns new tracking URL, proxy redirects to http://N/A/ and doesn't return error code</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3686">MAPREDUCE-3686</a>.
     Critical bug reported by Thomas Graves and fixed by Bhallamudi Venkata Siva Kamesh (mrv2)<br>
     <b>history server web ui - job counter values for map/reduce not shown properly</b><br>
     <blockquote>Fixed two bugs in Counters because of which web app displays zero counter values for framework counters.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3680">MAPREDUCE-3680</a>.
     Major bug reported by Thomas Graves and fixed by  (mrv2)<br>
     <b>FifoScheduler web service rest API can print out invalid JSON</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3634">MAPREDUCE-3634</a>.
     Major bug reported by Vinod Kumar Vavilapalli and fixed by Vinod Kumar Vavilapalli (mrv2)<br>
     <b>All daemons should crash instead of hanging around when their EventHandlers get exceptions</b><br>
     <blockquote>Fixed all daemons to crash instead of hanging around when their EventHandlers get exceptions.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3614">MAPREDUCE-3614</a>.
     Major bug reported by Ravi Prakash and fixed by Ravi Prakash (mrv2)<br>
     <b> finalState UNDEFINED if AM is killed by hand</b><br>
     <blockquote>Fixed MR AM to close history file quickly and send a correct final state to the RM when it is killed.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3583">MAPREDUCE-3583</a>.
     Critical bug reported by Ted Yu and fixed by Ted Yu <br>
     <b>ProcfsBasedProcessTree#constructProcessInfo() may throw NumberFormatException</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3497">MAPREDUCE-3497</a>.
     Major bug reported by Thomas Graves and fixed by Thomas Graves (documentation , mrv2)<br>
     <b>missing documentation for yarn cli and subcommands - similar to commands_manual.html</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3034">MAPREDUCE-3034</a>.
     Critical bug reported by Vinod Kumar Vavilapalli and fixed by Devaraj K (mrv2 , nodemanager)<br>
     <b>NM should act on a REBOOT command from RM</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3009">MAPREDUCE-3009</a>.
     Major bug reported by chackaravarthy and fixed by chackaravarthy (jobhistoryserver , mrv2)<br>
     <b>RM UI -&gt; Applications -&gt; Application(Job History) -&gt; Map Tasks -&gt; Task ID -&gt; Node link is not working</b><br>
     <blockquote>Fixed node link on JobHistory webapp.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2855">MAPREDUCE-2855</a>.
     Major bug reported by Todd Lipcon and fixed by Siddharth Seth <br>
     <b>ResourceBundle lookup during counter name resolution takes a lot of time</b><br>
     <blockquote>Passing a cached class-loader to ResourceBundle creator to minimize counter names lookup time.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2793">MAPREDUCE-2793</a>.
     Critical bug reported by Ramya Sunil and fixed by Bikas Saha (mrv2)<br>
     <b>[MR-279] Maintain consistency in naming appIDs, jobIDs and attemptIDs </b><br>
     <blockquote>Corrected AppIDs, JobIDs, TaskAttemptIDs to be of correct format on the web pages.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3853">HDFS-3853</a>.
     Minor bug reported by Colin Patrick McCabe and fixed by Colin Patrick McCabe (name-node)<br>
     <b>Port MiniDFSCluster enableManagedDfsDirsRedundancy option to branch-2</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3104">HDFS-3104</a>.
     Major test reported by Daryn Sharp and fixed by Daryn Sharp (test)<br>
     <b>Add tests for mkdir -p</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3101">HDFS-3101</a>.
     Major bug reported by Zhanwei.Wang and fixed by Tsz Wo (Nicholas), SZE (webhdfs)<br>
     <b>cannot read empty file using webhdfs</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3098">HDFS-3098</a>.
     Major test reported by Daryn Sharp and fixed by Daryn Sharp (test)<br>
     <b>Update FsShell tests for quoted metachars</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3060">HDFS-3060</a>.
     Minor test reported by Eli Collins and fixed by Eli Collins (test)<br>
     <b>Bump TestDistributedUpgrade#testDistributedUpgrade timeout</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3012">HDFS-3012</a>.
     Critical bug reported by Ramya Sunil and fixed by Robert Joseph Evans <br>
     <b>Exception while renewing delegation token</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3008">HDFS-3008</a>.
     Major bug reported by Eli Collins and fixed by Eli Collins (hdfs client)<br>
     <b>Negative caching of local addrs doesn't work</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3006">HDFS-3006</a>.
     Major bug reported by bc Wong and fixed by Tsz Wo (Nicholas), SZE (webhdfs)<br>
     <b>Webhdfs "SETOWNER" call returns incorrect content-type</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2985">HDFS-2985</a>.
     Minor improvement reported by Todd Lipcon and fixed by Todd Lipcon (name-node)<br>
     <b>Improve logging when replicas are marked as corrupt</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2981">HDFS-2981</a>.
     Major improvement reported by Tsz Wo (Nicholas), SZE and fixed by Tsz Wo (Nicholas), SZE <br>
     <b>The default value of dfs.client.block.write.replace-datanode-on-failure.enable should be true</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2969">HDFS-2969</a>.
     Critical bug reported by Todd Lipcon and fixed by Todd Lipcon (data-node)<br>
     <b>ExtendedBlock.equals is incorrectly implemented</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2950">HDFS-2950</a>.
     Minor bug reported by Todd Lipcon and fixed by Todd Lipcon (name-node)<br>
     <b>Secondary NN HTTPS address should be listed as a NAMESERVICE_SPECIFIC_KEY</b><br>
     <blockquote>The configuration dfs.secondary.https.port has been renamed to dfs.namenode.secondary.https-port for consistency. The old configuration is still supported via a deprecation path.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2944">HDFS-2944</a>.
     Major bug reported by Aaron T. Myers and fixed by Aaron T. Myers (hdfs client)<br>
     <b>Typo in hdfs-default.xml causes dfs.client.block.write.replace-datanode-on-failure.enable to be mistakenly disabled</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2943">HDFS-2943</a>.
     Major new feature reported by Aaron T. Myers and fixed by Aaron T. Myers (name-node)<br>
     <b>Expose last checkpoint time and transaction stats as JMX metrics</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2938">HDFS-2938</a>.
     Major bug reported by Suresh Srinivas and fixed by Hari Mankude (name-node)<br>
     <b>Recursive delete of a large directory makes namenode unresponsive</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2931">HDFS-2931</a>.
     Minor task reported by Harsh J and fixed by Harsh J (data-node)<br>
     <b>Switch the DataNode's BlockVolumeChoosingPolicy to be a private-audience interface</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2907">HDFS-2907</a>.
     Minor improvement reported by Sanjay Radia and fixed by Tsz Wo (Nicholas), SZE <br>
     <b>Make FSDataset in Datanode Pluggable</b><br>
     <blockquote>Add a private conf property dfs.datanode.fsdataset.factory to make FSDataset in Datanode pluggable.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2887">HDFS-2887</a>.
     Major sub-task reported by Tsz Wo (Nicholas), SZE and fixed by Tsz Wo (Nicholas), SZE (data-node)<br>
     <b>Define a FSVolume interface</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2764">HDFS-2764</a>.
     Major bug reported by Aaron T. Myers and fixed by Aaron T. Myers (name-node , test)<br>
     <b>TestBackupNode is racy</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2725">HDFS-2725</a>.
     Major bug reported by Prashant Sharma and fixed by  (hdfs client)<br>
     <b>hdfs script usage information is missing the information about "dfs" command</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2506">HDFS-2506</a>.
     Major improvement reported by Suresh Srinivas and fixed by Suresh Srinivas (data-node , name-node)<br>
     <b>Umbrella jira for tracking separation of wire protocol datatypes from the implementation types</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1217">HDFS-1217</a>.
     Major improvement reported by Tsz Wo (Nicholas), SZE and fixed by Laxman (name-node)<br>
     <b>Some methods in the NameNdoe should not be public</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-776">HDFS-776</a>.
     Critical bug reported by Owen O'Malley and fixed by Uma Maheswara Rao G (balancer)<br>
     <b>Fix exception handling in Balancer</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8176">HADOOP-8176</a>.
     Major bug reported by Daryn Sharp and fixed by Daryn Sharp (fs)<br>
     <b>Disambiguate the destination of FsShell copies</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8175">HADOOP-8175</a>.
     Major sub-task reported by Daryn Sharp and fixed by Daryn Sharp (fs)<br>
     <b>Add mkdir -p flag</b><br>
     <blockquote>FsShell mkdir now accepts a -p flag.  Like unix, mkdir -p will not fail if the directory already exists.  Unlike unix, intermediate directories are always created, regardless of the flag, to avoid incompatibilities at this time.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8173">HADOOP-8173</a>.
     Major sub-task reported by Daryn Sharp and fixed by Daryn Sharp (fs)<br>
     <b>FsShell needs to handle quoted metachars</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8157">HADOOP-8157</a>.
     Major test reported by Eli Collins and fixed by Todd Lipcon <br>
     <b>TestRPCCallBenchmark#testBenchmarkWithWritable fails with RTE</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8146">HADOOP-8146</a>.
     Major bug reported by Daryn Sharp and fixed by Daryn Sharp (fs)<br>
     <b>FsShell commands cannot be interrupted</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8140">HADOOP-8140</a>.
     Major bug reported by arkady borkovsky and fixed by Daryn Sharp <br>
     <b>dfs -getmerge  should process its argments better </b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8137">HADOOP-8137</a>.
     Major bug reported by Vinod Kumar Vavilapalli and fixed by Thomas Graves (documentation)<br>
     <b>Site side links for commands manual (MAPREDUCE-3497)</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8131">HADOOP-8131</a>.
     Critical bug reported by Daryn Sharp and fixed by Daryn Sharp <br>
     <b>FsShell put doesn't correctly handle a non-existent dir</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8123">HADOOP-8123</a>.
     Critical bug reported by Jonathan Eagles and fixed by Jonathan Eagles (build)<br>
     <b>hadoop-project invalid pom warnings prevent transitive dependency resolution</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8083">HADOOP-8083</a>.
     Major bug reported by Alejandro Abdelnur and fixed by Alejandro Abdelnur (build)<br>
     <b>javadoc generation for some modules is not done under target/</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8082">HADOOP-8082</a>.
     Major bug reported by Alejandro Abdelnur and fixed by Alejandro Abdelnur (build)<br>
     <b>add hadoop-client and hadoop-minicluster to the dependency-management section</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8074">HADOOP-8074</a>.
     Trivial bug reported by Eli Collins and fixed by Colin Patrick McCabe (scripts)<br>
     <b>Small bug in hadoop error message for unknown commands</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8071">HADOOP-8071</a>.
     Minor improvement reported by Todd Lipcon and fixed by Todd Lipcon (ipc)<br>
     <b>Avoid an extra packet in client code when nagling is disabled</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8066">HADOOP-8066</a>.
     Major bug reported by Aaron T. Myers and fixed by Andrew Bayer (build)<br>
     <b>The full docs build intermittently fails</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8064">HADOOP-8064</a>.
     Major bug reported by Kihwal Lee and fixed by Kihwal Lee (build)<br>
     <b>Remove unnecessary dependency on w3c.org in document processing</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8057">HADOOP-8057</a>.
     Major bug reported by Vinay and fixed by Vinay (scripts)<br>
     <b>hadoop-setup-conf.sh not working because of some extra spaces.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8051">HADOOP-8051</a>.
     Major bug reported by Alejandro Abdelnur and fixed by Alejandro Abdelnur (documentation)<br>
     <b>HttpFS documentation it is not wired to the generated site</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8050">HADOOP-8050</a>.
     Major bug reported by Kihwal Lee and fixed by Kihwal Lee (metrics)<br>
     <b>Deadlock in metrics</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8048">HADOOP-8048</a>.
     Major improvement reported by Daryn Sharp and fixed by Daryn Sharp (util)<br>
     <b>Allow merging of Credentials</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8046">HADOOP-8046</a>.
     Minor bug reported by Steve Loughran and fixed by Steve Loughran <br>
     <b>Revert StaticMapping semantics to the existing ones, add DNS mapping diagnostics in progress</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8042">HADOOP-8042</a>.
     Critical bug reported by Kevin J. Price and fixed by Daryn Sharp (fs)<br>
     <b>When copying a file out of HDFS, modifying it, and uploading it back into HDFS, the put fails due to a CRC mismatch</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8036">HADOOP-8036</a>.
     Major bug reported by Eli Collins and fixed by Colin Patrick McCabe (fs , test)<br>
     <b>TestViewFsTrash assumes the user's home directory is 2 levels deep</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8035">HADOOP-8035</a>.
     Minor bug reported by Andrew Bayer and fixed by Andrew Bayer (build)<br>
     <b>Hadoop Maven site is inefficient and runs phases redundantly</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8032">HADOOP-8032</a>.
     Major wish reported by Ravi Prakash and fixed by Ravi Prakash (build , documentation)<br>
     <b>mvn site:stage-deploy should be able to use the scp protocol to stage documents</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-6502">HADOOP-6502</a>.
     Critical bug reported by Hairong Kuang and fixed by Sharad Agarwal (util)<br>
     <b>DistributedFileSystem#listStatus is very slow when listing a directory with a size of 1300</b><br>
     <blockquote></blockquote></li>
</ul>
</body></html>
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Hadoop  0.23.1 Release Notes</title>
<STYLE type="text/css">
	H1 {font-family: sans-serif}
	H2 {font-family: sans-serif; margin-left: 7mm}
	TABLE {margin-left: 7mm}
</STYLE>
</head>
<body>
<h1>Hadoop  0.23.1 Release Notes</h1>
These release notes include new developer and user-facing incompatibilities, features, and major improvements. 
<a name="changes"/>
<h2>Changes since Hadoop 0.23.0</h2>
<ul>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3858">MAPREDUCE-3858</a>.
     Critical bug reported by Tom White and fixed by Tom White (mrv2)<br>
     <b>Task attempt failure during commit results in task never completing</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3856">MAPREDUCE-3856</a>.
     Critical bug reported by Eric Payne and fixed by Eric Payne (mrv2)<br>
     <b>Instances of RunningJob class givs incorrect job tracking urls when mutiple jobs are submitted from same client jvm.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3854">MAPREDUCE-3854</a>.
     Major test reported by Tom White and fixed by Tom White (mrv2)<br>
     <b>Reinstate environment variable tests in TestMiniMRChildTask</b><br>
     <blockquote>Fixed and reenabled tests related to MR child JVM's environmental variables in TestMiniMRChildTask.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3846">MAPREDUCE-3846</a>.
     Critical sub-task reported by Vinod Kumar Vavilapalli and fixed by Vinod Kumar Vavilapalli (mrv2)<br>
     <b>Restarted+Recovered AM hangs in some corner cases</b><br>
     <blockquote>Addressed MR AM hanging issues during AM restart and then the recovery.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3843">MAPREDUCE-3843</a>.
     Critical bug reported by Anupam Seth and fixed by Anupam Seth (jobhistoryserver , mrv2)<br>
     <b>Job summary log file found missing on the RM host</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3840">MAPREDUCE-3840</a>.
     Blocker bug reported by Ravi Prakash and fixed by Ravi Prakash (mrv2)<br>
     <b>JobEndNotifier doesn't use the proxyToUse during connecting</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3834">MAPREDUCE-3834</a>.
     Critical bug reported by Siddharth Seth and fixed by Siddharth Seth (mr-am , mrv2)<br>
     <b>If multiple hosts for a split belong to the same rack, the rack is added multiple times in the AM request table</b><br>
     <blockquote>Changed MR AM to not add the same rack entry multiple times into the container request table when multiple hosts for a split happen to be on the same rack</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3833">MAPREDUCE-3833</a>.
     Major bug reported by Jason Lowe and fixed by Jason Lowe (mrv2)<br>
     <b>Capacity scheduler queue refresh doesn't recompute queue capacities properly</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3828">MAPREDUCE-3828</a>.
     Major bug reported by Ahmed Radwan and fixed by Siddharth Seth (mrv2)<br>
     <b>Broken urls: AM tracking url and jobhistory url in a single node setup.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3827">MAPREDUCE-3827</a>.
     Blocker sub-task reported by Vinod Kumar Vavilapalli and fixed by Vinod Kumar Vavilapalli (mrv2 , performance)<br>
     <b>Counters aggregation slowed down significantly after MAPREDUCE-3749</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3826">MAPREDUCE-3826</a>.
     Major bug reported by Arpit Gupta and fixed by Jonathan Eagles (mrv2)<br>
     <b>RM UI when loaded throws a message stating Data Tables warning and then the column sorting stops working</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3823">MAPREDUCE-3823</a>.
     Major sub-task reported by Vinod Kumar Vavilapalli and fixed by Vinod Kumar Vavilapalli (mrv2 , performance)<br>
     <b>Counters are getting calculated twice at job-finish and delaying clients.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3822">MAPREDUCE-3822</a>.
     Critical bug reported by Mahadev konar and fixed by Mahadev konar (mrv2)<br>
     <b>TestJobCounters is failing intermittently on trunk and 0.23.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3817">MAPREDUCE-3817</a>.
     Major bug reported by Arpit Gupta and fixed by Arpit Gupta (mrv2)<br>
     <b>bin/mapred command cannot run distcp and archive jobs</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3815">MAPREDUCE-3815</a>.
     Critical sub-task reported by Siddharth Seth and fixed by Siddharth Seth (mrv2)<br>
     <b>Data Locality suffers if the AM asks for containers using IPs instead of hostnames</b><br>
     <blockquote>Fixed MR AM to always use hostnames and never IPs when requesting containers so that scheduler can give off data local containers correctly.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3814">MAPREDUCE-3814</a>.
     Major bug reported by Arun C Murthy and fixed by Arun C Murthy (mrv1 , mrv2)<br>
     <b>MR1 compile fails</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3813">MAPREDUCE-3813</a>.
     Major sub-task reported by Vinod Kumar Vavilapalli and fixed by Vinod Kumar Vavilapalli (mrv2 , performance)<br>
     <b>RackResolver should maintain a cache to avoid repetitive lookups.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3811">MAPREDUCE-3811</a>.
     Critical task reported by Siddharth Seth and fixed by Siddharth Seth (mrv2)<br>
     <b>Make the Client-AM IPC retry count configurable</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3810">MAPREDUCE-3810</a>.
     Blocker sub-task reported by Vinod Kumar Vavilapalli and fixed by Vinod Kumar Vavilapalli (mrv2 , performance)<br>
     <b>MR AM's ContainerAllocator is assigning the allocated containers very slowly</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3809">MAPREDUCE-3809</a>.
     Blocker sub-task reported by Siddharth Seth and fixed by Siddharth Seth (mrv2)<br>
     <b>Tasks may take upto 3 seconds to exit after completion</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3808">MAPREDUCE-3808</a>.
     Blocker bug reported by Siddharth Seth and fixed by Robert Joseph Evans (mrv2)<br>
     <b>NPE in FileOutputCommitter when running a 0 reduce job</b><br>
     <blockquote>Fixed an NPE in FileOutputCommitter for jobs with maps but no reduces.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3804">MAPREDUCE-3804</a>.
     Major bug reported by Dave Thompson and fixed by Dave Thompson (jobhistoryserver , mrv2 , resourcemanager)<br>
     <b>yarn webapp interface vulnerable to cross scripting attacks</b><br>
     <blockquote>fix cross scripting attacks vulnerability through webapp interface.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3803">MAPREDUCE-3803</a>.
     Major test reported by Ravi Prakash and fixed by Ravi Prakash (build)<br>
     <b>HDFS-2864 broke ant compilation</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3802">MAPREDUCE-3802</a>.
     Critical sub-task reported by Robert Joseph Evans and fixed by Vinod Kumar Vavilapalli (applicationmaster , mrv2)<br>
     <b>If an MR AM dies twice  it looks like the process freezes</b><br>
     <blockquote>Added test to validate that AM can crash multiple times and still can recover successfully after MAPREDUCE-3846.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3795">MAPREDUCE-3795</a>.
     Major bug reported by Vinod Kumar Vavilapalli and fixed by Vinod Kumar Vavilapalli (mrv2)<br>
     <b>"job -status" command line output is malformed</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3794">MAPREDUCE-3794</a>.
     Major bug reported by Tom White and fixed by Tom White (mrv2)<br>
     <b>Support mapred.Task.Counter and mapred.JobInProgress.Counter enums for compatibility</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3791">MAPREDUCE-3791</a>.
     Major bug reported by Roman Shaposhnik and fixed by Mahadev konar (documentation , mrv2)<br>
     <b>can't build site in hadoop-yarn-server-common</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3787">MAPREDUCE-3787</a>.
     Major improvement reported by Amar Kamat and fixed by Amar Kamat (contrib/gridmix)<br>
     <b>[Gridmix] Improve STRESS mode</b><br>
     <blockquote>JobMonitor can now deploy multiple threads for faster job-status polling. Use 'gridmix.job-monitor.thread-count' to set the number of threads. Stress mode now relies on the updates from the job monitor instead of polling for job status. Failures in job submission now get reported to the statistics module and ultimately reported to the user via summary.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3784">MAPREDUCE-3784</a>.
     Major bug reported by Ramya Sunil and fixed by Arun C Murthy (mrv2)<br>
     <b>maxActiveApplications(|PerUser) per queue is too low for small clusters</b><br>
     <blockquote>Fixed CapacityScheduler so that maxActiveApplication and maxActiveApplicationsPerUser per queue are not too low for small clusters. </blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3780">MAPREDUCE-3780</a>.
     Blocker bug reported by Ramya Sunil and fixed by Hitesh Shah (mrv2)<br>
     <b>RM assigns containers to killed applications</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3775">MAPREDUCE-3775</a>.
     Minor bug reported by Hitesh Shah and fixed by Hitesh Shah (mrv2)<br>
     <b>Change MiniYarnCluster to escape special chars in testname</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3774">MAPREDUCE-3774</a>.
     Major bug reported by Mahadev konar and fixed by Mahadev konar (mrv2)<br>
     <b>yarn-default.xml should be moved to hadoop-yarn-common.</b><br>
     <blockquote>MAPREDUCE-3774. Moved yarn-default.xml to hadoop-yarn-common from hadoop-server-common.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3771">MAPREDUCE-3771</a>.
     Major improvement reported by Arun C Murthy and fixed by Arun C Murthy <br>
     <b>Port MAPREDUCE-1735 to trunk/0.23</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3770">MAPREDUCE-3770</a>.
     Critical bug reported by Amar Kamat and fixed by Amar Kamat (tools/rumen)<br>
     <b>[Rumen] Zombie.getJobConf() results into NPE</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3765">MAPREDUCE-3765</a>.
     Minor bug reported by Hitesh Shah and fixed by Hitesh Shah (mrv2)<br>
     <b>FifoScheduler does not respect yarn.scheduler.fifo.minimum-allocation-mb setting</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3764">MAPREDUCE-3764</a>.
     Critical bug reported by Siddharth Seth and fixed by Arun C Murthy (mrv2)<br>
     <b>AllocatedGB etc metrics incorrect if min-allocation-mb isn't a multiple of 1GB</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3762">MAPREDUCE-3762</a>.
     Critical bug reported by Mahadev konar and fixed by Mahadev konar (mrv2)<br>
     <b>Resource Manager fails to come up with default capacity scheduler configs.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3760">MAPREDUCE-3760</a>.
     Major bug reported by Ramya Sunil and fixed by Vinod Kumar Vavilapalli (mrv2)<br>
     <b>Blacklisted NMs should not appear in Active nodes list</b><br>
     <blockquote>Changed active nodes list to not contain unhealthy nodes on the webUI and metrics.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3759">MAPREDUCE-3759</a>.
     Major bug reported by Ramya Sunil and fixed by Vinod Kumar Vavilapalli (mrv2)<br>
     <b>ClassCastException thrown in -list-active-trackers when there are a few unhealthy nodes</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3756">MAPREDUCE-3756</a>.
     Major improvement reported by Arun C Murthy and fixed by Hitesh Shah (mrv2)<br>
     <b>Make single shuffle limit configurable</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3754">MAPREDUCE-3754</a>.
     Major bug reported by Vinod Kumar Vavilapalli and fixed by Vinod Kumar Vavilapalli (mrv2 , webapps)<br>
     <b>RM webapp should have pages filtered based on App-state</b><br>
     <blockquote>Modified RM UI to filter applications based on state of the applications.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3752">MAPREDUCE-3752</a>.
     Blocker bug reported by Arun C Murthy and fixed by Arun C Murthy (mrv2)<br>
     <b>Headroom should be capped by queue max-cap</b><br>
     <blockquote>Modified application limits to include queue max-capacities besides the usual user limits.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3749">MAPREDUCE-3749</a>.
     Blocker bug reported by Tom White and fixed by Tom White (mrv2)<br>
     <b>ConcurrentModificationException in counter groups</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3748">MAPREDUCE-3748</a>.
     Minor bug reported by Ramya Sunil and fixed by Ramya Sunil (mrv2)<br>
     <b>Move CS related nodeUpdate log messages to DEBUG</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3747">MAPREDUCE-3747</a>.
     Major bug reported by Ramya Sunil and fixed by Arun C Murthy (mrv2)<br>
     <b>Memory Total is not refreshed until an app is launched</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3744">MAPREDUCE-3744</a>.
     Blocker bug reported by Jason Lowe and fixed by Jason Lowe (mrv2)<br>
     <b>Unable to retrieve application logs via "yarn logs" or "mapred job -logs"</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3742">MAPREDUCE-3742</a>.
     Blocker bug reported by Jason Lowe and fixed by Jason Lowe (mrv2)<br>
     <b>"yarn logs" command fails with ClassNotFoundException</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3737">MAPREDUCE-3737</a>.
     Critical bug reported by Robert Joseph Evans and fixed by Robert Joseph Evans (mrv2)<br>
     <b>The Web Application Proxy's is not documented very well</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3735">MAPREDUCE-3735</a>.
     Blocker bug reported by Mahadev konar and fixed by Mahadev konar (mrv2)<br>
     <b>Add distcp jar to the distribution (tar)</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3733">MAPREDUCE-3733</a>.
     Major bug reported by Mahadev konar and fixed by Mahadev konar <br>
     <b>Add Apache License Header to hadoop-distcp/pom.xml</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3732">MAPREDUCE-3732</a>.
     Blocker bug reported by Arun C Murthy and fixed by Arun C Murthy (mrv2 , resourcemanager , scheduler)<br>
     <b>CS should only use 'activeUsers with pending requests' for computing user-limits</b><br>
     <blockquote>Modified CapacityScheduler to use only users with pending requests for computing user-limits.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3727">MAPREDUCE-3727</a>.
     Critical bug reported by Alejandro Abdelnur and fixed by Alejandro Abdelnur (security)<br>
     <b>jobtoken location property in jobconf refers to wrong jobtoken file</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3723">MAPREDUCE-3723</a>.
     Major bug reported by Bhallamudi Venkata Siva Kamesh and fixed by Bhallamudi Venkata Siva Kamesh (mrv2 , test , webapps)<br>
     <b>TestAMWebServicesJobs &amp; TestHSWebServicesJobs incorrectly asserting tests</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3721">MAPREDUCE-3721</a>.
     Blocker bug reported by Siddharth Seth and fixed by Siddharth Seth (mrv2)<br>
     <b>Race in shuffle can cause it to hang</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3720">MAPREDUCE-3720</a>.
     Major bug reported by Vinod Kumar Vavilapalli and fixed by Vinod Kumar Vavilapalli (client , mrv2)<br>
     <b>Command line listJobs should not visit each AM</b><br>
     <blockquote>Changed bin/mapred job -list to not print job-specific information not available at RM.

Very minor incompatibility in cmd-line output, inevitable due to MRv2 architecture.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3718">MAPREDUCE-3718</a>.
     Major sub-task reported by Vinod Kumar Vavilapalli and fixed by Hitesh Shah (mrv2 , performance)<br>
     <b>Default AM heartbeat interval should be one second</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3717">MAPREDUCE-3717</a>.
     Blocker bug reported by Mahadev konar and fixed by Mahadev konar (mrv2)<br>
     <b>JobClient test jar has missing files to run all the test programs.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3716">MAPREDUCE-3716</a>.
     Blocker bug reported by Jonathan Eagles and fixed by Jonathan Eagles (mrv2)<br>
     <b>java.io.File.createTempFile fails in map/reduce tasks</b><br>
     <blockquote>Fixing YARN+MR to allow MR jobs to be able to use java.io.File.createTempFile to create temporary files as part of their tasks.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3714">MAPREDUCE-3714</a>.
     Blocker bug reported by Vinod Kumar Vavilapalli and fixed by Vinod Kumar Vavilapalli (mrv2 , task)<br>
     <b>Reduce hangs in a corner case</b><br>
     <blockquote>Fixed EventFetcher and Fetcher threads to shut-down properly so that reducers don't hang in corner cases.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3713">MAPREDUCE-3713</a>.
     Blocker bug reported by Siddharth Seth and fixed by Arun C Murthy (mrv2 , resourcemanager)<br>
     <b>Incorrect headroom reported to jobs</b><br>
     <blockquote>Fixed the way head-room is allocated to applications by CapacityScheduler so that it deducts current-usage per user and not per-application.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3712">MAPREDUCE-3712</a>.
     Blocker bug reported by Ravi Prakash and fixed by Mahadev konar (mrv2)<br>
     <b>The mapreduce tar does not contain the hadoop-mapreduce-client-jobclient-tests.jar. </b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3711">MAPREDUCE-3711</a>.
     Blocker sub-task reported by Siddharth Seth and fixed by Robert Joseph Evans (mrv2)<br>
     <b>AppMaster recovery for Medium to large jobs take long time</b><br>
     <blockquote>Fixed MR AM recovery so that only single selected task output is recovered and thus reduce the unnecessarily bloated recovery time.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3710">MAPREDUCE-3710</a>.
     Major bug reported by Siddharth Seth and fixed by Siddharth Seth (mrv1 , mrv2)<br>
     <b>last split generated by FileInputFormat.getSplits may not have the best locality</b><br>
     <blockquote>Improved FileInputFormat to return better locality for the last split.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3709">MAPREDUCE-3709</a>.
     Major bug reported by Eli Collins and fixed by Hitesh Shah (mrv2 , test)<br>
     <b>TestDistributedShell is failing</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3708">MAPREDUCE-3708</a>.
     Major bug reported by Bhallamudi Venkata Siva Kamesh and fixed by Bhallamudi Venkata Siva Kamesh (mrv2)<br>
     <b>Metrics: Incorrect Apps Submitted Count</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3705">MAPREDUCE-3705</a>.
     Blocker bug reported by Thomas Graves and fixed by Thomas Graves (mrv2)<br>
     <b>ant build fails on 0.23 branch </b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3703">MAPREDUCE-3703</a>.
     Critical bug reported by Eric Payne and fixed by Eric Payne (mrv2 , resourcemanager)<br>
     <b>ResourceManager should provide node lists in JMX output</b><br>
     <blockquote>New JMX Bean in ResourceManager to provide list of live node managers:

Hadoop:service=ResourceManager,name=RMNMInfo LiveNodeManagers</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3702">MAPREDUCE-3702</a>.
     Critical bug reported by Thomas Graves and fixed by Thomas Graves (mrv2)<br>
     <b>internal server error trying access application master via proxy with filter enabled</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3701">MAPREDUCE-3701</a>.
     Major bug reported by Mahadev konar and fixed by Mahadev konar (mrv2)<br>
     <b>Delete HadoopYarnRPC from 0.23 branch.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3699">MAPREDUCE-3699</a>.
     Major bug reported by Vinod Kumar Vavilapalli and fixed by Hitesh Shah (mrv2)<br>
     <b>Default RPC handlers are very low for YARN servers</b><br>
     <blockquote>Increased RPC handlers for all YARN servers to reasonable values for working at scale.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3698">MAPREDUCE-3698</a>.
     Blocker sub-task reported by Siddharth Seth and fixed by Mahadev konar (mrv2)<br>
     <b>Client cannot talk to the history server in secure mode</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3697">MAPREDUCE-3697</a>.
     Blocker bug reported by John George and fixed by Mahadev konar (mrv2)<br>
     <b>Hadoop Counters API limits Oozie's working across different hadoop versions</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3696">MAPREDUCE-3696</a>.
     Blocker bug reported by John George and fixed by John George (mrv2)<br>
     <b>MR job via oozie does not work on hadoop 23</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3693">MAPREDUCE-3693</a>.
     Minor improvement reported by Roman Shaposhnik and fixed by Roman Shaposhnik (mrv2)<br>
     <b>Add admin env to mapred-default.xml</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3692">MAPREDUCE-3692</a>.
     Blocker improvement reported by Eli Collins and fixed by Eli Collins (mrv2)<br>
     <b>yarn-resourcemanager out and log files can get big</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3691">MAPREDUCE-3691</a>.
     Critical bug reported by Thomas Graves and fixed by Thomas Graves (mrv2)<br>
     <b>webservices add support to compress response</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3689">MAPREDUCE-3689</a>.
     Blocker bug reported by Thomas Graves and fixed by Thomas Graves (mrv2)<br>
     <b>RM web UI doesn't handle newline in job name</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3684">MAPREDUCE-3684</a>.
     Major bug reported by Tom White and fixed by Tom White (client)<br>
     <b>LocalDistributedCacheManager does not shut down its thread pool</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3683">MAPREDUCE-3683</a>.
     Blocker bug reported by Thomas Graves and fixed by Arun C Murthy (mrv2)<br>
     <b>Capacity scheduler LeafQueues maximum capacity calculation issues</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3681">MAPREDUCE-3681</a>.
     Critical bug reported by Thomas Graves and fixed by Arun C Murthy (mrv2)<br>
     <b>capacity scheduler LeafQueues calculate used capacity wrong</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3679">MAPREDUCE-3679</a>.
     Major improvement reported by Mahadev konar and fixed by Vinod Kumar Vavilapalli (mrv2)<br>
     <b>AM logs and others should not automatically refresh after every 1 second.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3669">MAPREDUCE-3669</a>.
     Blocker bug reported by Thomas Graves and fixed by Mahadev konar (mrv2)<br>
     <b>Getting a lot of PriviledgedActionException / SaslException when running a job</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3664">MAPREDUCE-3664</a>.
     Minor bug reported by praveen sripati and fixed by Brandon Li (documentation)<br>
     <b>HDFS Federation Documentation has incorrect configuration example</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3657">MAPREDUCE-3657</a>.
     Minor bug reported by Jason Lowe and fixed by Jason Lowe (build , mrv2)<br>
     <b>State machine visualize build fails</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3656">MAPREDUCE-3656</a>.
     Blocker bug reported by Karam Singh and fixed by Siddharth Seth (applicationmaster , mrv2 , resourcemanager)<br>
     <b>Sort job on 350 scale is consistently failing with latest MRV2 code </b><br>
     <blockquote>Fixed a race condition in MR AM which is failing the sort benchmark consistently.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3652">MAPREDUCE-3652</a>.
     Blocker bug reported by Thomas Graves and fixed by Thomas Graves (mrv2)<br>
     <b>org.apache.hadoop.mapred.TestWebUIAuthorization.testWebUIAuthorization fails</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3651">MAPREDUCE-3651</a>.
     Blocker bug reported by Thomas Graves and fixed by Thomas Graves (mrv2)<br>
     <b>TestQueueManagerRefresh fails</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3649">MAPREDUCE-3649</a>.
     Blocker bug reported by Mahadev konar and fixed by Ravi Prakash (mrv2)<br>
     <b>Job End notification gives an error on calling back.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3648">MAPREDUCE-3648</a>.
     Blocker bug reported by Thomas Graves and fixed by Thomas Graves (mrv2)<br>
     <b>TestJobConf failing</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3646">MAPREDUCE-3646</a>.
     Major bug reported by Ramya Sunil and fixed by Jonathan Eagles (client , mrv2)<br>
     <b>Remove redundant URL info from "mapred job" output</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3645">MAPREDUCE-3645</a>.
     Blocker bug reported by Thomas Graves and fixed by Thomas Graves (mrv1)<br>
     <b>TestJobHistory fails</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3641">MAPREDUCE-3641</a>.
     Blocker sub-task reported by Arun C Murthy and fixed by Arun C Murthy (mrv2 , scheduler)<br>
     <b>CapacityScheduler should be more conservative assigning off-switch requests</b><br>
     <blockquote>Making CapacityScheduler more conservative so as to assign only one off-switch container in a single scheduling iteration.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3640">MAPREDUCE-3640</a>.
     Blocker sub-task reported by Siddharth Seth and fixed by Arun C Murthy (mrv2)<br>
     <b>AMRecovery should pick completed task form partial JobHistory files</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3639">MAPREDUCE-3639</a>.
     Blocker bug reported by Siddharth Seth and fixed by Siddharth Seth (mrv2)<br>
     <b>TokenCache likely broken for FileSystems which don't issue delegation tokens</b><br>
     <blockquote>Fixed TokenCache to work with absent FileSystem canonical service-names.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3630">MAPREDUCE-3630</a>.
     Critical task reported by Amol Kekre and fixed by Mahadev konar (mrv2)<br>
     <b>NullPointerException running teragen</b><br>
     <blockquote>Committed to trunk and branch-0.23. Thanks Mahadev.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3625">MAPREDUCE-3625</a>.
     Critical bug reported by Arun C Murthy and fixed by Jason Lowe (mrv2)<br>
     <b>CapacityScheduler web-ui display of queue's used capacity is broken</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3624">MAPREDUCE-3624</a>.
     Major bug reported by Mahadev konar and fixed by Mahadev konar (mrv2)<br>
     <b>bin/yarn script adds jdk tools.jar to the classpath.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3618">MAPREDUCE-3618</a>.
     Major sub-task reported by Siddharth Seth and fixed by Siddharth Seth (mrv2 , performance)<br>
     <b>TaskHeartbeatHandler holds a global lock for all task-updates</b><br>
     <blockquote>Fixed TaskHeartbeatHandler to not hold a global lock for all task-updates.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3617">MAPREDUCE-3617</a>.
     Major bug reported by Jonathan Eagles and fixed by Jonathan Eagles (mrv2)<br>
     <b>Remove yarn default values for resource manager and nodemanager principal</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3616">MAPREDUCE-3616</a>.
     Major sub-task reported by Vinod Kumar Vavilapalli and fixed by Vinod Kumar Vavilapalli (mr-am , mrv2 , performance)<br>
     <b>Thread pool for launching containers in MR AM not expanding as expected</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3610">MAPREDUCE-3610</a>.
     Minor improvement reported by Sho Shimauchi and fixed by Sho Shimauchi <br>
     <b>Some parts in MR use old property dfs.block.size</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3608">MAPREDUCE-3608</a>.
     Major bug reported by Mahadev konar and fixed by Mahadev konar (mrv2)<br>
     <b>MAPREDUCE-3522 commit causes compilation to fail</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3604">MAPREDUCE-3604</a>.
     Blocker bug reported by Arun C Murthy and fixed by Arun C Murthy (contrib/streaming)<br>
     <b>Streaming's check for local mode is broken</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3597">MAPREDUCE-3597</a>.
     Major improvement reported by Ravi Gummadi and fixed by Ravi Gummadi (tools/rumen)<br>
     <b>Provide a way to access other info of history file from Rumentool</b><br>
     <blockquote>Rumen now provides {{Parsed*}} objects. These objects provide extra information that are not provided by {{Logged*}} objects.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3596">MAPREDUCE-3596</a>.
     Blocker bug reported by Ravi Prakash and fixed by Vinod Kumar Vavilapalli (applicationmaster , mrv2)<br>
     <b>Sort benchmark got hang after completion of 99% map phase</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3595">MAPREDUCE-3595</a>.
     Major test reported by Tom White and fixed by Tom White (test)<br>
     <b>Add missing TestCounters#testCounterValue test from branch 1 to 0.23</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3588">MAPREDUCE-3588</a>.
     Blocker bug reported by Arun C Murthy and fixed by Arun C Murthy <br>
     <b>bin/yarn broken after MAPREDUCE-3366</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3586">MAPREDUCE-3586</a>.
     Blocker bug reported by Vinod Kumar Vavilapalli and fixed by Vinod Kumar Vavilapalli (mr-am , mrv2)<br>
     <b>Lots of AMs hanging around in PIG testing</b><br>
     <blockquote>Modified CompositeService to avoid duplicate stop operations thereby solving race conditions in MR AM shutdown.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3582">MAPREDUCE-3582</a>.
     Major bug reported by Ahmed Radwan and fixed by Ahmed Radwan (mrv2 , test)<br>
     <b>Move successfully passing MR1 tests to MR2 maven tree.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3579">MAPREDUCE-3579</a>.
     Major bug reported by Aaron T. Myers and fixed by Aaron T. Myers (mrv2)<br>
     <b>ConverterUtils should not include a port in a path for a URL with no port</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3572">MAPREDUCE-3572</a>.
     Critical sub-task reported by Vinod Kumar Vavilapalli and fixed by Vinod Kumar Vavilapalli (mr-am , mrv2 , performance)<br>
     <b>MR AM's dispatcher is blocked by heartbeats to ResourceManager</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3569">MAPREDUCE-3569</a>.
     Critical sub-task reported by Vinod Kumar Vavilapalli and fixed by Vinod Kumar Vavilapalli (mr-am , mrv2 , performance)<br>
     <b>TaskAttemptListener holds a global lock for all task-updates</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3568">MAPREDUCE-3568</a>.
     Critical sub-task reported by Vinod Kumar Vavilapalli and fixed by Vinod Kumar Vavilapalli (mr-am , mrv2 , performance)<br>
     <b>Optimize Job's progress calculations in MR AM</b><br>
     <blockquote>Optimized Job's progress calculations in MR AM.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3567">MAPREDUCE-3567</a>.
     Major sub-task reported by Vinod Kumar Vavilapalli and fixed by Vinod Kumar Vavilapalli (mr-am , mrv2 , performance)<br>
     <b>Extraneous JobConf objects in AM heap</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3566">MAPREDUCE-3566</a>.
     Critical sub-task reported by Vinod Kumar Vavilapalli and fixed by Vinod Kumar Vavilapalli (mr-am , mrv2)<br>
     <b>MR AM slows down due to repeatedly constructing ContainerLaunchContext</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3564">MAPREDUCE-3564</a>.
     Blocker bug reported by Mahadev konar and fixed by Siddharth Seth (mrv2)<br>
     <b>TestStagingCleanup and TestJobEndNotifier are failing on trunk.</b><br>
     <blockquote>Fixed failures in TestStagingCleanup and TestJobEndNotifier tests.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3563">MAPREDUCE-3563</a>.
     Major bug reported by Arun C Murthy and fixed by Arun C Murthy (mrv2)<br>
     <b>LocalJobRunner doesn't handle Jobs using o.a.h.mapreduce.OutputCommitter</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3560">MAPREDUCE-3560</a>.
     Blocker bug reported by Vinod Kumar Vavilapalli and fixed by Siddharth Seth (mrv2 , resourcemanager , test)<br>
     <b>TestRMNodeTransitions is failing on trunk</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3557">MAPREDUCE-3557</a>.
     Major bug reported by Alejandro Abdelnur and fixed by Alejandro Abdelnur (build)<br>
     <b>MR1 test fail to compile because of missing hadoop-archives dependency</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3553">MAPREDUCE-3553</a>.
     Minor sub-task reported by Thomas Graves and fixed by Thomas Graves (mrv2)<br>
     <b>Add support for data returned when exceptions thrown from web service apis to be in either xml or in JSON</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3549">MAPREDUCE-3549</a>.
     Blocker bug reported by Thomas Graves and fixed by Thomas Graves (mrv2)<br>
     <b>write api documentation for web service apis for RM, NM, mapreduce app master, and job history server</b><br>
     <blockquote>new files added: A      hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-site/src/site/apt/WebServicesIntro.apt.vm
A      hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-site/src/site/apt/NodeManagerRest.apt.vm
A      hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-site/src/site/apt/ResourceManagerRest.apt.vm
A      hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-site/src/site/apt/MapredAppMasterRest.apt.vm
A      hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-site/src/site/apt/HistoryServerRest.apt.vm

The hadoop-project/src/site/site.xml is split into separate patch.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3548">MAPREDUCE-3548</a>.
     Critical sub-task reported by Thomas Graves and fixed by Thomas Graves (mrv2)<br>
     <b>write unit tests for web services for mapreduce app master and job history server</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3547">MAPREDUCE-3547</a>.
     Critical sub-task reported by Thomas Graves and fixed by Thomas Graves (mrv2)<br>
     <b>finish unit tests for web services for RM and NM</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3544">MAPREDUCE-3544</a>.
     Major bug reported by Alejandro Abdelnur and fixed by Alejandro Abdelnur (build , tools/rumen)<br>
     <b>gridmix build is broken, requires hadoop-archives to be added as ivy dependency</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3542">MAPREDUCE-3542</a>.
     Major bug reported by Tom White and fixed by Tom White <br>
     <b>Support "FileSystemCounter" legacy counter group name for compatibility</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3541">MAPREDUCE-3541</a>.
     Blocker bug reported by Ravi Prakash and fixed by Ravi Prakash (mrv2)<br>
     <b>Fix broken TestJobQueueClient test</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3537">MAPREDUCE-3537</a>.
     Blocker bug reported by Arun C Murthy and fixed by Arun C Murthy <br>
     <b>DefaultContainerExecutor has a race condn. with multiple concurrent containers</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3534">MAPREDUCE-3534</a>.
     Blocker sub-task reported by Vinay Kumar Thota and fixed by Vinod Kumar Vavilapalli (mrv2)<br>
     <b>Compression benchmark run-time increased by 13% in 0.23</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3532">MAPREDUCE-3532</a>.
     Critical bug reported by Karam Singh and fixed by Bhallamudi Venkata Siva Kamesh (mrv2 , nodemanager)<br>
     <b>When 0 is provided as port number in yarn.nodemanager.webapp.address, NMs webserver component picks up random port, NM keeps on Reporting 0 port to RM</b><br>
     <blockquote>Modified NM to report correct http address when an ephemeral web port is configured.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3531">MAPREDUCE-3531</a>.
     Blocker bug reported by Karam Singh and fixed by Robert Joseph Evans (mrv2 , resourcemanager , scheduler)<br>
     <b>Sometimes java.lang.IllegalArgumentException: Invalid key to HMAC computation in NODE_UPDATE also causing RM to stop scheduling </b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3530">MAPREDUCE-3530</a>.
     Blocker bug reported by Karam Singh and fixed by Arun C Murthy (mrv2 , resourcemanager , scheduler)<br>
     <b>Sometimes NODE_UPDATE to the scheduler throws an NPE causing the scheduling to stop</b><br>
     <blockquote>Fixed an NPE occuring during scheduling in the ResourceManager.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3529">MAPREDUCE-3529</a>.
     Critical bug reported by Siddharth Seth and fixed by Siddharth Seth (mrv2)<br>
     <b>TokenCache does not cache viewfs credentials correctly</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3528">MAPREDUCE-3528</a>.
     Major bug reported by Siddharth Seth and fixed by Siddharth Seth (mr-am , mrv2)<br>
     <b>The task timeout check interval should be configurable independent of mapreduce.task.timeout</b><br>
     <blockquote>Fixed TaskHeartBeatHandler to use a new configuration for the thread loop interval separate from task-timeout configuration property.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3527">MAPREDUCE-3527</a>.
     Major bug reported by Tom White and fixed by Tom White <br>
     <b>Fix minor API incompatibilities between 1.0 and 0.23</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3525">MAPREDUCE-3525</a>.
     Blocker sub-task reported by Karam Singh and fixed by Vinod Kumar Vavilapalli (mrv2)<br>
     <b>Shuffle benchmark is nearly 1.5x slower in 0.23</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3522">MAPREDUCE-3522</a>.
     Major bug reported by Jonathan Eagles and fixed by Jonathan Eagles (mrv2)<br>
     <b>Capacity Scheduler ACLs not inherited by default</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3521">MAPREDUCE-3521</a>.
     Minor bug reported by Robert Joseph Evans and fixed by Robert Joseph Evans (mrv2)<br>
     <b>Hadoop Streaming ignores unknown parameters</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3519">MAPREDUCE-3519</a>.
     Blocker sub-task reported by Ravi Gummadi and fixed by Ravi Gummadi (mrv2 , nodemanager)<br>
     <b>Deadlock in LocalDirsHandlerService and ShuffleHandler</b><br>
     <blockquote>Fixed a deadlock in NodeManager LocalDirectories's handling service.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3518">MAPREDUCE-3518</a>.
     Critical bug reported by Jonathan Eagles and fixed by Jonathan Eagles (client , mrv2)<br>
     <b>mapred queue -info &lt;queue&gt; -showJobs throws NPE</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3513">MAPREDUCE-3513</a>.
     Trivial bug reported by Mahadev konar and fixed by chackaravarthy (mrv2)<br>
     <b>Capacity Scheduler web UI has a spelling mistake for Memory.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3512">MAPREDUCE-3512</a>.
     Blocker sub-task reported by Siddharth Seth and fixed by Siddharth Seth (mr-am , mrv2)<br>
     <b>Batch jobHistory disk flushes</b><br>
     <blockquote>Batching JobHistory flushing to DFS so that we don't flush for every event slowing down AM.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3511">MAPREDUCE-3511</a>.
     Blocker sub-task reported by Siddharth Seth and fixed by Vinod Kumar Vavilapalli (mr-am , mrv2)<br>
     <b>Counters occupy a good part of AM heap</b><br>
     <blockquote>Removed a multitude of cloned/duplicate counters in the AM thereby reducing the AM heap size and preventing full GCs.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3510">MAPREDUCE-3510</a>.
     Major bug reported by Jonathan Eagles and fixed by Jonathan Eagles (capacity-sched , mrv2)<br>
     <b>Capacity Scheduler inherited ACLs not displayed by mapred queue -showacls</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3505">MAPREDUCE-3505</a>.
     Major bug reported by Bruno Mah&#233; and fixed by Ahmed Radwan (mrv2)<br>
     <b>yarn APPLICATION_CLASSPATH needs to be overridable</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3500">MAPREDUCE-3500</a>.
     Major bug reported by Alejandro Abdelnur and fixed by Alejandro Abdelnur (mrv2)<br>
     <b>MRJobConfig creates an LD_LIBRARY_PATH using the platform ARCH</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3499">MAPREDUCE-3499</a>.
     Blocker bug reported by Alejandro Abdelnur and fixed by John George (mrv2 , test)<br>
     <b>New MiniMR does not setup proxyuser configuration correctly, thus tests using doAs do not work</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3496">MAPREDUCE-3496</a>.
     Major bug reported by Jonathan Eagles and fixed by Jonathan Eagles (mrv2)<br>
     <b>Yarn initializes ACL operations from capacity scheduler config in a non-deterministic order</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3490">MAPREDUCE-3490</a>.
     Blocker bug reported by Siddharth Seth and fixed by Sharad Agarwal (mr-am , mrv2)<br>
     <b>RMContainerAllocator counts failed maps towards Reduce ramp up</b><br>
     <blockquote>Fixed MapReduce AM to count failed maps also towards Reduce ramp up.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3488">MAPREDUCE-3488</a>.
     Blocker bug reported by Mahadev konar and fixed by Mahadev konar (mrv2)<br>
     <b>Streaming jobs are failing because the main class isnt set in the pom files.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3487">MAPREDUCE-3487</a>.
     Critical bug reported by Thomas Graves and fixed by Jason Lowe (mrv2)<br>
     <b>jobhistory web ui task counters no longer links to singletakecounter page</b><br>
     <blockquote>Fixed JobHistory web-UI to display links to single task's counters' page.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3485">MAPREDUCE-3485</a>.
     Major sub-task reported by Hitesh Shah and fixed by Ravi Gummadi (mrv2)<br>
     <b>DISKS_FAILED -101 error code should be defined in same location as ABORTED_CONTAINER_EXIT_STATUS</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3484">MAPREDUCE-3484</a>.
     Major bug reported by Ravi Prakash and fixed by Ravi Prakash (mr-am , mrv2)<br>
     <b>JobEndNotifier is getting interrupted before completing all its retries.</b><br>
     <blockquote>Fixed JobEndNotifier to not get interrupted before completing all its retries.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3481">MAPREDUCE-3481</a>.
     Major improvement reported by Amar Kamat and fixed by Amar Kamat (contrib/gridmix)<br>
     <b>[Gridmix] Improve STRESS mode locking</b><br>
     <blockquote>Modified Gridmix STRESS mode locking structure. The submitted thread and the polling thread now run simultaneously without blocking each other. </blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3479">MAPREDUCE-3479</a>.
     Major bug reported by Tom White and fixed by Tom White (client)<br>
     <b>JobClient#getJob cannot find local jobs</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3478">MAPREDUCE-3478</a>.
     Minor bug reported by Andrew Bayer and fixed by Tom White (mrv2)<br>
     <b>Cannot build against ZooKeeper 3.4.0</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3477">MAPREDUCE-3477</a>.
     Major bug reported by Bruno Mah&#233; and fixed by Jonathan Eagles (documentation , mrv2)<br>
     <b>Hadoop site documentation cannot be built anymore on trunk and branch-0.23</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3468">MAPREDUCE-3468</a>.
     Major task reported by Siddharth Seth and fixed by Siddharth Seth <br>
     <b>Change version to 0.23.1 for ant builds on the 23 branch</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3465">MAPREDUCE-3465</a>.
     Minor bug reported by Hitesh Shah and fixed by Hitesh Shah (mrv2)<br>
     <b>org.apache.hadoop.yarn.util.TestLinuxResourceCalculatorPlugin fails on 0.23 </b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3464">MAPREDUCE-3464</a>.
     Trivial bug reported by Dave Vronay and fixed by Dave Vronay <br>
     <b>mapreduce jsp pages missing DOCTYPE [post-split branches]</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3463">MAPREDUCE-3463</a>.
     Blocker bug reported by Karam Singh and fixed by Siddharth Seth (applicationmaster , mrv2)<br>
     <b>Second AM fails to recover properly when first AM is killed with java.lang.IllegalArgumentException causing lost job</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3462">MAPREDUCE-3462</a>.
     Blocker bug reported by Amar Kamat and fixed by Ravi Prakash (mrv2 , test)<br>
     <b>Job submission failing in JUnit tests</b><br>
     <blockquote>Fixed failing JUnit tests in Gridmix.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3460">MAPREDUCE-3460</a>.
     Blocker bug reported by Siddharth Seth and fixed by Robert Joseph Evans (mr-am , mrv2)<br>
     <b>MR AM can hang if containers are allocated on a node blacklisted by the AM</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3458">MAPREDUCE-3458</a>.
     Major bug reported by Arun C Murthy and fixed by Devaraj K (mrv2)<br>
     <b>Fix findbugs warnings in hadoop-examples</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3456">MAPREDUCE-3456</a>.
     Blocker bug reported by Eric Payne and fixed by Eric Payne (mrv2)<br>
     <b>$HADOOP_PREFIX/bin/yarn should set defaults for $HADOOP_*_HOME</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3454">MAPREDUCE-3454</a>.
     Major bug reported by Amar Kamat and fixed by Hitesh Shah (contrib/gridmix)<br>
     <b>[Gridmix] TestDistCacheEmulation is broken</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3453">MAPREDUCE-3453</a>.
     Major bug reported by Thomas Graves and fixed by Jonathan Eagles (mrv2)<br>
     <b>RM web ui application details page shows RM cluster about information</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3452">MAPREDUCE-3452</a>.
     Major bug reported by Thomas Graves and fixed by Jonathan Eagles (mrv2)<br>
     <b>fifoscheduler web ui page always shows 0% used for the queue</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3450">MAPREDUCE-3450</a>.
     Major bug reported by Siddharth Seth and fixed by Siddharth Seth (mr-am , mrv2)<br>
     <b>NM port info no longer available in JobHistory</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3448">MAPREDUCE-3448</a>.
     Minor bug reported by Jonathan Eagles and fixed by Jonathan Eagles (mrv2)<br>
     <b>TestCombineOutputCollector javac unchecked warning on mocked generics</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3447">MAPREDUCE-3447</a>.
     Blocker bug reported by Thomas Graves and fixed by Mahadev konar (mrv2)<br>
     <b>mapreduce examples not working</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3444">MAPREDUCE-3444</a>.
     Blocker bug reported by Hitesh Shah and fixed by Hitesh Shah (mrv2)<br>
     <b>trunk/0.23 builds broken </b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3443">MAPREDUCE-3443</a>.
     Blocker bug reported by Mahadev konar and fixed by Mahadev konar (mrv2)<br>
     <b>Oozie jobs are running as oozie user even though they create the jobclient as doAs.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3437">MAPREDUCE-3437</a>.
     Blocker bug reported by Jonathan Eagles and fixed by Jonathan Eagles (build , mrv2)<br>
     <b>Branch 23 fails to build with Failure to find org.apache.hadoop:hadoop-project:pom:0.24.0-SNAPSHOT</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3436">MAPREDUCE-3436</a>.
     Major bug reported by Bruno Mah&#233; and fixed by Ahmed Radwan (mrv2 , webapps)<br>
     <b>JobHistory webapp address should use the host from the jobhistory address</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3434">MAPREDUCE-3434</a>.
     Blocker bug reported by Hitesh Shah and fixed by Hitesh Shah (mrv2)<br>
     <b>Nightly build broken </b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3433">MAPREDUCE-3433</a>.
     Major sub-task reported by Tom White and fixed by Tom White (client , mrv2)<br>
     <b>Finding counters by legacy group name returns empty counters</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3427">MAPREDUCE-3427</a>.
     Blocker bug reported by Alejandro Abdelnur and fixed by Hitesh Shah (contrib/streaming , mrv2)<br>
     <b>streaming tests fail with MR2</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3426">MAPREDUCE-3426</a>.
     Blocker sub-task reported by Hitesh Shah and fixed by Hitesh Shah (mrv2)<br>
     <b>uber-jobs tried to write outputs into wrong dir</b><br>
     <blockquote>Fixed MR AM in uber mode to write map intermediate outputs in the correct directory to work properly in secure mode.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3422">MAPREDUCE-3422</a>.
     Major bug reported by Tom White and fixed by Jonathan Eagles (mrv2)<br>
     <b>Counter display names are not being picked up</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3420">MAPREDUCE-3420</a>.
     Major bug reported by Hitesh Shah and fixed by  (mrv2)<br>
     <b>[Umbrella ticket] Make uber jobs functional</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3417">MAPREDUCE-3417</a>.
     Blocker bug reported by Thomas Graves and fixed by Jonathan Eagles (mrv2)<br>
     <b>job access controls not working app master and job history UI's</b><br>
     <blockquote>Fixed job-access-controls to work with MR AM and JobHistoryServer web-apps.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3415">MAPREDUCE-3415</a>.
     Major improvement reported by Alejandro Abdelnur and fixed by Alejandro Abdelnur (mrv2)<br>
     <b>improve MiniMRYarnCluster &amp; DistributedShell JAR resolution </b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3413">MAPREDUCE-3413</a>.
     Minor bug reported by Jonathan Eagles and fixed by Jonathan Eagles (mrv2)<br>
     <b>RM web ui applications not sorted in any order by default</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3412">MAPREDUCE-3412</a>.
     Major bug reported by Amar Kamat and fixed by Amar Kamat <br>
     <b>'ant docs' is broken</b><br>
     <blockquote>Fixes 'ant docs' by removing stale references to capacity-scheduler docs.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3411">MAPREDUCE-3411</a>.
     Minor improvement reported by Jonathan Eagles and fixed by Jonathan Eagles (mrv2)<br>
     <b>Performance Upgrade for jQuery</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3408">MAPREDUCE-3408</a>.
     Major bug reported by Bruno Mah&#233; and fixed by Bruno Mah&#233; (mrv2 , nodemanager , resourcemanager)<br>
     <b>yarn-daemon.sh unconditionnaly sets yarn.root.logger</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3407">MAPREDUCE-3407</a>.
     Minor bug reported by Hitesh Shah and fixed by Hitesh Shah (mrv2)<br>
     <b>Wrong jar getting used in TestMR*Jobs* for MiniMRYarnCluster</b><br>
     <blockquote>Fixed pom files to refer to the correct MR app-jar needed by the integration tests.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3404">MAPREDUCE-3404</a>.
     Critical bug reported by patrick white and fixed by Eric Payne (job submission , mrv2)<br>
     <b>Speculative Execution: speculative map tasks launched even if -Dmapreduce.map.speculative=false</b><br>
     <blockquote>Corrected MR AM to honor speculative configuration and enable speculating either maps or reduces.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3402">MAPREDUCE-3402</a>.
     Blocker sub-task reported by Vinod Kumar Vavilapalli and fixed by Vinod Kumar Vavilapalli (applicationmaster , mrv2)<br>
     <b>AMScalability test of Sleep job with 100K 1-sec maps regressed into running very slowly</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3399">MAPREDUCE-3399</a>.
     Blocker sub-task reported by Siddharth Seth and fixed by Siddharth Seth (mrv2 , nodemanager)<br>
     <b>ContainerLocalizer should request new resources after completing the current one</b><br>
     <blockquote>Modified ContainerLocalizer to send a heartbeat to NM immediately after downloading a resource instead of always waiting for a second.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3398">MAPREDUCE-3398</a>.
     Blocker bug reported by Siddharth Seth and fixed by Siddharth Seth (mrv2 , nodemanager)<br>
     <b>Log Aggregation broken in Secure Mode</b><br>
     <blockquote>Fixed log aggregation to work correctly in secure mode. Contributed by Siddharth Seth.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3392">MAPREDUCE-3392</a>.
     Blocker sub-task reported by John George and fixed by John George <br>
     <b>Cluster.getDelegationToken() throws NPE if client.getDelegationToken() returns null.</b><br>
     <blockquote>Fixed Cluster's getDelegationToken's API to return null when there isn't a supported token.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3391">MAPREDUCE-3391</a>.
     Minor bug reported by Subroto Sanyal and fixed by Subroto Sanyal (applicationmaster)<br>
     <b>Connecting to CM is logged as Connecting to RM</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3389">MAPREDUCE-3389</a>.
     Critical bug reported by Alejandro Abdelnur and fixed by Alejandro Abdelnur (mrv2)<br>
     <b>MRApps loads the 'mrapp-generated-classpath' file with classpath from the build machine</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3387">MAPREDUCE-3387</a>.
     Critical bug reported by Robert Joseph Evans and fixed by Robert Joseph Evans (mrv2)<br>
     <b>A tracking URL of N/A before the app master is launched breaks oozie</b><br>
     <blockquote>Fixed AM's tracking URL to always go through the proxy, even before the job started, so that it works properly with oozie throughout the job execution.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3382">MAPREDUCE-3382</a>.
     Critical bug reported by Vinod Kumar Vavilapalli and fixed by Ravi Prakash (applicationmaster , mrv2)<br>
     <b>Network ACLs can prevent AMs to ping the Job-end notification URL</b><br>
     <blockquote>Enhanced MR AM to use a proxy to ping the job-end notification URL.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3380">MAPREDUCE-3380</a>.
     Blocker sub-task reported by Alejandro Abdelnur and fixed by Mahadev konar (mr-am , mrv2)<br>
     <b>Token infrastructure for running clients which are not kerberos authenticated</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3379">MAPREDUCE-3379</a>.
     Major bug reported by Siddharth Seth and fixed by Siddharth Seth (mrv2 , nodemanager)<br>
     <b>LocalResourceTracker should not tracking deleted cache entries</b><br>
     <blockquote>Fixed LocalResourceTracker in NodeManager to remove deleted cache entries correctly.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3376">MAPREDUCE-3376</a>.
     Major bug reported by Robert Joseph Evans and fixed by Subroto Sanyal (mrv1 , mrv2)<br>
     <b>Old mapred API combiner uses NULL reporter</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3375">MAPREDUCE-3375</a>.
     Major task reported by Vinay Kumar Thota and fixed by Vinay Kumar Thota <br>
     <b>Memory Emulation system tests.</b><br>
     <blockquote>Added system tests to test the memory emulation feature in Gridmix.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3372">MAPREDUCE-3372</a>.
     Major bug reported by Bruno Mah&#233; and fixed by Bruno Mah&#233; <br>
     <b>HADOOP_PREFIX cannot be overriden</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3371">MAPREDUCE-3371</a>.
     Minor improvement reported by Ravi Prakash and fixed by Ravi Prakash (documentation , mrv2)<br>
     <b>Review and improve the yarn-api javadocs.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3370">MAPREDUCE-3370</a>.
     Major bug reported by Ahmed Radwan and fixed by Ahmed Radwan (mrv2 , test)<br>
     <b>MiniMRYarnCluster uses a hard coded path location for the MapReduce application jar</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3369">MAPREDUCE-3369</a>.
     Major improvement reported by Ahmed Radwan and fixed by Ahmed Radwan (mrv1 , mrv2 , test)<br>
     <b>Migrate MR1 tests to run on MR2 using the new interfaces introduced in MAPREDUCE-3169</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3368">MAPREDUCE-3368</a>.
     Critical bug reported by Ramya Sunil and fixed by Hitesh Shah (build , mrv2)<br>
     <b>compile-mapred-test fails</b><br>
     <blockquote>Fixed ant test compilation.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3366">MAPREDUCE-3366</a>.
     Major bug reported by Eric Yang and fixed by Eric Yang (mrv2)<br>
     <b>Mapreduce component should use consistent directory structure layout as HDFS/common</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3360">MAPREDUCE-3360</a>.
     Critical improvement reported by Bhallamudi Venkata Siva Kamesh and fixed by Bhallamudi Venkata Siva Kamesh (mrv2)<br>
     <b>Provide information about lost nodes in the UI.</b><br>
     <blockquote>Added information about lost/rebooted/decommissioned nodes on the webapps.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3355">MAPREDUCE-3355</a>.
     Blocker bug reported by Vinod Kumar Vavilapalli and fixed by Vinod Kumar Vavilapalli (applicationmaster , mrv2)<br>
     <b>AM scheduling hangs frequently with sort job on 350 nodes</b><br>
     <blockquote>Fixed MR AM's ContainerLauncher to handle node-command timeouts correctly.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3354">MAPREDUCE-3354</a>.
     Blocker bug reported by Vinod Kumar Vavilapalli and fixed by Jonathan Eagles (jobhistoryserver , mrv2)<br>
     <b>JobHistoryServer should be started by bin/mapred and not by bin/yarn</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3349">MAPREDUCE-3349</a>.
     Blocker bug reported by Vinod Kumar Vavilapalli and fixed by Amar Kamat (mrv2)<br>
     <b>No rack-name logged in JobHistory for unsuccessful tasks</b><br>
     <blockquote>Unsuccessful tasks now log hostname and rackname to job history. </blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3346">MAPREDUCE-3346</a>.
     Blocker bug reported by Karam Singh and fixed by Amar Kamat (tools/rumen)<br>
     <b>Rumen LoggedTaskAttempt  getHostName call returns hostname as null</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3345">MAPREDUCE-3345</a>.
     Major bug reported by Vinod Kumar Vavilapalli and fixed by Hitesh Shah (mrv2 , resourcemanager)<br>
     <b>Race condition in ResourceManager causing TestContainerManagerSecurity to fail sometimes</b><br>
     <blockquote>Fixed a race condition in ResourceManager that was causing TestContainerManagerSecurity to fail sometimes.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3344">MAPREDUCE-3344</a>.
     Major bug reported by Brock Noland and fixed by Brock Noland <br>
     <b>o.a.h.mapreduce.Reducer since 0.21 blindly casts to ReduceContext.ValueIterator</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3342">MAPREDUCE-3342</a>.
     Critical bug reported by Thomas Graves and fixed by Jonathan Eagles (jobhistoryserver , mrv2)<br>
     <b>JobHistoryServer doesn't show job queue</b><br>
     <blockquote>Fixed JobHistoryServer to also show the job's queue name.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3341">MAPREDUCE-3341</a>.
     Major improvement reported by Anupam Seth and fixed by Anupam Seth (mrv2)<br>
     <b>Enhance logging of initalized queue limit values</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3339">MAPREDUCE-3339</a>.
     Blocker bug reported by Ramgopal N and fixed by Siddharth Seth (mrv2)<br>
     <b>Job is getting hanged indefinitely,if the child processes are killed on the NM.  KILL_CONTAINER eventtype is continuosly sent to the containers that are not existing</b><br>
     <blockquote>Fixed MR AM to stop considering node blacklisting after the number of nodes blacklisted crosses a threshold.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3336">MAPREDUCE-3336</a>.
     Critical bug reported by Thomas Graves and fixed by Thomas Graves (mrv2)<br>
     <b>com.google.inject.internal.Preconditions not public api - shouldn't be using it</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3333">MAPREDUCE-3333</a>.
     Blocker bug reported by Vinod Kumar Vavilapalli and fixed by Vinod Kumar Vavilapalli (applicationmaster , mrv2)<br>
     <b>MR AM for sort-job going out of memory</b><br>
     <blockquote>Fixed bugs in ContainerLauncher of MR AppMaster due to which per-container connections to NodeManager were lingering long enough to hit the ulimits on number of processes.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3331">MAPREDUCE-3331</a>.
     Minor improvement reported by Anupam Seth and fixed by Anupam Seth (mrv2)<br>
     <b>Improvement to single node cluster setup documentation for 0.23</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3329">MAPREDUCE-3329</a>.
     Blocker bug reported by Thomas Graves and fixed by Arun C Murthy (mrv2)<br>
     <b>capacity schedule maximum-capacity allowed to be less then capacity</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3328">MAPREDUCE-3328</a>.
     Critical bug reported by Thomas Graves and fixed by Ravi Prakash (mrv2)<br>
     <b>mapred queue -list output inconsistent and missing child queues</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3327">MAPREDUCE-3327</a>.
     Critical bug reported by Thomas Graves and fixed by Anupam Seth (mrv2)<br>
     <b>RM web ui scheduler link doesn't show correct max value for queues</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3326">MAPREDUCE-3326</a>.
     Critical bug reported by Thomas Graves and fixed by Jason Lowe (mrv2)<br>
     <b>RM web UI scheduler link not as useful as should be</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3325">MAPREDUCE-3325</a>.
     Major improvement reported by Thomas Graves and fixed by Thomas Graves (mrv2)<br>
     <b>Improvements to CapacityScheduler doc</b><br>
     <blockquote>document changes only.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3324">MAPREDUCE-3324</a>.
     Critical bug reported by Jonathan Eagles and fixed by Jonathan Eagles (jobhistoryserver , mrv2 , nodemanager)<br>
     <b>Not All HttpServer tools links (stacks,logs,config,metrics) are accessible through all UI servers</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3312">MAPREDUCE-3312</a>.
     Major bug reported by Robert Joseph Evans and fixed by Robert Joseph Evans (mrv2)<br>
     <b>Make MR AM not send a stopContainer w/o corresponding start container</b><br>
     <blockquote>Modified MR AM to not send a stop-container request for a container that isn't launched at all.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3299">MAPREDUCE-3299</a>.
     Minor improvement reported by Siddharth Seth and fixed by Jonathan Eagles (mrv2)<br>
     <b>Add AMInfo table to the AM job page</b><br>
     <blockquote>Added AMInfo table to the MR AM job pages to list all the job-attempts when AM restarts and recovers.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3297">MAPREDUCE-3297</a>.
     Major task reported by Siddharth Seth and fixed by Siddharth Seth (mrv2)<br>
     <b>Move Log Related components from yarn-server-nodemanager to yarn-common</b><br>
     <blockquote>Moved log related components into yarn-common so that HistoryServer and clients can use them without depending on the yarn-server-nodemanager module.
</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3291">MAPREDUCE-3291</a>.
     Blocker bug reported by Ramya Sunil and fixed by Robert Joseph Evans (mrv2)<br>
     <b>App fail to launch due to delegation token not found in cache</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3280">MAPREDUCE-3280</a>.
     Major bug reported by Vinod Kumar Vavilapalli and fixed by Vinod Kumar Vavilapalli (applicationmaster , mrv2)<br>
     <b>MR AM should not read the username from configuration</b><br>
     <blockquote>Removed the unnecessary job user-name configuration in mapred-site.xml.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3265">MAPREDUCE-3265</a>.
     Blocker improvement reported by Todd Lipcon and fixed by Arun C Murthy (mrv2)<br>
     <b>Reduce log level on MR2 IPC construction, etc</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3251">MAPREDUCE-3251</a>.
     Critical task reported by Anupam Seth and fixed by Anupam Seth (mrv2)<br>
     <b>Network ACLs can prevent some clients to talk to MR ApplicationMaster</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3243">MAPREDUCE-3243</a>.
     Major bug reported by Ramya Sunil and fixed by Jonathan Eagles (contrib/streaming , mrv2)<br>
     <b>Invalid tracking URL for streaming jobs</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3238">MAPREDUCE-3238</a>.
     Trivial improvement reported by Todd Lipcon and fixed by Todd Lipcon (mrv2)<br>
     <b>Small cleanup in SchedulerApp</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3221">MAPREDUCE-3221</a>.
     Minor sub-task reported by Hitesh Shah and fixed by Devaraj K (mrv2 , test)<br>
     <b>ant test TestSubmitJob failing on trunk</b><br>
     <blockquote>Fixed a bug in TestSubmitJob.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3219">MAPREDUCE-3219</a>.
     Minor sub-task reported by Hitesh Shah and fixed by Hitesh Shah (mrv2 , test)<br>
     <b>ant test TestDelegationToken failing on trunk</b><br>
     <blockquote>Reenabled and fixed bugs in the failing test TestDelegationToken.
</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3217">MAPREDUCE-3217</a>.
     Minor sub-task reported by Hitesh Shah and fixed by Devaraj K (mrv2 , test)<br>
     <b>ant test TestAuditLogger fails on trunk</b><br>
     <blockquote>Reenabled and fixed bugs in the failing ant test TestAuditLogger.
</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3215">MAPREDUCE-3215</a>.
     Minor sub-task reported by Hitesh Shah and fixed by Hitesh Shah (mrv2)<br>
     <b>org.apache.hadoop.mapreduce.TestNoJobSetupCleanup failing on trunk</b><br>
     <blockquote>Reneabled and fixed bugs in the failing test TestNoJobSetupCleanup.
</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3194">MAPREDUCE-3194</a>.
     Major bug reported by Siddharth Seth and fixed by Jason Lowe (mrv2)<br>
     <b>"mapred mradmin" command is broken in mrv2</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3169">MAPREDUCE-3169</a>.
     Major improvement reported by Todd Lipcon and fixed by Ahmed Radwan (mrv1 , mrv2 , test)<br>
     <b>Create a new MiniMRCluster equivalent which only provides client APIs cross MR1 and MR2</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3147">MAPREDUCE-3147</a>.
     Major improvement reported by Ravi Prakash and fixed by Ravi Prakash (mrv2)<br>
     <b>Handle leaf queues with the same name properly</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3121">MAPREDUCE-3121</a>.
     Blocker bug reported by Vinod Kumar Vavilapalli and fixed by Ravi Gummadi (mrv2 , nodemanager)<br>
     <b>DFIP aka 'NodeManager should handle Disk-Failures In Place'</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3102">MAPREDUCE-3102</a>.
     Major sub-task reported by Vinod Kumar Vavilapalli and fixed by Hitesh Shah (mrv2 , security)<br>
     <b>NodeManager should fail fast with wrong configuration or permissions for LinuxContainerExecutor</b><br>
     <blockquote>Changed NodeManager to fail fast when LinuxContainerExecutor has wrong configuration or permissions.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3045">MAPREDUCE-3045</a>.
     Minor bug reported by Ramya Sunil and fixed by Jonathan Eagles (jobhistoryserver , mrv2)<br>
     <b>Elapsed time filter on jobhistory server displays incorrect table entries</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2950">MAPREDUCE-2950</a>.
     Major bug reported by Amar Kamat and fixed by Ravi Gummadi (contrib/gridmix)<br>
     <b>[Gridmix] TestUserResolve fails in trunk</b><br>
     <blockquote>Fixes bug in TestUserResolve.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2863">MAPREDUCE-2863</a>.
     Blocker improvement reported by Arun C Murthy and fixed by Thomas Graves (mrv2 , nodemanager , resourcemanager)<br>
     <b>Support web-services for RM &amp; NM</b><br>
     <blockquote>Support for web-services in YARN and MR components.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2784">MAPREDUCE-2784</a>.
     Major bug reported by Amar Kamat and fixed by Amar Kamat (contrib/gridmix)<br>
     <b>[Gridmix] TestGridmixSummary fails with NPE when run in DEBUG mode.</b><br>
     <blockquote>Fixed bugs in ExecutionSummarizer and ResourceUsageMatcher.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2765">MAPREDUCE-2765</a>.
     Major new feature reported by Mithun Radhakrishnan and fixed by Mithun Radhakrishnan (distcp , mrv2)<br>
     <b>DistCp Rewrite</b><br>
     <blockquote>DistCpV2 added to hadoop-tools.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2733">MAPREDUCE-2733</a>.
     Major task reported by Vinay Kumar Thota and fixed by Vinay Kumar Thota <br>
     <b>Gridmix v3 cpu emulation system tests.</b><br>
     <blockquote>Adds system tests for the CPU emulation feature in Gridmix3.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2450">MAPREDUCE-2450</a>.
     Major bug reported by Matei Zaharia and fixed by Rajesh Balamohan <br>
     <b>Calls from running tasks to TaskTracker methods sometimes fail and incur a 60s timeout</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-1744">MAPREDUCE-1744</a>.
     Major bug reported by Dick King and fixed by Dick King <br>
     <b>DistributedCache creates its own FileSytem instance when adding a file/archive to the path</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-778">MAPREDUCE-778</a>.
     Major new feature reported by Hong Tang and fixed by Amar Kamat (tools/rumen)<br>
     <b>[Rumen] Need a standalone JobHistory log anonymizer</b><br>
     <blockquote>Added an anonymizer tool to Rumen. Anonymizer takes a Rumen trace file and/or topology as input. It supports persistence and plugins to override the default behavior.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2923">HDFS-2923</a>.
     Critical bug reported by Todd Lipcon and fixed by Todd Lipcon (name-node)<br>
     <b>Namenode IPC handler count uses the wrong configuration key</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2893">HDFS-2893</a>.
     Minor bug reported by Eli Collins and fixed by Eli Collins <br>
     <b>The start/stop scripts don't start/stop the 2NN when using the default configuration</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2889">HDFS-2889</a>.
     Major bug reported by Gregory Chanan and fixed by Gregory Chanan (hdfs client)<br>
     <b>getNumCurrentReplicas is package private but should be public on 0.23 (see HDFS-2408)</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2879">HDFS-2879</a>.
     Major sub-task reported by Tsz Wo (Nicholas), SZE and fixed by Tsz Wo (Nicholas), SZE (data-node)<br>
     <b>Change FSDataset to package private</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2869">HDFS-2869</a>.
     Minor bug reported by Harsh J and fixed by Harsh J (webhdfs)<br>
     <b>Error in Webhdfs documentation for mkdir</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2868">HDFS-2868</a>.
     Minor improvement reported by Harsh J and fixed by Harsh J (data-node)<br>
     <b>Add number of active transfer threads to the DataNode status</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2864">HDFS-2864</a>.
     Major sub-task reported by Tsz Wo (Nicholas), SZE and fixed by Tsz Wo (Nicholas), SZE (data-node)<br>
     <b>Remove redundant methods and a constant from FSDataset</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2840">HDFS-2840</a>.
     Major bug reported by Eli Collins and fixed by Alejandro Abdelnur (test)<br>
     <b>TestHostnameFilter should work with localhost or localhost.localdomain </b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2837">HDFS-2837</a>.
     Major bug reported by Robert Joseph Evans and fixed by Robert Joseph Evans <br>
     <b>mvn javadoc:javadoc not seeing LimitedPrivate class </b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2836">HDFS-2836</a>.
     Major bug reported by Robert Joseph Evans and fixed by Robert Joseph Evans <br>
     <b>HttpFSServer still has 2 javadoc warnings in trunk</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2835">HDFS-2835</a>.
     Major bug reported by Robert Joseph Evans and fixed by Robert Joseph Evans (tools)<br>
     <b>Fix org.apache.hadoop.hdfs.tools.GetConf$Command Findbug issue</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2827">HDFS-2827</a>.
     Major bug reported by Uma Maheswara Rao G and fixed by Uma Maheswara Rao G (name-node)<br>
     <b>Cannot save namespace after renaming a directory above a file with an open lease</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2826">HDFS-2826</a>.
     Minor improvement reported by Todd Lipcon and fixed by Todd Lipcon (name-node , test)<br>
     <b>Test case for HDFS-1476 (safemode can initialize repl queues before exiting)</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2825">HDFS-2825</a>.
     Minor improvement reported by Todd Lipcon and fixed by Todd Lipcon (name-node)<br>
     <b>Add test hook to turn off the writer preferring its local DN</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2822">HDFS-2822</a>.
     Major bug reported by Todd Lipcon and fixed by Todd Lipcon (ha , name-node)<br>
     <b>processMisReplicatedBlock incorrectly identifies under-construction blocks as under-replicated</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2818">HDFS-2818</a>.
     Trivial bug reported by Todd Lipcon and fixed by Devaraj K (name-node)<br>
     <b>dfshealth.jsp missing space between role and node name</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2817">HDFS-2817</a>.
     Minor improvement reported by Todd Lipcon and fixed by Todd Lipcon (test)<br>
     <b>Combine the two TestSafeMode test suites</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2816">HDFS-2816</a>.
     Trivial bug reported by Hitesh Shah and fixed by Hitesh Shah <br>
     <b>Fix missing license header in hadoop-hdfs-project/hadoop-hdfs-httpfs/dev-support/findbugsExcludeFile.xml</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2814">HDFS-2814</a>.
     Minor improvement reported by Hitesh Shah and fixed by Hitesh Shah <br>
     <b>NamenodeMXBean does not account for svn revision in the version information</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2810">HDFS-2810</a>.
     Critical bug reported by Todd Lipcon and fixed by Todd Lipcon (hdfs client)<br>
     <b>Leases not properly getting renewed by clients</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2803">HDFS-2803</a>.
     Minor improvement reported by Jimmy Xiang and fixed by Jimmy Xiang (name-node)<br>
     <b>Adding logging to LeaseRenewer for better lease expiration triage.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2791">HDFS-2791</a>.
     Major bug reported by Todd Lipcon and fixed by Todd Lipcon (data-node , name-node)<br>
     <b>If block report races with closing of file, replica is incorrectly marked corrupt</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2790">HDFS-2790</a>.
     Minor bug reported by Arpit Gupta and fixed by Arpit Gupta <br>
     <b>FSNamesystem.setTimes throws exception with wrong configuration name in the message</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2788">HDFS-2788</a>.
     Major improvement reported by Eli Collins and fixed by Eli Collins (data-node)<br>
     <b>HdfsServerConstants#DN_KEEPALIVE_TIMEOUT is dead code</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2786">HDFS-2786</a>.
     Major sub-task reported by Daryn Sharp and fixed by Kihwal Lee (name-node , security)<br>
     <b>Fix host-based token incompatibilities in DFSUtil</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2785">HDFS-2785</a>.
     Major sub-task reported by Daryn Sharp and fixed by Robert Joseph Evans (webhdfs)<br>
     <b>Update webhdfs and httpfs for host-based token support</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2784">HDFS-2784</a>.
     Major sub-task reported by Daryn Sharp and fixed by Kihwal Lee (hdfs client , name-node , security)<br>
     <b>Update hftp and hdfs for host-based token support</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2761">HDFS-2761</a>.
     Major improvement reported by Roman Shaposhnik and fixed by Roman Shaposhnik (build , hdfs client , scripts)<br>
     <b>Improve Hadoop subcomponent integration in Hadoop 0.23</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2751">HDFS-2751</a>.
     Major bug reported by Todd Lipcon and fixed by Todd Lipcon (data-node)<br>
     <b>Datanode drops OS cache behind reads even for short reads</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2729">HDFS-2729</a>.
     Minor improvement reported by Harsh J and fixed by Harsh J (name-node)<br>
     <b>Update BlockManager's comments regarding the invalid block set</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2726">HDFS-2726</a>.
     Major improvement reported by Michael Bieniosek and fixed by Harsh J <br>
     <b>"Exception in createBlockOutputStream" shouldn't delete exception stack trace</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2722">HDFS-2722</a>.
     Major bug reported by Harsh J and fixed by Harsh J (hdfs client)<br>
     <b>HttpFs shouldn't be using an int for block size</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2710">HDFS-2710</a>.
     Critical bug reported by Siddharth Seth and fixed by  <br>
     <b>HDFS part of MAPREDUCE-3529, HADOOP-7933</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2707">HDFS-2707</a>.
     Major bug reported by Alejandro Abdelnur and fixed by Alejandro Abdelnur (security)<br>
     <b>HttpFS should read the hadoop-auth secret from a file instead inline from the configuration</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2706">HDFS-2706</a>.
     Major bug reported by Tsz Wo (Nicholas), SZE and fixed by Tsz Wo (Nicholas), SZE (name-node)<br>
     <b>Use configuration for blockInvalidateLimit if it is set</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2705">HDFS-2705</a>.
     Major bug reported by Alejandro Abdelnur and fixed by Alejandro Abdelnur <br>
     <b>HttpFS server should check that upload requests have correct content-type</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2675">HDFS-2675</a>.
     Trivial improvement reported by Todd Lipcon and fixed by Todd Lipcon (name-node)<br>
     <b>Reduce verbosity when double-closing edit logs</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2658">HDFS-2658</a>.
     Major bug reported by Eli Collins and fixed by Alejandro Abdelnur <br>
     <b>HttpFS introduced 70 javadoc warnings</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2657">HDFS-2657</a>.
     Major bug reported by Eli Collins and fixed by Alejandro Abdelnur <br>
     <b>TestHttpFSServer and TestServerWebApp are failing on trunk</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2654">HDFS-2654</a>.
     Major improvement reported by Eli Collins and fixed by Eli Collins (data-node)<br>
     <b>Make BlockReaderLocal not extend RemoteBlockReader2</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2653">HDFS-2653</a>.
     Major improvement reported by Eli Collins and fixed by Eli Collins (data-node)<br>
     <b>DFSClient should cache whether addrs are non-local when short-circuiting is enabled</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2649">HDFS-2649</a>.
     Major bug reported by Jason Lowe and fixed by Jason Lowe (build)<br>
     <b>eclipse:eclipse build fails for hadoop-hdfs-httpfs</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2646">HDFS-2646</a>.
     Major bug reported by Uma Maheswara Rao G and fixed by Alejandro Abdelnur <br>
     <b>Hadoop HttpFS introduced 4 findbug warnings.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2640">HDFS-2640</a>.
     Major bug reported by Tom White and fixed by Tom White <br>
     <b>Javadoc generation hangs</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2614">HDFS-2614</a>.
     Major bug reported by Bruno Mah&#233; and fixed by Alejandro Abdelnur (build)<br>
     <b>hadoop dist tarball is missing hdfs headers</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2606">HDFS-2606</a>.
     Critical bug reported by Alejandro Abdelnur and fixed by Alejandro Abdelnur (webhdfs)<br>
     <b>webhdfs client filesystem impl must set the content-type header for create/append</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2604">HDFS-2604</a>.
     Minor improvement reported by Tsz Wo (Nicholas), SZE and fixed by Tsz Wo (Nicholas), SZE (webhdfs)<br>
     <b>Add a log message to show if WebHDFS is enabled</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2596">HDFS-2596</a>.
     Major bug reported by Eli Collins and fixed by Eli Collins (data-node , test)<br>
     <b>TestDirectoryScanner doesn't test parallel scans</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2590">HDFS-2590</a>.
     Major bug reported by Tsz Wo (Nicholas), SZE and fixed by Tsz Wo (Nicholas), SZE (webhdfs)<br>
     <b>Some links in WebHDFS forrest doc do not work</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2588">HDFS-2588</a>.
     Trivial bug reported by Dave Vronay and fixed by Dave Vronay (scripts)<br>
     <b>hdfs jsp pages missing DOCTYPE [post-split branches]</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2587">HDFS-2587</a>.
     Major task reported by Tsz Wo (Nicholas), SZE and fixed by Tsz Wo (Nicholas), SZE (webhdfs)<br>
     <b>Add WebHDFS apt doc</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2575">HDFS-2575</a>.
     Minor bug reported by Todd Lipcon and fixed by Todd Lipcon (test)<br>
     <b>DFSTestUtil may create empty files</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2574">HDFS-2574</a>.
     Trivial task reported by Joe Crobak and fixed by Joe Crobak (documentation)<br>
     <b>remove references to deprecated properties in hdfs-site.xml template and hdfs-default.xml</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2572">HDFS-2572</a>.
     Trivial improvement reported by Harsh J and fixed by Harsh J (data-node)<br>
     <b>Unnecessary double-check in DN#getHostName</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2570">HDFS-2570</a>.
     Trivial improvement reported by Eli Collins and fixed by Eli Collins (documentation)<br>
     <b>Add descriptions for dfs.*.https.address in hdfs-default.xml</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2568">HDFS-2568</a>.
     Trivial improvement reported by Harsh J and fixed by Harsh J (data-node)<br>
     <b>Use a set to manage child sockets in XceiverServer</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2567">HDFS-2567</a>.
     Major bug reported by Harsh J and fixed by Harsh J (name-node)<br>
     <b>When 0 DNs are available, show a proper error when trying to browse DFS via web UI</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2566">HDFS-2566</a>.
     Minor improvement reported by Todd Lipcon and fixed by Todd Lipcon (data-node)<br>
     <b>Move BPOfferService to be a non-inner class</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2563">HDFS-2563</a>.
     Major improvement reported by Todd Lipcon and fixed by Todd Lipcon (data-node)<br>
     <b>Some cleanup in BPOfferService</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2562">HDFS-2562</a>.
     Minor improvement reported by Todd Lipcon and fixed by Todd Lipcon (data-node)<br>
     <b>Refactor DN configuration variables out of DataNode class</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2560">HDFS-2560</a>.
     Major improvement reported by Todd Lipcon and fixed by Todd Lipcon (data-node)<br>
     <b>Refactor BPOfferService to be a static inner class</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2553">HDFS-2553</a>.
     Critical bug reported by Todd Lipcon and fixed by Uma Maheswara Rao G (data-node)<br>
     <b>BlockPoolSliceScanner spinning in loop</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2552">HDFS-2552</a>.
     Major task reported by Tsz Wo (Nicholas), SZE and fixed by Tsz Wo (Nicholas), SZE (webhdfs)<br>
     <b>Add WebHdfs Forrest doc</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2545">HDFS-2545</a>.
     Major bug reported by Tsz Wo (Nicholas), SZE and fixed by Tsz Wo (Nicholas), SZE (webhdfs)<br>
     <b>Webhdfs: Support multiple namenodes in federation</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2544">HDFS-2544</a>.
     Major bug reported by Bruno Mah&#233; and fixed by Bruno Mah&#233; (scripts)<br>
     <b>Hadoop scripts unconditionally source "$bin"/../libexec/hadoop-config.sh.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2543">HDFS-2543</a>.
     Major bug reported by Bruno Mah&#233; and fixed by Bruno Mah&#233; (scripts)<br>
     <b>HADOOP_PREFIX cannot be overriden</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2541">HDFS-2541</a>.
     Major bug reported by Harsh J and fixed by Harsh J (data-node)<br>
     <b>For a sufficiently large value of blocks, the DN Scanner may request a random number with a negative seed value.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2536">HDFS-2536</a>.
     Trivial improvement reported by Aaron T. Myers and fixed by Harsh J (name-node)<br>
     <b>Remove unused imports</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2533">HDFS-2533</a>.
     Minor improvement reported by Todd Lipcon and fixed by Todd Lipcon (data-node , performance)<br>
     <b>Remove needless synchronization on FSDataSet.getBlockFile</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2511">HDFS-2511</a>.
     Minor improvement reported by Todd Lipcon and fixed by Alejandro Abdelnur (build)<br>
     <b>Add dev script to generate HDFS protobufs</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2502">HDFS-2502</a>.
     Minor improvement reported by Eli Collins and fixed by Harsh J (documentation)<br>
     <b>hdfs-default.xml should include dfs.name.dir.restore</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2454">HDFS-2454</a>.
     Minor improvement reported by Uma Maheswara Rao G and fixed by Harsh J (data-node)<br>
     <b>Move maxXceiverCount check to before starting the thread in dataXceiver</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2397">HDFS-2397</a>.
     Major improvement reported by Todd Lipcon and fixed by Eli Collins (name-node)<br>
     <b>Undeprecate SecondaryNameNode</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2349">HDFS-2349</a>.
     Trivial improvement reported by Harsh J and fixed by Harsh J (data-node)<br>
     <b>DN should log a WARN, not an INFO when it detects a corruption during block transfer</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2335">HDFS-2335</a>.
     Major improvement reported by Eli Collins and fixed by Uma Maheswara Rao G (data-node , name-node)<br>
     <b>DataNodeCluster and NNStorage always pull fresh entropy</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2246">HDFS-2246</a>.
     Major improvement reported by Sanjay Radia and fixed by Jitendra Nath Pandey <br>
     <b>Shortcut a local client reads to a Datanodes files directly</b><br>
     <blockquote>1. New configurations
a. dfs.block.local-path-access.user is the key in datanode configuration to specify the user allowed to do short circuit read.
b. dfs.client.read.shortcircuit is the key to enable short circuit read at the client side configuration.
c. dfs.client.read.shortcircuit.skip.checksum is the key to bypass checksum check at the client side.
2. By default none of the above are enabled and short circuit read will not kick in.
3. If security is on, the feature can be used only for user that has kerberos credentials at the client, therefore map reduce tasks cannot benefit from it in general.
</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2178">HDFS-2178</a>.
     Major improvement reported by Alejandro Abdelnur and fixed by Alejandro Abdelnur <br>
     <b>HttpFS - a read/write Hadoop file system proxy</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2130">HDFS-2130</a>.
     Major sub-task reported by Todd Lipcon and fixed by Todd Lipcon (hdfs client)<br>
     <b>Switch default checksum to CRC32C</b><br>
     <blockquote>The default checksum algorithm used on HDFS is now CRC32C. Data from previous versions of Hadoop can still be read backwards-compatibly.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2129">HDFS-2129</a>.
     Major sub-task reported by Todd Lipcon and fixed by Todd Lipcon (hdfs client , performance)<br>
     <b>Simplify BlockReader to not inherit from FSInputChecker</b><br>
     <blockquote>BlockReader has been reimplemented to use direct byte buffers. If you use a custom socket factory, it must generate sockets that have associated Channels.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2080">HDFS-2080</a>.
     Major improvement reported by Todd Lipcon and fixed by Todd Lipcon (hdfs client , performance)<br>
     <b>Speed up DFS read path by lessening checksum overhead</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1314">HDFS-1314</a>.
     Minor bug reported by Karim Saadah and fixed by Sho Shimauchi <br>
     <b>dfs.blocksize accepts only absolute value</b><br>
     <blockquote>The default blocksize property 'dfs.blocksize' now accepts unit symbols to be used instead of byte length. Values such as "10k", "128m", "1g" are now OK to provide instead of just no. of bytes as was before.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-554">HDFS-554</a>.
     Minor improvement reported by Steve Loughran and fixed by Harsh J (name-node)<br>
     <b>BlockInfo.ensureCapacity may get a speedup from System.arraycopy()</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-442">HDFS-442</a>.
     Minor bug reported by Ramya Sunil and fixed by Harsh J (test)<br>
     <b>dfsthroughput in test.jar throws NPE</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-362">HDFS-362</a>.
     Major improvement reported by Tsz Wo (Nicholas), SZE and fixed by Uma Maheswara Rao G (name-node)<br>
     <b>FSEditLog should not writes long and short as UTF8 and should not use ArrayWritable for writing non-array items</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-69">HDFS-69</a>.
     Minor bug reported by Ravi Phulari and fixed by Harsh J <br>
     <b>Improve dfsadmin command line help </b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8055">HADOOP-8055</a>.
     Major bug reported by Eric Charles and fixed by Harsh J (build)<br>
     <b>Distribution tar.gz does not contain etc/hadoop/core-site.xml</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8054">HADOOP-8054</a>.
     Critical bug reported by Amareshwari Sriramadasu and fixed by Daryn Sharp (fs)<br>
     <b>NPE with FilterFileSystem</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8052">HADOOP-8052</a>.
     Major bug reported by Varun Kapoor and fixed by Varun Kapoor (metrics)<br>
     <b>Hadoop Metrics2 should emit Float.MAX_VALUE (instead of Double.MAX_VALUE) to avoid making Ganglia's gmetad core</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8027">HADOOP-8027</a>.
     Minor improvement reported by Harsh J and fixed by Aaron T. Myers (metrics)<br>
     <b>Visiting /jmx on the daemon web interfaces may print unnecessary error in logs</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8018">HADOOP-8018</a>.
     Major bug reported by Matt Foley and fixed by Jonathan Eagles (build , test)<br>
     <b>Hudson auto test for HDFS has started throwing javadoc: warning - Error fetching URL: http://java.sun.com/javase/6/docs/api/package-list</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8015">HADOOP-8015</a>.
     Major improvement reported by Daryn Sharp and fixed by Daryn Sharp (fs)<br>
     <b>ChRootFileSystem should extend FilterFileSystem</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8013">HADOOP-8013</a>.
     Major bug reported by Daryn Sharp and fixed by Daryn Sharp (fs)<br>
     <b>ViewFileSystem does not honor setVerifyChecksum</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8012">HADOOP-8012</a>.
     Minor bug reported by Roman Shaposhnik and fixed by Roman Shaposhnik (scripts)<br>
     <b>hadoop-daemon.sh and yarn-daemon.sh are trying to mkdir and chow log/pid dirs which can fail</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8009">HADOOP-8009</a>.
     Critical improvement reported by Alejandro Abdelnur and fixed by Alejandro Abdelnur (build)<br>
     <b>Create hadoop-client and hadoop-minicluster artifacts for downstream projects </b><br>
     <blockquote>Generate integration artifacts "org.apache.hadoop:hadoop-client" and "org.apache.hadoop:hadoop-minicluster" containing all the jars needed to use Hadoop client APIs, and to run Hadoop MiniClusters, respectively.  Push these artifacts to the maven repository when mvn-deploy, along with existing artifacts. </blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8006">HADOOP-8006</a>.
     Major bug reported by Uma Maheswara Rao G and fixed by Daryn Sharp (fs)<br>
     <b>TestFSInputChecker is failing in trunk.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8002">HADOOP-8002</a>.
     Major bug reported by Arpit Gupta and fixed by Arpit Gupta <br>
     <b>SecurityUtil acquired token message should be a debug rather than info</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8001">HADOOP-8001</a>.
     Major bug reported by Daryn Sharp and fixed by Daryn Sharp (fs)<br>
     <b>ChecksumFileSystem's rename doesn't correctly handle checksum files</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8000">HADOOP-8000</a>.
     Critical bug reported by Arpit Gupta and fixed by Arpit Gupta <br>
     <b>fetchdt command not available in bin/hadoop</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7999">HADOOP-7999</a>.
     Critical bug reported by Jason Lowe and fixed by Jason Lowe (scripts)<br>
     <b>"hadoop archive" fails with ClassNotFoundException</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7998">HADOOP-7998</a>.
     Major bug reported by Daryn Sharp and fixed by Daryn Sharp (fs)<br>
     <b>CheckFileSystem does not correctly honor setVerifyChecksum</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7993">HADOOP-7993</a>.
     Major bug reported by Anupam Seth and fixed by Anupam Seth (conf)<br>
     <b>Hadoop ignores old-style config options for enabling compressed output</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7988">HADOOP-7988</a>.
     Major bug reported by Jitendra Nath Pandey and fixed by Jitendra Nath Pandey <br>
     <b>Upper case in hostname part of the principals doesn't work with kerberos.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7987">HADOOP-7987</a>.
     Major improvement reported by Devaraj Das and fixed by Jitendra Nath Pandey (security)<br>
     <b>Support setting the run-as user in unsecure mode</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7986">HADOOP-7986</a>.
     Major bug reported by Mahadev konar and fixed by Mahadev konar <br>
     <b>Add config for History Server protocol in hadoop-policy for service level authorization.</b><br>
     <blockquote>Adding config for MapReduce History Server protocol in hadoop-policy.xml for service level authorization.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7982">HADOOP-7982</a>.
     Major bug reported by Todd Lipcon and fixed by Todd Lipcon (security)<br>
     <b>UserGroupInformation fails to login if thread's context classloader can't load HadoopLoginModule</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7981">HADOOP-7981</a>.
     Major bug reported by Jonathan Eagles and fixed by Jonathan Eagles (io)<br>
     <b>Improve documentation for org.apache.hadoop.io.compress.Decompressor.getRemaining</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7975">HADOOP-7975</a>.
     Minor bug reported by Harsh J and fixed by Harsh J <br>
     <b>Add entry to XML defaults for new LZ4 codec</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7974">HADOOP-7974</a>.
     Major bug reported by Eli Collins and fixed by Harsh J (fs , test)<br>
     <b>TestViewFsTrash incorrectly determines the user's home directory</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7971">HADOOP-7971</a>.
     Blocker bug reported by Thomas Graves and fixed by Prashant Sharma <br>
     <b>hadoop &lt;job/queue/pipes&gt; removed - should be added back, but deprecated</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7964">HADOOP-7964</a>.
     Blocker bug reported by Kihwal Lee and fixed by Daryn Sharp (security , util)<br>
     <b>Deadlock in class init.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7963">HADOOP-7963</a>.
     Blocker bug reported by Thomas Graves and fixed by Siddharth Seth <br>
     <b>test failures: TestViewFileSystemWithAuthorityLocalFileSystem and TestViewFileSystemLocalFileSystem</b><br>
     <blockquote>Fix ViewFS to catch a null canonical service-name and pass tests TestViewFileSystem*</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7949">HADOOP-7949</a>.
     Trivial bug reported by Eli Collins and fixed by Eli Collins (ipc)<br>
     <b>Updated maxIdleTime default in the code to match core-default.xml</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7948">HADOOP-7948</a>.
     Minor bug reported by Michajlo Matijkiw and fixed by Michajlo Matijkiw (build)<br>
     <b>Shell scripts created by hadoop-dist/pom.xml to build tar do not properly propagate failure</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7939">HADOOP-7939</a>.
     Major improvement reported by Roman Shaposhnik and fixed by Roman Shaposhnik (build , conf , documentation , scripts)<br>
     <b>Improve Hadoop subcomponent integration in Hadoop 0.23</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7936">HADOOP-7936</a>.
     Major bug reported by Eli Collins and fixed by Alejandro Abdelnur (build)<br>
     <b>There's a Hoop README in the root dir of the tarball</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7934">HADOOP-7934</a>.
     Critical improvement reported by Alejandro Abdelnur and fixed by Alejandro Abdelnur (build)<br>
     <b>Normalize dependencies versions across all modules</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7933">HADOOP-7933</a>.
     Critical bug reported by Siddharth Seth and fixed by Siddharth Seth (viewfs)<br>
     <b>Viewfs changes for MAPREDUCE-3529</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7919">HADOOP-7919</a>.
     Trivial improvement reported by Harsh J and fixed by Harsh J (documentation)<br>
     <b>[Doc] Remove hadoop.logfile.* properties.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7917">HADOOP-7917</a>.
     Major bug reported by Alejandro Abdelnur and fixed by Alejandro Abdelnur (build)<br>
     <b>compilation of protobuf files fails in windows/cygwin</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7914">HADOOP-7914</a>.
     Major bug reported by Tsz Wo (Nicholas), SZE and fixed by Tsz Wo (Nicholas), SZE (build)<br>
     <b>duplicate declaration of hadoop-hdfs test-jar</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7912">HADOOP-7912</a>.
     Major bug reported by Robert Joseph Evans and fixed by Robert Joseph Evans (build)<br>
     <b>test-patch should run eclipse:eclipse to verify that it does not break again</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7910">HADOOP-7910</a>.
     Minor improvement reported by Sho Shimauchi and fixed by Sho Shimauchi (conf)<br>
     <b>add configuration methods to handle human readable size values</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7907">HADOOP-7907</a>.
     Blocker bug reported by Alejandro Abdelnur and fixed by Alejandro Abdelnur (build)<br>
     <b>hadoop-tools JARs are not part of the distro</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7902">HADOOP-7902</a>.
     Major bug reported by Tsz Wo (Nicholas), SZE and fixed by Alejandro Abdelnur <br>
     <b>skipping name rules setting (if already set) should be done on UGI initialization only </b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7898">HADOOP-7898</a>.
     Minor bug reported by Suresh Srinivas and fixed by Suresh Srinivas (security)<br>
     <b>Fix javadoc warnings in AuthenticationToken.java</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7890">HADOOP-7890</a>.
     Trivial improvement reported by Koji Noguchi and fixed by Koji Noguchi (scripts)<br>
     <b>Redirect hadoop script's deprecation message to stderr</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7887">HADOOP-7887</a>.
     Critical bug reported by Alejandro Abdelnur and fixed by Alejandro Abdelnur (security)<br>
     <b>KerberosAuthenticatorHandler is not setting KerberosName name rules from configuration</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7878">HADOOP-7878</a>.
     Minor bug reported by Steve Loughran and fixed by Steve Loughran (util)<br>
     <b>Regression HADOOP-7777 switch changes break HDFS tests when the isSingleSwitch() predicate is used</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7877">HADOOP-7877</a>.
     Major task reported by Tsz Wo (Nicholas), SZE and fixed by Tsz Wo (Nicholas), SZE (documentation)<br>
     <b>Federation: update Balancer documentation</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7874">HADOOP-7874</a>.
     Major bug reported by Alejandro Abdelnur and fixed by Alejandro Abdelnur (build)<br>
     <b>native libs should be under lib/native/ dir</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7870">HADOOP-7870</a>.
     Major bug reported by Jonathan Hsieh and fixed by Jonathan Hsieh <br>
     <b>fix SequenceFile#createWriter with boolean createParent arg to respect createParent.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7864">HADOOP-7864</a>.
     Major bug reported by Andrew Bayer and fixed by Andrew Bayer (build)<br>
     <b>Building mvn site with Maven &lt; 3.0.2 causes OOM errors</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7859">HADOOP-7859</a>.
     Major bug reported by Eli Collins and fixed by Eli Collins (fs)<br>
     <b>TestViewFsHdfs.testgetFileLinkStatus is failing an assert</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7858">HADOOP-7858</a>.
     Trivial improvement reported by Todd Lipcon and fixed by Todd Lipcon <br>
     <b>Drop some info logging to DEBUG level in IPC, metrics, and HTTP</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7854">HADOOP-7854</a>.
     Critical bug reported by Daryn Sharp and fixed by Daryn Sharp (security)<br>
     <b>UGI getCurrentUser is not synchronized</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7853">HADOOP-7853</a>.
     Blocker bug reported by Daryn Sharp and fixed by Daryn Sharp (security)<br>
     <b>multiple javax security configurations cause conflicts</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7851">HADOOP-7851</a>.
     Major bug reported by Amar Kamat and fixed by Uma Maheswara Rao G (conf)<br>
     <b>Configuration.getClasses() never returns the default value.</b><br>
     <blockquote>Fixed Configuration.getClasses() API to return the default value if the key is not set.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7843">HADOOP-7843</a>.
     Major bug reported by John George and fixed by John George <br>
     <b>compilation failing because workDir not initialized in RunJar.java</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7841">HADOOP-7841</a>.
     Trivial improvement reported by Todd Lipcon and fixed by Todd Lipcon (build)<br>
     <b>Run tests with non-secure random</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7837">HADOOP-7837</a>.
     Major bug reported by Steve Loughran and fixed by Eli Collins (conf)<br>
     <b>no NullAppender in the log4j config</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7813">HADOOP-7813</a>.
     Major bug reported by Jonathan Eagles and fixed by Jonathan Eagles (build , test)<br>
     <b>test-patch +1 patches that introduce javadoc and findbugs warnings in some cases</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7811">HADOOP-7811</a>.
     Major bug reported by Jonathan Eagles and fixed by Jonathan Eagles (security , test)<br>
     <b>TestUserGroupInformation#testGetServerSideGroups test fails in chroot</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7810">HADOOP-7810</a>.
     Blocker bug reported by John George and fixed by John George <br>
     <b>move hadoop archive to core from tools</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7808">HADOOP-7808</a>.
     Major new feature reported by Daryn Sharp and fixed by Daryn Sharp (fs , security)<br>
     <b>Port token service changes from 205</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7804">HADOOP-7804</a>.
     Major improvement reported by Arpit Gupta and fixed by Arpit Gupta (conf)<br>
     <b>enable hadoop config generator to set dfs.block.local-path-access.user to enable short circuit read</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7802">HADOOP-7802</a>.
     Major bug reported by Bruno Mah&#233; and fixed by Bruno Mah&#233; <br>
     <b>Hadoop scripts unconditionally source "$bin"/../libexec/hadoop-config.sh.</b><br>
     <blockquote>Here is a patch to enable this behavior
</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7801">HADOOP-7801</a>.
     Major bug reported by Bruno Mah&#233; and fixed by Bruno Mah&#233; (build)<br>
     <b>HADOOP_PREFIX cannot be overriden</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7787">HADOOP-7787</a>.
     Major bug reported by Bruno Mah&#233; and fixed by Bruno Mah&#233; (build)<br>
     <b>Make source tarball use conventional name.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7761">HADOOP-7761</a>.
     Major improvement reported by Todd Lipcon and fixed by Todd Lipcon (io , performance , util)<br>
     <b>Improve performance of raw comparisons</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7758">HADOOP-7758</a>.
     Major improvement reported by Alejandro Abdelnur and fixed by Alejandro Abdelnur (fs)<br>
     <b>Make GlobFilter class public</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7736">HADOOP-7736</a>.
     Trivial improvement reported by Harsh J and fixed by Harsh J (fs)<br>
     <b>Remove duplicate call of Path#normalizePath during initialization.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7657">HADOOP-7657</a>.
     Major improvement reported by Bert Sanders and fixed by Binglin Chang <br>
     <b>Add support for LZ4 compression</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7590">HADOOP-7590</a>.
     Major sub-task reported by Alejandro Abdelnur and fixed by Alejandro Abdelnur (build)<br>
     <b>Mavenize streaming and MR examples</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7574">HADOOP-7574</a>.
     Trivial improvement reported by XieXianshan and fixed by XieXianshan (fs)<br>
     <b>Improvement for FSshell -stat</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7504">HADOOP-7504</a>.
     Trivial improvement reported by Eli Collins and fixed by Harsh J (metrics)<br>
     <b>hadoop-metrics.properties missing some Ganglia31 options </b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7470">HADOOP-7470</a>.
     Minor improvement reported by Steve Loughran and fixed by Enis Soztutar (util)<br>
     <b>move up to Jackson 1.8.8</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7424">HADOOP-7424</a>.
     Major improvement reported by Eli Collins and fixed by Uma Maheswara Rao G <br>
     <b>Log an error if the topology script doesn't handle multiple args</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7348">HADOOP-7348</a>.
     Major improvement reported by XieXianshan and fixed by XieXianshan (fs)<br>
     <b>Modify the option of FsShell getmerge from [addnl] to [-nl] for consistency</b><br>
     <blockquote>The 'fs -getmerge' tool now uses a -nl flag to determine if adding a newline at end of each file is required, in favor of the 'addnl' boolean flag that was used earlier.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-6886">HADOOP-6886</a>.
     Minor improvement reported by Nicolas Spiegelberg and fixed by Nicolas Spiegelberg (fs)<br>
     <b>LocalFileSystem Needs createNonRecursive API</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-6840">HADOOP-6840</a>.
     Minor improvement reported by Nicolas Spiegelberg and fixed by Nicolas Spiegelberg (fs , io)<br>
     <b>Support non-recursive create() in FileSystem &amp; SequenceFile.Writer</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-6614">HADOOP-6614</a>.
     Minor improvement reported by Steve Loughran and fixed by Jonathan Hsieh (util)<br>
     <b>RunJar should provide more diags when it can't create a temp file</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-6490">HADOOP-6490</a>.
     Minor bug reported by Zheng Shao and fixed by Uma Maheswara Rao G (fs)<br>
     <b>Path.normalize should use StringUtils.replace in favor of String.replace</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-4515">HADOOP-4515</a>.
     Minor improvement reported by Abhijit Bagri and fixed by Sho Shimauchi <br>
     <b>conf.getBoolean must be case insensitive</b><br>
     <blockquote></blockquote></li>
</ul>
</body></html>
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Hadoop  0.23.0 Release Notes</title>
<STYLE type="text/css">
	H1 {font-family: sans-serif}
	H2 {font-family: sans-serif; margin-left: 7mm}
	TABLE {margin-left: 7mm}
</STYLE>
</head>
<body>
<h1>Hadoop  0.23.0 Release Notes</h1>
These release notes include new developer and user-facing incompatibilities, features, and major improvements. 
<a name="changes"/>
<h2>Changes since Hadoop 1.0.0</h2>
<ul>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3332">MAPREDUCE-3332</a>.
     Trivial bug reported by Hitesh Shah and fixed by Hitesh Shah (contrib/raid)<br>
     <b>contrib/raid compile breaks due to changes in hdfs/protocol/datatransfer/Sender#writeBlock related to checksum handling </b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3322">MAPREDUCE-3322</a>.
     Major improvement reported by Arun C Murthy and fixed by Arun C Murthy (documentation , mrv2)<br>
     <b>Create a better index.html for maven docs</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3321">MAPREDUCE-3321</a>.
     Minor bug reported by Hitesh Shah and fixed by Hitesh Shah (mrv2)<br>
     <b>Disable some failing legacy tests for MRv2 builds to go through</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3317">MAPREDUCE-3317</a>.
     Major bug reported by Ravi Gummadi and fixed by Ravi Gummadi (tools/rumen)<br>
     <b>Rumen TraceBuilder is emiting null as hostname</b><br>
     <blockquote>Fixes Rumen to get correct hostName that includes rackName in attempt info.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3316">MAPREDUCE-3316</a>.
     Major bug reported by Bhallamudi Venkata Siva Kamesh and fixed by Bhallamudi Venkata Siva Kamesh (resourcemanager)<br>
     <b>Rebooted link is not working properly</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3313">MAPREDUCE-3313</a>.
     Blocker bug reported by Ravi Gummadi and fixed by Hitesh Shah (mrv2 , test)<br>
     <b>TestResourceTrackerService failing in trunk some times</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3306">MAPREDUCE-3306</a>.
     Blocker bug reported by Vinod Kumar Vavilapalli and fixed by Vinod Kumar Vavilapalli (mrv2 , nodemanager)<br>
     <b>Cannot run apps after MAPREDUCE-2989</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3304">MAPREDUCE-3304</a>.
     Major bug reported by Ravi Prakash and fixed by Ravi Prakash (mrv2 , test)<br>
     <b>TestRMContainerAllocator#testBlackListedNodes fails intermittently</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3296">MAPREDUCE-3296</a>.
     Major bug reported by Vinod Kumar Vavilapalli and fixed by Vinod Kumar Vavilapalli (build)<br>
     <b>Pending(9) findBugs warnings</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3295">MAPREDUCE-3295</a>.
     Critical bug reported by Mahadev konar and fixed by  <br>
     <b>TestAMAuthorization failing on branch 0.23.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3292">MAPREDUCE-3292</a>.
     Critical bug reported by Mahadev konar and fixed by Mahadev konar (mrv2)<br>
     <b>In secure mode job submission fails with Provider org.apache.hadoop.mapreduce.security.token.JobTokenIndentifier$Renewer not found.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3290">MAPREDUCE-3290</a>.
     Major bug reported by Ramya Sunil and fixed by Arun C Murthy (mrv2)<br>
     <b>list-active-trackers throws NPE</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3288">MAPREDUCE-3288</a>.
     Blocker bug reported by Ramya Sunil and fixed by Mahadev konar (mrv2)<br>
     <b>Mapreduce 23 builds failing</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3285">MAPREDUCE-3285</a>.
     Blocker bug reported by Arun C Murthy and fixed by Siddharth Seth (mrv2)<br>
     <b>Tests on branch-0.23 failing </b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3284">MAPREDUCE-3284</a>.
     Major bug reported by Ramya Sunil and fixed by Arun C Murthy (mrv2)<br>
     <b>bin/mapred queue fails with JobQueueClient ClassNotFoundException</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3282">MAPREDUCE-3282</a>.
     Critical bug reported by Ramya Sunil and fixed by Arun C Murthy (mrv2)<br>
     <b>bin/mapred job -list throws exception</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3281">MAPREDUCE-3281</a>.
     Blocker bug reported by Vinod Kumar Vavilapalli and fixed by Vinod Kumar Vavilapalli (test)<br>
     <b>TestLinuxContainerExecutorWithMocks failing on trunk.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3279">MAPREDUCE-3279</a>.
     Major bug reported by Siddharth Seth and fixed by Siddharth Seth (mrv2)<br>
     <b>TestJobHistoryParsing broken</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3275">MAPREDUCE-3275</a>.
     Critical improvement reported by Robert Joseph Evans and fixed by Robert Joseph Evans (documentation , mrv2)<br>
     <b>Add docs for WebAppProxy</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3274">MAPREDUCE-3274</a>.
     Blocker bug reported by Robert Joseph Evans and fixed by Robert Joseph Evans (applicationmaster , mrv2)<br>
     <b>Race condition in MR App Master Preemtion can cause a dead lock</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3269">MAPREDUCE-3269</a>.
     Blocker bug reported by Ramya Sunil and fixed by Mahadev konar (mrv2)<br>
     <b>Jobsummary logs not being moved to a separate file</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3264">MAPREDUCE-3264</a>.
     Blocker bug reported by Todd Lipcon and fixed by Arun C Murthy (mrv2)<br>
     <b>mapreduce.job.user.name needs to be set automatically</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3263">MAPREDUCE-3263</a>.
     Blocker bug reported by Ramya Sunil and fixed by Hitesh Shah (build , mrv2)<br>
     <b>compile-mapred-test target fails</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3262">MAPREDUCE-3262</a>.
     Critical bug reported by Hitesh Shah and fixed by Hitesh Shah (mrv2 , nodemanager)<br>
     <b>A few events are not handled by the NodeManager in failure scenarios</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3261">MAPREDUCE-3261</a>.
     Major bug reported by Chris Riccomini and fixed by  (applicationmaster)<br>
     <b>AM unable to release containers</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3259">MAPREDUCE-3259</a>.
     Blocker bug reported by Kihwal Lee and fixed by Kihwal Lee (mrv2 , nodemanager)<br>
     <b>ContainerLocalizer should get the proper java.library.path from LinuxContainerExecutor</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3258">MAPREDUCE-3258</a>.
     Blocker bug reported by Siddharth Seth and fixed by Siddharth Seth (mrv2)<br>
     <b>Job counters missing from AM and history UI</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3257">MAPREDUCE-3257</a>.
     Blocker sub-task reported by Vinod Kumar Vavilapalli and fixed by Vinod Kumar Vavilapalli (applicationmaster , mrv2 , resourcemanager , security)<br>
     <b>Authorization checks needed for AM-&gt;RM protocol</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3256">MAPREDUCE-3256</a>.
     Blocker sub-task reported by Vinod Kumar Vavilapalli and fixed by Vinod Kumar Vavilapalli (applicationmaster , mrv2 , nodemanager , security)<br>
     <b>Authorization checks needed for AM-&gt;NM protocol</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3254">MAPREDUCE-3254</a>.
     Blocker bug reported by Ramya Sunil and fixed by Arun C Murthy (contrib/streaming , mrv2)<br>
     <b>Streaming jobs failing with PipeMapRunner ClassNotFoundException</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3253">MAPREDUCE-3253</a>.
     Blocker bug reported by Daniel Dai and fixed by Arun C Murthy (mrv2)<br>
     <b>ContextFactory throw NoSuchFieldException</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3252">MAPREDUCE-3252</a>.
     Critical bug reported by Todd Lipcon and fixed by Todd Lipcon (mrv2 , task)<br>
     <b>MR2: Map tasks rewrite data once even if output fits in sort buffer</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3250">MAPREDUCE-3250</a>.
     Blocker sub-task reported by Vinod Kumar Vavilapalli and fixed by Vinod Kumar Vavilapalli (applicationmaster , mrv2)<br>
     <b>When AM restarts, client keeps reconnecting to the new AM and prints a lots of logs.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3249">MAPREDUCE-3249</a>.
     Blocker sub-task reported by Vinod Kumar Vavilapalli and fixed by Vinod Kumar Vavilapalli (applicationmaster , mrv2)<br>
     <b>Recovery of MR AMs with reduces fails the subsequent generation of the job</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3248">MAPREDUCE-3248</a>.
     Blocker bug reported by Arun C Murthy and fixed by Vinod Kumar Vavilapalli (test)<br>
     <b>Log4j logs from unit tests are lost</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3242">MAPREDUCE-3242</a>.
     Major bug reported by Mahadev konar and fixed by Mahadev konar (mrv2)<br>
     <b>Trunk compilation broken with bad interaction from MAPREDUCE-3070 and MAPREDUCE-3239.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3241">MAPREDUCE-3241</a>.
     Major bug reported by Devaraj K and fixed by Amar Kamat <br>
     <b>(Rumen)TraceBuilder throws IllegalArgumentException</b><br>
     <blockquote>Rumen is fixed to ignore the AMRestartedEvent.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3240">MAPREDUCE-3240</a>.
     Blocker bug reported by Vinod Kumar Vavilapalli and fixed by Hitesh Shah (mrv2 , nodemanager)<br>
     <b>NM should send a SIGKILL for completed containers also</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3239">MAPREDUCE-3239</a>.
     Minor improvement reported by Todd Lipcon and fixed by Todd Lipcon (mrv2)<br>
     <b>Use new createSocketAddr API in MRv2 to give better error messages on misconfig</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3237">MAPREDUCE-3237</a>.
     Major improvement reported by Tom White and fixed by Tom White (client)<br>
     <b>Move LocalJobRunner to hadoop-mapreduce-client-core module</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3233">MAPREDUCE-3233</a>.
     Blocker sub-task reported by Karam Singh and fixed by Mahadev konar (mrv2)<br>
     <b>AM fails to restart when first AM is killed</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3228">MAPREDUCE-3228</a>.
     Blocker bug reported by Vinod Kumar Vavilapalli and fixed by Vinod Kumar Vavilapalli (applicationmaster , mrv2)<br>
     <b>MR AM hangs when one node goes bad</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3226">MAPREDUCE-3226</a>.
     Blocker bug reported by Vinod Kumar Vavilapalli and fixed by Vinod Kumar Vavilapalli (mrv2 , task)<br>
     <b>Few reduce tasks hanging in a gridmix-run</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3220">MAPREDUCE-3220</a>.
     Minor sub-task reported by Hitesh Shah and fixed by Devaraj K (mrv2 , test)<br>
     <b>ant test TestCombineOutputCollector failing on trunk</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3212">MAPREDUCE-3212</a>.
     Minor bug reported by Bhallamudi Venkata Siva Kamesh and fixed by Bhallamudi Venkata Siva Kamesh (mrv2)<br>
     <b>Message displays while executing yarn command should be proper</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3209">MAPREDUCE-3209</a>.
     Major bug reported by Vinod Kumar Vavilapalli and fixed by Vinod Kumar Vavilapalli (build , mrv2)<br>
     <b>Jenkins reports 160 FindBugs warnings</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3208">MAPREDUCE-3208</a>.
     Minor bug reported by liangzhaowang and fixed by liangzhaowang (mrv2)<br>
     <b>NPE while flushing TaskLogAppender</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3205">MAPREDUCE-3205</a>.
     Blocker improvement reported by Todd Lipcon and fixed by Todd Lipcon (mrv2 , nodemanager)<br>
     <b>MR2 memory limits should be pmem, not vmem</b><br>
     <blockquote>Resource limits are now expressed and enforced in terms of physical memory, rather than virtual memory. The virtual memory limit is set as a configurable multiple of the physical limit. The NodeManager's memory usage is now configured in units of MB rather than GB.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3204">MAPREDUCE-3204</a>.
     Major bug reported by Suresh Srinivas and fixed by Alejandro Abdelnur (build)<br>
     <b>mvn site:site fails on MapReduce</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3203">MAPREDUCE-3203</a>.
     Major bug reported by Mahadev konar and fixed by Mahadev konar (mrv2)<br>
     <b>Fix some javac warnings in MRAppMaster.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3199">MAPREDUCE-3199</a>.
     Major bug reported by Vinod Kumar Vavilapalli and fixed by Vinod Kumar Vavilapalli (mrv2 , test)<br>
     <b>TestJobMonitorAndPrint is broken on trunk</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3198">MAPREDUCE-3198</a>.
     Trivial bug reported by Hitesh Shah and fixed by Arun C Murthy (mrv2)<br>
     <b>Change mode for hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/test/resources/mock-container-executor to 755 </b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3197">MAPREDUCE-3197</a>.
     Major bug reported by Anupam Seth and fixed by Mahadev konar (mrv2)<br>
     <b>TestMRClientService failing on building clean checkout of branch 0.23</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3196">MAPREDUCE-3196</a>.
     Major bug reported by Arun C Murthy and fixed by Arun C Murthy (mrv2)<br>
     <b>TestLinuxContainerExecutorWithMocks fails on Mac OSX</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3192">MAPREDUCE-3192</a>.
     Major bug reported by Jitendra Nath Pandey and fixed by Jitendra Nath Pandey <br>
     <b>Fix Javadoc warning in JobClient.java and Cluster.java</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3190">MAPREDUCE-3190</a>.
     Major improvement reported by Todd Lipcon and fixed by Todd Lipcon (mrv2)<br>
     <b>bin/yarn should barf early if HADOOP_COMMON_HOME or HADOOP_HDFS_HOME are not set</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3189">MAPREDUCE-3189</a>.
     Major improvement reported by Todd Lipcon and fixed by Todd Lipcon (mrv2)<br>
     <b>Add link decoration back to MR2's CSS</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3188">MAPREDUCE-3188</a>.
     Major bug reported by Todd Lipcon and fixed by Todd Lipcon (mrv2)<br>
     <b>Lots of errors in logs when daemon startup fails</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3187">MAPREDUCE-3187</a>.
     Minor improvement reported by Todd Lipcon and fixed by Todd Lipcon (mrv2)<br>
     <b>Add names for various unnamed threads in MR2</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3186">MAPREDUCE-3186</a>.
     Blocker bug reported by Ramgopal N and fixed by Eric Payne (mrv2)<br>
     <b>User jobs are getting hanged if the Resource manager process goes down and comes up while job is getting executed.</b><br>
     <blockquote>New Yarn configuration property:

Name: yarn.app.mapreduce.am.scheduler.connection.retries
Description: Number of times AM should retry to contact RM if connection is lost.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3185">MAPREDUCE-3185</a>.
     Critical bug reported by Mahadev konar and fixed by Jonathan Eagles (mrv2)<br>
     <b>RM Web UI does not sort the columns in some cases.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3183">MAPREDUCE-3183</a>.
     Trivial bug reported by Hitesh Shah and fixed by Hitesh Shah (build)<br>
     <b>hadoop-assemblies/src/main/resources/assemblies/hadoop-mapreduce-dist.xml missing license header</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3181">MAPREDUCE-3181</a>.
     Blocker bug reported by Anupam Seth and fixed by Arun C Murthy (mrv2)<br>
     <b>Terasort fails with Kerberos exception on secure cluster</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3179">MAPREDUCE-3179</a>.
     Major bug reported by Jonathan Eagles and fixed by Jonathan Eagles (mrv2 , test)<br>
     <b>Incorrect exit code for hadoop-mapreduce-test tests when exception thrown</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3176">MAPREDUCE-3176</a>.
     Blocker bug reported by Ravi Prakash and fixed by Hitesh Shah (mrv2 , test)<br>
     <b>ant mapreduce tests are timing out</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3175">MAPREDUCE-3175</a>.
     Blocker sub-task reported by Thomas Graves and fixed by Jonathan Eagles (mrv2)<br>
     <b>Yarn httpservers not created with access Control lists</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3171">MAPREDUCE-3171</a>.
     Major improvement reported by Alejandro Abdelnur and fixed by Alejandro Abdelnur (build)<br>
     <b>normalize nodemanager native code compilation with common/hdfs native</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3170">MAPREDUCE-3170</a>.
     Critical bug reported by Mahadev konar and fixed by Hitesh Shah (build , mrv1 , mrv2)<br>
     <b>Trunk nightly commit builds are failing.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3167">MAPREDUCE-3167</a>.
     Minor bug reported by Mahadev konar and fixed by Mahadev konar (mrv2)<br>
     <b>container-executor is not being packaged with the assembly target.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3166">MAPREDUCE-3166</a>.
     Major bug reported by Ravi Gummadi and fixed by Ravi Gummadi (tools/rumen)<br>
     <b>Make Rumen use job history api instead of relying on current history file name format</b><br>
     <blockquote>Makes Rumen use job history api instead of relying on current history file name format.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3165">MAPREDUCE-3165</a>.
     Blocker bug reported by Arun C Murthy and fixed by Todd Lipcon (applicationmaster , mrv2)<br>
     <b>Ensure logging option is set on child command line</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3163">MAPREDUCE-3163</a>.
     Blocker bug reported by Todd Lipcon and fixed by Mahadev konar (job submission , mrv2)<br>
     <b>JobClient spews errors when killing MR2 job</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3162">MAPREDUCE-3162</a>.
     Minor improvement reported by Todd Lipcon and fixed by Todd Lipcon (mrv2 , nodemanager)<br>
     <b>Separate application-init and container-init event types in NM's ApplicationImpl FSM</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3161">MAPREDUCE-3161</a>.
     Minor improvement reported by Todd Lipcon and fixed by Todd Lipcon (mrv2)<br>
     <b>Improve javadoc and fix some typos in MR2 code</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3159">MAPREDUCE-3159</a>.
     Blocker bug reported by Todd Lipcon and fixed by Todd Lipcon (mrv2)<br>
     <b>DefaultContainerExecutor removes appcache dir on every localization</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3158">MAPREDUCE-3158</a>.
     Major bug reported by Hitesh Shah and fixed by Hitesh Shah (mrv2)<br>
     <b>Fix trunk build failures</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3157">MAPREDUCE-3157</a>.
     Major bug reported by Ravi Gummadi and fixed by Ravi Gummadi (tools/rumen)<br>
     <b>Rumen TraceBuilder is skipping analyzing 0.20 history files</b><br>
     <blockquote>Fixes TraceBuilder to handle 0.20 history file names also.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3154">MAPREDUCE-3154</a>.
     Major improvement reported by Abhijit Suresh Shingate and fixed by Abhijit Suresh Shingate (client , mrv2)<br>
     <b>Validate the Jobs Output Specification as the first statement in JobSubmitter.submitJobInternal(Job, Cluster) method</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3153">MAPREDUCE-3153</a>.
     Major bug reported by Vinod Kumar Vavilapalli and fixed by Mahadev konar (mrv2 , test)<br>
     <b>TestFileOutputCommitter.testFailAbort() is failing on trunk on Jenkins</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3148">MAPREDUCE-3148</a>.
     Blocker sub-task reported by Arun C Murthy and fixed by Arun C Murthy (mrv2)<br>
     <b>Port MAPREDUCE-2702 to old mapred api</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3146">MAPREDUCE-3146</a>.
     Critical sub-task reported by Vinod Kumar Vavilapalli and fixed by Siddharth Seth (mrv2 , nodemanager)<br>
     <b>Add a MR specific command line to dump logs for a given TaskAttemptID</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3144">MAPREDUCE-3144</a>.
     Critical sub-task reported by Vinod Kumar Vavilapalli and fixed by Siddharth Seth (mrv2)<br>
     <b>Augment JobHistory to include information needed for serving aggregated logs.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3143">MAPREDUCE-3143</a>.
     Major bug reported by Vinod Kumar Vavilapalli and fixed by  (mrv2 , nodemanager)<br>
     <b>Complete aggregation of user-logs spit out by containers onto DFS</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3141">MAPREDUCE-3141</a>.
     Blocker sub-task reported by Vinod Kumar Vavilapalli and fixed by Vinod Kumar Vavilapalli (applicationmaster , mrv2 , security)<br>
     <b>Yarn+MR secure mode is broken, uncovered after MAPREDUCE-3056</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3140">MAPREDUCE-3140</a>.
     Major bug reported by Bhallamudi Venkata Siva Kamesh and fixed by Subroto Sanyal (mrv2)<br>
     <b>Invalid JobHistory URL for failed applications</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3138">MAPREDUCE-3138</a>.
     Blocker bug reported by Arun C Murthy and fixed by Owen O'Malley (client , mrv2)<br>
     <b>Allow for applications to deal with MAPREDUCE-954</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3137">MAPREDUCE-3137</a>.
     Trivial sub-task reported by Hitesh Shah and fixed by Hitesh Shah (mrv2)<br>
     <b>Fix broken merge of MR-2719 to 0.23 branch for the distributed shell test case </b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3136">MAPREDUCE-3136</a>.
     Blocker sub-task reported by Arun C Murthy and fixed by Arun C Murthy (documentation , mrv2)<br>
     <b>Add docs for setting up real-world MRv2 clusters</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3134">MAPREDUCE-3134</a>.
     Blocker sub-task reported by Arun C Murthy and fixed by Arun C Murthy (documentation , mrv2 , scheduler)<br>
     <b>Add documentation for CapacityScheduler</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3133">MAPREDUCE-3133</a>.
     Major improvement reported by Jonathan Eagles and fixed by Jonathan Eagles (build)<br>
     <b>Running a set of methods in a Single Test Class</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3127">MAPREDUCE-3127</a>.
     Blocker sub-task reported by Amol Kekre and fixed by Arun C Murthy (mrv2 , resourcemanager)<br>
     <b>Unable to restrict users based on resourcemanager.admin.acls value set</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3126">MAPREDUCE-3126</a>.
     Blocker bug reported by Thomas Graves and fixed by Arun C Murthy (mrv2)<br>
     <b>mr job stuck because reducers using all slots and mapper isn't scheduled</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3125">MAPREDUCE-3125</a>.
     Critical bug reported by Thomas Graves and fixed by Hitesh Shah (mrv2)<br>
     <b>app master web UI shows reduce task progress 100% even though reducers not complete and state running/scheduled</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3124">MAPREDUCE-3124</a>.
     Blocker bug reported by Thomas Graves and fixed by John George (mrv2)<br>
     <b>mapper failed with failed to load native libs</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3123">MAPREDUCE-3123</a>.
     Blocker bug reported by Thomas Graves and fixed by Hitesh Shah (mrv2)<br>
     <b>Symbolic links with special chars causing container/task.sh to fail</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3114">MAPREDUCE-3114</a>.
     Major bug reported by Subroto Sanyal and fixed by Subroto Sanyal (mrv2)<br>
     <b>Invalid ApplicationMaster URL in Applications Page</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3113">MAPREDUCE-3113</a>.
     Minor improvement reported by XieXianshan and fixed by XieXianshan (mrv2)<br>
     <b>the scripts yarn-daemon.sh and yarn are not working properly</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3112">MAPREDUCE-3112</a>.
     Major bug reported by Eric Yang and fixed by Eric Yang (contrib/streaming)<br>
     <b>Calling hadoop cli inside mapreduce job leads to errors</b><br>
     <blockquote>Removed inheritance of certain server environment variables (HADOOP_OPTS and HADOOP_ROOT_LOGGER) in task attempt process.
</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3110">MAPREDUCE-3110</a>.
     Major bug reported by Devaraj K and fixed by Vinod Kumar Vavilapalli (mrv2 , test)<br>
     <b>TestRPC.testUnknownCall() is failing</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3104">MAPREDUCE-3104</a>.
     Blocker sub-task reported by Vinod Kumar Vavilapalli and fixed by Vinod Kumar Vavilapalli (mrv2 , resourcemanager , security)<br>
     <b>Implement Application ACLs, Queue ACLs and their interaction</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3099">MAPREDUCE-3099</a>.
     Major sub-task reported by Mahadev konar and fixed by Mahadev konar <br>
     <b>Add docs for setting up a single node MRv2 cluster.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3098">MAPREDUCE-3098</a>.
     Blocker sub-task reported by Hitesh Shah and fixed by Hitesh Shah (mrv2)<br>
     <b>Report Application status as well as ApplicationMaster status in GetApplicationReportResponse </b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3095">MAPREDUCE-3095</a>.
     Major bug reported by John George and fixed by John George (mrv2)<br>
     <b>fairscheduler ivy including wrong version for hdfs</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3092">MAPREDUCE-3092</a>.
     Minor bug reported by Devaraj K and fixed by Devaraj K (mrv2)<br>
     <b>Remove JOB_ID_COMPARATOR usage in JobHistory.java</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3090">MAPREDUCE-3090</a>.
     Major improvement reported by Arun C Murthy and fixed by Arun C Murthy (applicationmaster , mrv2)<br>
     <b>Change MR AM to use ApplicationAttemptId rather than &lt;applicationId, startCount&gt; everywhere</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3087">MAPREDUCE-3087</a>.
     Critical bug reported by Ravi Prakash and fixed by Ravi Prakash (mrv2)<br>
     <b>CLASSPATH not the same after MAPREDUCE-2880</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3081">MAPREDUCE-3081</a>.
     Major bug reported by vitthal (Suhas) Gogate and fixed by  (contrib/vaidya)<br>
     <b>Change the name format for hadoop core and vaidya jar to be hadoop-{core/vaidya}-{version}.jar in vaidya.sh</b><br>
     <blockquote>contrib/vaidya/bin/vaidya.sh script fixed to use appropriate jars and classpath </blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3078">MAPREDUCE-3078</a>.
     Blocker bug reported by Vinod Kumar Vavilapalli and fixed by Vinod Kumar Vavilapalli (applicationmaster , mrv2 , resourcemanager)<br>
     <b>Application's progress isn't updated from AM to RM.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3073">MAPREDUCE-3073</a>.
     Blocker bug reported by Mahadev konar and fixed by Mahadev konar <br>
     <b>Build failure for MRv1 caused due to changes to MRConstants.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3071">MAPREDUCE-3071</a>.
     Major bug reported by Thomas Graves and fixed by Thomas Graves (mrv2)<br>
     <b>app master configuration web UI link under the Job menu opens up application menu</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3070">MAPREDUCE-3070</a>.
     Blocker bug reported by Ravi Teja Ch N V and fixed by Devaraj K (mrv2 , nodemanager)<br>
     <b>NM not able to register with RM after NM restart</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3068">MAPREDUCE-3068</a>.
     Blocker bug reported by Vinod Kumar Vavilapalli and fixed by Chris Riccomini (mrv2)<br>
     <b>Should set MALLOC_ARENA_MAX for all YARN daemons and AMs/Containers</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3067">MAPREDUCE-3067</a>.
     Blocker bug reported by Hitesh Shah and fixed by Hitesh Shah (mrv2)<br>
     <b>Container exit status not set properly to launched process's exit code on successful completion of process</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3066">MAPREDUCE-3066</a>.
     Major bug reported by Chris Riccomini and fixed by Chris Riccomini (mrv2 , nodemanager)<br>
     <b>YARN NM fails to start</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3064">MAPREDUCE-3064</a>.
     Blocker bug reported by Thomas Graves and fixed by Venu Gopala Rao <br>
     <b>27 unit test failures with  Invalid "mapreduce.jobtracker.address" configuration value for JobTracker: "local"</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3062">MAPREDUCE-3062</a>.
     Major bug reported by Chris Riccomini and fixed by Chris Riccomini (mrv2 , nodemanager , resourcemanager)<br>
     <b>YARN NM/RM fail to start</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3059">MAPREDUCE-3059</a>.
     Blocker bug reported by Karam Singh and fixed by Devaraj K (mrv2)<br>
     <b>QueueMetrics do not have metrics for aggregate containers-allocated and aggregate containers-released</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3058">MAPREDUCE-3058</a>.
     Critical bug reported by Karam Singh and fixed by Vinod Kumar Vavilapalli (contrib/gridmix , mrv2)<br>
     <b>Sometimes task keeps on running while its Syslog says that it is shutdown</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3057">MAPREDUCE-3057</a>.
     Blocker bug reported by Karam Singh and fixed by Eric Payne (jobhistoryserver , mrv2)<br>
     <b>Job History Server goes of OutOfMemory with 1200 Jobs and Heap Size set to 10 GB</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3056">MAPREDUCE-3056</a>.
     Blocker bug reported by Devaraj K and fixed by Devaraj K (applicationmaster , mrv2)<br>
     <b>Jobs are failing when those are submitted by other users</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3055">MAPREDUCE-3055</a>.
     Minor bug reported by Hitesh Shah and fixed by Vinod Kumar Vavilapalli (mrv2)<br>
     <b>Simplify parameter passing to Application Master from Client. SImplify approach to pass info such  appId, ClusterTimestamp and failcount required by App Master.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3054">MAPREDUCE-3054</a>.
     Blocker bug reported by Siddharth Seth and fixed by Mahadev konar (mrv2)<br>
     <b>Unable to kill submitted jobs</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3053">MAPREDUCE-3053</a>.
     Major bug reported by Chris Riccomini and fixed by Vinod Kumar Vavilapalli (mrv2 , resourcemanager)<br>
     <b>YARN Protobuf RPC Failures in RM</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3050">MAPREDUCE-3050</a>.
     Blocker bug reported by Robert Joseph Evans and fixed by Robert Joseph Evans (mrv2 , resourcemanager)<br>
     <b>YarnScheduler needs to expose Resource Usage Information</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3048">MAPREDUCE-3048</a>.
     Major bug reported by Vinod Kumar Vavilapalli and fixed by Vinod Kumar Vavilapalli (build)<br>
     <b>Fix test-patch to run tests via "mvn clean install test"</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3044">MAPREDUCE-3044</a>.
     Blocker bug reported by Ramya Sunil and fixed by Mahadev konar (mrv2)<br>
     <b>Pipes jobs stuck without making progress</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3042">MAPREDUCE-3042</a>.
     Major bug reported by Chris Riccomini and fixed by Chris Riccomini (mrv2 , resourcemanager)<br>
     <b>YARN RM fails to start</b><br>
     <blockquote>Simple typo fix to allow ResourceManager to start instead of fail</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3041">MAPREDUCE-3041</a>.
     Blocker bug reported by Hitesh Shah and fixed by Hitesh Shah (mrv2)<br>
     <b>Enhance YARN Client-RM protocol to provide access to information such as cluster's Min/Max Resource capabilities similar to that of AM-RM protocol</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3040">MAPREDUCE-3040</a>.
     Major bug reported by Thomas Graves and fixed by Arun C Murthy (mrv2)<br>
     <b>TestMRJobs, TestMRJobsWithHistoryService, TestMROldApiJobs fail</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3038">MAPREDUCE-3038</a>.
     Blocker bug reported by Thomas Graves and fixed by Jeffrey Naisbitt (mrv2)<br>
     <b>job history server not starting because conf() missing HsController</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3036">MAPREDUCE-3036</a>.
     Blocker bug reported by Robert Joseph Evans and fixed by Robert Joseph Evans (mrv2)<br>
     <b>Some of the Resource Manager memory metrics go negative.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3035">MAPREDUCE-3035</a>.
     Critical bug reported by Karam Singh and fixed by chackaravarthy (mrv2)<br>
     <b>MR V2 jobhistory does not contain rack information</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3033">MAPREDUCE-3033</a>.
     Blocker bug reported by Karam Singh and fixed by Hitesh Shah (job submission , mrv2)<br>
     <b>JobClient requires mapreduce.jobtracker.address config even when mapreduce.framework.name is set to yarn</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3032">MAPREDUCE-3032</a>.
     Blocker bug reported by Vinod Kumar Vavilapalli and fixed by Devaraj K (applicationmaster , mrv2)<br>
     <b>JobHistory doesn't have error information from failed tasks</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3031">MAPREDUCE-3031</a>.
     Blocker bug reported by Karam Singh and fixed by Siddharth Seth (mrv2)<br>
     <b>Job Client goes into infinite loop when we kill AM</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3030">MAPREDUCE-3030</a>.
     Blocker bug reported by Devaraj K and fixed by Devaraj K (mrv2 , resourcemanager)<br>
     <b>RM is not processing heartbeat and continuously giving the message 'Node not found rebooting'</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3028">MAPREDUCE-3028</a>.
     Blocker bug reported by Mohammad Kamrul Islam and fixed by Ravi Prakash (mrv2)<br>
     <b>Support job end notification in .next /0.23</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3023">MAPREDUCE-3023</a>.
     Major bug reported by Ravi Prakash and fixed by Ravi Prakash (mrv2)<br>
     <b>Queue state is not being translated properly (is always assumed to be running)</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3021">MAPREDUCE-3021</a>.
     Major bug reported by Thomas Graves and fixed by Thomas Graves (mrv2)<br>
     <b>all yarn webapps use same base name of "yarn/"</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3020">MAPREDUCE-3020</a>.
     Major bug reported by chackaravarthy and fixed by chackaravarthy (jobhistoryserver)<br>
     <b>Node link in reduce task attempt page is not working [Job History Page]</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3018">MAPREDUCE-3018</a>.
     Blocker bug reported by Mahadev konar and fixed by Mahadev konar (mrv2)<br>
     <b>Streaming jobs with -file option fail to run.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3017">MAPREDUCE-3017</a>.
     Blocker bug reported by Mahadev konar and fixed by Mahadev konar (mrv2)<br>
     <b>The Web UI shows FINISHED for killed/successful/failed jobs.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3014">MAPREDUCE-3014</a>.
     Major improvement reported by Alejandro Abdelnur and fixed by Alejandro Abdelnur (build)<br>
     <b>Rename and invert logic of '-cbuild' profile to 'native' and off by default</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3013">MAPREDUCE-3013</a>.
     Major sub-task reported by Vinod Kumar Vavilapalli and fixed by Vinod Kumar Vavilapalli (mrv2 , security)<br>
     <b>Remove YarnConfiguration.YARN_SECURITY_INFO</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3007">MAPREDUCE-3007</a>.
     Major sub-task reported by Vinod Kumar Vavilapalli and fixed by Vinod Kumar Vavilapalli (jobhistoryserver , mrv2)<br>
     <b>JobClient cannot talk to JobHistory server in secure mode</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3006">MAPREDUCE-3006</a>.
     Major bug reported by Vinod Kumar Vavilapalli and fixed by Vinod Kumar Vavilapalli (applicationmaster , mrv2)<br>
     <b>MapReduce AM exits prematurely before completely writing and closing the JobHistory file</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3005">MAPREDUCE-3005</a>.
     Major bug reported by Vinod Kumar Vavilapalli and fixed by Arun C Murthy (mrv2)<br>
     <b>MR app hangs because of a NPE in ResourceManager</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3004">MAPREDUCE-3004</a>.
     Minor bug reported by Hitesh Shah and fixed by Hitesh Shah (mrv2)<br>
     <b>sort example fails in shuffle/reduce stage as it assumes a local job by default </b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3003">MAPREDUCE-3003</a>.
     Major bug reported by Tom White and fixed by Alejandro Abdelnur (build)<br>
     <b>Publish MR JARs to Maven snapshot repository</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3001">MAPREDUCE-3001</a>.
     Blocker improvement reported by Robert Joseph Evans and fixed by Robert Joseph Evans (jobhistoryserver , mrv2)<br>
     <b>Map Reduce JobHistory and AppMaster UI should have ability to display task specific counters.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2999">MAPREDUCE-2999</a>.
     Critical bug reported by Thomas Graves and fixed by Thomas Graves (mrv2)<br>
     <b>hadoop.http.filter.initializers not working properly on yarn UI</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2998">MAPREDUCE-2998</a>.
     Critical bug reported by Jeffrey Naisbitt and fixed by Vinod Kumar Vavilapalli (mrv2)<br>
     <b>Failing to contact Am/History for jobs: java.io.EOFException in DataInputStream</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2997">MAPREDUCE-2997</a>.
     Major bug reported by Vinod Kumar Vavilapalli and fixed by Vinod Kumar Vavilapalli (applicationmaster , mrv2)<br>
     <b>MR task fails before launch itself with an NPE in ContainerLauncher</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2996">MAPREDUCE-2996</a>.
     Blocker bug reported by Vinod Kumar Vavilapalli and fixed by Jonathan Eagles (jobhistoryserver , mrv2)<br>
     <b>Log uberized information into JobHistory and use the same via CompletedJob</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2995">MAPREDUCE-2995</a>.
     Major bug reported by Vinod Kumar Vavilapalli and fixed by Vinod Kumar Vavilapalli (mrv2)<br>
     <b>MR AM crashes when a container-launch hangs on a faulty NM</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2994">MAPREDUCE-2994</a>.
     Major bug reported by Devaraj K and fixed by Devaraj K (mrv2 , resourcemanager)<br>
     <b>Parse Error is coming for App ID when we click application link on the RM UI</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2991">MAPREDUCE-2991</a>.
     Major bug reported by Priyo Mustafi and fixed by Priyo Mustafi (scheduler)<br>
     <b>queueinfo.jsp fails to show queue status if any Capacity scheduler queue name has dash/hiphen in it.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2990">MAPREDUCE-2990</a>.
     Blocker improvement reported by Mahadev konar and fixed by Subroto Sanyal (mrv2)<br>
     <b>Health Report on Resource Manager UI is null if the NM's are all healthy.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2989">MAPREDUCE-2989</a>.
     Critical sub-task reported by Siddharth Seth and fixed by Siddharth Seth (mrv2)<br>
     <b>JobHistory should link to task logs</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2988">MAPREDUCE-2988</a>.
     Critical sub-task reported by Eric Payne and fixed by Robert Joseph Evans (mrv2 , security , test)<br>
     <b>Reenable TestLinuxContainerExecutor reflecting the current NM code. </b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2987">MAPREDUCE-2987</a>.
     Major bug reported by Thomas Graves and fixed by Thomas Graves (mrv2)<br>
     <b>RM UI display logged in user as null</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2986">MAPREDUCE-2986</a>.
     Critical task reported by Anupam Seth and fixed by Anupam Seth (mrv2 , test)<br>
     <b>Multiple node managers support for the MiniYARNCluster</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2985">MAPREDUCE-2985</a>.
     Major bug reported by Thomas Graves and fixed by Thomas Graves (mrv2)<br>
     <b>findbugs error in ResourceLocalizationService.handle(LocalizationEvent)</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2984">MAPREDUCE-2984</a>.
     Minor bug reported by Devaraj K and fixed by Devaraj K (mrv2 , nodemanager)<br>
     <b>Throwing NullPointerException when we open the container page</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2979">MAPREDUCE-2979</a>.
     Major bug reported by Siddharth Seth and fixed by Siddharth Seth (mrv2)<br>
     <b>Remove ClientProtocolProvider configuration under mapreduce-client-core</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2977">MAPREDUCE-2977</a>.
     Blocker sub-task reported by Owen O'Malley and fixed by Arun C Murthy (mrv2 , resourcemanager , security)<br>
     <b>ResourceManager needs to renew and cancel tokens associated with a job</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2975">MAPREDUCE-2975</a>.
     Blocker bug reported by Mahadev konar and fixed by Mahadev konar <br>
     <b>ResourceManager Delegate is not getting initialized with yarn-site.xml as default configuration.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2971">MAPREDUCE-2971</a>.
     Blocker bug reported by Thomas Graves and fixed by Thomas Graves (mrv2)<br>
     <b>ant build mapreduce fails  protected access  jc.displayJobList(jobs);</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2970">MAPREDUCE-2970</a>.
     Major bug reported by Venu Gopala Rao and fixed by Venu Gopala Rao (job submission , mrv2)<br>
     <b>Null Pointer Exception while submitting a Job, If mapreduce.framework.name property is not set.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2966">MAPREDUCE-2966</a>.
     Major improvement reported by Abhijit Suresh Shingate and fixed by Abhijit Suresh Shingate (applicationmaster , jobhistoryserver , nodemanager , resourcemanager)<br>
     <b>Add ShutDown hooks for MRV2 processes</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2965">MAPREDUCE-2965</a>.
     Blocker bug reported by Vinod Kumar Vavilapalli and fixed by Siddharth Seth (mrv2)<br>
     <b>Streamline hashCode(), equals(), compareTo() and toString() for all IDs</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2963">MAPREDUCE-2963</a>.
     Critical bug reported by Mahadev konar and fixed by Siddharth Seth <br>
     <b>TestMRJobs hangs waiting to connect to history server.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2961">MAPREDUCE-2961</a>.
     Blocker improvement reported by Mahadev konar and fixed by Vinod Kumar Vavilapalli (mrv2)<br>
     <b>Increase the default threadpool size for container launching in the application master.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2958">MAPREDUCE-2958</a>.
     Critical bug reported by Thomas Graves and fixed by Arun C Murthy (mrv2)<br>
     <b>mapred-default.xml not merged from mr279</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2954">MAPREDUCE-2954</a>.
     Critical bug reported by Vinod Kumar Vavilapalli and fixed by Siddharth Seth (mrv2)<br>
     <b>Deadlock in NM with threads racing for ApplicationAttemptId</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2953">MAPREDUCE-2953</a>.
     Major bug reported by Vinod Kumar Vavilapalli and fixed by Thomas Graves (mrv2 , resourcemanager)<br>
     <b>JobClient fails due to a race in RM, removes staged files and in turn crashes MR AM</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2952">MAPREDUCE-2952</a>.
     Blocker bug reported by Vinod Kumar Vavilapalli and fixed by Arun C Murthy (mrv2 , resourcemanager)<br>
     <b>Application failure diagnostics are not consumed in a couple of cases</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2949">MAPREDUCE-2949</a>.
     Major bug reported by Ravi Teja Ch N V and fixed by Ravi Teja Ch N V (mrv2 , nodemanager)<br>
     <b>NodeManager in a inconsistent state if a service startup fails.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2948">MAPREDUCE-2948</a>.
     Major bug reported by Milind Bhandarkar and fixed by Mahadev konar (contrib/streaming)<br>
     <b>Hadoop streaming test failure, post MR-2767</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2947">MAPREDUCE-2947</a>.
     Major bug reported by Vinod Kumar Vavilapalli and fixed by Vinod Kumar Vavilapalli (mrv2)<br>
     <b>Sort fails on YARN+MR with lots of task failures</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2938">MAPREDUCE-2938</a>.
     Trivial bug reported by Arun C Murthy and fixed by Arun C Murthy (mrv2 , scheduler)<br>
     <b>Missing log stmt for app submission fail CS</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2937">MAPREDUCE-2937</a>.
     Critical bug reported by Mahadev konar and fixed by Mahadev konar (mrv2)<br>
     <b>Errors in Application failures are not shown in the client trace.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2936">MAPREDUCE-2936</a>.
     Major bug reported by Vinod Kumar Vavilapalli and fixed by Vinod Kumar Vavilapalli <br>
     <b>Contrib Raid compilation broken after HDFS-1620</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2933">MAPREDUCE-2933</a>.
     Blocker sub-task reported by Arun C Murthy and fixed by Arun C Murthy (applicationmaster , mrv2 , nodemanager , resourcemanager)<br>
     <b>Change allocate call to return ContainerStatus for completed containers rather than Container </b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2930">MAPREDUCE-2930</a>.
     Major improvement reported by Sharad Agarwal and fixed by Binglin Chang (mrv2)<br>
     <b>Generate state graph from the State Machine Definition</b><br>
     <blockquote>Generate state graph from State Machine Definition</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2925">MAPREDUCE-2925</a>.
     Major bug reported by Devaraj K and fixed by Devaraj K (mrv2)<br>
     <b>job -status &lt;JOB_ID&gt; is giving continuously info message for completed jobs on the console</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2917">MAPREDUCE-2917</a>.
     Major bug reported by Arun C Murthy and fixed by Arun C Murthy (mrv2 , resourcemanager)<br>
     <b>Corner case in container reservations</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2916">MAPREDUCE-2916</a>.
     Major bug reported by Mahadev konar and fixed by Mahadev konar <br>
     <b>Ivy build for MRv1 fails with bad organization for common daemon.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2913">MAPREDUCE-2913</a>.
     Critical bug reported by Robert Joseph Evans and fixed by Jonathan Eagles (mrv2 , test)<br>
     <b>TestMRJobs.testFailingMapper does not assert the correct thing.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2909">MAPREDUCE-2909</a>.
     Major sub-task reported by Arun C Murthy and fixed by Arun C Murthy (documentation , mrv2)<br>
     <b>Docs for remaining records in yarn-api</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2908">MAPREDUCE-2908</a>.
     Critical bug reported by Mahadev konar and fixed by Vinod Kumar Vavilapalli (mrv2)<br>
     <b>Fix findbugs warnings in Map Reduce.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2907">MAPREDUCE-2907</a>.
     Major bug reported by Ravi Prakash and fixed by Ravi Prakash (mrv2 , resourcemanager)<br>
     <b>ResourceManager logs filled with [INFO] debug messages from org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.ParentQueue</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2904">MAPREDUCE-2904</a>.
     Major bug reported by Sharad Agarwal and fixed by Sharad Agarwal <br>
     <b>HDFS jars added incorrectly to yarn classpath</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2899">MAPREDUCE-2899</a>.
     Major sub-task reported by Arun C Murthy and fixed by Arun C Murthy (mrv2 , resourcemanager)<br>
     <b>Replace major parts of ApplicationSubmissionContext with a ContainerLaunchContext</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2898">MAPREDUCE-2898</a>.
     Major sub-task reported by Arun C Murthy and fixed by Arun C Murthy (documentation , mrv2)<br>
     <b>Docs for core protocols in yarn-api - ContainerManager</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2897">MAPREDUCE-2897</a>.
     Major sub-task reported by Arun C Murthy and fixed by Arun C Murthy (documentation , mrv2)<br>
     <b>Docs for core protocols in yarn-api - ClientRMProtocol</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2896">MAPREDUCE-2896</a>.
     Major sub-task reported by Arun C Murthy and fixed by Arun C Murthy (mrv2)<br>
     <b>Remove all apis other than getters and setters in all org/apache/hadoop/yarn/api/records/*</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2894">MAPREDUCE-2894</a>.
     Blocker improvement reported by Arun C Murthy and fixed by  (mrv2)<br>
     <b>Improvements to YARN apis</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2893">MAPREDUCE-2893</a>.
     Trivial improvement reported by Liang-Chi Hsieh and fixed by Liang-Chi Hsieh (client)<br>
     <b>Removing duplicate service provider in hadoop-mapreduce-client-jobclient</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2891">MAPREDUCE-2891</a>.
     Major sub-task reported by Arun C Murthy and fixed by Arun C Murthy (documentation , mrv2)<br>
     <b>Docs for core protocols in yarn-api - AMRMProtocol</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2889">MAPREDUCE-2889</a>.
     Critical sub-task reported by Arun C Murthy and fixed by Hitesh Shah (documentation , mrv2)<br>
     <b>Add docs for writing new application frameworks</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2886">MAPREDUCE-2886</a>.
     Critical bug reported by Mahadev konar and fixed by Mahadev konar (mrv2)<br>
     <b>Fix Javadoc warnings in MapReduce.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2885">MAPREDUCE-2885</a>.
     Blocker bug reported by Arun C Murthy and fixed by Arun C Murthy <br>
     <b>mapred-config.sh doesn't look for $HADOOP_COMMON_HOME/libexec/hadoop-config.sh</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2882">MAPREDUCE-2882</a>.
     Minor bug reported by Todd Lipcon and fixed by Todd Lipcon (test)<br>
     <b>TestLineRecordReader depends on ant jars</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2881">MAPREDUCE-2881</a>.
     Major bug reported by Giridharan Kesavan and fixed by Giridharan Kesavan (build)<br>
     <b>mapreduce ant compilation fails "java.lang.IllegalStateException: impossible to get artifacts"</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2880">MAPREDUCE-2880</a>.
     Blocker improvement reported by Luke Lu and fixed by Arun C Murthy (mrv2)<br>
     <b>Fix classpath construction for MRv2</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2879">MAPREDUCE-2879</a>.
     Major bug reported by Arun C Murthy and fixed by Arun C Murthy <br>
     <b>Change mrv2 version to be 0.23.0-SNAPSHOT</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2877">MAPREDUCE-2877</a>.
     Major bug reported by Mahadev konar and fixed by Mahadev konar <br>
     <b>Add missing Apache license header in some files in MR and also add the rat plugin to the poms.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2876">MAPREDUCE-2876</a>.
     Critical bug reported by Robert Joseph Evans and fixed by Anupam Seth (mrv2)<br>
     <b>ContainerAllocationExpirer appears to use the incorrect configs</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2874">MAPREDUCE-2874</a>.
     Major bug reported by Thomas Graves and fixed by Eric Payne (mrv2)<br>
     <b>ApplicationId printed in 2 different formats and has 2 different toString routines that are used</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2868">MAPREDUCE-2868</a>.
     Major bug reported by Thomas Graves and fixed by Mahadev konar (build)<br>
     <b>ant build broken in hadoop-mapreduce dir</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2867">MAPREDUCE-2867</a>.
     Major bug reported by Mahadev konar and fixed by Mahadev konar <br>
     <b>Remove Unused TestApplicaitonCleanup in resourcemanager/applicationsmanager.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2864">MAPREDUCE-2864</a>.
     Major improvement reported by Robert Joseph Evans and fixed by Robert Joseph Evans (jobhistoryserver , mrv2 , nodemanager , resourcemanager)<br>
     <b>Renaming of configuration property names in yarn</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2860">MAPREDUCE-2860</a>.
     Major bug reported by Mahadev konar and fixed by Mahadev konar (mrv2)<br>
     <b>Fix log4j logging in the maven test cases.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2859">MAPREDUCE-2859</a>.
     Major bug reported by Giridharan Kesavan and fixed by Giridharan Kesavan <br>
     <b>mapreduce trunk is broken with eclipse plugin contrib</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2858">MAPREDUCE-2858</a>.
     Blocker sub-task reported by Luke Lu and fixed by Robert Joseph Evans (applicationmaster , mrv2 , security)<br>
     <b>MRv2 WebApp Security</b><br>
     <blockquote>A new server has been added to yarn.  It is a web proxy that sits in front of the AM web UI.  The server is controlled by the yarn.web-proxy.address config.  If that config is set, and it points to an address that is different then the RM web interface then a separate proxy server needs to be launched.

This can be done by running 

yarn-daemon.sh start proxyserver

If a separate proxy server is needed other configs also may need to be set, if security is enabled.
yarn.web-proxy.principal
yarn.web-proxy.keytab

The proxy server is stateless and should be able to support a VIP or other load balancing sitting in front of multiple instances of this server.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2854">MAPREDUCE-2854</a>.
     Major bug reported by Thomas Graves and fixed by Thomas Graves <br>
     <b>update INSTALL with config necessary run mapred on yarn</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2848">MAPREDUCE-2848</a>.
     Major improvement reported by Luke Lu and fixed by Luke Lu <br>
     <b>Upgrade avro to 1.5.2</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2846">MAPREDUCE-2846</a>.
     Blocker bug reported by Allen Wittenauer and fixed by Owen O'Malley (task , task-controller , tasktracker)<br>
     <b>a small % of all tasks fail with DefaultTaskController</b><br>
     <blockquote>Fixed a race condition in writing the log index file that caused tasks to 'fail'.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2844">MAPREDUCE-2844</a>.
     Trivial bug reported by Ramya Sunil and fixed by Ravi Teja Ch N V (mrv2)<br>
     <b>[MR-279] Incorrect node ID info </b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2843">MAPREDUCE-2843</a>.
     Major bug reported by Ramya Sunil and fixed by Abhijit Suresh Shingate (mrv2)<br>
     <b>[MR-279] Node entries on the RM UI are not sortable</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2840">MAPREDUCE-2840</a>.
     Minor bug reported by Thomas Graves and fixed by Jonathan Eagles (mrv2)<br>
     <b>mr279 TestUberAM.testSleepJob test fails</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2839">MAPREDUCE-2839</a>.
     Major bug reported by Siddharth Seth and fixed by Siddharth Seth <br>
     <b>MR Jobs fail on a secure cluster with viewfs</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2821">MAPREDUCE-2821</a>.
     Blocker bug reported by Ramya Sunil and fixed by Mahadev konar (mrv2)<br>
     <b>[MR-279] Missing fields in job summary logs </b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2808">MAPREDUCE-2808</a>.
     Minor bug reported by Thomas Graves and fixed by Thomas Graves (mrv2)<br>
     <b>pull MAPREDUCE-2797 into mr279 branch</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2807">MAPREDUCE-2807</a>.
     Major sub-task reported by Sharad Agarwal and fixed by Sharad Agarwal (applicationmaster , mrv2 , resourcemanager)<br>
     <b>MR-279: AM restart does not work after RM refactor</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2805">MAPREDUCE-2805</a>.
     Minor improvement reported by Tsz Wo (Nicholas), SZE and fixed by Tsz Wo (Nicholas), SZE (contrib/raid)<br>
     <b>Update RAID for HDFS-2241</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2802">MAPREDUCE-2802</a>.
     Critical improvement reported by Ramya Sunil and fixed by Jonathan Eagles (mrv2)<br>
     <b>[MR-279] Jobhistory filenames should have jobID to help in better parsing </b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2800">MAPREDUCE-2800</a>.
     Major bug reported by Ramya Sunil and fixed by Siddharth Seth (mrv2)<br>
     <b>clockSplits, cpuUsages, vMemKbytes, physMemKbytes is set to -1 in jhist files</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2797">MAPREDUCE-2797</a>.
     Major bug reported by Tsz Wo (Nicholas), SZE and fixed by Tsz Wo (Nicholas), SZE (contrib/raid , test)<br>
     <b>Some java files cannot be compiled</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2796">MAPREDUCE-2796</a>.
     Major bug reported by Ramya Sunil and fixed by Devaraj K (mrv2)<br>
     <b>[MR-279] Start time for all the apps is set to 0</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2794">MAPREDUCE-2794</a>.
     Blocker bug reported by Ramya Sunil and fixed by John George (mrv2)<br>
     <b>[MR-279] Incorrect metrics value for AvailableGB per queue per user</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2792">MAPREDUCE-2792</a>.
     Blocker sub-task reported by Ramya Sunil and fixed by Vinod Kumar Vavilapalli (mrv2 , security)<br>
     <b>[MR-279] Replace IP addresses with hostnames</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2791">MAPREDUCE-2791</a>.
     Blocker bug reported by Ramya Sunil and fixed by Devaraj K (mrv2)<br>
     <b>[MR-279] Missing/incorrect info on job -status CLI </b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2789">MAPREDUCE-2789</a>.
     Major bug reported by Ramya Sunil and fixed by Eric Payne (mrv2)<br>
     <b>[MR:279] Update the scheduling info on CLI</b><br>
     <blockquote>"mapred/job -list" now contains map/reduce, container, and resource information.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2788">MAPREDUCE-2788</a>.
     Major bug reported by Ahmed Radwan and fixed by Ahmed Radwan (mrv2)<br>
     <b>Normalize requests in FifoScheduler.allocate to prevent NPEs later</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2783">MAPREDUCE-2783</a>.
     Critical bug reported by Thomas Graves and fixed by Eric Payne (mrv2)<br>
     <b>mr279 job history handling after killing application</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2782">MAPREDUCE-2782</a>.
     Major test reported by Arun C Murthy and fixed by Arun C Murthy (mrv2)<br>
     <b>MR-279: Unit (mockito) tests for CS</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2781">MAPREDUCE-2781</a>.
     Minor bug reported by Thomas Graves and fixed by Thomas Graves (mrv2)<br>
     <b>mr279 RM application finishtime not set</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2779">MAPREDUCE-2779</a>.
     Major bug reported by Ming Ma and fixed by Ming Ma (job submission)<br>
     <b>JobSplitWriter.java can't handle large job.split file</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2776">MAPREDUCE-2776</a>.
     Major bug reported by Siddharth Seth and fixed by Siddharth Seth (mrv2)<br>
     <b>MR 279: Fix some of the yarn findbug warnings</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2775">MAPREDUCE-2775</a>.
     Blocker bug reported by Ramya Sunil and fixed by Devaraj K (mrv2)<br>
     <b>[MR-279] Decommissioned node does not shutdown</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2774">MAPREDUCE-2774</a>.
     Minor bug reported by Ramya Sunil and fixed by Venu Gopala Rao (mrv2)<br>
     <b>[MR-279] Add a startup msg while starting RM/NM</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2773">MAPREDUCE-2773</a>.
     Minor bug reported by Thomas Graves and fixed by Thomas Graves (mrv2)<br>
     <b>[MR-279] server.api.records.NodeHealthStatus renamed but not updated in client NodeHealthStatus.java</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2772">MAPREDUCE-2772</a>.
     Major bug reported by Robert Joseph Evans and fixed by Robert Joseph Evans (mrv2)<br>
     <b>MR-279: mrv2 no longer compiles against trunk after common mavenization.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2767">MAPREDUCE-2767</a>.
     Blocker bug reported by Milind Bhandarkar and fixed by Milind Bhandarkar (security)<br>
     <b>Remove Linux task-controller from 0.22 branch</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2766">MAPREDUCE-2766</a>.
     Blocker sub-task reported by Ramya Sunil and fixed by Hitesh Shah (mrv2)<br>
     <b>[MR-279] Set correct permissions for files in dist cache</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2764">MAPREDUCE-2764</a>.
     Major bug reported by Daryn Sharp and fixed by Owen O'Malley <br>
     <b>Fix renewal of dfs delegation tokens</b><br>
     <blockquote>Generalizes token renewal and canceling to a common interface and provides a plugin interface for adding renewers for new kinds of tokens. Hftp changed to store the tokens as HFTP and renew them over http.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2763">MAPREDUCE-2763</a>.
     Major bug reported by Ramya Sunil and fixed by  (mrv2)<br>
     <b>IllegalArgumentException while using the dist cache</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2762">MAPREDUCE-2762</a>.
     Blocker bug reported by Ramya Sunil and fixed by Mahadev konar (mrv2)<br>
     <b>[MR-279] - Cleanup staging dir after job completion</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2760">MAPREDUCE-2760</a>.
     Minor bug reported by Todd Lipcon and fixed by Todd Lipcon (documentation)<br>
     <b>mapreduce.jobtracker.split.metainfo.maxsize typoed in mapred-default.xml</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2756">MAPREDUCE-2756</a>.
     Minor bug reported by Robert Joseph Evans and fixed by Robert Joseph Evans (client , mrv2)<br>
     <b>JobControl can drop jobs if an error occurs</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2754">MAPREDUCE-2754</a>.
     Blocker bug reported by Ramya Sunil and fixed by Ravi Teja Ch N V (mrv2)<br>
     <b>MR-279: AM logs are incorrectly going to stderr and error messages going incorrectly to stdout</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2751">MAPREDUCE-2751</a>.
     Blocker bug reported by Vinod Kumar Vavilapalli and fixed by Siddharth Seth (mrv2)<br>
     <b>[MR-279] Lot of local files left on NM after the app finish.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2749">MAPREDUCE-2749</a>.
     Major bug reported by Vinod Kumar Vavilapalli and fixed by Thomas Graves (mrv2)<br>
     <b>[MR-279] NM registers with RM even before it starts various servers</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2747">MAPREDUCE-2747</a>.
     Blocker sub-task reported by Vinod Kumar Vavilapalli and fixed by Robert Joseph Evans (mrv2 , nodemanager , security)<br>
     <b>[MR-279] [Security] Cleanup LinuxContainerExecutor binary sources</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2746">MAPREDUCE-2746</a>.
     Blocker sub-task reported by Vinod Kumar Vavilapalli and fixed by Arun C Murthy (mrv2 , security)<br>
     <b>[MR-279] [Security] Yarn servers can't communicate with each other with hadoop.security.authorization set to true</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2741">MAPREDUCE-2741</a>.
     Major task reported by Alejandro Abdelnur and fixed by Alejandro Abdelnur (build)<br>
     <b>Make ant build system work with hadoop-common JAR generated by Maven</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2740">MAPREDUCE-2740</a>.
     Major bug reported by Todd Lipcon and fixed by Todd Lipcon <br>
     <b>MultipleOutputs in new API creates needless TaskAttemptContexts</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2738">MAPREDUCE-2738</a>.
     Blocker bug reported by Ramya Sunil and fixed by Robert Joseph Evans (mrv2)<br>
     <b>Missing cluster level stats on the RM UI</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2737">MAPREDUCE-2737</a>.
     Major bug reported by Ramya Sunil and fixed by Siddharth Seth (mrv2)<br>
     <b>Update the progress of jobs on client side</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2736">MAPREDUCE-2736</a>.
     Major task reported by Eli Collins and fixed by Eli Collins (jobtracker , tasktracker)<br>
     <b>Remove unused contrib components dependent on MR1</b><br>
     <blockquote>The pre-MR2 MapReduce implementation (JobTracker, TaskTracer, etc) and contrib components are no longer supported. This implementation is currently supported in the 0.20.20x releases.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2735">MAPREDUCE-2735</a>.
     Major bug reported by Thomas Graves and fixed by Thomas Graves (mrv2)<br>
     <b>MR279: finished applications should be added to an application summary log</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2732">MAPREDUCE-2732</a>.
     Major bug reported by Tsz Wo (Nicholas), SZE and fixed by Tsz Wo (Nicholas), SZE (test)<br>
     <b>Some tests using FSNamesystem.LOG cannot be compiled</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2727">MAPREDUCE-2727</a>.
     Major bug reported by Jeffrey Naisbitt and fixed by Jeffrey Naisbitt (mrv2)<br>
     <b>MR-279: SleepJob throws divide by zero exception when count = 0</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2726">MAPREDUCE-2726</a>.
     Blocker improvement reported by Jeffrey Naisbitt and fixed by Jeffrey Naisbitt (mrv2)<br>
     <b>MR-279: Add the jobFile to the web UI</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2719">MAPREDUCE-2719</a>.
     Major new feature reported by Sharad Agarwal and fixed by Hitesh Shah (mrv2)<br>
     <b>MR-279: Write a shell command application</b><br>
     <blockquote>Adding a simple, DistributedShell application as an alternate framework to MapReduce and to act as an illustrative example for porting applications to YARN.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2716">MAPREDUCE-2716</a>.
     Major bug reported by Jeffrey Naisbitt and fixed by Jeffrey Naisbitt (mrv2)<br>
     <b>MR279: MRReliabilityTest job fails because of missing job-file.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2711">MAPREDUCE-2711</a>.
     Major bug reported by Tsz Wo (Nicholas), SZE and fixed by Tsz Wo (Nicholas), SZE (contrib/raid)<br>
     <b>TestBlockPlacementPolicyRaid cannot be compiled</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2710">MAPREDUCE-2710</a>.
     Major bug reported by Tsz Wo (Nicholas), SZE and fixed by Tsz Wo (Nicholas), SZE (client)<br>
     <b>Update DFSClient.stringifyToken(..) in JobSubmitter.printTokens(..) for HDFS-2161</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2708">MAPREDUCE-2708</a>.
     Blocker sub-task reported by Sharad Agarwal and fixed by Sharad Agarwal (applicationmaster , mrv2)<br>
     <b>[MR-279] Design and implement MR Application Master recovery</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2707">MAPREDUCE-2707</a>.
     Major improvement reported by Jitendra Nath Pandey and fixed by Jitendra Nath Pandey <br>
     <b>ProtoOverHadoopRpcEngine without using TunnelProtocol over WritableRpc</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2706">MAPREDUCE-2706</a>.
     Major bug reported by Jeffrey Naisbitt and fixed by Jeffrey Naisbitt (mrv2)<br>
     <b>MR-279: Submit jobs beyond the max jobs per queue limit no longer gets logged</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2705">MAPREDUCE-2705</a>.
     Major bug reported by Thomas Graves and fixed by Thomas Graves (tasktracker)<br>
     <b>tasks localized and launched serially by TaskLauncher - causing other tasks to be delayed</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2702">MAPREDUCE-2702</a>.
     Blocker sub-task reported by Sharad Agarwal and fixed by Sharad Agarwal (applicationmaster , mrv2)<br>
     <b>[MR-279] OutputCommitter changes for MR Application Master recovery</b><br>
     <blockquote>Enhance OutputCommitter and FileOutputCommitter to allow for recover of tasks across job restart.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2701">MAPREDUCE-2701</a>.
     Major improvement reported by Robert Joseph Evans and fixed by Robert Joseph Evans (mrv2)<br>
     <b>MR-279: app/Job.java needs UGI for the user that launched it</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2697">MAPREDUCE-2697</a>.
     Major bug reported by Arun C Murthy and fixed by Arun C Murthy (mrv2)<br>
     <b>Enhance CS to cap concurrently running jobs</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2696">MAPREDUCE-2696</a>.
     Major sub-task reported by Arun C Murthy and fixed by Siddharth Seth (mrv2 , nodemanager)<br>
     <b>Container logs aren't getting cleaned up when LogAggregation is disabled</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2693">MAPREDUCE-2693</a>.
     Critical bug reported by Amol Kekre and fixed by Hitesh Shah (mrv2)<br>
     <b>NPE in AM causes it to lose containers which are never returned back to RM</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2692">MAPREDUCE-2692</a>.
     Major new feature reported by Amol Kekre and fixed by Sharad Agarwal (mrv2)<br>
     <b>Ensure AM Restart and Recovery-on-restart is complete</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2691">MAPREDUCE-2691</a>.
     Major improvement reported by Amol Kekre and fixed by Siddharth Seth (mrv2)<br>
     <b>Finish up the cleanup of distributed cache file resources and related tests.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2690">MAPREDUCE-2690</a>.
     Major bug reported by Ramya Sunil and fixed by Eric Payne (mrv2)<br>
     <b>Construct the web page for default scheduler</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2689">MAPREDUCE-2689</a>.
     Major bug reported by Ramya Sunil and fixed by  (mrv2)<br>
     <b>InvalidStateTransisiton when AM is not assigned to a job</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2687">MAPREDUCE-2687</a>.
     Blocker bug reported by Ramya Sunil and fixed by Mahadev konar (mrv2)<br>
     <b>Non superusers unable to launch apps in both secure and non-secure cluster</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2682">MAPREDUCE-2682</a>.
     Trivial improvement reported by Arun C Murthy and fixed by Vinod Kumar Vavilapalli <br>
     <b>Add a -classpath option to bin/mapred</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2680">MAPREDUCE-2680</a>.
     Minor improvement reported by Arun C Murthy and fixed by Arun C Murthy <br>
     <b>Enhance job-client cli to show queue information for running jobs</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2679">MAPREDUCE-2679</a>.
     Trivial improvement reported by Arun C Murthy and fixed by Arun C Murthy <br>
     <b>MR-279: Merge MR-279 related minor patches into trunk</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2678">MAPREDUCE-2678</a>.
     Major bug reported by Jeffrey Naisbitt and fixed by Jeffrey Naisbitt (capacity-sched)<br>
     <b>MR-279: minimum-user-limit-percent no longer honored</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2677">MAPREDUCE-2677</a>.
     Major bug reported by Ramya Sunil and fixed by Robert Joseph Evans (mrv2)<br>
     <b>MR-279: 404 error while accessing pages from history server</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2676">MAPREDUCE-2676</a>.
     Major improvement reported by Robert Joseph Evans and fixed by Robert Joseph Evans (mrv2)<br>
     <b>MR-279: JobHistory Job page needs reformatted</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2675">MAPREDUCE-2675</a>.
     Major improvement reported by Robert Joseph Evans and fixed by Robert Joseph Evans (mrv2)<br>
     <b>MR-279: JobHistory Server main page needs to be reformatted</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2672">MAPREDUCE-2672</a>.
     Major improvement reported by Robert Joseph Evans and fixed by Robert Joseph Evans (mrv2)<br>
     <b>MR-279: JobHistory Server needs Analysis this job</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2670">MAPREDUCE-2670</a>.
     Trivial bug reported by Eli Collins and fixed by Eli Collins <br>
     <b>Fixing spelling mistake in FairSchedulerServlet.java</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2668">MAPREDUCE-2668</a>.
     Blocker bug reported by Robert Joseph Evans and fixed by Thomas Graves (mrv2)<br>
     <b>MR-279: APPLICATION_STOP is never sent to AuxServices</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2667">MAPREDUCE-2667</a>.
     Major bug reported by Thomas Graves and fixed by Thomas Graves (mrv2)<br>
     <b>MR279: mapred job -kill leaves application in RUNNING state</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2666">MAPREDUCE-2666</a>.
     Blocker sub-task reported by Robert Joseph Evans and fixed by Jonathan Eagles (mrv2)<br>
     <b>MR-279: Need to retrieve shuffle port number on ApplicationMaster restart</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2664">MAPREDUCE-2664</a>.
     Major improvement reported by Siddharth Seth and fixed by Siddharth Seth (mrv2)<br>
     <b>MR 279: Implement JobCounters for MRv2 + Fix for Map Data Locality</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2663">MAPREDUCE-2663</a>.
     Minor bug reported by Ahmed Radwan and fixed by Ahmed Radwan (mrv2)<br>
     <b>MR-279: Refactoring StateMachineFactory inner classes</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2661">MAPREDUCE-2661</a>.
     Minor bug reported by Ahmed Radwan and fixed by Ahmed Radwan (mrv2)<br>
     <b>MR-279: Accessing MapTaskImpl from TaskImpl</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2655">MAPREDUCE-2655</a>.
     Major bug reported by Thomas Graves and fixed by Thomas Graves (mrv2)<br>
     <b>MR279: Audit logs for YARN </b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2649">MAPREDUCE-2649</a>.
     Major bug reported by Thomas Graves and fixed by Thomas Graves (mrv2)<br>
     <b>MR279: Fate of finished Applications on RM</b><br>
     <blockquote>New config added:

   // the maximum number of completed applications the RM keeps &lt;name&gt;yarn.server.resourcemanager.expire.applications.completed.max&lt;/name&gt;</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2646">MAPREDUCE-2646</a>.
     Critical bug reported by Sharad Agarwal and fixed by Sharad Agarwal (applicationmaster , mrv2)<br>
     <b>MR-279: AM with same sized maps and reduces hangs in presence of failing maps</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2644">MAPREDUCE-2644</a>.
     Major bug reported by Josh Wills and fixed by Josh Wills (mrv2)<br>
     <b>NodeManager fails to create containers when NM_LOG_DIR is not explicitly set in the Configuration</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2641">MAPREDUCE-2641</a>.
     Minor sub-task reported by Josh Wills and fixed by Josh Wills (mrv2)<br>
     <b>Fix the ExponentiallySmoothedTaskRuntimeEstimator and its unit test</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2630">MAPREDUCE-2630</a>.
     Minor bug reported by Josh Wills and fixed by Josh Wills (mrv2)<br>
     <b>MR-279: refreshQueues leads to NPEs when used w/FifoScheduler</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2629">MAPREDUCE-2629</a>.
     Minor improvement reported by Eric Caspole and fixed by Eric Caspole (task)<br>
     <b>Class loading quirk prevents inner class method compilation</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2628">MAPREDUCE-2628</a>.
     Minor bug reported by Jonathan Eagles and fixed by Jonathan Eagles (mrv2)<br>
     <b>MR-279: Add compiled on date to NM and RM info/about page</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2625">MAPREDUCE-2625</a>.
     Minor bug reported by Jonathan Eagles and fixed by Jonathan Eagles (mrv2)<br>
     <b>MR-279: Add Node Manager Version to NM info page</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2624">MAPREDUCE-2624</a>.
     Major improvement reported by Tsz Wo (Nicholas), SZE and fixed by Tsz Wo (Nicholas), SZE (contrib/raid)<br>
     <b>Update RAID for HDFS-2107</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2623">MAPREDUCE-2623</a>.
     Minor improvement reported by Jim Plush and fixed by Harsh J (test)<br>
     <b>Update ClusterMapReduceTestCase to use MiniDFSCluster.Builder</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2622">MAPREDUCE-2622</a>.
     Minor task reported by Harsh J and fixed by Harsh J (test)<br>
     <b>Remove the last remaining reference to "io.sort.mb"</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2620">MAPREDUCE-2620</a>.
     Major bug reported by Tsz Wo (Nicholas), SZE and fixed by Tsz Wo (Nicholas), SZE (contrib/raid)<br>
     <b>Update RAID for HDFS-2087</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2618">MAPREDUCE-2618</a>.
     Major bug reported by Jeffrey Naisbitt and fixed by Jeffrey Naisbitt (mrv2)<br>
     <b>MR-279: 0 map, 0 reduce job fails with Null Pointer Exception</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2615">MAPREDUCE-2615</a>.
     Major bug reported by Siddharth Seth and fixed by Siddharth Seth (mrv2)<br>
     <b>MR 279: KillJob should go through AM whenever possible</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2611">MAPREDUCE-2611</a>.
     Major improvement reported by Siddharth Seth and fixed by  (mrv2)<br>
     <b>MR 279: Metrics, finishTimes, etc in JobHistory</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2606">MAPREDUCE-2606</a>.
     Major bug reported by Alejandro Abdelnur and fixed by Alejandro Abdelnur <br>
     <b>Remove IsolationRunner</b><br>
     <blockquote>IsolationRunner is no longer maintained. See MAPREDUCE-2637 for its replacement. </blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2603">MAPREDUCE-2603</a>.
     Major bug reported by Vinay Kumar Thota and fixed by Vinay Kumar Thota (contrib/gridmix)<br>
     <b>Gridmix system tests are failing due to high ram emulation enable by default for normal mr jobs in the trace which exceeds the solt capacity.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2602">MAPREDUCE-2602</a>.
     Major improvement reported by Ahmed Radwan and fixed by Ahmed Radwan <br>
     <b>Allow setting of end-of-record delimiter for TextInputFormat (for the old API)</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2598">MAPREDUCE-2598</a>.
     Minor bug reported by Siddharth Seth and fixed by Siddharth Seth (mrv2)<br>
     <b>MR 279: miscellaneous UI, NPE fixes for JobHistory, UI</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2596">MAPREDUCE-2596</a>.
     Major improvement reported by Arun C Murthy and fixed by Amar Kamat (benchmarks , contrib/gridmix)<br>
     <b>Gridmix should notify job failures</b><br>
     <blockquote>Gridmix now prints a summary information after every run. It summarizes the runs w.r.t input trace details, input data statistics, cli arguments, data-gen runtime, simulation runtimes etc and also the cluster w.r.t map slots, reduce slots, jobtracker-address, hdfs-address etc.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2595">MAPREDUCE-2595</a>.
     Minor bug reported by Thomas Graves and fixed by Thomas Graves <br>
     <b>MR279: update yarn INSTALL doc</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2588">MAPREDUCE-2588</a>.
     Major bug reported by Tsz Wo (Nicholas), SZE and fixed by Tsz Wo (Nicholas), SZE (contrib/raid)<br>
     <b>Raid is not compile after DataTransferProtocol refactoring</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2587">MAPREDUCE-2587</a>.
     Minor bug reported by Thomas Graves and fixed by Thomas Graves <br>
     <b>MR279: Fix RM version in the cluster-&gt;about page </b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2582">MAPREDUCE-2582</a>.
     Major bug reported by Siddharth Seth and fixed by Siddharth Seth (mrv2)<br>
     <b>MR 279: Cleanup JobHistory event generation</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2581">MAPREDUCE-2581</a>.
     Trivial bug reported by Dave Syer and fixed by Tim Sell <br>
     <b>Spelling errors in log messages (MapTask)</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2580">MAPREDUCE-2580</a>.
     Minor improvement reported by Siddharth Seth and fixed by Siddharth Seth (mrv2)<br>
     <b>MR 279: RM UI should redirect finished jobs to History UI</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2576">MAPREDUCE-2576</a>.
     Trivial bug reported by Sherry Chen and fixed by Tim Sell <br>
     <b>Typo in comment in SimulatorLaunchTaskAction.java</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2575">MAPREDUCE-2575</a>.
     Major bug reported by Thomas Graves and fixed by Thomas Graves (test)<br>
     <b>TestMiniMRDFSCaching fails if test.build.dir is set to something other than build/test</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2573">MAPREDUCE-2573</a>.
     Major bug reported by Todd Lipcon and fixed by Robert Joseph Evans <br>
     <b>New findbugs warning after MAPREDUCE-2494</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2569">MAPREDUCE-2569</a>.
     Minor bug reported by Jonathan Eagles and fixed by Jonathan Eagles (mrv2)<br>
     <b>MR-279: Restarting resource manager with root capacity not equal to 100 percent should result in error</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2566">MAPREDUCE-2566</a>.
     Major bug reported by Siddharth Seth and fixed by Siddharth Seth (mrv2)<br>
     <b>MR 279: YarnConfiguration should reloadConfiguration if instantiated with a non YarnConfiguration object</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2563">MAPREDUCE-2563</a>.
     Major task reported by Vinay Kumar Thota and fixed by Vinay Kumar Thota (contrib/gridmix)<br>
     <b>Gridmix high ram jobs emulation system tests.</b><br>
     <blockquote>Adds system tests to test the High-Ram feature in Gridmix.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2559">MAPREDUCE-2559</a>.
     Major bug reported by Eric Yang and fixed by Eric Yang (build)<br>
     <b>ant binary fails due to missing c++ lib dir</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2556">MAPREDUCE-2556</a>.
     Major bug reported by Siddharth Seth and fixed by Siddharth Seth (mrv2)<br>
     <b>MR 279: NodeStatus.getNodeHealthStatus().setBlah broken</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2554">MAPREDUCE-2554</a>.
     Major task reported by Vinay Kumar Thota and fixed by Vinay Kumar Thota (contrib/gridmix)<br>
     <b>Gridmix distributed cache emulation system tests.</b><br>
     <blockquote>Adds distributed cache related system tests to Gridmix.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2552">MAPREDUCE-2552</a>.
     Minor bug reported by Siddharth Seth and fixed by Siddharth Seth (mrv2)<br>
     <b>MR 279: NPE when requesting attemptids for completed jobs </b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2551">MAPREDUCE-2551</a>.
     Major improvement reported by Siddharth Seth and fixed by Siddharth Seth (mrv2)<br>
     <b>MR 279: Implement JobSummaryLog</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2550">MAPREDUCE-2550</a>.
     Blocker bug reported by Eric Yang and fixed by Eric Yang (build)<br>
     <b>bin/mapred no longer works from a source checkout</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2544">MAPREDUCE-2544</a>.
     Major task reported by Vinay Kumar Thota and fixed by Vinay Kumar Thota (contrib/gridmix)<br>
     <b>Gridmix compression emulation system tests.</b><br>
     <blockquote>Adds system tests for testing the compression emulation feature of Gridmix.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2543">MAPREDUCE-2543</a>.
     Major new feature reported by Amar Kamat and fixed by Amar Kamat (contrib/gridmix)<br>
     <b>[Gridmix] Add support for HighRam jobs</b><br>
     <blockquote>Adds High-Ram feature emulation in Gridmix.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2541">MAPREDUCE-2541</a>.
     Critical bug reported by Binglin Chang and fixed by Binglin Chang (tasktracker)<br>
     <b>Race Condition in IndexCache(readIndexFileToCache,removeMap) causes value of totalMemoryUsed corrupt, which may cause TaskTracker continue throw Exception</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2537">MAPREDUCE-2537</a>.
     Minor bug reported by Robert Joseph Evans and fixed by Robert Joseph Evans (mrv2)<br>
     <b>MR-279: The RM writes its log to yarn-mapred-resourcemanager-&lt;RM_Host&gt;.out</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2536">MAPREDUCE-2536</a>.
     Minor test reported by Daryn Sharp and fixed by Daryn Sharp (test)<br>
     <b>TestMRCLI broke due to change in usage output</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2534">MAPREDUCE-2534</a>.
     Major bug reported by Luke Lu and fixed by Luke Lu (mrv2)<br>
     <b>MR-279: Fix CI breaking hard coded version in jobclient pom</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2533">MAPREDUCE-2533</a>.
     Major new feature reported by Luke Lu and fixed by Luke Lu (mrv2)<br>
     <b>MR-279: Metrics for reserved resource in ResourceManager</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2532">MAPREDUCE-2532</a>.
     Major new feature reported by Luke Lu and fixed by Luke Lu (mrv2)<br>
     <b>MR-279: Metrics for NodeManager</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2531">MAPREDUCE-2531</a>.
     Blocker bug reported by Robert Joseph Evans and fixed by Robert Joseph Evans (client)<br>
     <b>org.apache.hadoop.mapred.jobcontrol.getAssignedJobID throw class cast exception </b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2529">MAPREDUCE-2529</a>.
     Major bug reported by Thomas Graves and fixed by Thomas Graves (tasktracker)<br>
     <b>Recognize Jetty bug 1342 and handle it</b><br>
     <blockquote>Added 2 new config parameters:

mapreduce.reduce.shuffle.catch.exception.stack.regex
mapreduce.reduce.shuffle.catch.exception.message.regex</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2527">MAPREDUCE-2527</a>.
     Major new feature reported by Luke Lu and fixed by Luke Lu (mrv2)<br>
     <b>MR-279: Metrics for MRAppMaster</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2522">MAPREDUCE-2522</a>.
     Major sub-task reported by Siddharth Seth and fixed by Siddharth Seth (mrv2)<br>
     <b>MR 279: Security for JobHistory service</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2521">MAPREDUCE-2521</a>.
     Major new feature reported by Eric Yang and fixed by Eric Yang (build)<br>
     <b>Mapreduce RPM integration project</b><br>
     <blockquote>Created rpm and debian packages for MapReduce. </blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2518">MAPREDUCE-2518</a>.
     Major bug reported by Wei Yongjun and fixed by Wei Yongjun (distcp)<br>
     <b>missing t flag in distcp help message '-p[rbugp]'</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2517">MAPREDUCE-2517</a>.
     Major task reported by Vinay Kumar Thota and fixed by Vinay Kumar Thota (contrib/gridmix)<br>
     <b>Porting Gridmix v3 system tests into trunk branch.</b><br>
     <blockquote>Adds system tests to Gridmix. These system tests cover various features like job types (load and sleep), user resolvers (round-robin, submitter-user, echo) and  submission modes (stress, replay and serial).</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2514">MAPREDUCE-2514</a>.
     Trivial bug reported by Jonathan Eagles and fixed by Jonathan Eagles (tasktracker)<br>
     <b>ReinitTrackerAction class name misspelled RenitTrackerAction in task tracker log</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2509">MAPREDUCE-2509</a>.
     Major bug reported by Luke Lu and fixed by Luke Lu (mrv2)<br>
     <b>MR-279: Fix NPE in UI for pending attempts</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2504">MAPREDUCE-2504</a>.
     Major bug reported by Siddharth Seth and fixed by Siddharth Seth (mrv2)<br>
     <b>MR 279: race in JobHistoryEventHandler stop </b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2501">MAPREDUCE-2501</a>.
     Major improvement reported by Luke Lu and fixed by Luke Lu (mrv2)<br>
     <b>MR-279: Attach sources in builds</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2500">MAPREDUCE-2500</a>.
     Major bug reported by Siddharth Seth and fixed by Siddharth Seth (mrv2)<br>
     <b>MR 279: PB factories are not thread safe</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2497">MAPREDUCE-2497</a>.
     Trivial bug reported by Robert Henry and fixed by Eli Collins <br>
     <b>missing spaces in error messages</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2495">MAPREDUCE-2495</a>.
     Minor improvement reported by Robert Joseph Evans and fixed by Robert Joseph Evans (distributed-cache)<br>
     <b>The distributed cache cleanup thread has no monitoring to check to see if it has died for some reason</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2494">MAPREDUCE-2494</a>.
     Major improvement reported by Robert Joseph Evans and fixed by Robert Joseph Evans (distributed-cache)<br>
     <b>Make the distributed cache delete entires using LRU priority</b><br>
     <blockquote>Added config option mapreduce.tasktracker.cache.local.keep.pct to the TaskTracker.  It is the target percentage of the local distributed cache that should be kept in between garbage collection runs.  In practice it will delete unused distributed cache entries in LRU order until the size of the cache is less than mapreduce.tasktracker.cache.local.keep.pct of the maximum cache size.  This is a floating point value between 0.0 and 1.0.  The default is 0.95.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2492">MAPREDUCE-2492</a>.
     Major improvement reported by Amar Kamat and fixed by Amar Kamat (task)<br>
     <b>[MAPREDUCE] The new MapReduce API should make available task's progress to the task</b><br>
     <blockquote>Map and Reduce task can access the attempt's overall progress via TaskAttemptContext.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2490">MAPREDUCE-2490</a>.
     Trivial improvement reported by Jonathan Eagles and fixed by Jonathan Eagles (jobtracker)<br>
     <b>Log blacklist debug count</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2489">MAPREDUCE-2489</a>.
     Major bug reported by Jeffrey Naisbitt and fixed by Jeffrey Naisbitt (jobtracker)<br>
     <b>Jobsplits with random hostnames can make the queue unusable</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2483">MAPREDUCE-2483</a>.
     Major bug reported by Eric Yang and fixed by Eric Yang (build)<br>
     <b>Clean up duplication of dependent jar files</b><br>
     <blockquote>Removed duplicated hadoop-common library dependencies.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2480">MAPREDUCE-2480</a>.
     Major bug reported by Luke Lu and fixed by Luke Lu (mrv2)<br>
     <b>MR-279: mr app should not depend on hard-coded version of shuffle</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2478">MAPREDUCE-2478</a>.
     Major improvement reported by Siddharth Seth and fixed by Siddharth Seth (mrv2)<br>
     <b>MR 279: Improve history server</b><br>
     <blockquote>Looks great. I just committed this. Thanks Siddharth!</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2475">MAPREDUCE-2475</a>.
     Major bug reported by Suresh Srinivas and fixed by Suresh Srinivas (test)<br>
     <b>Disable IPV6 for junit tests</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2474">MAPREDUCE-2474</a>.
     Minor improvement reported by Harsh J and fixed by Harsh J (documentation)<br>
     <b>Add docs to the new API Partitioner on how to access Job Configuration data</b><br>
     <blockquote>Improve the Partitioner interface's docs to help fetch Job Configuration objects.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2473">MAPREDUCE-2473</a>.
     Major new feature reported by Aaron T. Myers and fixed by Aaron T. Myers (jobtracker)<br>
     <b>MR portion of HADOOP-7214 - Hadoop /usr/bin/groups equivalent</b><br>
     <blockquote>Introduces a new command, "mapred groups", which displays what groups are associated with a user as seen by the JobTracker.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2470">MAPREDUCE-2470</a>.
     Major bug reported by Aaron Baff and fixed by Robert Joseph Evans (client)<br>
     <b>Receiving NPE occasionally on RunningJob.getCounters() call</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2469">MAPREDUCE-2469</a>.
     Major improvement reported by Amar Kamat and fixed by Amar Kamat (task)<br>
     <b>Task counters should also report the total heap usage of the task</b><br>
     <blockquote>Task attempt's total heap usage gets recorded and published via counters as COMMITTED_HEAP_BYTES.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2467">MAPREDUCE-2467</a>.
     Major bug reported by Suresh Srinivas and fixed by Suresh Srinivas (contrib/raid)<br>
     <b>HDFS-1052 changes break the raid contrib module in MapReduce</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2466">MAPREDUCE-2466</a>.
     Blocker bug reported by Todd Lipcon and fixed by Todd Lipcon <br>
     <b>TestFileInputFormat.testLocality failing after federation merge</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2463">MAPREDUCE-2463</a>.
     Major bug reported by Devaraj K and fixed by Devaraj K (jobtracker)<br>
     <b>Job History files are not moving to done folder when job history location is hdfs location</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2462">MAPREDUCE-2462</a>.
     Minor improvement reported by Siddharth Seth and fixed by Siddharth Seth (mrv2)<br>
     <b>MR 279: Write job conf along with JobHistory, other minor improvements</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2460">MAPREDUCE-2460</a>.
     Blocker bug reported by Todd Lipcon and fixed by Todd Lipcon <br>
     <b>TestFairSchedulerSystem failing on Hudson</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2459">MAPREDUCE-2459</a>.
     Major improvement reported by Mac Yang and fixed by Mac Yang (harchive)<br>
     <b>Cache HAR filesystem metadata</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2458">MAPREDUCE-2458</a>.
     Major bug reported by Luke Lu and fixed by Luke Lu (mrv2)<br>
     <b>MR-279: Rename sanitized pom.xml in build directory to work around IDE bug</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2456">MAPREDUCE-2456</a>.
     Trivial improvement reported by Jeffrey Naisbitt and fixed by Jeffrey Naisbitt (jobtracker)<br>
     <b>Show the reducer taskid and map/reduce tasktrackers for "Failed fetch notification #_ for task attempt..." log messages</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2455">MAPREDUCE-2455</a>.
     Major sub-task reported by Tom White and fixed by Tom White (build , client)<br>
     <b>Remove deprecated JobTracker.State in favour of JobTrackerStatus</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2451">MAPREDUCE-2451</a>.
     Trivial bug reported by Thomas Graves and fixed by Thomas Graves (jobtracker)<br>
     <b>Log the reason string of healthcheck script</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2449">MAPREDUCE-2449</a>.
     Minor improvement reported by Jeff Zemerick and fixed by Jeff Zemerick (contrib/eclipse-plugin)<br>
     <b>Allow for command line arguments when performing "Run on Hadoop" action.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2440">MAPREDUCE-2440</a>.
     Major bug reported by Luke Lu and fixed by Luke Lu (mrv2)<br>
     <b>MR-279: Name clashes in TypeConverter</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2439">MAPREDUCE-2439</a>.
     Major bug reported by Mahadev konar and fixed by Siddharth Seth (mrv2)<br>
     <b>MR-279: Fix YarnRemoteException to give more details.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2438">MAPREDUCE-2438</a>.
     Major new feature reported by Mahadev konar and fixed by Krishna Ramachandran (mrv2)<br>
     <b>MR-279: WebApp for Job History</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2434">MAPREDUCE-2434</a>.
     Major new feature reported by Luke Lu and fixed by Luke Lu (mrv2)<br>
     <b>MR-279: ResourceManager metrics</b><br>
     <blockquote>I just committed this. Thanks Luke!</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2433">MAPREDUCE-2433</a>.
     Blocker bug reported by Luke Lu and fixed by Mahadev konar (mrv2)<br>
     <b>MR-279: YARNApplicationConstants hard code app master jar version</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2432">MAPREDUCE-2432</a>.
     Major improvement reported by Luke Lu and fixed by Luke Lu (mrv2)<br>
     <b>MR-279: Install sanitized poms for downstream sanity</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2430">MAPREDUCE-2430</a>.
     Major task reported by Nigel Daley and fixed by Nigel Daley <br>
     <b>Remove mrunit contrib</b><br>
     <blockquote>MRUnit is now available as a separate Apache project.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2429">MAPREDUCE-2429</a>.
     Major bug reported by Arun C Murthy and fixed by Siddharth Seth (tasktracker)<br>
     <b>Check jvmid during task status report</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2428">MAPREDUCE-2428</a>.
     Blocker bug reported by Tom White and fixed by Tom White <br>
     <b>start-mapred.sh script fails if HADOOP_HOME is not set</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2426">MAPREDUCE-2426</a>.
     Trivial test reported by Todd Lipcon and fixed by Todd Lipcon (contrib/fair-share)<br>
     <b>Make TestFairSchedulerSystem fail with more verbose output</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2424">MAPREDUCE-2424</a>.
     Major improvement reported by Greg Roelofs and fixed by Greg Roelofs (mrv2)<br>
     <b>MR-279: counters/UI/etc. for uber-AppMaster (in-cluster LocalJobRunner for MRv2)</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2422">MAPREDUCE-2422</a>.
     Major sub-task reported by Tom White and fixed by Tom White (client)<br>
     <b>Removed unused internal methods from DistributedCache</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2417">MAPREDUCE-2417</a>.
     Major bug reported by Ravi Gummadi and fixed by Ravi Gummadi (contrib/gridmix)<br>
     <b>In Gridmix, in RoundRobinUserResolver mode, the testing/proxy users are not associated with unique users in a trace</b><br>
     <blockquote>Fixes Gridmix in RoundRobinUserResolver mode to map testing/proxy users to unique users in a trace.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2416">MAPREDUCE-2416</a>.
     Major bug reported by Ravi Gummadi and fixed by Ravi Gummadi (contrib/gridmix)<br>
     <b>In Gridmix, in RoundRobinUserResolver, the list of groups for a user obtained from users-list-file is incorrect</b><br>
     <blockquote>Removes the restriction of specifying group names in users-list file for Gridmix in RoundRobinUserResolver mode.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2414">MAPREDUCE-2414</a>.
     Major improvement reported by Arun C Murthy and fixed by Siddharth Seth (mrv2)<br>
     <b>MR-279: Use generic interfaces for protocols</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2409">MAPREDUCE-2409</a>.
     Major bug reported by Siddharth Seth and fixed by Siddharth Seth (distributed-cache)<br>
     <b>Distributed Cache does not differentiate between file /archive for files with the same path</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2408">MAPREDUCE-2408</a>.
     Major new feature reported by Ravi Gummadi and fixed by Amar Kamat (contrib/gridmix)<br>
     <b>Make Gridmix emulate usage of data compression</b><br>
     <blockquote>Emulates the MapReduce compression feature in Gridmix. By default, compression emulation is turned on. Compression emulation can be disabled by setting 'gridmix.compression-emulation.enable' to 'false'.  Use 'gridmix.compression-emulation.map-input.decompression-ratio', 'gridmix.compression-emulation.map-output.compression-ratio' and 'gridmix.compression-emulation.reduce-output.compression-ratio' to configure the compression ratios at map input, map output and reduce output side respectively. Currently, compression ratios in the range [0.07, 0.68] are supported. Gridmix auto detects whether map-input, map output and reduce output should emulate compression based on original job's compression related configuration parameters.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2405">MAPREDUCE-2405</a>.
     Major improvement reported by Mahadev konar and fixed by Greg Roelofs (mrv2)<br>
     <b>MR-279: Implement uber-AppMaster (in-cluster LocalJobRunner for MRv2)</b><br>
     <blockquote>An efficient implementation of small jobs by running all tasks in the MR ApplicationMaster JVM, there-by affecting lower latency.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2403">MAPREDUCE-2403</a>.
     Major improvement reported by Mahadev konar and fixed by Krishna Ramachandran (mrv2)<br>
     <b>MR-279: Improve job history event handling in AM to log to HDFS</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2399">MAPREDUCE-2399</a>.
     Major improvement reported by Arun C Murthy and fixed by Luke Lu <br>
     <b>The embedded web framework for MAPREDUCE-279</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2395">MAPREDUCE-2395</a>.
     Critical bug reported by Todd Lipcon and fixed by Ramkumar Vadali (contrib/raid)<br>
     <b>TestBlockFixer timing out on trunk</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2381">MAPREDUCE-2381</a>.
     Major improvement reported by Philip Zeyliger and fixed by Philip Zeyliger <br>
     <b>JobTracker instrumentation not consistent about error handling</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2379">MAPREDUCE-2379</a>.
     Major bug reported by Todd Lipcon and fixed by Todd Lipcon (distributed-cache , documentation)<br>
     <b>Distributed cache sizing configurations are missing from mapred-default.xml</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2367">MAPREDUCE-2367</a>.
     Minor improvement reported by Todd Lipcon and fixed by Todd Lipcon <br>
     <b>Allow using a file to exclude certain tests from build</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2365">MAPREDUCE-2365</a>.
     Major bug reported by Owen O'Malley and fixed by Siddharth Seth <br>
     <b>Add counters for FileInputFormat (BYTES_READ) and FileOutputFormat (BYTES_WRITTEN)</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2351">MAPREDUCE-2351</a>.
     Major improvement reported by Tom White and fixed by Tom White <br>
     <b>mapred.job.tracker.history.completed.location should support an arbitrary filesystem URI</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2331">MAPREDUCE-2331</a>.
     Major test reported by Todd Lipcon and fixed by Todd Lipcon <br>
     <b>Add coverage of task graph servlet to fair scheduler system test</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2326">MAPREDUCE-2326</a>.
     Major improvement reported by Arun C Murthy and fixed by  <br>
     <b>Port gridmix changes from hadoop-0.20.100 to trunk</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2323">MAPREDUCE-2323</a>.
     Major new feature reported by Todd Lipcon and fixed by Todd Lipcon (contrib/fair-share)<br>
     <b>Add metrics to the fair scheduler</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2317">MAPREDUCE-2317</a>.
     Minor bug reported by Devaraj K and fixed by Devaraj K (harchive)<br>
     <b>HadoopArchives throwing NullPointerException while creating hadoop archives (.har files)</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2311">MAPREDUCE-2311</a>.
     Blocker bug reported by Todd Lipcon and fixed by Scott Chen (contrib/fair-share)<br>
     <b>TestFairScheduler failing on trunk</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2307">MAPREDUCE-2307</a>.
     Minor bug reported by Devaraj K and fixed by Devaraj K (contrib/fair-share)<br>
     <b>Exception thrown in Jobtracker logs, when the Scheduler configured is FairScheduler.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2302">MAPREDUCE-2302</a>.
     Major improvement reported by Scott Chen and fixed by Scott Chen (contrib/raid)<br>
     <b>Add static factory methods in GaloisField</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2290">MAPREDUCE-2290</a>.
     Major bug reported by Eli Collins and fixed by Eli Collins (test)<br>
     <b>TestTaskCommit missing getProtocolSignature override</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2271">MAPREDUCE-2271</a>.
     Blocker bug reported by Todd Lipcon and fixed by Liyin Liang (jobtracker)<br>
     <b>TestSetupTaskScheduling failing in trunk</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2263">MAPREDUCE-2263</a>.
     Major improvement reported by Hairong Kuang and fixed by Hairong Kuang <br>
     <b>MapReduce side of HADOOP-6904</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2260">MAPREDUCE-2260</a>.
     Major improvement reported by Roman Shaposhnik and fixed by Roman Shaposhnik (build)<br>
     <b>Remove auto-generated native build files</b><br>
     <blockquote>The native build run when from trunk now requires autotools, libtool and openssl dev libraries.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2258">MAPREDUCE-2258</a>.
     Major bug reported by Todd Lipcon and fixed by Todd Lipcon (task)<br>
     <b>IFile reader closes stream and compressor in wrong order</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2254">MAPREDUCE-2254</a>.
     Major improvement reported by Ahmed Radwan and fixed by Ahmed Radwan <br>
     <b>Allow setting of end-of-record delimiter for TextInputFormat</b><br>
     <blockquote>TextInputFormat may now split lines with delimiters other than newline, by specifying a configuration parameter "textinputformat.record.delimiter"</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2250">MAPREDUCE-2250</a>.
     Trivial improvement reported by Ramkumar Vadali and fixed by Ramkumar Vadali (contrib/raid)<br>
     <b>Fix logging in raid code.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2249">MAPREDUCE-2249</a>.
     Major improvement reported by Bhallamudi Venkata Siva Kamesh and fixed by Devaraj K <br>
     <b>Better to check the reflexive property of the object while overriding equals method of it</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2248">MAPREDUCE-2248</a>.
     Major improvement reported by Ramkumar Vadali and fixed by Ramkumar Vadali <br>
     <b>DistributedRaidFileSystem should unraid only the corrupt block</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2243">MAPREDUCE-2243</a>.
     Minor improvement reported by Bhallamudi Venkata Siva Kamesh and fixed by Devaraj K (jobtracker , tasktracker)<br>
     <b>Close all the file streams propely in a finally block to avoid their leakage.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2239">MAPREDUCE-2239</a>.
     Major improvement reported by Scott Chen and fixed by Scott Chen (contrib/raid)<br>
     <b>BlockPlacementPolicyRaid should call getBlockLocations only when necessary</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2225">MAPREDUCE-2225</a>.
     Blocker improvement reported by Harsh J and fixed by Harsh J (job submission)<br>
     <b>MultipleOutputs should not require the use of 'Writable'</b><br>
     <blockquote>MultipleOutputs should not require the use/check of 'Writable' interfaces in key and value classes.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2215">MAPREDUCE-2215</a>.
     Major bug reported by Patrick Kling and fixed by Patrick Kling (contrib/raid)<br>
     <b>A more elegant FileSystem#listCorruptFileBlocks API (RAID changes)</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2207">MAPREDUCE-2207</a>.
     Major improvement reported by Scott Chen and fixed by Liyin Liang (jobtracker)<br>
     <b>Task-cleanup task should not be scheduled on the node that the task just failed</b><br>
     <blockquote>Task-cleanup task should not be scheduled on the node that the task just failed</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2206">MAPREDUCE-2206</a>.
     Major improvement reported by Scott Chen and fixed by Scott Chen (jobtracker)<br>
     <b>The task-cleanup tasks should be optional</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2203">MAPREDUCE-2203</a>.
     Trivial improvement reported by Jingguo Yao and fixed by Jingguo Yao <br>
     <b>Wong javadoc for TaskRunner's appendJobJarClasspaths method</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2202">MAPREDUCE-2202</a>.
     Major improvement reported by Konstantin Boudnik and fixed by Konstantin Boudnik <br>
     <b>Generalize CLITest structure and interfaces to facilitate upstream adoption (e.g. for web or system testing)</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2199">MAPREDUCE-2199</a>.
     Major bug reported by Konstantin Boudnik and fixed by Konstantin Boudnik (build)<br>
     <b>build is broken 0.22 branch creation</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2185">MAPREDUCE-2185</a>.
     Major bug reported by Hairong Kuang and fixed by Ramkumar Vadali (job submission)<br>
     <b>Infinite loop at creating splits using CombineFileInputFormat</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2172">MAPREDUCE-2172</a>.
     Major bug reported by Patrick Kling and fixed by Nigel Daley <br>
     <b>test-patch.properties contains incorrect/version-dependent values of OK_FINDBUGS_WARNINGS and OK_RELEASEAUDIT_WARNINGS</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2156">MAPREDUCE-2156</a>.
     Major improvement reported by Patrick Kling and fixed by Patrick Kling (contrib/raid)<br>
     <b>Raid-aware FSCK</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2155">MAPREDUCE-2155</a>.
     Major improvement reported by Patrick Kling and fixed by Patrick Kling (contrib/raid)<br>
     <b>RaidNode should optionally dispatch map reduce jobs to fix corrupt blocks (instead of fixing locally)</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2153">MAPREDUCE-2153</a>.
     Major improvement reported by Ravi Gummadi and fixed by Rajesh Balamohan (tools/rumen)<br>
     <b>Bring in more job configuration properties in to the trace file</b><br>
     <blockquote>Adds job configuration parameters to the job trace. The configuration parameters are stored under the 'jobProperties' field as key-value pairs.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2137">MAPREDUCE-2137</a>.
     Major bug reported by Ravi Gummadi and fixed by Ravi Gummadi (contrib/gridmix)<br>
     <b>Mapping between Gridmix jobs and the corresponding original MR jobs is needed</b><br>
     <blockquote>New configuration properties gridmix.job.original-job-id and gridmix.job.original-job-name in the configuration of simulated job are exposed/documented to gridmix user for mapping between original cluster's jobs and simulated jobs.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2127">MAPREDUCE-2127</a>.
     Major bug reported by Giridharan Kesavan and fixed by Bruno Mah&#233; (build , pipes)<br>
     <b>mapreduce trunk builds are failing on hudson</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2107">MAPREDUCE-2107</a>.
     Major improvement reported by Ranjit Mathew and fixed by Amar Kamat (contrib/gridmix)<br>
     <b>Emulate Memory Usage of Tasks in GridMix3</b><br>
     <blockquote>Adds total heap usage emulation to Gridmix. Also, Gridmix can configure the simulated task's JVM heap options with max heap options obtained from the original task (via Rumen). Use 'gridmix.task.jvm-options.enable' to disable the task max heap options configuration. </blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2106">MAPREDUCE-2106</a>.
     Major improvement reported by Ranjit Mathew and fixed by Amar Kamat (contrib/gridmix)<br>
     <b>Emulate CPU Usage of Tasks in GridMix3</b><br>
     <blockquote>Adds cumulative cpu usage emulation to Gridmix</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2105">MAPREDUCE-2105</a>.
     Major improvement reported by Ranjit Mathew and fixed by Amar Kamat (contrib/gridmix)<br>
     <b>Simulate Load Incrementally and Adaptively in GridMix3</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2104">MAPREDUCE-2104</a>.
     Major bug reported by Ranjit Mathew and fixed by Amar Kamat (tools/rumen)<br>
     <b>Rumen TraceBuilder Does Not Emit CPU/Memory Usage Details in Traces</b><br>
     <blockquote>Adds cpu, physical memory, virtual memory and heap usages to TraceBuilder's output.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2081">MAPREDUCE-2081</a>.
     Major test reported by Vinay Kumar Thota and fixed by Vinay Kumar Thota (contrib/gridmix)<br>
     <b>[GridMix3] Implement functionality for get the list of job traces which has different intervals.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2074">MAPREDUCE-2074</a>.
     Minor bug reported by Koji Noguchi and fixed by Priyo Mustafi (distributed-cache)<br>
     <b>Task should fail when symlink creation fail</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2053">MAPREDUCE-2053</a>.
     Major task reported by Vinay Kumar Thota and fixed by Vinay Kumar Thota (contrib/gridmix)<br>
     <b>[Herriot] Test Gridmix file pool for different input file sizes based on pool minimum size.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2037">MAPREDUCE-2037</a>.
     Major new feature reported by Dick King and fixed by Dick King <br>
     <b>Capturing interim progress times, CPU usage, and memory usage, when tasks reach certain progress thresholds</b><br>
     <blockquote>Capture intermediate task resource consumption information:
* Time taken so far
* CPU load [either at the time the data are taken, or exponentially smoothed]
* Memory load [also either at the time the data are taken, or exponentially smoothed]

This would be taken at intervals that depend on the task progress plateaus. For example, reducers have three progress ranges - [0-1/3], (1/3-2/3], and (2/3-3/3] - where fundamentally different activities happen. Mappers have different boundaries that are not symmetrically placed [0-9/10], (9/10-1]. Data capture boundaries should coincide with activity boundaries. For the state information capture [CPU and memory] we should average over the covered interval.
</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2033">MAPREDUCE-2033</a>.
     Major task reported by Vinay Kumar Thota and fixed by Vinay Kumar Thota (contrib/gridmix)<br>
     <b>[Herriot] Gridmix generate data tests with various submission policies and different user resolvers.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2026">MAPREDUCE-2026</a>.
     Major improvement reported by Scott Chen and fixed by Joydeep Sen Sarma <br>
     <b>JobTracker.getJobCounters() should not hold JobTracker lock while calling JobInProgress.getCounters()</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-1996">MAPREDUCE-1996</a>.
     Trivial bug reported by Glynn Durham and fixed by Harsh J (documentation)<br>
     <b>API: Reducer.reduce() method detail misstatement</b><br>
     <blockquote>Fix a misleading documentation note about the usage of Reporter objects in Reducers.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-1978">MAPREDUCE-1978</a>.
     Major improvement reported by Amar Kamat and fixed by Ravi Gummadi (tools/rumen)<br>
     <b>[Rumen] TraceBuilder should provide recursive input folder scanning</b><br>
     <blockquote>Adds -recursive option to TraceBuilder for scanning the input directories recursively.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-1938">MAPREDUCE-1938</a>.
     Blocker new feature reported by Devaraj Das and fixed by Krishna Ramachandran (job submission , task , tasktracker)<br>
     <b>Ability for having user's classes take precedence over the system classes for tasks' classpath</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-1927">MAPREDUCE-1927</a>.
     Minor test reported by Greg Roelofs and fixed by Greg Roelofs (test)<br>
     <b>unit test for HADOOP-6835 (concatenated gzip support)</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-1906">MAPREDUCE-1906</a>.
     Major improvement reported by Scott Carey and fixed by Todd Lipcon (jobtracker , performance , tasktracker)<br>
     <b>Lower default minimum heartbeat interval for tasktracker &gt; Jobtracker</b><br>
     <blockquote>The default minimum heartbeat interval has been dropped from 3 seconds to 300ms to increase scheduling throughput on small clusters. Users may tune mapreduce.jobtracker.heartbeats.in.second to adjust this value.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-1831">MAPREDUCE-1831</a>.
     Major improvement reported by Scott Chen and fixed by Scott Chen (contrib/raid)<br>
     <b>BlockPlacement policy for RAID</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-1811">MAPREDUCE-1811</a>.
     Minor bug reported by Amareshwari Sriramadasu and fixed by Harsh J (client)<br>
     <b>Job.monitorAndPrintJob() should print status of the job at completion</b><br>
     <blockquote>Print the resultant status of a Job on completion instead of simply saying 'Complete'.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-1788">MAPREDUCE-1788</a>.
     Major bug reported by Arun C Murthy and fixed by Arun C Murthy (client)<br>
     <b>o.a.h.mapreduce.Job shouldn't make a copy of the JobConf</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-1783">MAPREDUCE-1783</a>.
     Major improvement reported by Ramkumar Vadali and fixed by Ramkumar Vadali (contrib/fair-share)<br>
     <b>Task Initialization should be delayed till when a job can be run</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-1752">MAPREDUCE-1752</a>.
     Major improvement reported by Dmytro Molkov and fixed by Dmytro Molkov (harchive)<br>
     <b>Implement getFileBlockLocations in HarFilesystem</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-1738">MAPREDUCE-1738</a>.
     Major improvement reported by Luke Lu and fixed by Luke Lu <br>
     <b>MapReduce portion of HADOOP-6728 (ovehaul metrics framework)</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-1706">MAPREDUCE-1706</a>.
     Major improvement reported by Rodrigo Schmidt and fixed by Scott Chen (contrib/raid)<br>
     <b>Log RAID recoveries on HDFS</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-1702">MAPREDUCE-1702</a>.
     Minor improvement reported by Jaideep and fixed by  (contrib/gridmix)<br>
     <b>CPU/Memory emulation for GridMix3</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-1624">MAPREDUCE-1624</a>.
     Major improvement reported by Devaraj Das and fixed by Devaraj Das (documentation)<br>
     <b>Document the job credentials and associated details to do with delegation tokens (on the client side)</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-1461">MAPREDUCE-1461</a>.
     Major improvement reported by Rajesh Balamohan and fixed by Rajesh Balamohan (tools/rumen)<br>
     <b>Feature to instruct rumen-folder utility to skip jobs worth of specific duration</b><br>
     <blockquote>Added a ''-starts-after' option to Rumen's Folder utility. The time duration specified after the '-starts-after' option is an offset with respect to the submit time of the first job in the input trace. Jobs in the input trace having a submit time (relative to the first job's submit time) lesser than the specified offset will be ignored.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-1334">MAPREDUCE-1334</a>.
     Major bug reported by Karthik K and fixed by Karthik K (contrib/index)<br>
     <b>contrib/index - test - TestIndexUpdater fails due to an additional presence of file _SUCCESS in hdfs </b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-1242">MAPREDUCE-1242</a>.
     Trivial bug reported by Amogh Vasekar and fixed by Harsh J <br>
     <b>Chain APIs error misleading</b><br>
     <blockquote>Fix a misleading exception message in case the Chained Mappers have mismatch in input/output Key/Value pairs between them.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-1207">MAPREDUCE-1207</a>.
     Blocker improvement reported by Arun C Murthy and fixed by Arun C Murthy (client , mrv2)<br>
     <b>Allow admins to set java options for map/reduce tasks</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-1159">MAPREDUCE-1159</a>.
     Trivial improvement reported by Zheng Shao and fixed by Harsh J <br>
     <b>Limit Job name on jobtracker.jsp to be 80 char long</b><br>
     <blockquote>Job names on jobtracker.jsp should be 80 characters long at most.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-993">MAPREDUCE-993</a>.
     Minor bug reported by Iyappan Srinivasan and fixed by Harsh J (jobtracker)<br>
     <b>bin/hadoop job -events &lt;jobid&gt; &lt;from-event-#&gt; &lt;#-of-events&gt; help message is confusing</b><br>
     <blockquote>Added a helpful description message to the `mapred job -events` command.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-901">MAPREDUCE-901</a>.
     Major improvement reported by Owen O'Malley and fixed by Luke Lu (task)<br>
     <b>Move Framework Counters into a TaskMetric structure</b><br>
     <blockquote>Efficient implementation of MapReduce framework counters.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-587">MAPREDUCE-587</a>.
     Minor bug reported by Steve Loughran and fixed by Amar Kamat (contrib/streaming)<br>
     <b>Stream test TestStreamingExitStatus fails with Out of Memory</b><br>
     <blockquote>Fixed the streaming test TestStreamingExitStatus's failure due to an OutOfMemory error by reducing the testcase's io.sort.mb.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-517">MAPREDUCE-517</a>.
     Critical bug reported by Arun C Murthy and fixed by Arun C Murthy <br>
     <b>The capacity-scheduler should assign multiple tasks per heartbeat</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-461">MAPREDUCE-461</a>.
     Minor new feature reported by Fredrik Hedberg and fixed by Fredrik Hedberg <br>
     <b>Enable ServicePlugins for the JobTracker</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-279">MAPREDUCE-279</a>.
     Major improvement reported by Arun C Murthy and fixed by  (mrv2)<br>
     <b>Map-Reduce 2.0</b><br>
     <blockquote>MapReduce has undergone a complete re-haul in hadoop-0.23 and we now have, what we call, MapReduce 2.0 (MRv2).

The fundamental idea of MRv2 is to split up the two major functionalities of the JobTracker, resource management and job scheduling/monitoring, into separate daemons. The idea is to have a global ResourceManager (RM) and per-application ApplicationMaster (AM).  An application is either a single job in the classical sense of Map-Reduce jobs or a DAG of jobs. The ResourceManager and per-node slave, the NodeManager (NM), form the data-computation framework. The ResourceManager is the ultimate authority that arbitrates resources among all the applications in the system. The per-application ApplicationMaster is, in effect, a framework specific library and is tasked with negotiating resources from the ResourceManager and working with the NodeManager(s) to execute and monitor the tasks.

The ResourceManager has two main components:
* Scheduler (S)
* ApplicationsManager (ASM)

The Scheduler is responsible for allocating resources to the various running applications subject to familiar constraints of capacities, queues etc. The Scheduler is pure scheduler in the sense that it performs no monitoring or tracking of status for the application. Also, it offers no guarantees on restarting failed tasks either due to application failure or hardware failures. The Scheduler performs its scheduling function based the resource requirements of the applications; it does so based on the abstract notion of a Resource Container which incorporates elements such as memory, cpu, disk, network etc. 

The Scheduler has a pluggable policy plug-in, which is responsible for partitioning the cluster resources among the various queues, applications etc. The current Map-Reduce schedulers such as the CapacityScheduler and the FairScheduler would be some examples of the plug-in.

The CapacityScheduler supports hierarchical queues to allow for more predictable sharing of cluster resources.
The ApplicationsManager is responsible for accepting job-submissions, negotiating the first container for executing the application specific ApplicationMaster and provides the service for restarting the ApplicationMaster container on failure.

The NodeManager is the per-machine framework agent who is responsible for launching the applications' containers, monitoring their resource usage (cpu, memory, disk, network) and reporting the same to the Scheduler.

The per-application ApplicationMaster has the responsibility of negotiating appropriate resource containers from the Scheduler, tracking their status and monitoring for progress.
</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2540">HDFS-2540</a>.
     Major sub-task reported by Tsz Wo (Nicholas), SZE and fixed by Tsz Wo (Nicholas), SZE <br>
     <b>Change WebHdfsFileSystem to two-step create/append</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2539">HDFS-2539</a>.
     Major sub-task reported by Tsz Wo (Nicholas), SZE and fixed by Tsz Wo (Nicholas), SZE (webhdfs)<br>
     <b>Support doAs and GETHOMEDIRECTORY in webhdfs</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2528">HDFS-2528</a>.
     Major sub-task reported by Arpit Gupta and fixed by Tsz Wo (Nicholas), SZE (webhdfs)<br>
     <b>webhdfs rest call to a secure dn fails when a token is sent</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2527">HDFS-2527</a>.
     Major sub-task reported by Tsz Wo (Nicholas), SZE and fixed by Tsz Wo (Nicholas), SZE (webhdfs)<br>
     <b>Remove the use of Range header from webhdfs</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2522">HDFS-2522</a>.
     Minor test reported by Suresh Srinivas and fixed by Suresh Srinivas <br>
     <b>Disable TestDfsOverAvroRpc in 0.23</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2521">HDFS-2521</a>.
     Major improvement reported by Todd Lipcon and fixed by Todd Lipcon (data-node , hdfs client)<br>
     <b>Remove custom checksum headers from data transfer protocol</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2512">HDFS-2512</a>.
     Major improvement reported by Todd Lipcon and fixed by Todd Lipcon (data-node , hdfs client)<br>
     <b>Add textual error message to data transfer protocol responses</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2501">HDFS-2501</a>.
     Major sub-task reported by Tsz Wo (Nicholas), SZE and fixed by Tsz Wo (Nicholas), SZE (webhdfs)<br>
     <b>add version prefix and root methods to webhdfs</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2500">HDFS-2500</a>.
     Major improvement reported by Todd Lipcon and fixed by Todd Lipcon (data-node)<br>
     <b>Avoid file system operations in BPOfferService thread while processing deletes</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2494">HDFS-2494</a>.
     Major sub-task reported by Uma Maheswara Rao G and fixed by Uma Maheswara Rao G (webhdfs)<br>
     <b>[webhdfs] When Getting the file using OP=OPEN with DN http address, ESTABLISHED sockets are growing.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2493">HDFS-2493</a>.
     Major sub-task reported by Tsz Wo (Nicholas), SZE and fixed by Tsz Wo (Nicholas), SZE (name-node)<br>
     <b>Remove reference to FSNamesystem in blockmanagement classes</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2485">HDFS-2485</a>.
     Trivial improvement reported by Steve Loughran and fixed by Steve Loughran (data-node)<br>
     <b>Improve code layout and constants in UnderReplicatedBlocks</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2471">HDFS-2471</a>.
     Major new feature reported by Suresh Srinivas and fixed by Suresh Srinivas (documentation)<br>
     <b>Add Federation feature, configuration and tools documentation</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2467">HDFS-2467</a>.
     Major bug reported by Owen O'Malley and fixed by Owen O'Malley <br>
     <b>HftpFileSystem uses incorrect compare for finding delegation tokens</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2465">HDFS-2465</a>.
     Major improvement reported by Todd Lipcon and fixed by Todd Lipcon (data-node , performance)<br>
     <b>Add HDFS support for fadvise readahead and drop-behind</b><br>
     <blockquote>HDFS now has the ability to use posix_fadvise and sync_data_range syscalls to manage the OS buffer cache. This support is currently considered experimental, and may be enabled by configuring the following keys:
dfs.datanode.drop.cache.behind.writes - set to true to drop data out of the buffer cache after writing
dfs.datanode.drop.cache.behind.reads - set to true to drop data out of the buffer cache when performing sequential reads
dfs.datanode.sync.behind.writes - set to true to trigger dirty page writeback immediately after writing data
dfs.datanode.readahead.bytes - set to a non-zero value to trigger readahead for sequential reads</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2453">HDFS-2453</a>.
     Major sub-task reported by Arpit Gupta and fixed by Tsz Wo (Nicholas), SZE (webhdfs)<br>
     <b>tail using a webhdfs uri throws an error</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2452">HDFS-2452</a>.
     Major bug reported by Konstantin Shvachko and fixed by Uma Maheswara Rao G (data-node)<br>
     <b>OutOfMemoryError in DataXceiverServer takes down the DataNode</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2445">HDFS-2445</a>.
     Major bug reported by Jonathan Eagles and fixed by Jonathan Eagles (test)<br>
     <b>Incorrect exit code for hadoop-hdfs-test tests when exception thrown</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2441">HDFS-2441</a>.
     Major sub-task reported by Arpit Gupta and fixed by Tsz Wo (Nicholas), SZE (webhdfs)<br>
     <b>webhdfs returns two content-type headers</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2439">HDFS-2439</a>.
     Major sub-task reported by Arpit Gupta and fixed by Tsz Wo (Nicholas), SZE (webhdfs)<br>
     <b>webhdfs open an invalid path leads to a 500 which states a npe, we should return a 404 with appropriate error message</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2436">HDFS-2436</a>.
     Major bug reported by Arpit Gupta and fixed by Uma Maheswara Rao G <br>
     <b>FSNamesystem.setTimes(..) expects the path is a file.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2432">HDFS-2432</a>.
     Major sub-task reported by Arpit Gupta and fixed by Tsz Wo (Nicholas), SZE (webhdfs)<br>
     <b>webhdfs setreplication api should return a 403 when called on a directory</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2428">HDFS-2428</a>.
     Major sub-task reported by Arpit Gupta and fixed by Tsz Wo (Nicholas), SZE (webhdfs)<br>
     <b>webhdfs api parameter validation should be better</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2427">HDFS-2427</a>.
     Major sub-task reported by Arpit Gupta and fixed by Tsz Wo (Nicholas), SZE (webhdfs)<br>
     <b>webhdfs mkdirs api call creates path with 777 permission, we should default it to 755</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2422">HDFS-2422</a>.
     Major bug reported by Jeff Bean and fixed by Aaron T. Myers (name-node)<br>
     <b>The NN should tolerate the same number of low-resource volumes as failed volumes</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2416">HDFS-2416</a>.
     Major sub-task reported by Arpit Gupta and fixed by Jitendra Nath Pandey (webhdfs)<br>
     <b>distcp with a webhdfs uri on a secure cluster fails</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2414">HDFS-2414</a>.
     Critical bug reported by Robert Joseph Evans and fixed by Todd Lipcon (name-node , test)<br>
     <b>TestDFSRollback fails intermittently</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2412">HDFS-2412</a>.
     Blocker bug reported by Todd Lipcon and fixed by Todd Lipcon <br>
     <b>Add backwards-compatibility layer for FSConstants</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2411">HDFS-2411</a>.
     Major bug reported by Arpit Gupta and fixed by Jitendra Nath Pandey (webhdfs)<br>
     <b>with webhdfs enabled in secure mode the auth to local mappings are not being respected.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2409">HDFS-2409</a>.
     Major bug reported by Jitendra Nath Pandey and fixed by Jitendra Nath Pandey <br>
     <b>_HOST in dfs.web.authentication.kerberos.principal.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2404">HDFS-2404</a>.
     Major sub-task reported by Arpit Gupta and fixed by Suresh Srinivas (webhdfs)<br>
     <b>webhdfs liststatus json response is not correct</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2403">HDFS-2403</a>.
     Major sub-task reported by Tsz Wo (Nicholas), SZE and fixed by Tsz Wo (Nicholas), SZE <br>
     <b>The renewer in NamenodeWebHdfsMethods.generateDelegationToken(..) is not used</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2401">HDFS-2401</a>.
     Major improvement reported by Jonathan Eagles and fixed by Jonathan Eagles (build)<br>
     <b>Running a set of methods in a Single Test Class</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2395">HDFS-2395</a>.
     Critical sub-task reported by Arpit Gupta and fixed by Tsz Wo (Nicholas), SZE (webhdfs)<br>
     <b>webhdfs api's should return a root element in the json response</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2385">HDFS-2385</a>.
     Major sub-task reported by Tsz Wo (Nicholas), SZE and fixed by Tsz Wo (Nicholas), SZE (webhdfs)<br>
     <b>Support delegation token renewal in webhdfs</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2371">HDFS-2371</a>.
     Major improvement reported by Suresh Srinivas and fixed by Suresh Srinivas (data-node)<br>
     <b>Refactor BlockSender.java for better readability</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2368">HDFS-2368</a>.
     Major bug reported by Arpit Gupta and fixed by Tsz Wo (Nicholas), SZE <br>
     <b>defaults created for web keytab and principal, these properties should not have defaults</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2366">HDFS-2366</a>.
     Major sub-task reported by Arpit Gupta and fixed by Tsz Wo (Nicholas), SZE (webhdfs)<br>
     <b>webhdfs throws a npe when ugi is null from getDelegationToken</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2363">HDFS-2363</a>.
     Minor sub-task reported by Uma Maheswara Rao G and fixed by Uma Maheswara Rao G (name-node)<br>
     <b>Move datanodes size printing to BlockManager from FSNameSystem's metasave API</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2361">HDFS-2361</a>.
     Critical bug reported by Rajit Saha and fixed by Jitendra Nath Pandey (name-node)<br>
     <b>hftp is broken</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2356">HDFS-2356</a>.
     Major sub-task reported by Tsz Wo (Nicholas), SZE and fixed by Tsz Wo (Nicholas), SZE (webhdfs)<br>
     <b>webhdfs: support case insensitive query parameter names</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2355">HDFS-2355</a>.
     Major improvement reported by Suresh Srinivas and fixed by Suresh Srinivas (name-node)<br>
     <b>Federation: enable using the same configuration file across all the nodes in the cluster.</b><br>
     <blockquote>This change allows when running multiple namenodes on different hosts, sharing the same configuration file across all the nodes in the cluster (Datanodes, NamNode, BackupNode, SecondaryNameNode), without the need to define dfs.federation.nameservice.id parameter.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2348">HDFS-2348</a>.
     Major sub-task reported by Tsz Wo (Nicholas), SZE and fixed by Tsz Wo (Nicholas), SZE (webhdfs)<br>
     <b>Support getContentSummary and getFileChecksum in webhdfs</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2347">HDFS-2347</a>.
     Trivial bug reported by Uma Maheswara Rao G and fixed by Uma Maheswara Rao G (name-node)<br>
     <b>checkpointTxnCount's comment still saying about editlog size</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2346">HDFS-2346</a>.
     Blocker bug reported by Uma Maheswara Rao G and fixed by Laxman (test)<br>
     <b>TestHost2NodesMap &amp; TestReplicasMap will fail depending upon execution order of test methods</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2344">HDFS-2344</a>.
     Major bug reported by Uma Maheswara Rao G and fixed by Uma Maheswara Rao G (test)<br>
     <b>Fix the TestOfflineEditsViewer test failure in 0.23 branch</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2340">HDFS-2340</a>.
     Major sub-task reported by Tsz Wo (Nicholas), SZE and fixed by Tsz Wo (Nicholas), SZE (webhdfs)<br>
     <b>Support getFileBlockLocations and getDelegationToken in webhdfs</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2338">HDFS-2338</a>.
     Major sub-task reported by Jitendra Nath Pandey and fixed by Jitendra Nath Pandey (webhdfs)<br>
     <b>Configuration option to enable/disable webhdfs.</b><br>
     <blockquote>Added a conf property dfs.webhdfs.enabled for enabling/disabling webhdfs.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2333">HDFS-2333</a>.
     Major bug reported by Ivan Kelly and fixed by Tsz Wo (Nicholas), SZE <br>
     <b>HDFS-2284 introduced 2 findbugs warnings on trunk</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2332">HDFS-2332</a>.
     Major test reported by Todd Lipcon and fixed by Todd Lipcon (test)<br>
     <b>Add test for HADOOP-7629: using an immutable FsPermission as an IPC parameter</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2331">HDFS-2331</a>.
     Major bug reported by Abhijit Suresh Shingate and fixed by Abhijit Suresh Shingate (hdfs client)<br>
     <b>Hdfs compilation fails</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2323">HDFS-2323</a>.
     Major bug reported by Tom White and fixed by Tom White <br>
     <b>start-dfs.sh script fails for tarball install</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2322">HDFS-2322</a>.
     Major bug reported by Alejandro Abdelnur and fixed by Alejandro Abdelnur (build)<br>
     <b>the build fails in Windows because commons-daemon TAR cannot be fetched</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2318">HDFS-2318</a>.
     Major sub-task reported by Tsz Wo (Nicholas), SZE and fixed by Tsz Wo (Nicholas), SZE (webhdfs)<br>
     <b>Provide authentication to webhdfs using SPNEGO</b><br>
     <blockquote>Added two new conf properties dfs.web.authentication.kerberos.principal and dfs.web.authentication.kerberos.keytab for the SPNEGO servlet filter.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2317">HDFS-2317</a>.
     Major sub-task reported by Tsz Wo (Nicholas), SZE and fixed by Tsz Wo (Nicholas), SZE <br>
     <b>Read access to HDFS using HTTP REST</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2314">HDFS-2314</a>.
     Major bug reported by Vinod Kumar Vavilapalli and fixed by Todd Lipcon (test)<br>
     <b>MRV1 test compilation broken after HDFS-2197</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2294">HDFS-2294</a>.
     Major improvement reported by Alejandro Abdelnur and fixed by Alejandro Abdelnur (build)<br>
     <b>Download of commons-daemon TAR should not be under target</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2290">HDFS-2290</a>.
     Major bug reported by Konstantin Shvachko and fixed by Benoy Antony (name-node)<br>
     <b>Block with corrupt replica is not getting replicated</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2289">HDFS-2289</a>.
     Blocker bug reported by Arun C Murthy and fixed by Alejandro Abdelnur <br>
     <b>jsvc isn't part of the artifact</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2286">HDFS-2286</a>.
     Trivial improvement reported by Todd Lipcon and fixed by Todd Lipcon (data-node)<br>
     <b>DataXceiverServer logs AsynchronousCloseException at shutdown</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2284">HDFS-2284</a>.
     Major sub-task reported by Sanjay Radia and fixed by Tsz Wo (Nicholas), SZE <br>
     <b>Write Http access to HDFS</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2273">HDFS-2273</a>.
     Minor improvement reported by Tsz Wo (Nicholas), SZE and fixed by Tsz Wo (Nicholas), SZE (name-node)<br>
     <b>Refactor BlockManager.recentInvalidateSets to a new class</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2267">HDFS-2267</a>.
     Trivial bug reported by Todd Lipcon and fixed by Todd Lipcon (data-node)<br>
     <b>DataXceiver thread name incorrect while waiting on op during keepalive</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2266">HDFS-2266</a>.
     Major sub-task reported by Tsz Wo (Nicholas), SZE and fixed by Tsz Wo (Nicholas), SZE (name-node)<br>
     <b>Add a Namesystem interface to avoid directly referring to FSNamesystem</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2265">HDFS-2265</a>.
     Major sub-task reported by Tsz Wo (Nicholas), SZE and fixed by Tsz Wo (Nicholas), SZE (name-node)<br>
     <b>Remove unnecessary BlockTokenSecretManager fields/methods from BlockManager</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2260">HDFS-2260</a>.
     Major improvement reported by Todd Lipcon and fixed by Todd Lipcon (hdfs client)<br>
     <b>Refactor BlockReader into an interface and implementation</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2258">HDFS-2258</a>.
     Major bug reported by Konstantin Shvachko and fixed by Konstantin Shvachko (name-node , test)<br>
     <b>TestLeaseRecovery2 fails as lease hard limit is not reset to default</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2245">HDFS-2245</a>.
     Major bug reported by Tsz Wo (Nicholas), SZE and fixed by Tsz Wo (Nicholas), SZE (name-node)<br>
     <b>BlockManager.chooseTarget(..) throws NPE</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2241">HDFS-2241</a>.
     Major improvement reported by Suresh Srinivas and fixed by Suresh Srinivas <br>
     <b>Remove implementing FSConstants interface just to access the constants defined in the interface</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2240">HDFS-2240</a>.
     Critical bug reported by Todd Lipcon and fixed by Tsz Wo (Nicholas), SZE (hdfs client)<br>
     <b>Possible deadlock between LeaseRenewer and its factory</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2239">HDFS-2239</a>.
     Major sub-task reported by Tsz Wo (Nicholas), SZE and fixed by Tsz Wo (Nicholas), SZE (name-node)<br>
     <b>Reduce access levels of the fields and methods in FSNamesystem</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2238">HDFS-2238</a>.
     Minor improvement reported by Tsz Wo (Nicholas), SZE and fixed by Uma Maheswara Rao G (name-node)<br>
     <b>NamenodeFsck.toString() uses StringBuilder with + operator </b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2237">HDFS-2237</a>.
     Minor sub-task reported by Tsz Wo (Nicholas), SZE and fixed by Tsz Wo (Nicholas), SZE (name-node)<br>
     <b>Change UnderReplicatedBlocks from public to package private</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2235">HDFS-2235</a>.
     Major bug reported by Eli Collins and fixed by Eli Collins (name-node)<br>
     <b>Encode servlet paths</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2233">HDFS-2233</a>.
     Major test reported by Eli Collins and fixed by Eli Collins (name-node)<br>
     <b>Add WebUI tests with URI reserved chars in the path and filename</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2232">HDFS-2232</a>.
     Blocker bug reported by Konstantin Shvachko and fixed by Plamen Jeliazkov (test)<br>
     <b>TestHDFSCLI fails on 0.22 branch</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2230">HDFS-2230</a>.
     Major improvement reported by Giridharan Kesavan and fixed by Giridharan Kesavan (build)<br>
     <b>hdfs it not resolving the latest common test jars published post common mavenization</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2229">HDFS-2229</a>.
     Blocker bug reported by Vinod Kumar Vavilapalli and fixed by Tsz Wo (Nicholas), SZE (name-node)<br>
     <b>Deadlock in NameNode</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2228">HDFS-2228</a>.
     Major sub-task reported by Tsz Wo (Nicholas), SZE and fixed by Tsz Wo (Nicholas), SZE (name-node)<br>
     <b>Move block and datanode code from FSNamesystem to BlockManager and DatanodeManager</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2227">HDFS-2227</a>.
     Major improvement reported by Ivan Kelly and fixed by Ivan Kelly <br>
     <b>HDFS-2018 Part 2 :  getRemoteEditLogManifest should pull it's information from FileJournalManager</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2226">HDFS-2226</a>.
     Trivial improvement reported by Todd Lipcon and fixed by Todd Lipcon (name-node)<br>
     <b>Clean up counting of operations in FSEditLogLoader</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2225">HDFS-2225</a>.
     Major improvement reported by Ivan Kelly and fixed by Ivan Kelly <br>
     <b>HDFS-2018 Part 1 : Refactor file management so its not in classes which should be generic</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2212">HDFS-2212</a>.
     Major improvement reported by Todd Lipcon and fixed by Todd Lipcon (name-node)<br>
     <b>Refactor double-buffering code out of EditLogOutputStreams</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2210">HDFS-2210</a>.
     Major task reported by Eli Collins and fixed by Eli Collins (contrib/hdfsproxy)<br>
     <b>Remove hdfsproxy</b><br>
     <blockquote>The hdfsproxy contrib component is no longer supported.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2209">HDFS-2209</a>.
     Minor improvement reported by Steve Loughran and fixed by Steve Loughran (test)<br>
     <b>Make MiniDFS easier to embed in other apps</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2205">HDFS-2205</a>.
     Major improvement reported by Ravi Prakash and fixed by Ravi Prakash (hdfs client)<br>
     <b>Log message for failed connection to datanode is not followed by a success message.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2202">HDFS-2202</a>.
     Major new feature reported by Eric Payne and fixed by Eric Payne (balancer , data-node)<br>
     <b>Changes to balancer bandwidth should not require datanode restart.</b><br>
     <blockquote>New dfsadmin command added: [-setBalancerBandwidth &lt;bandwidth&gt;] where bandwidth is max network bandwidth in bytes per second that the balancer is allowed to use on each datanode during balacing.

This is an incompatible change in 0.23.  The versions of ClientProtocol and DatanodeProtocol are changed.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2200">HDFS-2200</a>.
     Minor sub-task reported by Tsz Wo (Nicholas), SZE and fixed by Tsz Wo (Nicholas), SZE (name-node)<br>
     <b>Set FSNamesystem.LOG to package private</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2199">HDFS-2199</a>.
     Major sub-task reported by Tsz Wo (Nicholas), SZE and fixed by Uma Maheswara Rao G (name-node)<br>
     <b>Move blockTokenSecretManager from FSNamesystem to BlockManager</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2198">HDFS-2198</a>.
     Minor improvement reported by Suresh Srinivas and fixed by Suresh Srinivas (data-node , hdfs client , name-node)<br>
     <b>Remove hardcoded configuration keys</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2197">HDFS-2197</a>.
     Major improvement reported by Todd Lipcon and fixed by Todd Lipcon (name-node)<br>
     <b>Refactor RPC call implementations out of NameNode class</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2196">HDFS-2196</a>.
     Major task reported by Alejandro Abdelnur and fixed by Alejandro Abdelnur (build)<br>
     <b>Make ant build system work with hadoop-common JAR generated by Maven</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2191">HDFS-2191</a>.
     Major sub-task reported by Tsz Wo (Nicholas), SZE and fixed by Tsz Wo (Nicholas), SZE (name-node)<br>
     <b>Move datanodeMap from FSNamesystem to DatanodeManager</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2187">HDFS-2187</a>.
     Major improvement reported by Ivan Kelly and fixed by Ivan Kelly <br>
     <b>HDFS-1580: Make EditLogInputStream act like an iterator over FSEditLogOps</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2186">HDFS-2186</a>.
     Major bug reported by Eli Collins and fixed by Eli Collins (data-node)<br>
     <b>DN volume failures on startup are not counted</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2180">HDFS-2180</a>.
     Major improvement reported by Todd Lipcon and fixed by Todd Lipcon <br>
     <b>Refactor NameNode HTTP server into new class</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2167">HDFS-2167</a>.
     Major sub-task reported by Tsz Wo (Nicholas), SZE and fixed by Tsz Wo (Nicholas), SZE (name-node)<br>
     <b>Move dnsToSwitchMapping and hostsReader from FSNamesystem to DatanodeManager</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2161">HDFS-2161</a>.
     Minor improvement reported by Tsz Wo (Nicholas), SZE and fixed by Tsz Wo (Nicholas), SZE (balancer , data-node , hdfs client , name-node , security)<br>
     <b>Move utilities to DFSUtil</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2159">HDFS-2159</a>.
     Major sub-task reported by Tsz Wo (Nicholas), SZE and fixed by Tsz Wo (Nicholas), SZE (hdfs client)<br>
     <b>Deprecate DistributedFileSystem.getClient()</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2157">HDFS-2157</a>.
     Major improvement reported by Aaron T. Myers and fixed by Aaron T. Myers (documentation , name-node)<br>
     <b>Improve header comment in o.a.h.hdfs.server.namenode.NameNode</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2156">HDFS-2156</a>.
     Major bug reported by Owen O'Malley and fixed by Eric Yang <br>
     <b>rpm should only require the same major version as common</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2154">HDFS-2154</a>.
     Minor test reported by Tsz Wo (Nicholas), SZE and fixed by Tsz Wo (Nicholas), SZE (test)<br>
     <b>TestDFSShell should use test dir</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2153">HDFS-2153</a>.
     Minor bug reported by Tsz Wo (Nicholas), SZE and fixed by Tsz Wo (Nicholas), SZE (test)<br>
     <b>DFSClientAdapter should be put under test</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2149">HDFS-2149</a>.
     Major sub-task reported by Ivan Kelly and fixed by Ivan Kelly (name-node)<br>
     <b>Move EditLogOp serialization formats into FsEditLogOp implementations</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2147">HDFS-2147</a>.
     Major sub-task reported by Tsz Wo (Nicholas), SZE and fixed by Tsz Wo (Nicholas), SZE (name-node)<br>
     <b>Move cluster network topology to block management</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2144">HDFS-2144</a>.
     Major improvement reported by Ravi Prakash and fixed by Ravi Prakash (name-node)<br>
     <b>If SNN shuts down during initialization it does not log the cause</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2143">HDFS-2143</a>.
     Major improvement reported by Ravi Prakash and fixed by Ravi Prakash <br>
     <b>Federation: we should link to the live nodes and dead nodes to cluster web console</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2141">HDFS-2141</a>.
     Major sub-task reported by Suresh Srinivas and fixed by Suresh Srinivas (ha , name-node)<br>
     <b>Remove NameNode roles Active and Standby (they become states)</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2140">HDFS-2140</a>.
     Major sub-task reported by Tsz Wo (Nicholas), SZE and fixed by Tsz Wo (Nicholas), SZE (name-node)<br>
     <b>Move Host2NodesMap to block management</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2134">HDFS-2134</a>.
     Major sub-task reported by Tsz Wo (Nicholas), SZE and fixed by Tsz Wo (Nicholas), SZE (name-node)<br>
     <b>Move DecommissionManager to block management</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2132">HDFS-2132</a>.
     Major bug reported by Aaron T. Myers and fixed by Aaron T. Myers <br>
     <b>Potential resource leak in EditLogFileOutputStream.close</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2131">HDFS-2131</a>.
     Major test reported by Uma Maheswara Rao G and fixed by Uma Maheswara Rao G (test)<br>
     <b>Tests for HADOOP-7361</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2118">HDFS-2118</a>.
     Minor improvement reported by Eli Collins and fixed by Eli Collins (data-node)<br>
     <b>Couple dfs data dir improvements</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2116">HDFS-2116</a>.
     Minor improvement reported by Eli Collins and fixed by Plamen Jeliazkov (test)<br>
     <b>Cleanup TestStreamFile and TestByteRangeInputStream </b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2114">HDFS-2114</a>.
     Major bug reported by John George and fixed by John George <br>
     <b>re-commission of a decommissioned node does not delete excess replica</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2112">HDFS-2112</a>.
     Major sub-task reported by Tsz Wo (Nicholas), SZE and fixed by Uma Maheswara Rao G (name-node)<br>
     <b>Move ReplicationMonitor to block management</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2111">HDFS-2111</a>.
     Major test reported by Harsh J and fixed by Harsh J (data-node , test)<br>
     <b>Add tests for ensuring that the DN will start with a few bad data directories (Part 1 of testing DiskChecker)</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2110">HDFS-2110</a>.
     Minor improvement reported by Eli Collins and fixed by Eli Collins (name-node)<br>
     <b>Some StreamFile and ByteRangeInputStream cleanup</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2109">HDFS-2109</a>.
     Major bug reported by Bharath Mundlapudi and fixed by Bharath Mundlapudi (hdfs client)<br>
     <b>Store uMask as member variable to DFSClient.Conf</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2108">HDFS-2108</a>.
     Major sub-task reported by Tsz Wo (Nicholas), SZE and fixed by Tsz Wo (Nicholas), SZE (name-node)<br>
     <b>Move datanode heartbeat handling to BlockManager</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2107">HDFS-2107</a>.
     Major sub-task reported by Tsz Wo (Nicholas), SZE and fixed by Tsz Wo (Nicholas), SZE (name-node)<br>
     <b>Move block management code to a package</b><br>
     <blockquote>Moved block management codes to a new package org.apache.hadoop.hdfs.server.blockmanagement.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2100">HDFS-2100</a>.
     Minor test reported by Aaron T. Myers and fixed by Aaron T. Myers (test)<br>
     <b>Improve TestStorageRestore</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2096">HDFS-2096</a>.
     Major task reported by Alejandro Abdelnur and fixed by Alejandro Abdelnur (build)<br>
     <b>Mavenization of hadoop-hdfs</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2092">HDFS-2092</a>.
     Major bug reported by Bharath Mundlapudi and fixed by Bharath Mundlapudi (hdfs client)<br>
     <b>Create a light inner conf class in DFSClient</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2086">HDFS-2086</a>.
     Major bug reported by Tanping Wang and fixed by Tanping Wang (name-node)<br>
     <b>If the include hosts list contains host name, after restarting namenode, datanodes registrant is denied </b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2083">HDFS-2083</a>.
     Major new feature reported by Tanping Wang and fixed by Tanping Wang <br>
     <b>Adopt JMXJsonServlet into HDFS in order to query statistics</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2082">HDFS-2082</a>.
     Major bug reported by Aaron T. Myers and fixed by Aaron T. Myers <br>
     <b>SecondaryNameNode web interface doesn't show the right info</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2073">HDFS-2073</a>.
     Minor improvement reported by Suresh Srinivas and fixed by Suresh Srinivas (name-node)<br>
     <b>Namenode is missing @Override annotations</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2069">HDFS-2069</a>.
     Trivial sub-task reported by Ravi Phulari and fixed by Harsh J (documentation)<br>
     <b>Incorrect default trash interval value in the docs</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2067">HDFS-2067</a>.
     Major bug reported by Todd Lipcon and fixed by Tsz Wo (Nicholas), SZE (data-node , hdfs client)<br>
     <b>Bump DATA_TRANSFER_VERSION in trunk for protobufs</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2066">HDFS-2066</a>.
     Major sub-task reported by Tsz Wo (Nicholas), SZE and fixed by Tsz Wo (Nicholas), SZE (data-node , hdfs client , name-node)<br>
     <b>Create a package and individual class files for DataTransferProtocol</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2065">HDFS-2065</a>.
     Major bug reported by Bharath Mundlapudi and fixed by Uma Maheswara Rao G <br>
     <b>Fix NPE in DFSClient.getFileChecksum</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2061">HDFS-2061</a>.
     Minor bug reported by Matt Foley and fixed by Matt Foley (name-node)<br>
     <b>two minor bugs in BlockManager block report processing</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2058">HDFS-2058</a>.
     Major new feature reported by Todd Lipcon and fixed by Todd Lipcon <br>
     <b>DataTransfer Protocol using protobufs</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2056">HDFS-2056</a>.
     Minor improvement reported by Tanping Wang and fixed by Tanping Wang (documentation , tools)<br>
     <b>Update fetchdt usage</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2055">HDFS-2055</a>.
     Major new feature reported by Travis Crawford and fixed by Travis Crawford (libhdfs)<br>
     <b>Add hflush support to libhdfs</b><br>
     <blockquote>Add hdfsHFlush to libhdfs.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2054">HDFS-2054</a>.
     Minor improvement reported by Kihwal Lee and fixed by Kihwal Lee (data-node)<br>
     <b>BlockSender.sendChunk() prints ERROR for connection closures encountered  during transferToFully()</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2053">HDFS-2053</a>.
     Minor bug reported by Michael Noll and fixed by Michael Noll (name-node)<br>
     <b>Bug in INodeDirectory#computeContentSummary warning</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2046">HDFS-2046</a>.
     Major improvement reported by Todd Lipcon and fixed by Todd Lipcon (build , test)<br>
     <b>Force entropy to come from non-true random for tests</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2041">HDFS-2041</a>.
     Major bug reported by Todd Lipcon and fixed by Todd Lipcon <br>
     <b>Some mtimes and atimes are lost when edit logs are replayed</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2040">HDFS-2040</a>.
     Minor improvement reported by Eli Collins and fixed by Eli Collins <br>
     <b>Only build libhdfs if a flag is passed</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2034">HDFS-2034</a>.
     Minor bug reported by John George and fixed by John George (hdfs client)<br>
     <b>length in getBlockRange becomes -ve when reading only from currently being written blk</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2030">HDFS-2030</a>.
     Minor bug reported by Bharath Mundlapudi and fixed by Bharath Mundlapudi <br>
     <b>Fix the usability of namenode upgrade command</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2029">HDFS-2029</a>.
     Trivial improvement reported by Tsz Wo (Nicholas), SZE and fixed by John George (test)<br>
     <b>Improve TestWriteRead</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2024">HDFS-2024</a>.
     Trivial improvement reported by CW Chung and fixed by CW Chung (test)<br>
     <b>Eclipse format HDFS Junit test hdfs/TestWriteRead.java </b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2022">HDFS-2022</a>.
     Major bug reported by Eli Collins and fixed by Eric Yang (build)<br>
     <b>ant binary should build libhdfs</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2021">HDFS-2021</a>.
     Major bug reported by CW Chung and fixed by John George (data-node)<br>
     <b>TestWriteRead failed with inconsistent visible length of a file </b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2020">HDFS-2020</a>.
     Major bug reported by Suresh Srinivas and fixed by Suresh Srinivas (data-node , test)<br>
     <b>TestDFSUpgradeFromImage fails</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2019">HDFS-2019</a>.
     Minor bug reported by Bharath Mundlapudi and fixed by Bharath Mundlapudi (data-node)<br>
     <b>Fix all the places where Java method File.list is used with FileUtil.list API</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2014">HDFS-2014</a>.
     Critical bug reported by Todd Lipcon and fixed by Eric Yang (scripts)<br>
     <b>bin/hdfs no longer works from a source checkout</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2011">HDFS-2011</a>.
     Major bug reported by Ravi Prakash and fixed by Ravi Prakash (name-node)<br>
     <b>Removal and restoration of storage directories on checkpointing failure doesn't work properly</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2003">HDFS-2003</a>.
     Major improvement reported by Ivan Kelly and fixed by Ivan Kelly <br>
     <b>Separate FSEditLog reading logic from editLog memory state building logic</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-2002">HDFS-2002</a>.
     Major bug reported by Konstantin Shvachko and fixed by Plamen Jeliazkov (name-node)<br>
     <b>Incorrect computation of needed blocks in getTurnOffTip()</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1999">HDFS-1999</a>.
     Major bug reported by Aaron T. Myers and fixed by Aaron T. Myers (test)<br>
     <b>Tests use deprecated configs</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1998">HDFS-1998</a>.
     Minor bug reported by Tanping Wang and fixed by Tanping Wang (scripts)<br>
     <b>make refresh-namodenodes.sh refreshing all namenodes</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1996">HDFS-1996</a>.
     Major improvement reported by Tsz Wo (Nicholas), SZE and fixed by Eric Yang (build)<br>
     <b>ivy: hdfs test jar should be independent to common test jar</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1995">HDFS-1995</a>.
     Minor improvement reported by Tanping Wang and fixed by Tanping Wang <br>
     <b>Minor modification to both dfsclusterhealth and dfshealth pages for Web UI</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1990">HDFS-1990</a>.
     Minor bug reported by ramkrishna.s.vasudevan and fixed by Uma Maheswara Rao G (data-node)<br>
     <b>Resource leaks in HDFS</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1986">HDFS-1986</a>.
     Minor bug reported by Tanping Wang and fixed by Tanping Wang (tools)<br>
     <b>Add an option for user to return http or https ports regardless of security is on/off in DFSUtil.getInfoServer()</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1983">HDFS-1983</a>.
     Major test reported by Daryn Sharp and fixed by Daryn Sharp (test)<br>
     <b>Fix path display for copy &amp; rm</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1968">HDFS-1968</a>.
     Minor test reported by CW Chung and fixed by CW Chung (test)<br>
     <b>Enhance TestWriteRead to support File Append and Position Read </b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1966">HDFS-1966</a>.
     Major sub-task reported by Tsz Wo (Nicholas), SZE and fixed by Tsz Wo (Nicholas), SZE (data-node , hdfs client)<br>
     <b>Encapsulate individual DataTransferProtocol op header</b><br>
     <blockquote>Added header classes for individual DataTransferProtocol op headers.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1964">HDFS-1964</a>.
     Major bug reported by Aaron T. Myers and fixed by Aaron T. Myers <br>
     <b>Incorrect HTML unescaping in DatanodeJspHelper.java</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1963">HDFS-1963</a>.
     Major new feature reported by Eric Yang and fixed by Eric Yang (build)<br>
     <b>HDFS rpm integration project</b><br>
     <blockquote>Create HDFS RPM package</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1959">HDFS-1959</a>.
     Minor improvement reported by Eli Collins and fixed by Eli Collins <br>
     <b>Better error message for missing namenode directory</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1958">HDFS-1958</a>.
     Major improvement reported by Todd Lipcon and fixed by Todd Lipcon (name-node)<br>
     <b>Format confirmation prompt should be more lenient of its input</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1955">HDFS-1955</a>.
     Major bug reported by Matt Foley and fixed by Matt Foley (name-node)<br>
     <b>FSImage.doUpgrade() was made too fault-tolerant by HDFS-1826</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1953">HDFS-1953</a>.
     Minor bug reported by Tanping Wang and fixed by Tanping Wang <br>
     <b>Change name node mxbean name in cluster web console</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1952">HDFS-1952</a>.
     Major bug reported by Matt Foley and fixed by Andrew Wang <br>
     <b>FSEditLog.open() appears to succeed even if all EDITS directories fail</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1945">HDFS-1945</a>.
     Major sub-task reported by Tsz Wo (Nicholas), SZE and fixed by Tsz Wo (Nicholas), SZE (data-node , hdfs client)<br>
     <b>Removed deprecated fields in DataTransferProtocol</b><br>
     <blockquote>Removed the deprecated fields in DataTransferProtocol.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1943">HDFS-1943</a>.
     Blocker bug reported by Wei Yongjun and fixed by Matt Foley (scripts)<br>
     <b>fail to start datanode while start-dfs.sh is executed by root user</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1939">HDFS-1939</a>.
     Major improvement reported by Tsz Wo (Nicholas), SZE and fixed by Eric Yang (build)<br>
     <b>ivy: test conf should not extend common conf</b><br>
     <blockquote>* Removed duplicated jars in test class path.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1938">HDFS-1938</a>.
     Minor bug reported by Tsz Wo (Nicholas), SZE and fixed by Eric Yang (build)<br>
     <b> Reference ivy-hdfs.classpath not found.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1937">HDFS-1937</a>.
     Major improvement reported by Tsz Wo (Nicholas), SZE and fixed by Tsz Wo (Nicholas), SZE (data-node , hdfs client)<br>
     <b>Umbrella JIRA for improving DataTransferProtocol</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1936">HDFS-1936</a>.
     Blocker bug reported by Suresh Srinivas and fixed by Suresh Srinivas (name-node)<br>
     <b>Updating the layout version from HDFS-1822 causes upgrade problems.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1934">HDFS-1934</a>.
     Major bug reported by Bharath Mundlapudi and fixed by Bharath Mundlapudi <br>
     <b>Fix NullPointerException when File.listFiles() API returns null</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1933">HDFS-1933</a>.
     Major test reported by Daryn Sharp and fixed by Daryn Sharp (test)<br>
     <b>Update tests for FsShell's "test"</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1931">HDFS-1931</a>.
     Major test reported by Daryn Sharp and fixed by Daryn Sharp <br>
     <b>Update tests for du/dus/df</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1928">HDFS-1928</a>.
     Major test reported by Daryn Sharp and fixed by Daryn Sharp (test)<br>
     <b>Fix path display for touchz</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1927">HDFS-1927</a>.
     Major bug reported by John George and fixed by John George (name-node)<br>
     <b>audit logs could ignore certain xsactions and also could contain "ip=null"</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1923">HDFS-1923</a>.
     Major sub-task reported by Matt Foley and fixed by Tsz Wo (Nicholas), SZE (test)<br>
     <b>Intermittent recurring failure in TestFiDataTransferProtocol2.pipeline_Fi_29</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1922">HDFS-1922</a>.
     Major sub-task reported by Matt Foley and fixed by Luke Lu (test)<br>
     <b>Recurring failure in TestJMXGet.testNameNode since build 477 on May 11</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1921">HDFS-1921</a>.
     Blocker bug reported by Aaron T. Myers and fixed by Matt Foley <br>
     <b>Save namespace can cause NN to be unable to come up on restart</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1920">HDFS-1920</a>.
     Major bug reported by Trevor Robinson and fixed by Trevor Robinson (libhdfs)<br>
     <b>libhdfs does not build for ARM processors</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1917">HDFS-1917</a>.
     Major bug reported by Eric Yang and fixed by Eric Yang (build)<br>
     <b>Clean up duplication of dependent jar files</b><br>
     <blockquote>Remove packaging of duplicated third party jar files</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1914">HDFS-1914</a>.
     Major bug reported by Suresh Srinivas and fixed by Suresh Srinivas (name-node)<br>
     <b>Federation: namenode storage directory must be configurable specific to a namenode</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1912">HDFS-1912</a>.
     Major test reported by Daryn Sharp and fixed by Daryn Sharp (test)<br>
     <b>Update tests for FsShell standardized error messages</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1911">HDFS-1911</a>.
     Major test reported by Sanjay Radia and fixed by Sanjay Radia <br>
     <b>HDFS tests for viewfs</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1908">HDFS-1908</a>.
     Minor bug reported by Tsz Wo (Nicholas), SZE and fixed by Tsz Wo (Nicholas), SZE (test)<br>
     <b>DataTransferTestUtil$CountdownDoosAction.run(..) throws NullPointerException</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1907">HDFS-1907</a>.
     Major bug reported by CW Chung and fixed by John George (hdfs client)<br>
     <b>BlockMissingException upon concurrent read and write: reader was doing file position read while writer is doing write without hflush</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1906">HDFS-1906</a>.
     Minor improvement reported by Suresh Srinivas and fixed by Suresh Srinivas (hdfs client)<br>
     <b>Remove logging exception stack trace when one of the datanode targets to read from is not reachable</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1905">HDFS-1905</a>.
     Minor bug reported by Bharath Mundlapudi and fixed by Bharath Mundlapudi (name-node)<br>
     <b>Improve the usability of namenode -format </b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1903">HDFS-1903</a>.
     Major test reported by Daryn Sharp and fixed by Daryn Sharp (test)<br>
     <b>Fix path display for rm/rmr</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1902">HDFS-1902</a>.
     Major test reported by Daryn Sharp and fixed by Daryn Sharp (test)<br>
     <b>Fix path display for setrep</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1899">HDFS-1899</a>.
     Major improvement reported by Todd Lipcon and fixed by Ted Yu <br>
     <b>GenericTestUtils.formatNamenode is misplaced</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1898">HDFS-1898</a>.
     Critical bug reported by Todd Lipcon and fixed by Todd Lipcon <br>
     <b>Tests failing on trunk due to use of NameNode.format</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1890">HDFS-1890</a>.
     Minor improvement reported by Tsz Wo (Nicholas), SZE and fixed by Tsz Wo (Nicholas), SZE (hdfs client)<br>
     <b>A few improvements on the LeaseRenewer.pendingCreates map</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1889">HDFS-1889</a>.
     Major bug reported by John George and fixed by John George <br>
     <b>incorrect path in start/stop dfs script</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1888">HDFS-1888</a>.
     Major bug reported by Suresh Srinivas and fixed by Suresh Srinivas <br>
     <b>MiniDFSCluster#corruptBlockOnDatanodes() access must be public for MapReduce contrib raid</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1884">HDFS-1884</a>.
     Major sub-task reported by Matt Foley and fixed by Aaron T. Myers (test)<br>
     <b>Improve TestDFSStorageStateRecovery</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1883">HDFS-1883</a>.
     Major sub-task reported by Matt Foley and fixed by  (test)<br>
     <b>Recurring failures in TestBackupNode since HDFS-1052</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1881">HDFS-1881</a>.
     Major bug reported by Tanping Wang and fixed by Tanping Wang (data-node)<br>
     <b>Federation: after taking snapshot the current directory of datanode is empty</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1877">HDFS-1877</a>.
     Minor test reported by CW Chung and fixed by CW Chung (test)<br>
     <b>Create a functional test for file read/write</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1876">HDFS-1876</a>.
     Blocker bug reported by Todd Lipcon and fixed by Todd Lipcon <br>
     <b>One MiniDFSCluster ignores numDataNodes parameter</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1875">HDFS-1875</a>.
     Major bug reported by Eric Payne and fixed by Eric Payne (test)<br>
     <b>MiniDFSCluster hard-codes dfs.datanode.address to localhost</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1873">HDFS-1873</a>.
     Major new feature reported by Tanping Wang and fixed by Tanping Wang <br>
     <b>Federation Cluster Management Web Console</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1871">HDFS-1871</a>.
     Major bug reported by Suresh Srinivas and fixed by Suresh Srinivas (test)<br>
     <b>Tests using MiniDFSCluster fail to compile due to HDFS-1052 changes</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1870">HDFS-1870</a>.
     Minor improvement reported by Tsz Wo (Nicholas), SZE and fixed by Tsz Wo (Nicholas), SZE (hdfs client)<br>
     <b>Refactor DFSClient.LeaseChecker</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1869">HDFS-1869</a>.
     Major bug reported by Daryn Sharp and fixed by Daryn Sharp (name-node)<br>
     <b>mkdirs should use the supplied permission for all of the created directories</b><br>
     <blockquote>A multi-level mkdir is now POSIX compliant.  Instead of creating intermediate directories with the permissions of the parent directory, intermediate directories are created with permission bits of rwxrwxrwx (0777) as modified by the current umask, plus write and search permission for the owner.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1865">HDFS-1865</a>.
     Major improvement reported by Tsz Wo (Nicholas), SZE and fixed by Tsz Wo (Nicholas), SZE (hdfs client)<br>
     <b>Share LeaseChecker thread among DFSClients</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1862">HDFS-1862</a>.
     Major test reported by Aaron T. Myers and fixed by Aaron T. Myers (test)<br>
     <b>Improve test reliability of HDFS-1594</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1861">HDFS-1861</a>.
     Major improvement reported by Eli Collins and fixed by Eli Collins (data-node)<br>
     <b>Rename dfs.datanode.max.xcievers and bump its default value</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1856">HDFS-1856</a>.
     Major sub-task reported by Matt Foley and fixed by Matt Foley (test)<br>
     <b>TestDatanodeBlockScanner waits forever, errs without giving information</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1855">HDFS-1855</a>.
     Major test reported by Matt Foley and fixed by Matt Foley (test)<br>
     <b>TestDatanodeBlockScanner.testBlockCorruptionRecoveryPolicy() part 2 fails in two different ways</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1854">HDFS-1854</a>.
     Major sub-task reported by Matt Foley and fixed by Matt Foley (test)<br>
     <b>make failure message more useful in DFSTestUtil.waitReplication()</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1846">HDFS-1846</a>.
     Major improvement reported by Aaron T. Myers and fixed by Aaron T. Myers (name-node)<br>
     <b>Don't fill preallocated portion of edits log with 0x00</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1845">HDFS-1845</a>.
     Major bug reported by John George and fixed by John George <br>
     <b>symlink comes up as directory after namenode restart</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1844">HDFS-1844</a>.
     Major test reported by Daryn Sharp and fixed by Daryn Sharp (test)<br>
     <b>Move -fs usage tests from hdfs into common</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1843">HDFS-1843</a>.
     Minor improvement reported by Bharath Mundlapudi and fixed by Bharath Mundlapudi <br>
     <b>Discover file not found early for file append </b><br>
     <blockquote>I have committed this. Thanks to Bharath!</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1840">HDFS-1840</a>.
     Major improvement reported by Tsz Wo (Nicholas), SZE and fixed by Tsz Wo (Nicholas), SZE (hdfs client)<br>
     <b>Terminate LeaseChecker when all writing files are closed.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1835">HDFS-1835</a>.
     Major bug reported by John Carrino and fixed by John Carrino (data-node)<br>
     <b>DataNode.setNewStorageID pulls entropy from /dev/random</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1833">HDFS-1833</a>.
     Minor improvement reported by Tsz Wo (Nicholas), SZE and fixed by Tsz Wo (Nicholas), SZE (data-node)<br>
     <b>Refactor BlockReceiver</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1831">HDFS-1831</a>.
     Major improvement reported by Suresh Srinivas and fixed by Suresh Srinivas (name-node)<br>
     <b>HDFS equivalent of HADOOP-7223 changes to handle FileContext createFlag combinations</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1829">HDFS-1829</a>.
     Major bug reported by Matt Foley and fixed by Matt Foley (name-node)<br>
     <b>TestNodeCount waits forever, errs without giving information</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1827">HDFS-1827</a>.
     Major bug reported by Matt Foley and fixed by Matt Foley (name-node)<br>
     <b>TestBlockReplacement waits forever, errs without giving information</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1826">HDFS-1826</a>.
     Major sub-task reported by Hairong Kuang and fixed by Matt Foley (name-node)<br>
     <b>NameNode should save image to name directories in parallel during upgrade</b><br>
     <blockquote>I've committed this. Thanks, Matt!</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1823">HDFS-1823</a>.
     Blocker bug reported by Tom White and fixed by Tom White (scripts)<br>
     <b>start-dfs.sh script fails if HADOOP_HOME is not set</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1822">HDFS-1822</a>.
     Blocker bug reported by Suresh Srinivas and fixed by Suresh Srinivas (name-node)<br>
     <b>Editlog opcodes overlap between 20 security and later releases</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1821">HDFS-1821</a>.
     Major bug reported by John George and fixed by John George <br>
     <b>FileContext.createSymlink with kerberos enabled sets wrong owner</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1818">HDFS-1818</a>.
     Major bug reported by Aaron T. Myers and fixed by Aaron T. Myers (test)<br>
     <b>TestHDFSCLI is failing on trunk</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1817">HDFS-1817</a>.
     Trivial improvement reported by Tsz Wo (Nicholas), SZE and fixed by Tsz Wo (Nicholas), SZE (test)<br>
     <b>Split TestFiDataTransferProtocol.java into two files</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1814">HDFS-1814</a>.
     Major new feature reported by Aaron T. Myers and fixed by Aaron T. Myers (hdfs client , name-node)<br>
     <b>HDFS portion of HADOOP-7214 - Hadoop /usr/bin/groups equivalent</b><br>
     <blockquote>Introduces a new command, "hdfs groups", which displays what groups are associated with a user as seen by the NameNode.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1812">HDFS-1812</a>.
     Minor bug reported by Uma Maheswara Rao G and fixed by Uma Maheswara Rao G (test)<br>
     <b>Address the cleanup issues in TestHDFSCLI.java</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1808">HDFS-1808</a>.
     Major bug reported by Matt Foley and fixed by Matt Foley (data-node , name-node)<br>
     <b>TestBalancer waits forever, errs without giving information</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1806">HDFS-1806</a>.
     Major bug reported by Matt Foley and fixed by Matt Foley (data-node , name-node)<br>
     <b>TestBlockReport.blockReport_08() and _09() are timing-dependent and likely to fail on fast servers</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1797">HDFS-1797</a>.
     Major bug reported by Todd Lipcon and fixed by Todd Lipcon <br>
     <b>New findbugs warning introduced by HDFS-1120</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1789">HDFS-1789</a>.
     Minor improvement reported by Tsz Wo (Nicholas), SZE and fixed by Tsz Wo (Nicholas), SZE (data-node , hdfs client)<br>
     <b>Refactor frequently used codes from DFSOutputStream, BlockReceiver and DataXceiver</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1786">HDFS-1786</a>.
     Minor bug reported by Tsz Wo (Nicholas), SZE and fixed by Uma Maheswara Rao G (test)<br>
     <b>Some cli test cases expect a "null" message</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1785">HDFS-1785</a>.
     Major improvement reported by Tsz Wo (Nicholas), SZE and fixed by Tsz Wo (Nicholas), SZE (data-node)<br>
     <b>Cleanup BlockReceiver and DataXceiver</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1782">HDFS-1782</a>.
     Major bug reported by John George and fixed by John George (name-node)<br>
     <b>FSNamesystem.startFileInternal(..) throws NullPointerException</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1781">HDFS-1781</a>.
     Major bug reported by John George and fixed by John George (scripts)<br>
     <b>jsvc executable delivered into wrong package...</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1776">HDFS-1776</a>.
     Major bug reported by Dmytro Molkov and fixed by Bharath Mundlapudi <br>
     <b>Bug in Concat code</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1774">HDFS-1774</a>.
     Minor improvement reported by Uma Maheswara Rao G and fixed by Uma Maheswara Rao G (data-node)<br>
     <b>Small optimization to FSDataset</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1773">HDFS-1773</a>.
     Minor improvement reported by Tanping Wang and fixed by Tanping Wang (name-node)<br>
     <b>Remove a datanode from cluster if include list is not empty and this datanode is removed from both include and exclude lists</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1770">HDFS-1770</a>.
     Minor test reported by Eli Collins and fixed by Eli Collins <br>
     <b>TestFiRename fails due to invalid block size</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1767">HDFS-1767</a>.
     Major sub-task reported by Matt Foley and fixed by Matt Foley (data-node)<br>
     <b>Namenode should ignore non-initial block reports from datanodes when in safemode during startup</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1763">HDFS-1763</a>.
     Minor improvement reported by Eli Collins and fixed by Eli Collins <br>
     <b>Replace hard-coded option strings with variables from DFSConfigKeys</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1761">HDFS-1761</a>.
     Major sub-task reported by Tsz Wo (Nicholas), SZE and fixed by Tsz Wo (Nicholas), SZE (data-node)<br>
     <b>Add a new DataTransferProtocol operation, Op.TRANSFER_BLOCK, instead of using RPC</b><br>
     <blockquote>Add a new DataTransferProtocol operation, Op.TRANSFER_BLOCK, for transferring RBW/Finalized with acknowledgement and without using RPC.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1760">HDFS-1760</a>.
     Major bug reported by Daryn Sharp and fixed by Daryn Sharp (name-node)<br>
     <b>problems with getFullPathName</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1757">HDFS-1757</a>.
     Major improvement reported by Eli Collins and fixed by Eli Collins (fuse-dfs)<br>
     <b>Don't compile fuse-dfs by default</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1751">HDFS-1751</a>.
     Major new feature reported by Daryn Sharp and fixed by Daryn Sharp (data-node)<br>
     <b>Intrinsic limits for HDFS files, directories</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1750">HDFS-1750</a>.
     Major bug reported by Tsz Wo (Nicholas), SZE and fixed by Tsz Wo (Nicholas), SZE <br>
     <b>fs -ls hftp://file not working</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1748">HDFS-1748</a>.
     Major bug reported by Tsz Wo (Nicholas), SZE and fixed by Tsz Wo (Nicholas), SZE (balancer)<br>
     <b>Balancer utilization classification is incomplete</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1741">HDFS-1741</a>.
     Major improvement reported by Konstantin Boudnik and fixed by Konstantin Boudnik (build)<br>
     <b>Provide a minimal pom file to allow integration of HDFS into Sonar analysis</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1739">HDFS-1739</a>.
     Minor improvement reported by Uma Maheswara Rao G and fixed by Uma Maheswara Rao G (data-node)<br>
     <b>When DataNode throws DiskOutOfSpaceException, it will be helpfull to the user if we log the available volume size and configured block size.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1734">HDFS-1734</a>.
     Major bug reported by Uma Maheswara Rao G and fixed by Uma Maheswara Rao G (name-node)<br>
     <b>'Chunk size to view' option is not working in Name Node UI.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1731">HDFS-1731</a>.
     Minor improvement reported by Todd Lipcon and fixed by Todd Lipcon <br>
     <b>Allow using a file to exclude certain tests from build</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1728">HDFS-1728</a>.
     Minor bug reported by Tsz Wo (Nicholas), SZE and fixed by Tsz Wo (Nicholas), SZE (name-node)<br>
     <b>SecondaryNameNode.checkpointSize is in byte but not MB.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1727">HDFS-1727</a>.
     Minor bug reported by Uma Maheswara Rao G and fixed by sravankorumilli <br>
     <b>fsck command can display command usage if user passes any illegal argument</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1723">HDFS-1723</a>.
     Minor improvement reported by Allen Wittenauer and fixed by Jim Plush <br>
     <b>quota errors messages should use the same scale</b><br>
     <blockquote>Updated the Quota exceptions to now use human readable output.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1703">HDFS-1703</a>.
     Minor sub-task reported by Tanping Wang and fixed by Tanping Wang (scripts)<br>
     <b>HDFS federation: Improve start/stop scripts and add script to decommission datanodes</b><br>
     <blockquote>The masters file is no longer used to indicate which hosts to start the 2NN on. The 2NN is now started on hosts when dfs.namenode.secondary.http-address is configured with a non-wildcard IP.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1692">HDFS-1692</a>.
     Major bug reported by Bharath Mundlapudi and fixed by Bharath Mundlapudi (data-node)<br>
     <b>In secure mode, Datanode process doesn't exit when disks fail.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1691">HDFS-1691</a>.
     Minor bug reported by Alexey Diomin and fixed by Alexey Diomin (tools)<br>
     <b>double static declaration in Configuration.addDefaultResource("hdfs-default.xml");</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1675">HDFS-1675</a>.
     Major sub-task reported by Tsz Wo (Nicholas), SZE and fixed by Tsz Wo (Nicholas), SZE (data-node)<br>
     <b>Transfer RBW between datanodes</b><br>
     <blockquote>Added a new stage TRANSFER_RBW to DataTransferProtocol</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1665">HDFS-1665</a>.
     Minor bug reported by Tsz Wo (Nicholas), SZE and fixed by Tsz Wo (Nicholas), SZE (balancer)<br>
     <b>Balancer sleeps inadequately</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1656">HDFS-1656</a>.
     Major bug reported by Jitendra Nath Pandey and fixed by Jitendra Nath Pandey <br>
     <b>getDelegationToken in HftpFileSystem should renew TGT if needed.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1636">HDFS-1636</a>.
     Minor improvement reported by Todd Lipcon and fixed by Harsh J (name-node)<br>
     <b>If dfs.name.dir points to an empty dir, namenode format shouldn't require confirmation</b><br>
     <blockquote>If dfs.name.dir points to an empty dir, namenode -format no longer requires confirmation.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1630">HDFS-1630</a>.
     Major improvement reported by Hairong Kuang and fixed by Hairong Kuang (name-node)<br>
     <b>Checksum fsedits</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1629">HDFS-1629</a>.
     Major sub-task reported by Tsz Wo (Nicholas), SZE and fixed by Tsz Wo (Nicholas), SZE (name-node)<br>
     <b>Add a method to BlockPlacementPolicy for not removing the chosen nodes</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1628">HDFS-1628</a>.
     Minor improvement reported by Ramya Sunil and fixed by John George (name-node)<br>
     <b>AccessControlException should display the full path</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1627">HDFS-1627</a>.
     Major bug reported by Hairong Kuang and fixed by Hairong Kuang (name-node)<br>
     <b>Fix NullPointerException in Secondary NameNode</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1626">HDFS-1626</a>.
     Minor improvement reported by Arun C Murthy and fixed by Tsz Wo (Nicholas), SZE (name-node)<br>
     <b>Make BLOCK_INVALIDATE_LIMIT configurable</b><br>
     <blockquote>Added a new configuration property dfs.block.invalidate.limit for FSNamesystem.blockInvalidateLimit.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1625">HDFS-1625</a>.
     Minor bug reported by Todd Lipcon and fixed by Tsz Wo (Nicholas), SZE (test)<br>
     <b>TestDataNodeMXBean fails if disk space usage changes during test run</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1620">HDFS-1620</a>.
     Minor improvement reported by Tsz Wo (Nicholas), SZE and fixed by Harsh J <br>
     <b>Rename HdfsConstants -&gt; HdfsServerConstants, FSConstants -&gt; HdfsConstants</b><br>
     <blockquote>Rename HdfsConstants interface to HdfsServerConstants, FSConstants interface to HdfsConstants</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1612">HDFS-1612</a>.
     Minor bug reported by Joe Crobak and fixed by Joe Crobak (documentation)<br>
     <b>HDFS Design Documentation is outdated</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1611">HDFS-1611</a>.
     Minor bug reported by Uma Maheswara Rao G and fixed by Uma Maheswara Rao G (hdfs client , name-node)<br>
     <b>Some logical issues need to address.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1606">HDFS-1606</a>.
     Major new feature reported by Tsz Wo (Nicholas), SZE and fixed by Tsz Wo (Nicholas), SZE (data-node , hdfs client , name-node)<br>
     <b>Provide a stronger data guarantee in the write pipeline</b><br>
     <blockquote>Added two configuration properties, dfs.client.block.write.replace-datanode-on-failure.enable and dfs.client.block.write.replace-datanode-on-failure.policy.  Added a new feature to replace datanode on failure in DataTransferProtocol.  Added getAdditionalDatanode(..) in ClientProtocol.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1602">HDFS-1602</a>.
     Major bug reported by Konstantin Boudnik and fixed by Boris Shkolnik (name-node)<br>
     <b>NameNode storage failed replica restoration is broken</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1601">HDFS-1601</a>.
     Major improvement reported by Todd Lipcon and fixed by Todd Lipcon (data-node)<br>
     <b>Pipeline ACKs are sent as lots of tiny TCP packets</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1600">HDFS-1600</a>.
     Major bug reported by Tsz Wo (Nicholas), SZE and fixed by Todd Lipcon (build , test)<br>
     <b>editsStored.xml cause release audit warning</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1598">HDFS-1598</a>.
     Major bug reported by Tsz Wo (Nicholas), SZE and fixed by Tsz Wo (Nicholas), SZE (name-node)<br>
     <b>ListPathsServlet excludes .*.crc files</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1596">HDFS-1596</a>.
     Major improvement reported by Patrick Angeles and fixed by Harsh J (documentation , name-node)<br>
     <b>Move secondary namenode checkpoint configs from core-default.xml to hdfs-default.xml</b><br>
     <blockquote>Removed references to the older fs.checkpoint.* properties that resided in core-site.xml</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1594">HDFS-1594</a>.
     Major bug reported by Devaraj K and fixed by Aaron T. Myers (name-node)<br>
     <b>When the disk becomes full Namenode is getting shutdown and not able to recover</b><br>
     <blockquote>Implemented a daemon thread to monitor the disk usage for periodically and if the disk usage reaches the threshold value, put the name node into Safe mode so that no modification to file system will occur. Once the disk usage reaches below the threshold, name node will be put out of the safe mode. Here threshold value and interval to check the disk usage are configurable. 
</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1592">HDFS-1592</a>.
     Major bug reported by Bharath Mundlapudi and fixed by Bharath Mundlapudi <br>
     <b>Datanode startup doesn't honor volumes.tolerated </b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1588">HDFS-1588</a>.
     Major improvement reported by Erik Steffl and fixed by Erik Steffl <br>
     <b>Add dfs.hosts.exclude to DFSConfigKeys and use constant in stead of hardcoded string</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1585">HDFS-1585</a>.
     Blocker bug reported by Todd Lipcon and fixed by Todd Lipcon (test)<br>
     <b>HDFS-1547 broke MR build</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1583">HDFS-1583</a>.
     Major improvement reported by Liyin Liang and fixed by Liyin Liang (name-node)<br>
     <b>Improve backup-node sync performance by wrapping RPC parameters</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1582">HDFS-1582</a>.
     Major improvement reported by Roman Shaposhnik and fixed by Roman Shaposhnik (libhdfs)<br>
     <b>Remove auto-generated native build files</b><br>
     <blockquote>The native build run when from trunk now requires autotools, libtool and openssl dev libraries.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1573">HDFS-1573</a>.
     Trivial improvement reported by Todd Lipcon and fixed by Todd Lipcon (hdfs client)<br>
     <b>LeaseChecker thread name trace not that useful</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1568">HDFS-1568</a>.
     Minor improvement reported by Todd Lipcon and fixed by Joey Echeverria (data-node)<br>
     <b>Improve DataXceiver error logging</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1560">HDFS-1560</a>.
     Minor bug reported by Todd Lipcon and fixed by Todd Lipcon (data-node)<br>
     <b>dfs.data.dir permissions should default to 700</b><br>
     <blockquote>The permissions on datanode data directories (configured by dfs.datanode.data.dir.perm) now default to 0700. Upon startup, the datanode will automatically change the permissions to match the configured value.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1557">HDFS-1557</a>.
     Major sub-task reported by Ivan Kelly and fixed by Ivan Kelly (name-node)<br>
     <b>Separate Storage from FSImage</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1551">HDFS-1551</a>.
     Major bug reported by Giridharan Kesavan and fixed by Giridharan Kesavan (build)<br>
     <b>fix the pom template's version</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1547">HDFS-1547</a>.
     Major improvement reported by Suresh Srinivas and fixed by Suresh Srinivas (name-node)<br>
     <b>Improve decommission mechanism</b><br>
     <blockquote>Summary of changes to the decommissioning process:
# After nodes are decommissioned, they are not shutdown. The decommissioned nodes are not used for writes. For reads, the decommissioned nodes are given as the last location to read from.
# Number of live and dead decommissioned nodes are displayed in the namenode webUI.
# Decommissioned nodes free capacity is not count towards the the cluster free capacity.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1541">HDFS-1541</a>.
     Major sub-task reported by Hairong Kuang and fixed by Hairong Kuang (name-node)<br>
     <b>Not marking datanodes dead When namenode in safemode</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1540">HDFS-1540</a>.
     Major bug reported by dhruba borthakur and fixed by dhruba borthakur (data-node)<br>
     <b>Make Datanode handle errors to namenode.register call more elegantly</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1539">HDFS-1539</a>.
     Major improvement reported by dhruba borthakur and fixed by dhruba borthakur (data-node , hdfs client , name-node)<br>
     <b>prevent data loss when a cluster suffers a power loss</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1536">HDFS-1536</a>.
     Major improvement reported by Hairong Kuang and fixed by Hairong Kuang <br>
     <b>Improve HDFS WebUI</b><br>
     <blockquote>On web UI, missing block number now becomes accurate and under-replicated blocks do not include missing blocks.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1534">HDFS-1534</a>.
     Minor improvement reported by Eli Collins and fixed by Eli Collins (name-node)<br>
     <b>Fix some incorrect logs in FSDirectory</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1533">HDFS-1533</a>.
     Major bug reported by Patrick Kling and fixed by Patrick Kling (hdfs client)<br>
     <b>A more elegant FileSystem#listCorruptFileBlocks API (HDFS portion)</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1526">HDFS-1526</a>.
     Major bug reported by Hairong Kuang and fixed by Hairong Kuang (hdfs client)<br>
     <b>Dfs client name for a map/reduce task should have some randomness</b><br>
     <blockquote>Make a client name has this format: DFSClient_applicationid_randomint_threadid, where applicationid = mapred.task.id or else = "NONMAPREDUCE".</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1524">HDFS-1524</a>.
     Blocker bug reported by Hairong Kuang and fixed by Hairong Kuang (name-node)<br>
     <b>Image loader should make sure to read every byte in image file</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1523">HDFS-1523</a>.
     Major bug reported by Konstantin Boudnik and fixed by Konstantin Boudnik (test)<br>
     <b>TestLargeBlock is failing on trunk</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1518">HDFS-1518</a>.
     Minor improvement reported by Jingguo Yao and fixed by Jingguo Yao (name-node)<br>
     <b>Wrong description in FSNamesystem's javadoc</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1516">HDFS-1516</a>.
     Major bug reported by Konstantin Boudnik and fixed by Konstantin Boudnik (build)<br>
     <b>mvn-install is broken after 0.22 branch creation</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1513">HDFS-1513</a>.
     Minor improvement reported by Eli Collins and fixed by Eli Collins <br>
     <b>Fix a number of warnings</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1511">HDFS-1511</a>.
     Blocker bug reported by Nigel Daley and fixed by Jakob Homan <br>
     <b>98 Release Audit warnings on trunk and branch-0.22</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1510">HDFS-1510</a>.
     Minor improvement reported by Nigel Daley and fixed by Nigel Daley <br>
     <b>Add test-patch.properties required by test-patch.sh</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1509">HDFS-1509</a>.
     Major improvement reported by dhruba borthakur and fixed by dhruba borthakur (name-node)<br>
     <b>Resync discarded directories in fs.name.dir during saveNamespace command</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1506">HDFS-1506</a>.
     Major improvement reported by Hairong Kuang and fixed by Hairong Kuang (name-node)<br>
     <b>Refactor fsimage loading code</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1505">HDFS-1505</a>.
     Blocker bug reported by Todd Lipcon and fixed by Aaron T. Myers <br>
     <b>saveNamespace appears to succeed even if all directories fail to save</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1503">HDFS-1503</a>.
     Minor bug reported by Eli Collins and fixed by Todd Lipcon (test)<br>
     <b>TestSaveNamespace fails</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1502">HDFS-1502</a>.
     Minor bug reported by Eli Collins and fixed by Hairong Kuang <br>
     <b>TestBlockRecovery triggers NPE in assert</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1486">HDFS-1486</a>.
     Major improvement reported by Konstantin Boudnik and fixed by Konstantin Boudnik (test)<br>
     <b>Generalize CLITest structure and interfaces to facilitate upstream adoption (e.g. for web testing)</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1481">HDFS-1481</a>.
     Major improvement reported by Hairong Kuang and fixed by Hairong Kuang (name-node)<br>
     <b>NameNode should validate fsimage before rolling</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1480">HDFS-1480</a>.
     Major bug reported by T Meyarivan and fixed by Todd Lipcon (name-node)<br>
     <b>All replicas of a block can end up on the same rack when some datanodes are decommissioning.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1476">HDFS-1476</a>.
     Major improvement reported by Patrick Kling and fixed by Patrick Kling (name-node)<br>
     <b>listCorruptFileBlocks should be functional while the name node is still in safe mode</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1473">HDFS-1473</a>.
     Major sub-task reported by Todd Lipcon and fixed by Todd Lipcon (name-node)<br>
     <b>Refactor storage management into separate classes than fsimage file reading/writing</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1467">HDFS-1467</a>.
     Blocker bug reported by Todd Lipcon and fixed by Todd Lipcon (data-node)<br>
     <b>Append pipeline never succeeds with more than one replica</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1463">HDFS-1463</a>.
     Major bug reported by dhruba borthakur and fixed by dhruba borthakur (name-node)<br>
     <b>accessTime updates should not occur in safeMode</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1458">HDFS-1458</a>.
     Major improvement reported by Hairong Kuang and fixed by Hairong Kuang (name-node)<br>
     <b>Improve checkpoint performance by avoiding unnecessary image downloads</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1448">HDFS-1448</a>.
     Major new feature reported by Erik Steffl and fixed by Erik Steffl (tools)<br>
     <b>Create multi-format parser for edits logs file, support binary and XML formats initially</b><br>
     <blockquote>Offline edits viewer feature adds oev tool to hdfs script. Oev makes it possible to convert edits logs to/from native binary and XML formats. It uses the same framework as Offline image viewer.

Example usage:

$HADOOP_HOME/bin/hdfs oev -i edits -o output.xml</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1445">HDFS-1445</a>.
     Major sub-task reported by Matt Foley and fixed by Matt Foley (data-node)<br>
     <b>Batch the calls in DataStorage to FileUtil.createHardLink(), so we call it once per directory instead of once per file</b><br>
     <blockquote>Batch hardlinking during "upgrade" snapshots, cutting time from aprx 8 minutes per volume to aprx 8 seconds.  Validated in both Linux and Windows.  Depends on prior integration with patch for HADOOP-7133.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1442">HDFS-1442</a>.
     Major improvement reported by Jitendra Nath Pandey and fixed by Jitendra Nath Pandey <br>
     <b>Api to get delegation token in Hdfs</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1381">HDFS-1381</a>.
     Major bug reported by Jakob Homan and fixed by Jim Plush (test)<br>
     <b>HDFS javadocs hard-code references to dfs.namenode.name.dir and dfs.datanode.data.dir parameters</b><br>
     <blockquote>Updated the JavaDocs to appropriately represent the new Configuration Keys that are used in the code. The docs did not match the code.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1378">HDFS-1378</a>.
     Major improvement reported by Todd Lipcon and fixed by Colin Patrick McCabe (name-node)<br>
     <b>Edit log replay should track and report file offsets in case of errors</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1377">HDFS-1377</a>.
     Blocker bug reported by Eli Collins and fixed by Eli Collins (name-node)<br>
     <b>Quota bug for partial blocks allows quotas to be violated </b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1371">HDFS-1371</a>.
     Major bug reported by Koji Noguchi and fixed by Tanping Wang (hdfs client , name-node)<br>
     <b>One bad node can incorrectly flag many files as corrupt</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1360">HDFS-1360</a>.
     Minor bug reported by Todd Lipcon and fixed by Todd Lipcon (test)<br>
     <b>TestBlockRecovery should bind ephemeral ports</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1335">HDFS-1335</a>.
     Major improvement reported by Hairong Kuang and fixed by Hairong Kuang (hdfs client , name-node)<br>
     <b>HDFS side of HADOOP-6904: first step towards inter-version communications between dfs client and NameNode</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1332">HDFS-1332</a>.
     Minor improvement reported by Todd Lipcon and fixed by Ted Yu (name-node)<br>
     <b>When unable to place replicas, BlockPlacementPolicy should log reasons nodes were excluded</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1330">HDFS-1330</a>.
     Major new feature reported by Hairong Kuang and fixed by John George (data-node)<br>
     <b>Make RPCs to DataNodes timeout</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1321">HDFS-1321</a>.
     Minor bug reported by gary murry and fixed by Jim Plush (name-node)<br>
     <b>If service port and main port are the same, there is no clear log message explaining the issue.</b><br>
     <blockquote>Added a check to match the sure RPC and HTTP Port's on the NameNode were not set to the same value, otherwise an IOException is throw with the appropriate message.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1295">HDFS-1295</a>.
     Major sub-task reported by dhruba borthakur and fixed by Matt Foley (name-node)<br>
     <b>Improve namenode restart times by short-circuiting the first block reports from datanodes</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1257">HDFS-1257</a>.
     Major bug reported by Ramkumar Vadali and fixed by Eric Payne (name-node)<br>
     <b>Race condition on FSNamesystem#recentInvalidateSets introduced by HADOOP-5124</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1206">HDFS-1206</a>.
     Major bug reported by Tsz Wo (Nicholas), SZE and fixed by Konstantin Boudnik (test)<br>
     <b>TestFiHFlush fails intermittently</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1189">HDFS-1189</a>.
     Major bug reported by Kang Xiao and fixed by John George (name-node)<br>
     <b>Quota counts missed between clear quota and set quota</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1149">HDFS-1149</a>.
     Major bug reported by Todd Lipcon and fixed by Aaron T. Myers (name-node)<br>
     <b>Lease reassignment is not persisted to edit log</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1120">HDFS-1120</a>.
     Major improvement reported by Jeff Hammerbacher and fixed by Harsh J (data-node)<br>
     <b>Make DataNode's block-to-device placement policy pluggable</b><br>
     <blockquote>Make the DataNode's block-volume choosing policy pluggable.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1117">HDFS-1117</a>.
     Major improvement reported by Luke Lu and fixed by Luke Lu <br>
     <b>HDFS portion of HADOOP-6728 (ovehaul metrics framework)</b><br>
     <blockquote>Metrics names are standardized to use CapitalizedCamelCase. Some examples:
# Metrics names using "_" is changed to new naming scheme. Eg: bytes_written changes to BytesWritten.
# All metrics names start with capitals. Example: threadsBlocked changes to ThreadsBlocked.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1073">HDFS-1073</a>.
     Major improvement reported by Sanjay Radia and fixed by Todd Lipcon <br>
     <b>Simpler model for Namenode's fs Image and edit Logs </b><br>
     <blockquote>The NameNode's storage layout for its name directories has been reorganized to be more robust. Each edit now has a unique transaction ID, and each file is associated with a transaction ID (for checkpoints) or a range of transaction IDs (for edit logs).</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1070">HDFS-1070</a>.
     Major sub-task reported by Hairong Kuang and fixed by Hairong Kuang (name-node)<br>
     <b>Speedup NameNode image loading and saving by storing local file names</b><br>
     <blockquote>This changes the fsimage format to be 
root directory-1 directory-2 ... directoy-n.
Each directory stores all its children in the following format:
Directory_full_path_name num_of_children child-1 ... child-n.
Each inode stores only the last component of its path name into fsimage.
This change requires an upgrade at deployment.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1052">HDFS-1052</a>.
     Major new feature reported by Suresh Srinivas and fixed by Suresh Srinivas (name-node)<br>
     <b>HDFS scalability with multiple namenodes</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-1001">HDFS-1001</a>.
     Minor bug reported by bc Wong and fixed by bc Wong (data-node)<br>
     <b>DataXceiver and BlockReader disagree on when to send/recv CHECKSUM_OK</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-863">HDFS-863</a>.
     Major bug reported by Todd Lipcon and fixed by Ken Goodhope (test)<br>
     <b>Potential deadlock in TestOverReplicatedBlocks</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-780">HDFS-780</a>.
     Major test reported by Eli Collins and fixed by Eli Collins (fuse-dfs)<br>
     <b>Revive TestFuseDFS</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-560">HDFS-560</a>.
     Minor improvement reported by Steve Loughran and fixed by Steve Loughran (build)<br>
     <b>Proposed enhancements/tuning to hadoop-hdfs/build.xml</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-420">HDFS-420</a>.
     Major improvement reported by Dima Brodsky and fixed by Brian Bockelman (fuse-dfs)<br>
     <b>Fuse-dfs should cache fs handles</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-73">HDFS-73</a>.
     Blocker bug reported by Raghu Angadi and fixed by Uma Maheswara Rao G (hdfs client)<br>
     <b>DFSOutputStream does not close all the sockets</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8619">HADOOP-8619</a>.
     Major improvement reported by Radim Kolar and fixed by Chris Douglas (io)<br>
     <b>WritableComparator must implement no-arg constructor</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7798">HADOOP-7798</a>.
     Blocker bug reported by Arun C Murthy and fixed by Doug Cutting (build)<br>
     <b>Release artifacts need to be signed for Nexus</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7797">HADOOP-7797</a>.
     Major bug reported by Owen O'Malley and fixed by Owen O'Malley (build)<br>
     <b>Fix the repository name to support pushing to the staging area of Nexus</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7792">HADOOP-7792</a>.
     Major improvement reported by Jitendra Nath Pandey and fixed by Jitendra Nath Pandey <br>
     <b>Common component for HDFS-2416: Add verifyToken method to AbstractDelegationTokenSecretManager</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7789">HADOOP-7789</a>.
     Major improvement reported by Arun C Murthy and fixed by Arun C Murthy <br>
     <b>Minor edits to top-level site</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7785">HADOOP-7785</a>.
     Major improvement reported by Todd Lipcon and fixed by Todd Lipcon (io , util)<br>
     <b>Add equals, hashcode, toString to DataChecksum</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7782">HADOOP-7782</a>.
     Critical bug reported by Arun C Murthy and fixed by Tom White (build)<br>
     <b>Aggregate project javadocs</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7778">HADOOP-7778</a>.
     Major bug reported by Tom White and fixed by Tom White <br>
     <b>FindBugs warning in Token.getKind()</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7772">HADOOP-7772</a>.
     Trivial improvement reported by Steve Loughran and fixed by Steve Loughran <br>
     <b>javadoc the topology classes</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7771">HADOOP-7771</a>.
     Blocker bug reported by John George and fixed by John George <br>
     <b>NPE when running hdfs dfs -copyToLocal, -get etc</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7770">HADOOP-7770</a>.
     Blocker bug reported by Ravi Prakash and fixed by Ravi Prakash (viewfs)<br>
     <b>ViewFS getFileChecksum throws FileNotFoundException for files in /tmp and /user</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7768">HADOOP-7768</a>.
     Blocker bug reported by Jonathan Eagles and fixed by Tom White (build)<br>
     <b>PreCommit-HADOOP-Build is failing on hadoop-auth-examples</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7766">HADOOP-7766</a>.
     Major bug reported by Jitendra Nath Pandey and fixed by Jitendra Nath Pandey <br>
     <b>The auth to local mappings are not being respected, with webhdfs and security enabled.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7764">HADOOP-7764</a>.
     Blocker bug reported by Jonathan Eagles and fixed by Jonathan Eagles <br>
     <b>Allow both ACL list and global path spec filters to HttpServer</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7763">HADOOP-7763</a>.
     Major improvement reported by Tom White and fixed by Tom White (documentation)<br>
     <b>Add top-level navigation to APT docs</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7762">HADOOP-7762</a>.
     Major task reported by Eli Collins and fixed by Eli Collins (scripts)<br>
     <b>Common side of MR-2736 (MR1 removal)</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7755">HADOOP-7755</a>.
     Blocker bug reported by Jonathan Eagles and fixed by Jonathan Eagles (build)<br>
     <b>Detect MapReduce PreCommit Trunk builds silently failing when running test-patch.sh</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7753">HADOOP-7753</a>.
     Major sub-task reported by Todd Lipcon and fixed by Todd Lipcon (io , native , performance)<br>
     <b>Support fadvise and sync_data_range in NativeIO, add ReadaheadPool class</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7749">HADOOP-7749</a>.
     Minor improvement reported by Todd Lipcon and fixed by Todd Lipcon (util)<br>
     <b>Add NetUtils call which provides more help in exception messages</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7745">HADOOP-7745</a>.
     Major bug reported by Ravi Prakash and fixed by Ravi Prakash <br>
     <b>I switched variable names in HADOOP-7509</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7744">HADOOP-7744</a>.
     Major bug reported by Jonathan Eagles and fixed by Jonathan Eagles (test)<br>
     <b>Incorrect exit code for hadoop-core-test tests when exception thrown</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7743">HADOOP-7743</a>.
     Major improvement reported by Alejandro Abdelnur and fixed by Alejandro Abdelnur (build)<br>
     <b>Add Maven profile to create a full source tarball</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7740">HADOOP-7740</a>.
     Minor bug reported by Arpit Gupta and fixed by Arpit Gupta (conf)<br>
     <b>security audit logger is not on by default, fix the log4j properties to enable the logger</b><br>
     <blockquote>Fixed security audit logger configuration. (Arpit Gupta via Eric Yang)</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7737">HADOOP-7737</a>.
     Major improvement reported by Alejandro Abdelnur and fixed by Alejandro Abdelnur (build)<br>
     <b>normalize hadoop-mapreduce &amp; hadoop-dist dist/tar build with common/hdfs</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7728">HADOOP-7728</a>.
     Major bug reported by Ramya Sunil and fixed by Ramya Sunil (conf)<br>
     <b>hadoop-setup-conf.sh should be modified to enable task memory manager</b><br>
     <blockquote>Enable task memory management to be configurable via hadoop config setup script.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7724">HADOOP-7724</a>.
     Major bug reported by Giridharan Kesavan and fixed by Arpit Gupta <br>
     <b>hadoop-setup-conf.sh should put proxy user info into the core-site.xml </b><br>
     <blockquote>Fixed hadoop-setup-conf.sh to put proxy user in core-site.xml.  (Arpit Gupta via Eric Yang)</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7721">HADOOP-7721</a>.
     Major bug reported by Arpit Gupta and fixed by Jitendra Nath Pandey <br>
     <b>dfs.web.authentication.kerberos.principal expects the full hostname and does not replace _HOST with the hostname</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7720">HADOOP-7720</a>.
     Major improvement reported by Arpit Gupta and fixed by Arpit Gupta (conf)<br>
     <b>improve the hadoop-setup-conf.sh to read in the hbase user and setup the configs</b><br>
     <blockquote>Added parameter for HBase user to setup config script. (Arpit Gupta via Eric Yang)</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7715">HADOOP-7715</a>.
     Major bug reported by Arpit Gupta and fixed by Eric Yang (conf)<br>
     <b>see log4j Error when running mr jobs and certain dfs calls</b><br>
     <blockquote>Removed unnecessary security logger configuration. (Eric Yang)</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7711">HADOOP-7711</a>.
     Major bug reported by Arpit Gupta and fixed by Arpit Gupta (conf)<br>
     <b>hadoop-env.sh generated from templates has duplicate info</b><br>
     <blockquote>Fixed recursive sourcing of HADOOP_OPTS environment variables (Arpit Gupta via Eric Yang)</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7710">HADOOP-7710</a>.
     Major improvement reported by Arpit Gupta and fixed by Arpit Gupta <br>
     <b>create a script to setup application in order to create root directories for application such hbase, hcat, hive etc</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7709">HADOOP-7709</a>.
     Major improvement reported by Jonathan Eagles and fixed by Jonathan Eagles <br>
     <b>Running a set of methods in a Single Test Class</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7708">HADOOP-7708</a>.
     Critical bug reported by Arpit Gupta and fixed by Eric Yang (conf)<br>
     <b>config generator does not update the properties file if on exists already</b><br>
     <blockquote>Fixed hadoop-setup-conf.sh to handle config file consistently.  (Eric Yang)</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7707">HADOOP-7707</a>.
     Major improvement reported by Arpit Gupta and fixed by Arpit Gupta (conf)<br>
     <b>improve config generator to allow users to specify proxy user, turn append on or off, turn webhdfs on or off</b><br>
     <blockquote>Added toggle for dfs.support.append, webhdfs and hadoop proxy user to setup config script. (Arpit Gupta via Eric Yang)</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7705">HADOOP-7705</a>.
     Minor new feature reported by Steve Loughran and fixed by Steve Loughran (util)<br>
     <b>Add a log4j back end that can push out JSON data, one per line</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7691">HADOOP-7691</a>.
     Major bug reported by Giridharan Kesavan and fixed by Eric Yang <br>
     <b>hadoop deb pkg should take a diff group id</b><br>
     <blockquote>Fixed conflict uid for install packages. (Eric Yang)</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7684">HADOOP-7684</a>.
     Major bug reported by Eric Yang and fixed by Eric Yang (scripts)<br>
     <b>jobhistory server and secondarynamenode should have init.d script</b><br>
     <blockquote>Added init.d script for jobhistory server and secondary namenode. (Eric Yang)</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7681">HADOOP-7681</a>.
     Minor bug reported by Arpit Gupta and fixed by Arpit Gupta (conf)<br>
     <b>log4j.properties is missing properties for security audit and hdfs audit should be changed to info</b><br>
     <blockquote>HADOOP-7681. Fixed security and hdfs audit log4j properties
(Arpit Gupta via Eric Yang)</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7671">HADOOP-7671</a>.
     Major bug reported by Ravi Prakash and fixed by Ravi Prakash <br>
     <b>Add license headers to hadoop-common/src/main/packages/templates/conf/</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7668">HADOOP-7668</a>.
     Minor improvement reported by Suresh Srinivas and fixed by Steve Loughran (util)<br>
     <b>Add a NetUtils method that can tell if an InetAddress belongs to local host</b><br>
     <blockquote>closing again</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7664">HADOOP-7664</a>.
     Minor improvement reported by Ravi Prakash and fixed by Ravi Prakash (conf)<br>
     <b>o.a.h.conf.Configuration complains of overriding final parameter even if the value with which its attempting to override is the same. </b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7663">HADOOP-7663</a>.
     Major bug reported by Mayank Bansal and fixed by Mayank Bansal (test)<br>
     <b>TestHDFSTrash failing on 22</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7662">HADOOP-7662</a>.
     Major bug reported by Thomas Graves and fixed by Thomas Graves <br>
     <b>logs servlet should use pathspec of /*</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7658">HADOOP-7658</a>.
     Major bug reported by Giridharan Kesavan and fixed by Eric Yang <br>
     <b>to fix hadoop config template</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7655">HADOOP-7655</a>.
     Major improvement reported by Arpit Gupta and fixed by Arpit Gupta <br>
     <b>provide a small validation script that smoke tests the installed cluster</b><br>
     <blockquote>Committed to trunk and v23, since code reviewed by Eric.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7642">HADOOP-7642</a>.
     Major improvement reported by Alejandro Abdelnur and fixed by Tom White (build)<br>
     <b>create hadoop-dist module where TAR stitching would happen</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7639">HADOOP-7639</a>.
     Major bug reported by Thomas Graves and fixed by Thomas Graves <br>
     <b>yarn ui not properly filtered in HttpServer</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7637">HADOOP-7637</a>.
     Major bug reported by Eric Yang and fixed by Eric Yang (build)<br>
     <b>Fair scheduler configuration file is not bundled in RPM</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7633">HADOOP-7633</a>.
     Major bug reported by Arpit Gupta and fixed by Eric Yang (conf)<br>
     <b>log4j.properties should be added to the hadoop conf on deploy</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7631">HADOOP-7631</a>.
     Major bug reported by Ramya Sunil and fixed by Eric Yang (conf)<br>
     <b>In mapred-site.xml, stream.tmpdir is mapped to ${mapred.temp.dir} which is undeclared.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7630">HADOOP-7630</a>.
     Major bug reported by Arpit Gupta and fixed by Eric Yang (conf)<br>
     <b>hadoop-metrics2.properties should have a property *.period set to a default value foe metrics</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7629">HADOOP-7629</a>.
     Major bug reported by Patrick Hunt and fixed by Todd Lipcon <br>
     <b>regression with MAPREDUCE-2289 - setPermission passed immutable FsPermission (rpc failure)</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7627">HADOOP-7627</a>.
     Minor improvement reported by Todd Lipcon and fixed by Todd Lipcon (metrics , test)<br>
     <b>Improve MetricsAsserts to give more understandable output on failure</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7626">HADOOP-7626</a>.
     Major bug reported by Eric Yang and fixed by Eric Yang (scripts)<br>
     <b>Allow overwrite of HADOOP_CLASSPATH and HADOOP_OPTS</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7624">HADOOP-7624</a>.
     Major improvement reported by Vinod Kumar Vavilapalli and fixed by Alejandro Abdelnur (build)<br>
     <b>Set things up for a top level hadoop-tools module</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7612">HADOOP-7612</a>.
     Major improvement reported by Tom White and fixed by Tom White (build)<br>
     <b>Change test-patch to run tests for all nested modules</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7610">HADOOP-7610</a>.
     Major bug reported by Eric Yang and fixed by Eric Yang (scripts)<br>
     <b>/etc/profile.d does not exist on Debian</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7608">HADOOP-7608</a>.
     Major bug reported by Alejandro Abdelnur and fixed by Alejandro Abdelnur (io)<br>
     <b>SnappyCodec check for Hadoop native lib is wrong</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7606">HADOOP-7606</a>.
     Major bug reported by Aaron T. Myers and fixed by Alejandro Abdelnur (test)<br>
     <b>Upgrade Jackson to version 1.7.1 to match the version required by Jersey</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7604">HADOOP-7604</a>.
     Critical bug reported by Mahadev konar and fixed by Mahadev konar <br>
     <b>Hadoop Auth examples pom in 0.23 point to 0.24 versions.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7603">HADOOP-7603</a>.
     Major bug reported by Eric Yang and fixed by Eric Yang <br>
     <b>Set default hdfs, mapred uid, and hadoop group gid for RPM packages</b><br>
     <blockquote>Set hdfs uid, mapred uid, and hadoop gid to fixed numbers (201, 202, and 123, respectively).</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7599">HADOOP-7599</a>.
     Major bug reported by Eric Yang and fixed by Eric Yang (scripts)<br>
     <b>Improve hadoop setup conf script to setup secure Hadoop cluster</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7598">HADOOP-7598</a>.
     Major bug reported by Robert Joseph Evans and fixed by Robert Joseph Evans (build)<br>
     <b>smart-apply-patch.sh does not handle patching from a sub directory correctly.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7595">HADOOP-7595</a>.
     Major improvement reported by Alejandro Abdelnur and fixed by Alejandro Abdelnur (build)<br>
     <b>Upgrade dependency to Avro 1.5.3</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7594">HADOOP-7594</a>.
     Major new feature reported by Tsz Wo (Nicholas), SZE and fixed by Tsz Wo (Nicholas), SZE <br>
     <b>Support HTTP REST in HttpServer</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7593">HADOOP-7593</a>.
     Major bug reported by Tsz Wo (Nicholas), SZE and fixed by Uma Maheswara Rao G (test)<br>
     <b>AssertionError in TestHttpServer.testMaxThreads()</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7589">HADOOP-7589</a>.
     Major bug reported by Robert Joseph Evans and fixed by Robert Joseph Evans (build)<br>
     <b>Prefer mvn test -DskipTests over mvn compile in test-patch.sh</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7580">HADOOP-7580</a>.
     Major bug reported by Siddharth Seth and fixed by Siddharth Seth <br>
     <b>Add a version of getLocalPathForWrite to LocalDirAllocator which doesn't create dirs</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7579">HADOOP-7579</a>.
     Major task reported by Alejandro Abdelnur and fixed by Alejandro Abdelnur (security)<br>
     <b>Rename package names from alfredo to auth</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7578">HADOOP-7578</a>.
     Major bug reported by Mahadev konar and fixed by Mahadev konar <br>
     <b>Fix test-patch to be able to run on MR patches.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7576">HADOOP-7576</a>.
     Major bug reported by Tom White and fixed by Tsz Wo (Nicholas), SZE (security)<br>
     <b>Fix findbugs warnings in Hadoop Auth (Alfredo)</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7575">HADOOP-7575</a>.
     Minor bug reported by Jonathan Eagles and fixed by Jonathan Eagles (fs)<br>
     <b>Support fully qualified paths as part of LocalDirAllocator</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7568">HADOOP-7568</a>.
     Major bug reported by Konstantin Shvachko and fixed by Plamen Jeliazkov (io)<br>
     <b>SequenceFile should not print into stdout</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7566">HADOOP-7566</a>.
     Major bug reported by Mahadev konar and fixed by Alejandro Abdelnur <br>
     <b>MR tests are failing  webapps/hdfs not found in CLASSPATH</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7564">HADOOP-7564</a>.
     Major sub-task reported by Tom White and fixed by Tom White <br>
     <b>Remove test-patch SVN externals</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7561">HADOOP-7561</a>.
     Major sub-task reported by Tom White and fixed by Tom White <br>
     <b>Make test-patch only run tests for changed modules</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7560">HADOOP-7560</a>.
     Major sub-task reported by Alejandro Abdelnur and fixed by Alejandro Abdelnur <br>
     <b>Make hadoop-common a POM module with sub-modules (common &amp; alfredo)</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7555">HADOOP-7555</a>.
     Trivial improvement reported by Aaron T. Myers and fixed by Aaron T. Myers (build)<br>
     <b>Add a eclipse-generated files to .gitignore</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7552">HADOOP-7552</a>.
     Minor improvement reported by Eli Collins and fixed by Eli Collins (fs)<br>
     <b>FileUtil#fullyDelete doesn't throw IOE but lists it in the throws clause</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7547">HADOOP-7547</a>.
     Minor bug reported by Uma Maheswara Rao G and fixed by Uma Maheswara Rao G (io)<br>
     <b>Fix the warning in writable classes.[ WritableComparable is a raw type. References to generic type WritableComparable&lt;T&gt; should be parameterized  ]</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7545">HADOOP-7545</a>.
     Critical bug reported by Todd Lipcon and fixed by Todd Lipcon (build , test)<br>
     <b>common -tests jar should not include properties and configs</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7536">HADOOP-7536</a>.
     Major bug reported by Kihwal Lee and fixed by Alejandro Abdelnur (build)<br>
     <b>Correct the dependency version regressions introduced in HADOOP-6671</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7533">HADOOP-7533</a>.
     Major sub-task reported by Tom White and fixed by Tom White <br>
     <b>Allow test-patch to be run from any subproject directory </b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7531">HADOOP-7531</a>.
     Major improvement reported by Eli Collins and fixed by Eli Collins (util)<br>
     <b>Add servlet util methods for handling paths in requests </b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7529">HADOOP-7529</a>.
     Critical bug reported by Todd Lipcon and fixed by Luke Lu (metrics)<br>
     <b>Possible deadlock in metrics2</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7528">HADOOP-7528</a>.
     Major sub-task reported by Alejandro Abdelnur and fixed by Alejandro Abdelnur (build)<br>
     <b>Maven build fails in Windows</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7526">HADOOP-7526</a>.
     Minor test reported by Eli Collins and fixed by Eli Collins (fs)<br>
     <b>Add TestPath tests for URI conversion and reserved characters  </b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7525">HADOOP-7525</a>.
     Major sub-task reported by Tom White and fixed by Tom White (scripts)<br>
     <b>Make arguments to test-patch optional</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7523">HADOOP-7523</a>.
     Blocker bug reported by John Lee and fixed by John Lee (test)<br>
     <b>Test org.apache.hadoop.fs.TestFilterFileSystem fails due to java.lang.NoSuchMethodException</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7520">HADOOP-7520</a>.
     Major bug reported by Alejandro Abdelnur and fixed by Alejandro Abdelnur (build)<br>
     <b>hadoop-main fails to deploy</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7515">HADOOP-7515</a>.
     Major sub-task reported by Tom White and fixed by Tom White (build)<br>
     <b>test-patch reports the wrong number of javadoc warnings</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7512">HADOOP-7512</a>.
     Trivial task reported by Harsh J and fixed by Harsh J (documentation)<br>
     <b>Fix example mistake in WritableComparable javadocs</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7509">HADOOP-7509</a>.
     Trivial improvement reported by Ravi Prakash and fixed by Ravi Prakash <br>
     <b>Improve message when Authentication is required</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7508">HADOOP-7508</a>.
     Major sub-task reported by Alejandro Abdelnur and fixed by Alejandro Abdelnur (build)<br>
     <b>compiled nativelib is in wrong directory and it is not picked up by surefire setup</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7507">HADOOP-7507</a>.
     Major bug reported by Jeff Bean and fixed by Alejandro Abdelnur (metrics)<br>
     <b>jvm metrics all use the same namespace</b><br>
     <blockquote>JVM metrics published to Ganglia now include the process name as part of the gmetric name.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7502">HADOOP-7502</a>.
     Major sub-task reported by Luke Lu and fixed by Luke Lu <br>
     <b>Use canonical (IDE friendly) generated-sources directory for generated sources</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7501">HADOOP-7501</a>.
     Major sub-task reported by Alejandro Abdelnur and fixed by Tom White (build)<br>
     <b>publish Hadoop Common artifacts (post HADOOP-6671) to Apache SNAPSHOTs repo</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7499">HADOOP-7499</a>.
     Major bug reported by Jeffrey Naisbitt and fixed by Jeffrey Naisbitt (util)<br>
     <b>Add method for doing a sanity check on hostnames in NetUtils</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7498">HADOOP-7498</a>.
     Major sub-task reported by Alejandro Abdelnur and fixed by Alejandro Abdelnur (build)<br>
     <b>Remove legacy TAR layout creation</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7496">HADOOP-7496</a>.
     Major sub-task reported by Alejandro Abdelnur and fixed by Alejandro Abdelnur (build)<br>
     <b>break Maven TAR &amp; bintar profiles into just LAYOUT &amp; TAR proper</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7493">HADOOP-7493</a>.
     Major new feature reported by Uma Maheswara Rao G and fixed by Uma Maheswara Rao G (io)<br>
     <b>[HDFS-362] Provide ShortWritable class in hadoop.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7491">HADOOP-7491</a>.
     Major improvement reported by Eli Collins and fixed by Eli Collins (scripts)<br>
     <b>hadoop command should respect HADOOP_OPTS when given a class name </b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7474">HADOOP-7474</a>.
     Major improvement reported by Jitendra Nath Pandey and fixed by Jitendra Nath Pandey <br>
     <b>Refactor ClientCache out of WritableRpcEngine.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7472">HADOOP-7472</a>.
     Minor improvement reported by Kihwal Lee and fixed by Kihwal Lee (ipc)<br>
     <b>RPC client should deal with the IP address changes</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7471">HADOOP-7471</a>.
     Major bug reported by Alejandro Abdelnur and fixed by Alejandro Abdelnur (build)<br>
     <b>the saveVersion.sh script sometimes fails to extract SVN URL</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7469">HADOOP-7469</a>.
     Minor sub-task reported by Steve Loughran and fixed by Steve Loughran (util)<br>
     <b>add a standard handler for socket connection problems which improves diagnostics</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7465">HADOOP-7465</a>.
     Trivial sub-task reported by XieXianshan and fixed by XieXianshan (fs , ipc)<br>
     <b>A several tiny improvements for the LOG format</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7463">HADOOP-7463</a>.
     Minor improvement reported by Mahadev konar and fixed by Mahadev konar <br>
     <b>Adding a configuration parameter to SecurityInfo interface.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7460">HADOOP-7460</a>.
     Major improvement reported by dhruba borthakur and fixed by Usman Masood (fs)<br>
     <b>Support for pluggable Trash policies</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7457">HADOOP-7457</a>.
     Blocker improvement reported by Jakob Homan and fixed by Jakob Homan (documentation)<br>
     <b>Remove out-of-date Chinese language documentation</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7451">HADOOP-7451</a>.
     Major improvement reported by Matt Foley and fixed by Matt Foley <br>
     <b>merge for MR-279: Generalize StringUtils#join</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7449">HADOOP-7449</a>.
     Major improvement reported by Matt Foley and fixed by Matt Foley <br>
     <b>merge for MR-279: add Data(In,Out)putByteBuffer to work with ByteBuffer similar to Data(In,Out)putBuffer for byte[]</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7448">HADOOP-7448</a>.
     Major improvement reported by Matt Foley and fixed by Matt Foley <br>
     <b>merge for MR-279: HttpServer /stacks servlet should use plain text content type</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7446">HADOOP-7446</a>.
     Major improvement reported by Todd Lipcon and fixed by Todd Lipcon (native , performance)<br>
     <b>Implement CRC32C native code using SSE4.2 instructions</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7445">HADOOP-7445</a>.
     Major improvement reported by Todd Lipcon and fixed by Todd Lipcon (native , util)<br>
     <b>Implement bulk checksum verification using efficient native code</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7444">HADOOP-7444</a>.
     Major improvement reported by Todd Lipcon and fixed by Todd Lipcon <br>
     <b>Add Checksum API to verify and calculate checksums "in bulk"</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7443">HADOOP-7443</a>.
     Major new feature reported by Todd Lipcon and fixed by Todd Lipcon (io , util)<br>
     <b>Add CRC32C as another DataChecksum implementation</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7442">HADOOP-7442</a>.
     Major bug reported by Aaron T. Myers and fixed by Aaron T. Myers (conf , documentation)<br>
     <b>Docs in core-default.xml still reference deprecated config "topology.script.file.name"</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7440">HADOOP-7440</a>.
     Major bug reported by Todd Lipcon and fixed by Todd Lipcon <br>
     <b>HttpServer.getParameterValues throws NPE for missing parameters</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7438">HADOOP-7438</a>.
     Major improvement reported by Ravi Prakash and fixed by Ravi Prakash <br>
     <b>Using the hadoop-deamon.sh script to start nodes leads to a depricated warning </b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7437">HADOOP-7437</a>.
     Major bug reported by Uma Maheswara Rao G and fixed by Uma Maheswara Rao G (io)<br>
     <b>IOUtils.copybytes will suppress the stream closure exceptions. </b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7434">HADOOP-7434</a>.
     Minor improvement reported by &#20005;&#37329;&#21452; and fixed by &#20005;&#37329;&#21452; <br>
     <b>Display error when using "daemonlog -setlevel" with illegal level</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7430">HADOOP-7430</a>.
     Minor improvement reported by Ravi Prakash and fixed by Ravi Prakash (fs)<br>
     <b>Improve error message when moving to trash fails due to quota issue</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7428">HADOOP-7428</a>.
     Major bug reported by Todd Lipcon and fixed by Todd Lipcon (ipc)<br>
     <b>IPC connection is orphaned with null 'out' member</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7419">HADOOP-7419</a>.
     Major bug reported by Todd Lipcon and fixed by Bing Zheng <br>
     <b>new hadoop-config.sh doesn't manage classpath for HADOOP_CONF_DIR correctly</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7402">HADOOP-7402</a>.
     Trivial bug reported by Aaron T. Myers and fixed by Aaron T. Myers (test)<br>
     <b>TestConfiguration doesn't clean up after itself</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7392">HADOOP-7392</a>.
     Major improvement reported by Tanping Wang and fixed by Tanping Wang <br>
     <b>Implement capability of querying individual property of a mbean using JMXProxyServlet </b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7389">HADOOP-7389</a>.
     Major bug reported by Aaron T. Myers and fixed by Aaron T. Myers (test)<br>
     <b>Use of TestingGroups by tests causes subsequent tests to fail</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7385">HADOOP-7385</a>.
     Minor bug reported by Bharath Mundlapudi and fixed by Bharath Mundlapudi <br>
     <b>Remove StringUtils.stringifyException(ie) in logger functions</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7384">HADOOP-7384</a>.
     Major improvement reported by Todd Lipcon and fixed by Todd Lipcon <br>
     <b>Allow test-patch to be more flexible about patch format</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7383">HADOOP-7383</a>.
     Blocker bug reported by Todd Lipcon and fixed by Todd Lipcon (build)<br>
     <b>HDFS needs to export protobuf library dependency in pom</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7380">HADOOP-7380</a>.
     Major sub-task reported by Aaron T. Myers and fixed by Aaron T. Myers (ha , ipc)<br>
     <b>Add client failover functionality to o.a.h.io.(ipc|retry)</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7379">HADOOP-7379</a>.
     Major improvement reported by Todd Lipcon and fixed by Todd Lipcon (io , ipc)<br>
     <b>Add ability to include Protobufs in ObjectWritable</b><br>
     <blockquote>Protocol buffer-generated types may now be used as arguments or return values for Hadoop RPC.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7377">HADOOP-7377</a>.
     Major bug reported by Daryn Sharp and fixed by Daryn Sharp (fs)<br>
     <b>Fix command name handling affecting DFSAdmin</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7375">HADOOP-7375</a>.
     Major improvement reported by Sanjay Radia and fixed by Sanjay Radia <br>
     <b>Add resolvePath method to FileContext</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7374">HADOOP-7374</a>.
     Major improvement reported by Eli Collins and fixed by Eli Collins (scripts)<br>
     <b>Don't add tools.jar to the classpath when running Hadoop</b><br>
     <blockquote>The scripts that run Hadoop no longer automatically add tools.jar from the JDK to the classpath (if it is present). If your job depends on tools.jar in the JDK you will need to add this dependency in your job.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7361">HADOOP-7361</a>.
     Minor improvement reported by Uma Maheswara Rao G and fixed by Uma Maheswara Rao G (fs)<br>
     <b>Provide overwrite option (-overwrite/-f) in put and copyFromLocal command line options</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7360">HADOOP-7360</a>.
     Major improvement reported by Daryn Sharp and fixed by Kihwal Lee (fs)<br>
     <b>FsShell does not preserve relative paths with globs</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7357">HADOOP-7357</a>.
     Trivial bug reported by Philip Zeyliger and fixed by Philip Zeyliger (test)<br>
     <b>hadoop.io.compress.TestCodec#main() should exit with non-zero exit code if test failed</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7356">HADOOP-7356</a>.
     Blocker bug reported by Eric Yang and fixed by Eric Yang <br>
     <b>RPM packages broke bin/hadoop script for hadoop 0.20.205</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7353">HADOOP-7353</a>.
     Major bug reported by Daryn Sharp and fixed by Daryn Sharp (fs)<br>
     <b>Cleanup FsShell and prevent masking of RTE stacktraces</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7342">HADOOP-7342</a>.
     Minor bug reported by Bharath Mundlapudi and fixed by Bharath Mundlapudi <br>
     <b>Add an utility API in FileUtil for JDK File.list</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7341">HADOOP-7341</a>.
     Major bug reported by Daryn Sharp and fixed by Daryn Sharp (fs)<br>
     <b>Fix option parsing in CommandFormat</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7337">HADOOP-7337</a>.
     Minor improvement reported by Tsz Wo (Nicholas), SZE and fixed by Tsz Wo (Nicholas), SZE (util)<br>
     <b>Annotate PureJavaCrc32 as a public API</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7336">HADOOP-7336</a>.
     Minor bug reported by Jitendra Nath Pandey and fixed by Jitendra Nath Pandey <br>
     <b>TestFileContextResolveAfs will fail with default test.build.data property.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7333">HADOOP-7333</a>.
     Minor improvement reported by Eric Caspole and fixed by Eric Caspole (performance , util)<br>
     <b>Performance improvement in PureJavaCrc32</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7331">HADOOP-7331</a>.
     Trivial improvement reported by Tanping Wang and fixed by Tanping Wang (scripts)<br>
     <b>Make hadoop-daemon.sh to return 1 if daemon processes did not get started</b><br>
     <blockquote>hadoop-daemon.sh now returns a non-zero exit code if it detects that the daemon was not still running after 3 seconds.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7329">HADOOP-7329</a>.
     Minor improvement reported by XieXianshan and fixed by XieXianshan (fs)<br>
     <b>incomplete help message  is displayed for df -h option</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7328">HADOOP-7328</a>.
     Major improvement reported by Harsh J and fixed by Harsh J (io)<br>
     <b>When a serializer class is missing, return null, not throw an NPE.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7327">HADOOP-7327</a>.
     Minor bug reported by Matt Foley and fixed by Matt Foley (fs)<br>
     <b>FileSystem.listStatus() throws NullPointerException instead of IOException upon access permission failure</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7324">HADOOP-7324</a>.
     Blocker bug reported by Luke Lu and fixed by Priyo Mustafi (metrics)<br>
     <b>Ganglia plugins for metrics v2</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7322">HADOOP-7322</a>.
     Minor bug reported by Bharath Mundlapudi and fixed by Bharath Mundlapudi <br>
     <b>Adding a util method in FileUtil for JDK File.listFiles</b><br>
     <blockquote>Use of this new utility method avoids null result from File.listFiles(), and consequent NPEs.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7320">HADOOP-7320</a>.
     Major improvement reported by Daryn Sharp and fixed by Daryn Sharp <br>
     <b>Refactor FsShell's copy &amp; move commands</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7316">HADOOP-7316</a>.
     Major improvement reported by Jonathan Hsieh and fixed by Eli Collins (documentation)<br>
     <b>Add public javadocs to FSDataInputStream and FSDataOutputStream</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7314">HADOOP-7314</a>.
     Major improvement reported by Jeffrey Naisbitt and fixed by Jeffrey Naisbitt <br>
     <b>Add support for throwing UnknownHostException when a host doesn't resolve</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7306">HADOOP-7306</a>.
     Major improvement reported by Luke Lu and fixed by Luke Lu (metrics)<br>
     <b>Start metrics system even if config files are missing</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7305">HADOOP-7305</a>.
     Minor improvement reported by Niels Basjes and fixed by Niels Basjes (build)<br>
     <b>Eclipse project files are incomplete</b><br>
     <blockquote>Added missing library during creation of the eclipse project files.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7301">HADOOP-7301</a>.
     Major improvement reported by Jonathan Hsieh and fixed by Jonathan Hsieh <br>
     <b>FSDataInputStream should expose a getWrappedStream method</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7298">HADOOP-7298</a>.
     Major test reported by Todd Lipcon and fixed by Todd Lipcon (test)<br>
     <b>Add test utility for writing multi-threaded tests</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7292">HADOOP-7292</a>.
     Minor bug reported by Luke Lu and fixed by Luke Lu (metrics)<br>
     <b>Metrics 2 TestSinkQueue is racy</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7289">HADOOP-7289</a>.
     Major improvement reported by Tsz Wo (Nicholas), SZE and fixed by Eric Yang (build)<br>
     <b>ivy: test conf should not extend common conf</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7287">HADOOP-7287</a>.
     Blocker bug reported by Todd Lipcon and fixed by Aaron T. Myers (conf)<br>
     <b>Configuration deprecation mechanism doesn't work properly for GenericOptionsParser/Tools</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7286">HADOOP-7286</a>.
     Major improvement reported by Daryn Sharp and fixed by Daryn Sharp (fs)<br>
     <b>Refactor FsShell's du/dus/df</b><br>
     <blockquote>The "Found X items" header on the output of the "du" command has been removed to more closely match unix. The displayed paths now correspond to the command line arguments instead of always being a fully qualified URI. For example, the output will have relative paths if the command line arguments are relative paths.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7285">HADOOP-7285</a>.
     Major improvement reported by Daryn Sharp and fixed by Daryn Sharp (fs)<br>
     <b>Refactor FsShell's test</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7284">HADOOP-7284</a>.
     Major bug reported by Sanjay Radia and fixed by Sanjay Radia (viewfs)<br>
     <b>Trash and shell's rm does not work for viewfs</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7282">HADOOP-7282</a>.
     Major bug reported by John George and fixed by John George (ipc)<br>
     <b>getRemoteIp could return null in cases where the call is ongoing but the ip went away.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7276">HADOOP-7276</a>.
     Major bug reported by Trevor Robinson and fixed by Trevor Robinson (native)<br>
     <b>Hadoop native builds fail on ARM due to -m32</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7275">HADOOP-7275</a>.
     Major improvement reported by Daryn Sharp and fixed by Daryn Sharp (fs)<br>
     <b>Refactor FsShell's stat</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7271">HADOOP-7271</a>.
     Major improvement reported by Daryn Sharp and fixed by Daryn Sharp (fs)<br>
     <b>Standardize error messages</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7268">HADOOP-7268</a>.
     Major bug reported by Devaraj Das and fixed by Jitendra Nath Pandey (fs , security)<br>
     <b>FileContext.getLocalFSFileContext() behavior needs to be fixed w.r.t tokens</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7267">HADOOP-7267</a>.
     Major improvement reported by Daryn Sharp and fixed by Daryn Sharp (fs)<br>
     <b>Refactor FsShell's rm/rmr/expunge</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7265">HADOOP-7265</a>.
     Major improvement reported by Daryn Sharp and fixed by Daryn Sharp (fs)<br>
     <b>Keep track of relative paths</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7264">HADOOP-7264</a>.
     Major improvement reported by Luke Lu and fixed by Luke Lu (io)<br>
     <b>Bump avro version to at least 1.4.1</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7261">HADOOP-7261</a>.
     Major bug reported by Suresh Srinivas and fixed by Suresh Srinivas (test)<br>
     <b>Disable IPV6 for junit tests</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7259">HADOOP-7259</a>.
     Major bug reported by Owen O'Malley and fixed by Owen O'Malley (build)<br>
     <b>contrib modules should include build.properties from parent.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7257">HADOOP-7257</a>.
     Major new feature reported by Sanjay Radia and fixed by Sanjay Radia <br>
     <b>A client side mount table to give per-application/per-job file system view</b><br>
     <blockquote>viewfs - client-side mount table.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7251">HADOOP-7251</a>.
     Major improvement reported by Daryn Sharp and fixed by Daryn Sharp (fs)<br>
     <b>Refactor FsShell's getmerge</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7250">HADOOP-7250</a>.
     Major improvement reported by Daryn Sharp and fixed by Daryn Sharp (fs)<br>
     <b>Refactor FsShell's setrep</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7249">HADOOP-7249</a>.
     Major improvement reported by Daryn Sharp and fixed by Daryn Sharp (fs)<br>
     <b>Refactor FsShell's chmod/chown/chgrp</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7241">HADOOP-7241</a>.
     Minor improvement reported by Wei Yongjun and fixed by Wei Yongjun (fs , test)<br>
     <b>fix typo of command 'hadoop fs -help tail'</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7238">HADOOP-7238</a>.
     Major improvement reported by Daryn Sharp and fixed by Daryn Sharp (fs)<br>
     <b>Refactor FsShell's cat &amp; text</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7237">HADOOP-7237</a>.
     Major improvement reported by Daryn Sharp and fixed by Daryn Sharp (fs)<br>
     <b>Refactor FsShell's touchz</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7236">HADOOP-7236</a>.
     Major improvement reported by Daryn Sharp and fixed by Daryn Sharp (fs)<br>
     <b>Refactor FsShell's mkdir</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7235">HADOOP-7235</a>.
     Major improvement reported by Daryn Sharp and fixed by Daryn Sharp <br>
     <b>Refactor FsShell's tail</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7233">HADOOP-7233</a>.
     Major improvement reported by Daryn Sharp and fixed by Daryn Sharp (fs)<br>
     <b>Refactor FsShell's ls</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7231">HADOOP-7231</a>.
     Major bug reported by Daryn Sharp and fixed by Daryn Sharp (util)<br>
     <b>Fix synopsis for -count</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7230">HADOOP-7230</a>.
     Major test reported by Daryn Sharp and fixed by Daryn Sharp (test)<br>
     <b>Move -fs usage tests from hdfs into common</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7227">HADOOP-7227</a>.
     Major improvement reported by Jitendra Nath Pandey and fixed by Jitendra Nath Pandey (ipc)<br>
     <b>Remove protocol version check at proxy creation in Hadoop RPC.</b><br>
     <blockquote>1. Protocol version check is removed from proxy creation, instead version check is performed at server in every rpc call.
2. This change is backward incompatible because format of the rpc messages is changed to include client version, client method hash and rpc version.
3. rpc version is introduced which should change when the format of rpc messages is changed.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7223">HADOOP-7223</a>.
     Major bug reported by Suresh Srinivas and fixed by Suresh Srinivas (fs)<br>
     <b>FileContext createFlag combinations during create are not clearly defined</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7216">HADOOP-7216</a>.
     Major bug reported by Aaron T. Myers and fixed by Daryn Sharp (test)<br>
     <b>HADOOP-7202 broke TestDFSShell in HDFS</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7215">HADOOP-7215</a>.
     Blocker bug reported by Suresh Srinivas and fixed by Suresh Srinivas (security)<br>
     <b>RPC clients must connect over a network interface corresponding to the host name in the client's kerberos principal key</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7214">HADOOP-7214</a>.
     Major new feature reported by Aaron T. Myers and fixed by Aaron T. Myers <br>
     <b>Hadoop /usr/bin/groups equivalent</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7210">HADOOP-7210</a>.
     Major bug reported by Uma Maheswara Rao G and fixed by Uma Maheswara Rao G (fs)<br>
     <b>Chown command is not working from FSShell.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7209">HADOOP-7209</a>.
     Major improvement reported by Olga Natkovich and fixed by Daryn Sharp <br>
     <b>Extensions to FsShell</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7208">HADOOP-7208</a>.
     Major bug reported by Uma Maheswara Rao G and fixed by Uma Maheswara Rao G <br>
     <b>equals() and hashCode() implementation need to change in StandardSocketFactory</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7206">HADOOP-7206</a>.
     Major new feature reported by Eli Collins and fixed by Alejandro Abdelnur <br>
     <b>Integrate Snappy compression</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7205">HADOOP-7205</a>.
     Trivial improvement reported by Daryn Sharp and fixed by Daryn Sharp <br>
     <b>automatically determine JAVA_HOME on OS X</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7202">HADOOP-7202</a>.
     Major improvement reported by Daryn Sharp and fixed by Daryn Sharp <br>
     <b>Improve Command base class</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7194">HADOOP-7194</a>.
     Major bug reported by Devaraj K and fixed by Devaraj K (io)<br>
     <b>Potential Resource leak in IOUtils.java</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7193">HADOOP-7193</a>.
     Minor improvement reported by Uma Maheswara Rao G and fixed by Uma Maheswara Rao G (fs)<br>
     <b>Help message is wrong for touchz command.</b><br>
     <blockquote>Updated the help for the touchz command.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7187">HADOOP-7187</a>.
     Major bug reported by Uma Maheswara Rao G and fixed by Uma Maheswara Rao G (metrics)<br>
     <b>Socket Leak in org.apache.hadoop.metrics.ganglia.GangliaContext</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7180">HADOOP-7180</a>.
     Minor improvement reported by Daryn Sharp and fixed by Daryn Sharp (fs)<br>
     <b>Improve CommandFormat</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7178">HADOOP-7178</a>.
     Major bug reported by Uma Maheswara Rao G and fixed by Uma Maheswara Rao G (fs)<br>
     <b>FileSystem should have an option to control the .crc file creations at Local.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7177">HADOOP-7177</a>.
     Trivial improvement reported by Allen Wittenauer and fixed by Allen Wittenauer (native)<br>
     <b>CodecPool should report which compressor it is using</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7176">HADOOP-7176</a>.
     Major bug reported by Daryn Sharp and fixed by Daryn Sharp <br>
     <b>Redesign FsShell</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7175">HADOOP-7175</a>.
     Major bug reported by Daryn Sharp and fixed by Daryn Sharp (fs)<br>
     <b>Add isEnabled() to Trash</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7174">HADOOP-7174</a>.
     Minor bug reported by Uma Maheswara Rao G and fixed by Uma Maheswara Rao G (fs)<br>
     <b>null is displayed in the console,if the src path is invalid while doing copyToLocal operation from commandLine</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7172">HADOOP-7172</a>.
     Critical bug reported by Todd Lipcon and fixed by Todd Lipcon (io , security)<br>
     <b>SecureIO should not check owner on non-secure clusters that have no native support</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7171">HADOOP-7171</a>.
     Major bug reported by Owen O'Malley and fixed by Jitendra Nath Pandey (security)<br>
     <b>Support UGI in FileContext API</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7167">HADOOP-7167</a>.
     Minor improvement reported by Todd Lipcon and fixed by Todd Lipcon <br>
     <b>Allow using a file to exclude certain tests from build</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7162">HADOOP-7162</a>.
     Minor bug reported by Alexey Diomin and fixed by Alexey Diomin (fs)<br>
     <b>FsShell: call srcFs.listStatus(src) twice</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7159">HADOOP-7159</a>.
     Trivial improvement reported by Scott Chen and fixed by Scott Chen (ipc)<br>
     <b>RPC server should log the client hostname when read exception happened</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7153">HADOOP-7153</a>.
     Minor improvement reported by Nicholas Telford and fixed by Nicholas Telford (io)<br>
     <b>MapWritable violates contract of Map interface for equals() and hashCode()</b><br>
     <blockquote>MapWritable now implements equals() and hashCode() based on the map contents rather than object identity in order to correctly implement the Map interface.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7151">HADOOP-7151</a>.
     Minor bug reported by Dmitriy V. Ryaboy and fixed by Dmitriy V. Ryaboy <br>
     <b>Document need for stable hashCode() in WritableComparable</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7144">HADOOP-7144</a>.
     Major new feature reported by Luke Lu and fixed by Robert Joseph Evans <br>
     <b>Expose JMX with something like JMXProxyServlet </b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7136">HADOOP-7136</a>.
     Major task reported by Nigel Daley and fixed by Nigel Daley <br>
     <b>Remove failmon contrib</b><br>
     <blockquote>Failmon removed from contrib codebase.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7133">HADOOP-7133</a>.
     Major improvement reported by Matt Foley and fixed by Matt Foley (util)<br>
     <b>CLONE to COMMON - HDFS-1445 Batch the calls in DataStorage to FileUtil.createHardLink(), so we call it once per directory instead of once per file</b><br>
     <blockquote>This is the COMMON portion of a fix requiring coordinated change of COMMON and HDFS.  Please see HDFS-1445 for HDFS portion and release note.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7131">HADOOP-7131</a>.
     Minor improvement reported by Uma Maheswara Rao G and fixed by Uma Maheswara Rao G (io)<br>
     <b>set() and toString Methods of the org.apache.hadoop.io.Text class does not include the root exception, in the wrapping RuntimeException.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7120">HADOOP-7120</a>.
     Major bug reported by Tsz Wo (Nicholas), SZE and fixed by Tsz Wo (Nicholas), SZE (test)<br>
     <b>200 new Findbugs warnings</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7119">HADOOP-7119</a>.
     Major new feature reported by Alejandro Abdelnur and fixed by Alejandro Abdelnur (security)<br>
     <b>add Kerberos HTTP SPNEGO authentication support to Hadoop JT/NN/DN/TT web-consoles</b><br>
     <blockquote>Adding support for Kerberos HTTP SPNEGO authentication to the Hadoop web-consoles</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7117">HADOOP-7117</a>.
     Major improvement reported by Patrick Angeles and fixed by Harsh J (conf)<br>
     <b>Move secondary namenode checkpoint configs from core-default.xml to hdfs-default.xml</b><br>
     <blockquote>Removed references to the older fs.checkpoint.* properties that resided in core-site.xml</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7114">HADOOP-7114</a>.
     Minor improvement reported by Todd Lipcon and fixed by Todd Lipcon (fs)<br>
     <b>FsShell should dump all exceptions at DEBUG level</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7112">HADOOP-7112</a>.
     Major improvement reported by Tom White and fixed by Tom White (conf , filecache)<br>
     <b>Issue a warning when GenericOptionsParser libjars are not on local filesystem</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7111">HADOOP-7111</a>.
     Critical bug reported by Todd Lipcon and fixed by Aaron T. Myers (io)<br>
     <b>Several TFile tests failing when native libraries are present</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7098">HADOOP-7098</a>.
     Major bug reported by Bernd Fondermann and fixed by Bernd Fondermann (conf)<br>
     <b>tasktracker property not set in conf/hadoop-env.sh</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7096">HADOOP-7096</a>.
     Major improvement reported by Ahmed Radwan and fixed by Ahmed Radwan <br>
     <b>Allow setting of end-of-record delimiter for TextInputFormat</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7090">HADOOP-7090</a>.
     Major bug reported by Gokul and fixed by Uma Maheswara Rao G (fs/s3 , io)<br>
     <b>Possible resource leaks in hadoop core code</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7089">HADOOP-7089</a>.
     Minor bug reported by Eli Collins and fixed by Eli Collins (scripts)<br>
     <b>Fix link resolution logic in hadoop-config.sh</b><br>
     <blockquote>Updates hadoop-config.sh to always resolve symlinks when determining HADOOP_HOME. Bash built-ins or POSIX:2001 compliant cmds are now required.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7078">HADOOP-7078</a>.
     Trivial improvement reported by Todd Lipcon and fixed by Harsh J <br>
     <b>Add better javadocs for RawComparator interface</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7071">HADOOP-7071</a>.
     Minor bug reported by Nigel Daley and fixed by Nigel Daley (build)<br>
     <b>test-patch.sh has bad ps arg</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7061">HADOOP-7061</a>.
     Minor improvement reported by Jingguo Yao and fixed by Jingguo Yao (io)<br>
     <b>unprecise javadoc for CompressionCodec</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7060">HADOOP-7060</a>.
     Major improvement reported by Hairong Kuang and fixed by Patrick Kling (fs)<br>
     <b>A more elegant FileSystem#listCorruptFileBlocks API</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7059">HADOOP-7059</a>.
     Major improvement reported by Noah Watkins and fixed by Noah Watkins (native)<br>
     <b>Remove "unused" warning in native code</b><br>
     <blockquote>Adds __attribute__ ((unused))</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7058">HADOOP-7058</a>.
     Trivial improvement reported by Todd Lipcon and fixed by Todd Lipcon <br>
     <b>Expose number of bytes in FSOutputSummer buffer to implementatins</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7057">HADOOP-7057</a>.
     Minor bug reported by Konstantin Boudnik and fixed by Konstantin Boudnik (util)<br>
     <b>IOUtils.readFully and IOUtils.skipFully have typo in exception creation's message</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7055">HADOOP-7055</a>.
     Major bug reported by Jingguo Yao and fixed by Jingguo Yao (metrics)<br>
     <b>Update of commons logging libraries causes EventCounter to count logging events incorrectly</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7053">HADOOP-7053</a>.
     Minor bug reported by Jingguo Yao and fixed by Jingguo Yao (conf)<br>
     <b>wrong FSNamesystem Audit logging setting in conf/log4j.properties</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7052">HADOOP-7052</a>.
     Major bug reported by Jingguo Yao and fixed by Jingguo Yao (conf)<br>
     <b>misspelling of threshold in conf/log4j.properties</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7049">HADOOP-7049</a>.
     Trivial improvement reported by Patrick Kling and fixed by Patrick Kling (conf)<br>
     <b>TestReconfiguration should be junit v4</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7048">HADOOP-7048</a>.
     Minor improvement reported by Jingguo Yao and fixed by Jingguo Yao (io)<br>
     <b>Wrong description of Block-Compressed SequenceFile Format in SequenceFile's javadoc</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7046">HADOOP-7046</a>.
     Blocker bug reported by Nigel Daley and fixed by Po Cheung (security)<br>
     <b>1 Findbugs warning on trunk and branch-0.22</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7045">HADOOP-7045</a>.
     Minor bug reported by Eli Collins and fixed by Eli Collins (fs)<br>
     <b>TestDU fails on systems with local file systems with extended attributes</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7042">HADOOP-7042</a>.
     Minor improvement reported by Nigel Daley and fixed by Nigel Daley (test)<br>
     <b>Update test-patch.sh to include failed test names and move test-patch.properties</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7023">HADOOP-7023</a>.
     Major improvement reported by Patrick Kling and fixed by Patrick Kling <br>
     <b>Add listCorruptFileBlocks to FileSystem</b><br>
     <blockquote>Add a new API listCorruptFileBlocks to FIleContext that returns a list of files that have corrupt blocks. </blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7015">HADOOP-7015</a>.
     Minor bug reported by Sanjay Radia and fixed by Sanjay Radia <br>
     <b>RawLocalFileSystem#listStatus does not deal with a  directory whose entries are changing ( e.g. in a multi-thread or multi-process environment)</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7014">HADOOP-7014</a>.
     Major improvement reported by Konstantin Boudnik and fixed by Konstantin Boudnik (test)<br>
     <b>Generalize CLITest structure and interfaces to facilitate upstream adoption (e.g. for web testing)</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7001">HADOOP-7001</a>.
     Major task reported by Patrick Kling and fixed by Patrick Kling (conf)<br>
     <b>Allow configuration changes without restarting configured nodes</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-6994">HADOOP-6994</a>.
     Major improvement reported by Jitendra Nath Pandey and fixed by Jitendra Nath Pandey <br>
     <b>Api to get delegation token in AbstractFileSystem</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-6949">HADOOP-6949</a>.
     Major improvement reported by Navis and fixed by Matt Foley (io)<br>
     <b>Reduces RPC packet size for primitive arrays, especially long[], which is used at block reporting</b><br>
     <blockquote>Increments the RPC protocol version in org.apache.hadoop.ipc.Server from 4 to 5.
Introduces ArrayPrimitiveWritable for a much more efficient wire format to transmit arrays of primitives over RPC. ObjectWritable uses the new writable for array of primitives for RPC and continues to use existing format for on-disk data.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-6939">HADOOP-6939</a>.
     Minor bug reported by Todd Lipcon and fixed by Todd Lipcon <br>
     <b>Inconsistent lock ordering in AbstractDelegationTokenSecretManager</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-6929">HADOOP-6929</a>.
     Major improvement reported by Sharad Agarwal and fixed by Sharad Agarwal (ipc , security)<br>
     <b>RPC should have a way to pass Security information other than protocol annotations</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-6921">HADOOP-6921</a>.
     Major sub-task reported by Luke Lu and fixed by Luke Lu <br>
     <b>metrics2: metrics plugins</b><br>
     <blockquote>Metrics names are standardized to CapitalizedCamelCase. See release note of HADOOP-6918 and HADOOP-6920.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-6920">HADOOP-6920</a>.
     Major sub-task reported by Luke Lu and fixed by Luke Lu <br>
     <b>Metrics2: metrics instrumentation</b><br>
     <blockquote>Metrics names are standardized to use CapitalizedCamelCase. Some examples of this is:
# Metrics names using "_" is changed to new naming scheme. Eg: bytes_written changes to BytesWritten.
# All metrics names start with capitals. Example: threadsBlocked changes to ThreadsBlocked.
</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-6919">HADOOP-6919</a>.
     Major sub-task reported by Luke Lu and fixed by Luke Lu (metrics)<br>
     <b>Metrics2: metrics framework</b><br>
     <blockquote>New metrics2 framework for Hadoop.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-6912">HADOOP-6912</a>.
     Major bug reported by Kan Zhang and fixed by Kan Zhang (security)<br>
     <b>Guard against NPE when calling UGI.isLoginKeytabBased()</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-6904">HADOOP-6904</a>.
     Major new feature reported by Hairong Kuang and fixed by Hairong Kuang (ipc)<br>
     <b>A baby step towards inter-version RPC communications</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-6889">HADOOP-6889</a>.
     Major new feature reported by Hairong Kuang and fixed by John George (ipc)<br>
     <b>Make RPC to have an option to timeout</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-6887">HADOOP-6887</a>.
     Major improvement reported by Bharath Mundlapudi and fixed by Luke Lu (metrics)<br>
     <b>Need a separate metrics per garbage collector</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-6864">HADOOP-6864</a>.
     Major improvement reported by Erik Steffl and fixed by Boris Shkolnik (security)<br>
     <b>Provide a JNI-based implementation of ShellBasedUnixGroupsNetgroupMapping (implementation of GroupMappingServiceProvider)</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-6764">HADOOP-6764</a>.
     Major improvement reported by Dmytro Molkov and fixed by Dmytro Molkov (ipc)<br>
     <b>Add number of reader threads and queue length as configuration parameters in RPC.getServer</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-6754">HADOOP-6754</a>.
     Major bug reported by Aaron Kimball and fixed by Aaron Kimball (io)<br>
     <b>DefaultCodec.createOutputStream() leaks memory</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-6683">HADOOP-6683</a>.
     Minor sub-task reported by Kang Xiao and fixed by Kang Xiao (io)<br>
     <b>the first optimization: ZlibCompressor does not fully utilize the buffer</b><br>
     <blockquote>Improve the buffer utilization of ZlibCompressor to avoid invoking a JNI per write request.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-6671">HADOOP-6671</a>.
     Major sub-task reported by Giridharan Kesavan and fixed by Alejandro Abdelnur (build)<br>
     <b>To use maven for hadoop common builds</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-6622">HADOOP-6622</a>.
     Major bug reported by Jitendra Nath Pandey and fixed by Eli Collins (security)<br>
     <b>Token should not print the password in toString.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-6578">HADOOP-6578</a>.
     Minor improvement reported by Todd Lipcon and fixed by Michele Catasta (conf)<br>
     <b>Configuration should trim whitespace around a lot of value types</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-6508">HADOOP-6508</a>.
     Major bug reported by Amareshwari Sriramadasu and fixed by Luke Lu (metrics)<br>
     <b>Incorrect values for metrics with CompositeContext</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-6436">HADOOP-6436</a>.
     Major improvement reported by Eli Collins and fixed by Roman Shaposhnik <br>
     <b>Remove auto-generated native build files </b><br>
     <blockquote>The native build run when from trunk now requires autotools, libtool and openssl dev libraries.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-6432">HADOOP-6432</a>.
     Major new feature reported by Jitendra Nath Pandey and fixed by Jitendra Nath Pandey <br>
     <b>Statistics support in FileContext</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-6385">HADOOP-6385</a>.
     Minor new feature reported by Scott Phillips and fixed by Daryn Sharp (fs)<br>
     <b>dfs does not support -rmdir (was HDFS-639)</b><br>
     <blockquote>The "rm" family of FsShell commands now supports -rmdir and -f options.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-6376">HADOOP-6376</a>.
     Minor improvement reported by Karthik K and fixed by Karthik K (conf)<br>
     <b>slaves file to have a header specifying the format of conf/slaves file </b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-6255">HADOOP-6255</a>.
     Major new feature reported by Owen O'Malley and fixed by Eric Yang <br>
     <b>Create an rpm integration project</b><br>
     <blockquote>Added RPM/DEB packages to build system.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-6158">HADOOP-6158</a>.
     Minor task reported by Owen O'Malley and fixed by Eli Collins (util)<br>
     <b>Move CyclicIteration to HDFS</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-5647">HADOOP-5647</a>.
     Major bug reported by Ravi Gummadi and fixed by Ravi Gummadi (test)<br>
     <b>TestJobHistory fails if /tmp/_logs is not writable to. Testcase should not depend on /tmp</b><br>
     <blockquote>Removed dependency of testcase on /tmp and made it to use test.build.data directory instead.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-2081">HADOOP-2081</a>.
     Major bug reported by Owen O'Malley and fixed by Harsh J (conf)<br>
     <b>Configuration getInt, getLong, and getFloat replace invalid numbers with the default value</b><br>
     <blockquote>Invalid configuration values now result in a number format exception rather than the default value being used.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-1886">HADOOP-1886</a>.
     Trivial improvement reported by Konstantin Shvachko and fixed by Frank Conrad (fs)<br>
     <b>Undocumented parameters in FilesSystem</b><br>
     <blockquote></blockquote></li>
</ul>
</body></html>
