<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Hadoop  2.3.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  2.3.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 2.2.0</h2>
<ul>
<li> <a href="https://issues.apache.org/jira/browse/YARN-1642">YARN-1642</a>.
     Blocker sub-task reported by Karthik Kambatla and fixed by Karthik Kambatla (resourcemanager)<br>
     <b>RMDTRenewer#getRMClient should use ClientRMProxy</b><br>
     <blockquote>RMDTRenewer#getRMClient gets a proxy to the RM in the conf directly instead of going through ClientRMProxy. 

{code}
      final YarnRPC rpc = YarnRPC.create(conf);
      return (ApplicationClientProtocol)rpc.getProxy(ApplicationClientProtocol.class, addr, conf);
{code}</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-1630">YARN-1630</a>.
     Major bug reported by Aditya Acharya and fixed by Aditya Acharya (client)<br>
     <b>Introduce timeout for async polling operations in YarnClientImpl</b><br>
     <blockquote>I ran an MR2 application that would have been long running, and killed it programmatically using a YarnClient. The app was killed, but the client hung forever. The message that I saw, which spammed the logs, was "Watiting for application application_1389036507624_0018 to be killed."

The RM log indicated that the app had indeed transitioned from RUNNING to KILLED, but for some reason future responses to the RPC to kill the application did not indicate that the app had been terminated.

I tracked this down to YarnClientImpl.java, and though I was unable to reproduce the bug, I wrote a patch to introduce a bound on the number of times that YarnClientImpl retries the RPC before giving up.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-1629">YARN-1629</a>.
     Major bug reported by Sandy Ryza and fixed by Sandy Ryza (scheduler)<br>
     <b>IndexOutOfBoundsException in Fair Scheduler MaxRunningAppsEnforcer</b><br>
     <blockquote>This can occur when the second-to-last app in a queue's pending app list is made runnable.  The app is pulled out from under the iterator. </blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-1628">YARN-1628</a>.
     Major bug reported by Mit Desai and fixed by Vinod Kumar Vavilapalli <br>
     <b>TestContainerManagerSecurity fails on trunk</b><br>
     <blockquote>The Test fails with the following error

{noformat}
java.lang.IllegalArgumentException: java.net.UnknownHostException: InvalidHost
	at org.apache.hadoop.security.SecurityUtil.buildTokenService(SecurityUtil.java:377)
	at org.apache.hadoop.yarn.server.security.BaseNMTokenSecretManager.newInstance(BaseNMTokenSecretManager.java:145)
	at org.apache.hadoop.yarn.server.security.BaseNMTokenSecretManager.createNMToken(BaseNMTokenSecretManager.java:136)
	at org.apache.hadoop.yarn.server.TestContainerManagerSecurity.testNMTokens(TestContainerManagerSecurity.java:253)
	at org.apache.hadoop.yarn.server.TestContainerManagerSecurity.testContainerManager(TestContainerManagerSecurity.java:144)
{noformat}</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-1624">YARN-1624</a>.
     Major bug reported by Aditya Acharya and fixed by Aditya Acharya (scheduler)<br>
     <b>QueuePlacementPolicy format is not easily readable via a JAXB parser</b><br>
     <blockquote>The current format for specifying queue placement rules in the fair scheduler allocations file does not lend itself to easy parsing via a JAXB parser. In particular, relying on the tag name to encode information about which rule to use makes it very difficult for an xsd-based JAXB parser to preserve the order of the rules, which is essential.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-1623">YARN-1623</a>.
     Major improvement reported by Sandy Ryza and fixed by Sandy Ryza (scheduler)<br>
     <b>Include queue name in RegisterApplicationMasterResponse</b><br>
     <blockquote>This provides the YARN change necessary to support MAPREDUCE-5732.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-1618">YARN-1618</a>.
     Blocker sub-task reported by Karthik Kambatla and fixed by Karthik Kambatla (resourcemanager)<br>
     <b>Fix invalid RMApp transition from NEW to FINAL_SAVING</b><br>
     <blockquote>YARN-891 augments the RMStateStore to store information on completed applications. In the process, it adds transitions from NEW to FINAL_SAVING. This leads to the RM trying to update entries in the state-store that do not exist. On ZKRMStateStore, this leads to the RM crashing. 

Previous description:
ZKRMStateStore fails to handle updates to znodes that don't exist. For instance, this can happen when an app transitions from NEW to FINAL_SAVING. In these cases, the store should create the missing znode and handle the update.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-1616">YARN-1616</a>.
     Trivial improvement reported by Karthik Kambatla and fixed by Karthik Kambatla (resourcemanager)<br>
     <b>RMFatalEventDispatcher should log the cause of the event</b><br>
     <blockquote>RMFatalEventDispatcher#handle() logs the receipt of an event and its type, but leaves out the cause. The cause captures why the event was raised and would help debugging issues. </blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-1608">YARN-1608</a>.
     Trivial bug reported by Karthik Kambatla and fixed by Karthik Kambatla (nodemanager)<br>
     <b>LinuxContainerExecutor has a few DEBUG messages at INFO level</b><br>
     <blockquote>LCE has a few INFO level log messages meant to be at debug level. In fact, they are logged both at INFO and DEBUG. </blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-1607">YARN-1607</a>.
     Major bug reported by Sandy Ryza and fixed by Sandy Ryza <br>
     <b>TestRM expects the capacity scheduler</b><br>
     <blockquote>We should either explicitly set the Capacity Scheduler or make it scheduler-agnostic</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-1603">YARN-1603</a>.
     Trivial bug reported by Zhijie Shen and fixed by Zhijie Shen <br>
     <b>Remove two *.orig files which were unexpectedly committed</b><br>
     <blockquote>FairScheduler.java.orig and TestFifoScheduler.java.orig</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-1601">YARN-1601</a>.
     Major bug reported by Alejandro Abdelnur and fixed by Alejandro Abdelnur <br>
     <b>3rd party JARs are missing from hadoop-dist output</b><br>
     <blockquote>With the build changes of YARN-888 we are leaving out all 3rd party JArs used directly by YARN under /share/hadoop/yarn/lib/.

We did not notice this when running minicluster because they all happen to be in the classpath from hadoop-common and hadoop-yarn.

As 3d party JARs are not 'public' interfaces we cannot rely on them being provided to yarn by common and hdfs. (ie if common and hdfs stop using a 3rd party dependency that yarn uses this would break yarn if yarn does not pull that dependency explicitly).

Also, this will break bigtop hadoop build when they move to use branch-2 as they expect to find jars in /share/hadoop/yarn/lib/</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-1600">YARN-1600</a>.
     Blocker bug reported by Jason Lowe and fixed by Haohui Mai (resourcemanager)<br>
     <b>RM does not startup when security is enabled without spnego configured</b><br>
     <blockquote>We have a custom auth filter in front of our various UI pages that handles user authentication.  However currently the RM assumes that if security is enabled then the user must have configured spnego as well for the RM web pages which is not true in our case.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-1598">YARN-1598</a>.
     Critical sub-task reported by Karthik Kambatla and fixed by Karthik Kambatla (client , resourcemanager)<br>
     <b>HA-related rmadmin commands don't work on a secure cluster</b><br>
     <blockquote>The HA-related commands like -getServiceState -checkHealth etc. don't work in a secure cluster.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-1579">YARN-1579</a>.
     Trivial sub-task reported by Karthik Kambatla and fixed by Karthik Kambatla (resourcemanager)<br>
     <b>ActiveRMInfoProto fields should be optional</b><br>
     <blockquote>Per discussion on YARN-1568, ActiveRMInfoProto should have optional fields instead of required fields. </blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-1575">YARN-1575</a>.
     Critical sub-task reported by Jason Lowe and fixed by Jason Lowe (nodemanager)<br>
     <b>Public localizer crashes with "Localized unkown resource"</b><br>
     <blockquote>The public localizer can crash with the error:

{noformat}
2014-01-08 14:11:43,212 [Thread-467] ERROR org.apache.hadoop.yarn.server.nodemanager.containermanager.localizer.ResourceLocalizationService: Localized unkonwn resource to java.util.concurrent.FutureTask@852e26
2014-01-08 14:11:43,212 [Thread-467] INFO org.apache.hadoop.yarn.server.nodemanager.containermanager.localizer.ResourceLocalizationService: Public cache exiting
{noformat}</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-1574">YARN-1574</a>.
     Blocker sub-task reported by Xuan Gong and fixed by Xuan Gong <br>
     <b>RMDispatcher should be reset on transition to standby</b><br>
     <blockquote>Currently, we move rmDispatcher out of ActiveService. But we still register the Event dispatcher, such as schedulerDispatcher, RMAppEventDispatcher when we initiate the ActiveService.

Almost every time when we transit RM from Active to Standby,  we need to initiate the ActiveService. That means we will register the same event Dispatcher which will cause the same event will be handled several times.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-1573">YARN-1573</a>.
     Major sub-task reported by Karthik Kambatla and fixed by Karthik Kambatla (resourcemanager)<br>
     <b>ZK store should use a private password for root-node-acls</b><br>
     <blockquote>Currently, when HA is enabled, ZK store uses cluster-timestamp as the password for root node ACLs to give the Active RM exclusive access to the store. A more private value like a random number might be better. </blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-1568">YARN-1568</a>.
     Trivial task reported by Karthik Kambatla and fixed by Karthik Kambatla (resourcemanager)<br>
     <b>Rename clusterid to clusterId in ActiveRMInfoProto </b><br>
     <blockquote>YARN-1029 introduces ActiveRMInfoProto - just realized it defines a field clusterid, which is inconsistent with other fields. Better to fix it immediately than leave the inconsistency. </blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-1567">YARN-1567</a>.
     Major improvement reported by Sandy Ryza and fixed by Sandy Ryza (scheduler)<br>
     <b>In Fair Scheduler, allow empty queues to change between leaf and parent on allocation file reload</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-1560">YARN-1560</a>.
     Major test reported by Ted Yu and fixed by Ted Yu <br>
     <b>TestYarnClient#testAMMRTokens fails with null AMRM token</b><br>
     <blockquote>The following can be reproduced locally:
{code}
testAMMRTokens(org.apache.hadoop.yarn.client.api.impl.TestYarnClient)  Time elapsed: 3.341 sec  &lt;&lt;&lt; FAILURE!
junit.framework.AssertionFailedError: null
  at junit.framework.Assert.fail(Assert.java:48)
  at junit.framework.Assert.assertTrue(Assert.java:20)
  at junit.framework.Assert.assertNotNull(Assert.java:218)
  at junit.framework.Assert.assertNotNull(Assert.java:211)
  at org.apache.hadoop.yarn.client.api.impl.TestYarnClient.testAMMRTokens(TestYarnClient.java:382)
{code}
This test didn't appear in https://builds.apache.org/job/Hadoop-Yarn-trunk/442/consoleFull</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-1559">YARN-1559</a>.
     Blocker sub-task reported by Karthik Kambatla and fixed by Karthik Kambatla (resourcemanager)<br>
     <b>Race between ServerRMProxy and ClientRMProxy setting RMProxy#INSTANCE</b><br>
     <blockquote>RMProxy#INSTANCE is a non-final static field and both ServerRMProxy and ClientRMProxy set it. This leads to races as witnessed on - YARN-1482.

Sample trace:
{noformat}
java.lang.IllegalArgumentException: RM does not support this client protocol
        at com.google.common.base.Preconditions.checkArgument(Preconditions.java:88)
        at org.apache.hadoop.yarn.client.ClientRMProxy.checkAllowedProtocols(ClientRMProxy.java:119)
        at org.apache.hadoop.yarn.client.ConfiguredRMFailoverProxyProvider.init(ConfiguredRMFailoverProxyProvider.java:58)
        at org.apache.hadoop.yarn.client.RMProxy.createRMFailoverProxyProvider(RMProxy.java:158)
        at org.apache.hadoop.yarn.client.RMProxy.createRMProxy(RMProxy.java:88)
        at org.apache.hadoop.yarn.server.api.ServerRMProxy.createRMProxy(ServerRMProxy.java:56)
{noformat}</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-1549">YARN-1549</a>.
     Major test reported by Ted Yu and fixed by haosdent <br>
     <b>TestUnmanagedAMLauncher#testDSShell fails in trunk</b><br>
     <blockquote>The following error is reproducible:
{code}
testDSShell(org.apache.hadoop.yarn.applications.unmanagedamlauncher.TestUnmanagedAMLauncher)  Time elapsed: 14.911 sec  &lt;&lt;&lt; ERROR!
java.lang.RuntimeException: Failed to receive final expected state in ApplicationReport, CurrentState=RUNNING, ExpectedStates=FINISHED,FAILED,KILLED
	at org.apache.hadoop.yarn.applications.unmanagedamlauncher.UnmanagedAMLauncher.monitorApplication(UnmanagedAMLauncher.java:447)
	at org.apache.hadoop.yarn.applications.unmanagedamlauncher.UnmanagedAMLauncher.run(UnmanagedAMLauncher.java:352)
	at org.apache.hadoop.yarn.applications.unmanagedamlauncher.TestUnmanagedAMLauncher.testDSShell(TestUnmanagedAMLauncher.java:147)
{code}
See https://builds.apache.org/job/Hadoop-Yarn-trunk/435</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-1541">YARN-1541</a>.
     Major bug reported by Jian He and fixed by Jian He <br>
     <b>Invalidate AM Host/Port when app attempt is done so that in the mean-while client doesn&#8217;t get wrong information.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-1527">YARN-1527</a>.
     Trivial bug reported by Jian He and fixed by Akira AJISAKA <br>
     <b>yarn rmadmin command prints wrong usage info:</b><br>
     <blockquote>The usage should be: yarn rmadmin, instead of java RMAdmin, and the -refreshQueues should be in the second line.
{code} Usage: java RMAdmin   -refreshQueues 
   -refreshNodes 
   -refreshSuperUserGroupsConfiguration 
   -refreshUserToGroupsMappings 
   -refreshAdminAcls 
   -refreshServiceAcl 
   -getGroups [username]
   -help [cmd]
   -transitionToActive &lt;serviceId&gt;
   -transitionToStandby &lt;serviceId&gt;
   -failover [--forcefence] [--forceactive] &lt;serviceId&gt; &lt;serviceId&gt;
   -getServiceState &lt;serviceId&gt;
   -checkHealth &lt;serviceId&gt;
{code}</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-1523">YARN-1523</a>.
     Major sub-task reported by Bikas Saha and fixed by Karthik Kambatla <br>
     <b>Use StandbyException instead of RMNotYetReadyException</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-1522">YARN-1522</a>.
     Major bug reported by Liyin Liang and fixed by Liyin Liang <br>
     <b>TestApplicationCleanup.testAppCleanup occasionally fails</b><br>
     <blockquote>TestApplicationCleanup is occasionally failing with the error:
{code}
-------------------------------------------------------------------------------
Test set: org.apache.hadoop.yarn.server.resourcemanager.TestApplicationCleanup
-------------------------------------------------------------------------------
Tests run: 1, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 6.215 sec &lt;&lt;&lt; FAILURE! - in org.apache.hadoop.yarn.server.resourcemanager.TestApplicationCleanup
testAppCleanup(org.apache.hadoop.yarn.server.resourcemanager.TestApplicationCleanup) Time elapsed: 5.555 sec &lt;&lt;&lt; FAILURE!
junit.framework.AssertionFailedError: expected:&lt;1&gt; but was:&lt;0&gt;
at org.apache.hadoop.yarn.server.resourcemanager.TestApplicationCleanup.testAppCleanup(TestApplicationCleanup.java:119)
{code}</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-1505">YARN-1505</a>.
     Blocker bug reported by Xuan Gong and fixed by Xuan Gong <br>
     <b>WebAppProxyServer should not set localhost as YarnConfiguration.PROXY_ADDRESS by itself</b><br>
     <blockquote>At WebAppProxyServer::startServer(), it will set up  YarnConfiguration.PROXY_ADDRESS to localhost:9099 by itself. So, no matter what is the value we set YarnConfiguration.PROXY_ADDRESS in configuration, the proxyserver will bind to localhost:9099</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-1491">YARN-1491</a>.
     Trivial bug reported by Jonathan Eagles and fixed by Chen He <br>
     <b>Upgrade JUnit3 TestCase to JUnit 4</b><br>
     <blockquote>There are still four references to test classes that extend from junit.framework.TestCase

hadoop-yarn/hadoop-yarn-common/src/test/java/org/apache/hadoop/yarn/util/TestYarnVersionInfo.java
hadoop-yarn/hadoop-yarn-common/src/test/java/org/apache/hadoop/yarn/util/TestWindowsResourceCalculatorPlugin.java
hadoop-yarn/hadoop-yarn-common/src/test/java/org/apache/hadoop/yarn/util/TestLinuxResourceCalculatorPlugin.java
hadoop-yarn/hadoop-yarn-common/src/test/java/org/apache/hadoop/yarn/util/TestWindowsBasedProcessTree.java
</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-1485">YARN-1485</a>.
     Major sub-task reported by Xuan Gong and fixed by Xuan Gong <br>
     <b>Enabling HA should verify the RM service addresses configurations have been set for every RM Ids defined in RM_HA_IDs</b><br>
     <blockquote>After YARN-1325, the YarnConfiguration.RM_HA_IDS will contain multiple RM_Ids. We need to verify that the RM service addresses configurations have been set for all of RM_Ids.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-1482">YARN-1482</a>.
     Major sub-task reported by Vinod Kumar Vavilapalli and fixed by Xuan Gong <br>
     <b>WebApplicationProxy should be always-on w.r.t HA even if it is embedded in the RM</b><br>
     <blockquote>This way, even if an RM goes to standby mode, we can affect a redirect to the active. And more importantly, users will not suddenly see all their links stop working.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-1481">YARN-1481</a>.
     Major sub-task reported by Vinod Kumar Vavilapalli and fixed by Vinod Kumar Vavilapalli <br>
     <b>Move internal services logic from AdminService to ResourceManager</b><br>
     <blockquote>This is something I found while reviewing YARN-1318, but didn't halt that patch as many cycles went there already. Some top level issues
 - Not easy to follow RM's service life cycle
    -- RM adds only AdminService as its service directly.
    -- Other services are added to RM when AdminService's init calls RM.activeServices.init()
 - Overall, AdminService shouldn't encompass all of RM's HA state management. It was originally supposed to be the implementation of just the RPC server.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-1463">YARN-1463</a>.
     Major test reported by Ted Yu and fixed by Vinod Kumar Vavilapalli <br>
     <b>Tests should avoid starting http-server where possible or creates spnego keytab/principals</b><br>
     <blockquote>Here is stack trace:
{code}
testContainerManager[1](org.apache.hadoop.yarn.server.TestContainerManagerSecurity)  Time elapsed: 1.756 sec  &lt;&lt;&lt; ERROR!
org.apache.hadoop.yarn.exceptions.YarnRuntimeException: java.io.IOException: ResourceManager failed to start. Final state is STOPPED
  at org.apache.hadoop.yarn.server.MiniYARNCluster$ResourceManagerWrapper.serviceStart(MiniYARNCluster.java:253)
  at org.apache.hadoop.service.AbstractService.start(AbstractService.java:193)
  at org.apache.hadoop.service.CompositeService.serviceStart(CompositeService.java:121)
  at org.apache.hadoop.service.AbstractService.start(AbstractService.java:193)
  at org.apache.hadoop.yarn.server.TestContainerManagerSecurity.testContainerManager(TestContainerManagerSecurity.java:110)
{code}</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-1454">YARN-1454</a>.
     Critical bug reported by Jian He and fixed by Karthik Kambatla <br>
     <b>TestRMRestart.testRMDelegationTokenRestoredOnRMRestart is failing intermittently </b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-1451">YARN-1451</a>.
     Minor bug reported by Sandy Ryza and fixed by Sandy Ryza <br>
     <b>TestResourceManager relies on the scheduler assigning multiple containers in a single node update</b><br>
     <blockquote>TestResourceManager rely on the capacity scheduler.

It relies on a scheduler that assigns multiple containers in a single heartbeat, which not all schedulers do by default.  It also relies on schedulers that don't consider CPU capacities.  It would be simple to change the test to use multiple heartbeats and increase the vcore capacities of the nodes in the test.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-1450">YARN-1450</a>.
     Major bug reported by Akira AJISAKA and fixed by Binglin Chang (applications/distributed-shell)<br>
     <b>TestUnmanagedAMLauncher#testDSShell fails on trunk</b><br>
     <blockquote>TestUnmanagedAMLauncher fails on trunk. The console output is
{code}
Running org.apache.hadoop.yarn.applications.unmanagedamlauncher.TestUnmanagedAMLauncher
Tests run: 2, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 35.937 sec &lt;&lt;&lt; FAILURE! - in org.apache.hadoop.yarn.applications.unmanagedamlauncher.TestUnmanagedAMLauncher
testDSShell(org.apache.hadoop.yarn.applications.unmanagedamlauncher.TestUnmanagedAMLauncher)  Time elapsed: 14.558 sec  &lt;&lt;&lt; ERROR!
java.lang.RuntimeException: Failed to receive final expected state in ApplicationReport, CurrentState=ACCEPTED, ExpectedStates=FINISHED,FAILED,KILLED
	at org.apache.hadoop.yarn.applications.unmanagedamlauncher.UnmanagedAMLauncher.monitorApplication(UnmanagedAMLauncher.java:447)
	at org.apache.hadoop.yarn.applications.unmanagedamlauncher.UnmanagedAMLauncher.run(UnmanagedAMLauncher.java:352)
	at org.apache.hadoop.yarn.applications.unmanagedamlauncher.TestUnmanagedAMLauncher.testDSShell(TestUnmanagedAMLauncher.java:145)
{code}</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-1448">YARN-1448</a>.
     Major sub-task reported by Wangda Tan and fixed by Wangda Tan (api , resourcemanager)<br>
     <b>AM-RM protocol changes to support container resizing</b><br>
     <blockquote>As described in YARN-1197, we need add API in RM to support
1) Add increase request in AllocateRequest
2) Can get successfully increased/decreased containers from RM in AllocateResponse</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-1447">YARN-1447</a>.
     Major sub-task reported by Wangda Tan and fixed by Wangda Tan (api)<br>
     <b>Common PB type definitions for container resizing</b><br>
     <blockquote>As described in YARN-1197, we need add some common PB types for container resource change, like ResourceChangeContext, etc. These types will be both used by RM/NM protocols</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-1446">YARN-1446</a>.
     Major sub-task reported by Jian He and fixed by Jian He (resourcemanager)<br>
     <b>Change killing application to wait until state store is done</b><br>
     <blockquote>When user kills an application, it should wait until the state store is done with saving the killed status of the application. Otherwise, if RM crashes in the middle between user killing the application and writing the status to the store, RM will relaunch this application after it restarts.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-1435">YARN-1435</a>.
     Major bug reported by Tassapol Athiapinya and fixed by Xuan Gong (applications/distributed-shell)<br>
     <b>Distributed Shell should not run other commands except "sh", and run the custom script at the same time.</b><br>
     <blockquote>Currently, if we want to run custom script at DS. We can do it like this :
--shell_command sh --shell_script custom_script.sh
But it may be better to separate running shell_command and shell_script</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-1425">YARN-1425</a>.
     Major bug reported by Omkar Vinit Joshi and fixed by Omkar Vinit Joshi <br>
     <b>TestRMRestart fails because MockRM.waitForState(AttemptId) uses current attempt instead of the attempt passed as argument</b><br>
     <blockquote>TestRMRestart is failing on trunk. Fixing it. </blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-1423">YARN-1423</a>.
     Major improvement reported by Sandy Ryza and fixed by Ted Malaska (scheduler)<br>
     <b>Support queue placement by secondary group in the Fair Scheduler</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-1419">YARN-1419</a>.
     Minor bug reported by Jonathan Eagles and fixed by Jonathan Eagles (scheduler)<br>
     <b>TestFifoScheduler.testAppAttemptMetrics fails intermittently under jdk7 </b><br>
     <blockquote>QueueMetrics holds its data in a static variable causing metrics to bleed over from test to test. clearQueueMetrics is to be called for tests that need to measure metrics correctly for a single test. jdk7 comes into play since tests are run out of order, and in the case make the metrics unreliable.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-1416">YARN-1416</a>.
     Major bug reported by Omkar Vinit Joshi and fixed by Jian He <br>
     <b>InvalidStateTransitions getting reported in multiple test cases even though they pass</b><br>
     <blockquote>It might be worth checking why they are reporting this.
Testcase : TestRMAppTransitions, TestRM
there are large number of such errors.
can't handle RMAppEventType.APP_UPDATE_SAVED at RMAppState.FAILED
</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-1411">YARN-1411</a>.
     Critical sub-task reported by Karthik Kambatla and fixed by Karthik Kambatla <br>
     <b>HA config shouldn't affect NodeManager RPC addresses</b><br>
     <blockquote>When HA is turned on, {{YarnConfiguration#getSoketAddress()}} fetches rpc-addresses corresponding to the specified rm-id. This should only be for RM rpc-addresses. Other confs, like NM rpc-addresses shouldn't be affected by this.

Currently, the NM address settings in yarn-site.xml aren't reflected in the actual ports.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-1409">YARN-1409</a>.
     Major bug reported by Tsuyoshi OZAWA and fixed by Tsuyoshi OZAWA <br>
     <b>NonAggregatingLogHandler can throw RejectedExecutionException</b><br>
     <blockquote>This problem is caused by handling APPLICATION_FINISHED events after calling sched.shotdown() in NonAggregatingLongHandler#serviceStop(). org.apache.hadoop.mapred.TestJobCleanup can fail because of RejectedExecutionException by NonAggregatingLogHandler.

{code}
2013-11-13 10:53:06,970 FATAL [AsyncDispatcher event handler] event.AsyncDispatcher (AsyncDispatcher.java:dispatch(166)) - Error in dispatcher thread
java.util.concurrent.RejectedExecutionException: Task java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask@d51df63 rejected from java.util.concurrent.ScheduledThreadPoolExecutor@7a20e369[Shutting down, pool size = 4, active threads = 0, queued tasks = 7, completed tasks = 0]
        at java.util.concurrent.ThreadPoolExecutor$AbortPolicy.rejectedExecution(ThreadPoolExecutor.java:2048)
        at java.util.concurrent.ThreadPoolExecutor.reject(ThreadPoolExecutor.java:821)
        at java.util.concurrent.ScheduledThreadPoolExecutor.delayedExecute(ScheduledThreadPoolExecutor.java:325)
        at java.util.concurrent.ScheduledThreadPoolExecutor.schedule(ScheduledThreadPoolExecutor.java:530)
        at org.apache.hadoop.yarn.server.nodemanager.containermanager.loghandler.NonAggregatingLogHandler.handle(NonAggregatingLogHandler.java:121)
        at org.apache.hadoop.yarn.server.nodemanager.containermanager.loghandler.NonAggregatingLogHandler.handle(NonAggregatingLogHandler.java:49)
        at org.apache.hadoop.yarn.event.AsyncDispatcher.dispatch(AsyncDispatcher.java:159)
        at org.apache.hadoop.yarn.event.AsyncDispatcher$1.run(AsyncDispatcher.java:95)
        at java.lang.Thread.run(Thread.java:724)
{code}</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-1407">YARN-1407</a>.
     Major bug reported by Sandy Ryza and fixed by Sandy Ryza <br>
     <b>RM Web UI and REST APIs should uniformly use YarnApplicationState</b><br>
     <blockquote>RMAppState isn't a public facing enum like YarnApplicationState, so we shouldn't return values or list filters that come from it. However, some Blocks and AppInfo are still using RMAppState.

It is not 100% clear to me whether or not fixing this would be a backwards-incompatible change.  The change would only reduce the set of possible strings that the API returns, so I think not.  We have also been changing the contents of RMAppState since 2.2.0, e.g. in YARN-891. It would still be good to fix this ASAP (i.e. for 2.2.1).</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-1405">YARN-1405</a>.
     Major sub-task reported by Yesha Vora and fixed by Jian He <br>
     <b>RM hangs on shutdown if calling system.exit in serviceInit or serviceStart</b><br>
     <blockquote>Enable yarn.resourcemanager.recovery.enabled=true and Pass a local path to yarn.resourcemanager.fs.state-store.uri. such as "file:///tmp/MYTMP"

if the directory  /tmp/MYTMP is not readable or writable, RM should crash and should print "Permission denied Error"

Currently, RM throws "java.io.FileNotFoundException: File file:/tmp/MYTMP/FSRMStateRoot/RMDTSecretManagerRoot does not exist" Error. RM returns Exiting status 1 but RM process does not shutdown. 

Snapshot of Resource manager log:

2013-09-27 18:31:36,621 INFO  security.NMTokenSecretManagerInRM (NMTokenSecretManagerInRM.java:rollMasterKey(97)) - Rolling master-key for nm-tokens
2013-09-27 18:31:36,694 ERROR resourcemanager.ResourceManager (ResourceManager.java:serviceStart(640)) - Failed to load/recover state
java.io.FileNotFoundException: File file:/tmp/MYTMP/FSRMStateRoot/RMDTSecretManagerRoot does not exist
        at org.apache.hadoop.fs.RawLocalFileSystem.listStatus(RawLocalFileSystem.java:379)
        at org.apache.hadoop.fs.FileSystem.listStatus(FileSystem.java:1478)
        at org.apache.hadoop.fs.FileSystem.listStatus(FileSystem.java:1518)
        at org.apache.hadoop.fs.ChecksumFileSystem.listStatus(ChecksumFileSystem.java:564)
        at org.apache.hadoop.yarn.server.resourcemanager.recovery.FileSystemRMStateStore.loadRMDTSecretManagerState(FileSystemRMStateStore.java:188)
        at org.apache.hadoop.yarn.server.resourcemanager.recovery.FileSystemRMStateStore.loadState(FileSystemRMStateStore.java:112)
        at org.apache.hadoop.yarn.server.resourcemanager.ResourceManager.serviceStart(ResourceManager.java:635)
        at org.apache.hadoop.service.AbstractService.start(AbstractService.java:193)
        at org.apache.hadoop.yarn.server.resourcemanager.ResourceManager.main(ResourceManager.java:855)
2013-09-27 18:31:36,697 INFO  util.ExitUtil (ExitUtil.java:terminate(124)) - Exiting with status 1</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-1403">YARN-1403</a>.
     Major improvement reported by Sandy Ryza and fixed by Sandy Ryza <br>
     <b>Separate out configuration loading from QueueManager in the Fair Scheduler</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-1401">YARN-1401</a>.
     Major bug reported by Gera Shegalov and fixed by Gera Shegalov (nodemanager)<br>
     <b>With zero sleep-delay-before-sigkill.ms, no signal is ever sent</b><br>
     <blockquote>If you set in yarn-site.xml yarn.nodemanager.sleep-delay-before-sigkill.ms=0 then an unresponsive child JVM is never killed. In MRv1, TT used to immediately SIGKILL in this case. </blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-1400">YARN-1400</a>.
     Trivial bug reported by Raja Aluri and fixed by Raja Aluri (resourcemanager)<br>
     <b>yarn.cmd uses HADOOP_RESOURCEMANAGER_OPTS. Should be YARN_RESOURCEMANAGER_OPTS.</b><br>
     <blockquote>yarn.cmd uses HADOOP_RESOURCEMANAGER_OPTS. Should be YARN_RESOURCEMANAGER_OPTS.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-1395">YARN-1395</a>.
     Major bug reported by Chris Nauroth and fixed by Chris Nauroth (applications/distributed-shell)<br>
     <b>Distributed shell application master launched with debug flag can hang waiting for external ls process.</b><br>
     <blockquote>Distributed shell launched with the debug flag will run {{ApplicationMaster#dumpOutDebugInfo}}.  This method launches an external process to run ls and print the contents of the current working directory.  We've seen that this can cause the application master to hang on {{Process#waitFor}}.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-1392">YARN-1392</a>.
     Major new feature reported by Sandy Ryza and fixed by Sandy Ryza (scheduler)<br>
     <b>Allow sophisticated app-to-queue placement policies in the Fair Scheduler</b><br>
     <blockquote>Currently the Fair Scheduler supports app-to-queue placement by username.  It would be beneficial to allow more sophisticated policies that rely on primary and secondary groups and fallbacks.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-1388">YARN-1388</a>.
     Trivial bug reported by Liyin Liang and fixed by Liyin Liang (resourcemanager)<br>
     <b>Fair Scheduler page always displays blank fair share</b><br>
     <blockquote>YARN-1044 fixed min/max/used resource display problem in the scheduler  page. But the "Fair Share" has the same problem and need to fix it.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-1387">YARN-1387</a>.
     Major improvement reported by Karthik Kambatla and fixed by Karthik Kambatla (api)<br>
     <b>RMWebServices should use ClientRMService for filtering applications</b><br>
     <blockquote>YARN's REST API allows filtering applications, this should be moved to ClientRMService to allow Java API also support the same functionality.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-1386">YARN-1386</a>.
     Critical bug reported by Jason Lowe and fixed by Jason Lowe (nodemanager)<br>
     <b>NodeManager mistakenly loses resources and relocalizes them</b><br>
     <blockquote>When a local resource that should already be present is requested again, the nodemanager checks to see if it still present.  However the method it uses to check for presence is via File.exists() as the user of the nodemanager process. If the resource was a private resource localized for another user, it will be localized to a location that is not accessible by the nodemanager user.  Therefore File.exists() returns false, the nodemanager mistakenly believes the resource is no longer available, and it proceeds to localize it over and over.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-1381">YARN-1381</a>.
     Minor bug reported by Ted Yu and fixed by Ted Yu <br>
     <b>Same relaxLocality appears twice in exception message of AMRMClientImpl#checkLocalityRelaxationConflict() </b><br>
     <blockquote>Here is related code:
{code}
            throw new InvalidContainerRequestException("Cannot submit a "
                + "ContainerRequest asking for location " + location
                + " with locality relaxation " + relaxLocality + " when it has "
                + "already been requested with locality relaxation " + relaxLocality);
{code}
The last relaxLocality should be  reqs.values().iterator().next().remoteRequest.getRelaxLocality() </blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-1378">YARN-1378</a>.
     Major sub-task reported by Jian He and fixed by Jian He (resourcemanager)<br>
     <b>Implement a RMStateStore cleaner for deleting application/attempt info</b><br>
     <blockquote>Now that we are storing the final state of application/attempt instead of removing application/attempt info on application/attempt completion(YARN-891), we need a separate RMStateStore cleaner for cleaning the application/attempt state.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-1374">YARN-1374</a>.
     Blocker bug reported by Devaraj K and fixed by Karthik Kambatla (resourcemanager)<br>
     <b>Resource Manager fails to start due to ConcurrentModificationException</b><br>
     <blockquote>Resource Manager is failing to start with the below ConcurrentModificationException.

{code:xml}
2013-10-30 20:22:42,371 INFO org.apache.hadoop.util.HostsFileReader: Refreshing hosts (include/exclude) list
2013-10-30 20:22:42,376 INFO org.apache.hadoop.service.AbstractService: Service ResourceManager failed in state INITED; cause: java.util.ConcurrentModificationException
java.util.ConcurrentModificationException
	at java.util.AbstractList$Itr.checkForComodification(AbstractList.java:372)
	at java.util.AbstractList$Itr.next(AbstractList.java:343)
	at java.util.Collections$UnmodifiableCollection$1.next(Collections.java:1010)
	at org.apache.hadoop.service.CompositeService.serviceInit(CompositeService.java:107)
	at org.apache.hadoop.yarn.server.resourcemanager.ResourceManager.serviceInit(ResourceManager.java:187)
	at org.apache.hadoop.service.AbstractService.init(AbstractService.java:163)
	at org.apache.hadoop.yarn.server.resourcemanager.ResourceManager.main(ResourceManager.java:944)
2013-10-30 20:22:42,378 INFO org.apache.hadoop.yarn.server.resourcemanager.RMHAProtocolService: Transitioning to standby
2013-10-30 20:22:42,378 INFO org.apache.hadoop.yarn.server.resourcemanager.RMHAProtocolService: Transitioned to standby
2013-10-30 20:22:42,378 FATAL org.apache.hadoop.yarn.server.resourcemanager.ResourceManager: Error starting ResourceManager
java.util.ConcurrentModificationException
	at java.util.AbstractList$Itr.checkForComodification(AbstractList.java:372)
	at java.util.AbstractList$Itr.next(AbstractList.java:343)
	at java.util.Collections$UnmodifiableCollection$1.next(Collections.java:1010)
	at org.apache.hadoop.service.CompositeService.serviceInit(CompositeService.java:107)
	at org.apache.hadoop.yarn.server.resourcemanager.ResourceManager.serviceInit(ResourceManager.java:187)
	at org.apache.hadoop.service.AbstractService.init(AbstractService.java:163)
	at org.apache.hadoop.yarn.server.resourcemanager.ResourceManager.main(ResourceManager.java:944)
2013-10-30 20:22:42,379 INFO org.apache.hadoop.yarn.server.resourcemanager.ResourceManager: SHUTDOWN_MSG: 
/************************************************************
SHUTDOWN_MSG: Shutting down ResourceManager at HOST-10-18-40-24/10.18.40.24
************************************************************/
{code}</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-1358">YARN-1358</a>.
     Minor test reported by Chuan Liu and fixed by Chuan Liu (client)<br>
     <b>TestYarnCLI fails on Windows due to line endings</b><br>
     <blockquote>The unit test fails on Windows due to incorrect line endings was used for comparing the output from command line output. Error messages are as follows.
{noformat}
junit.framework.ComparisonFailure: expected:&lt;...argument for options[]
usage: application
...&gt; but was:&lt;...argument for options[
]
usage: application
...&gt;
	at junit.framework.Assert.assertEquals(Assert.java:85)
	at junit.framework.Assert.assertEquals(Assert.java:91)
	at org.apache.hadoop.yarn.client.cli.TestYarnCLI.testMissingArguments(TestYarnCLI.java:878)
{noformat}</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-1357">YARN-1357</a>.
     Minor test reported by Chuan Liu and fixed by Chuan Liu (nodemanager)<br>
     <b>TestContainerLaunch.testContainerEnvVariables fails on Windows</b><br>
     <blockquote>This test fails on Windows due to incorrect use of batch script command. Error messages are as follows.
{noformat}
junit.framework.AssertionFailedError: expected:&lt;java.nio.HeapByteBuffer[pos=0 lim=19 cap=19]&gt; but was:&lt;java.nio.HeapByteBuffer[pos=0 lim=19 cap=19]&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:74)
	at org.apache.hadoop.yarn.server.nodemanager.containermanager.launcher.TestContainerLaunch.testContainerEnvVariables(TestContainerLaunch.java:508)
{noformat}</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-1351">YARN-1351</a>.
     Trivial bug reported by Konstantin Weitz and fixed by Konstantin Weitz (resourcemanager)<br>
     <b>Invalid string format in Fair Scheduler log warn message</b><br>
     <blockquote>While trying to print a warning, two values of the wrong type (Resource instead of int) are passed into a String.format method call, leading to a runtime exception, in the file:

_trunk/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/fair/QueueManager.java_.

The warning was intended to be printed whenever the resources don't fit into each other, either because the number of virtual cores or the memory is too small. I changed the %d's into %s, this way the warning will contain both the cores and the memory.
</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-1349">YARN-1349</a>.
     Major bug reported by Chris Nauroth and fixed by Chris Nauroth (client)<br>
     <b>yarn.cmd does not support passthrough to any arbitrary class.</b><br>
     <blockquote>The yarn shell script supports passthrough to calling any arbitrary class if the first argument is not one of the per-defined sub-commands.  The equivalent cmd script does not implement this and instead fails trying to do a labeled goto to the first argument.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-1343">YARN-1343</a>.
     Critical bug reported by Alejandro Abdelnur and fixed by Alejandro Abdelnur (resourcemanager)<br>
     <b>NodeManagers additions/restarts are not reported as node updates in AllocateResponse responses to AMs</b><br>
     <blockquote>If a NodeManager joins the cluster or gets restarted, running AMs never receive the node update indicating the Node is running.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-1335">YARN-1335</a>.
     Major improvement reported by Sandy Ryza and fixed by Sandy Ryza (scheduler)<br>
     <b>Move duplicate code from FSSchedulerApp and FiCaSchedulerApp into SchedulerApplication</b><br>
     <blockquote>FSSchedulerApp and FiCaSchedulerApp use duplicate code in a lot of places.  They both extend SchedulerApplication.  We can move a lot of this duplicate code into SchedulerApplication.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-1333">YARN-1333</a>.
     Major improvement reported by Sandy Ryza and fixed by Tsuyoshi OZAWA (scheduler)<br>
     <b>Support blacklisting in the Fair Scheduler</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-1332">YARN-1332</a>.
     Minor improvement reported by Sandy Ryza and fixed by Sebastian Wong <br>
     <b>In TestAMRMClient, replace assertTrue with assertEquals where possible</b><br>
     <blockquote>TestAMRMClient uses a lot of "assertTrue(amClient.ask.size() == 0)" where "assertEquals(0, amClient.ask.size())" would make it easier to see why it's failing at a glance.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-1331">YARN-1331</a>.
     Trivial bug reported by Chris Nauroth and fixed by Chris Nauroth (client)<br>
     <b>yarn.cmd exits with NoClassDefFoundError trying to run rmadmin or logs</b><br>
     <blockquote>The yarn shell script was updated so that the rmadmin and logs sub-commands launch {{org.apache.hadoop.yarn.client.cli.RMAdminCLI}} and {{org.apache.hadoop.yarn.client.cli.LogsCLI}}.  The yarn.cmd script also needs to be updated so that the commands work on Windows.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-1325">YARN-1325</a>.
     Major sub-task reported by Tsuyoshi OZAWA and fixed by Xuan Gong (resourcemanager)<br>
     <b>Enabling HA should check Configuration contains multiple RMs</b><br>
     <blockquote>Currently, we can enable RM HA configuration without multiple RM ids(YarnConfiguration.RM_HA_IDS).  This behaviour can cause wrong operations. ResourceManager should verify that more than 1 RM id must be specified in RM-HA-IDs.

One idea is to support "strict mode" to enforce this check as configuration(e.g. yarn.resourcemanager.ha.strict-mode.enabled).</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-1323">YARN-1323</a>.
     Major sub-task reported by Karthik Kambatla and fixed by Karthik Kambatla <br>
     <b>Set HTTPS webapp address along with other RPC addresses in HAUtil</b><br>
     <blockquote>YARN-1232 adds the ability to configure multiple RMs, but missed out the https web app address. Need to add that in.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-1321">YARN-1321</a>.
     Blocker bug reported by Alejandro Abdelnur and fixed by Alejandro Abdelnur (client)<br>
     <b>NMTokenCache is a singleton, prevents multiple AMs running in a single JVM to work correctly</b><br>
     <blockquote>NMTokenCache is a singleton. Because of this, if running multiple AMs in a single JVM NMTokens for the same node from different AMs step on each other and starting containers fail due to mismatch tokens.

The error observed in the client side is something like:

{code}
ERROR org.apache.hadoop.security.UserGroupInformation: PriviledgedActionException as:llama (auth:PROXY) via llama (auth:SIMPLE) cause:org.apache.hadoop.yarn.exceptions.YarnException: Unauthorized request to start container. 
NMToken for application attempt : appattempt_1382038445650_0002_000001 was used for starting container with container token issued for application attempt : appattempt_1382038445650_0001_000001
{code}
</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-1320">YARN-1320</a>.
     Major bug reported by Tassapol Athiapinya and fixed by Xuan Gong (applications/distributed-shell)<br>
     <b>Custom log4j properties in Distributed shell does not work properly.</b><br>
     <blockquote>Distributed shell cannot pick up custom log4j properties (specified with -log_properties). It always uses default log4j properties.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-1318">YARN-1318</a>.
     Blocker sub-task reported by Karthik Kambatla and fixed by Karthik Kambatla (resourcemanager)<br>
     <b>Promote AdminService to an Always-On service and merge in RMHAProtocolService</b><br>
     <blockquote>Per discussion in YARN-1068, we want AdminService to handle HA-admin operations in addition to the regular non-HA admin operations. To facilitate this, we need to move AdminService an Always-On service. </blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-1315">YARN-1315</a>.
     Major bug reported by Sandy Ryza and fixed by Sandy Ryza (resourcemanager , scheduler)<br>
     <b>TestQueueACLs should also test FairScheduler</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-1314">YARN-1314</a>.
     Major bug reported by Tassapol Athiapinya and fixed by Xuan Gong (applications/distributed-shell)<br>
     <b>Cannot pass more than 1 argument to shell command</b><br>
     <blockquote>Distributed shell cannot accept more than 1 parameters in argument parts.

All of these commands are treated as 1 parameter:

/usr/bin/yarn  org.apache.hadoop.yarn.applications.distributedshell.Client -jar &lt;distrubuted shell jar&gt; -shell_command echo -shell_args "'"My   name"                "is  Teddy"'"
/usr/bin/yarn  org.apache.hadoop.yarn.applications.distributedshell.Client -jar &lt;distrubuted shell jar&gt; -shell_command echo -shell_args "''My   name'                'is  Teddy''"
/usr/bin/yarn  org.apache.hadoop.yarn.applications.distributedshell.Client -jar &lt;distrubuted shell jar&gt; -shell_command echo -shell_args "'My   name'                'is  Teddy'"</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-1311">YARN-1311</a>.
     Trivial sub-task reported by Vinod Kumar Vavilapalli and fixed by Vinod Kumar Vavilapalli <br>
     <b>Fix app specific scheduler-events' names to be app-attempt based</b><br>
     <blockquote>Today, APP_ADDED and APP_REMOVED are sent to the scheduler. They are misnomers as schedulers only deal with AppAttempts today. This JIRA is for fixing their names so that we can add App-level events in the near future, notably for work-preserving RM-restart.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-1307">YARN-1307</a>.
     Major sub-task reported by Tsuyoshi OZAWA and fixed by Tsuyoshi OZAWA (resourcemanager)<br>
     <b>Rethink znode structure for RM HA</b><br>
     <blockquote>Rethink for znode structure for RM HA is proposed in some JIRAs(YARN-659, YARN-1222). The motivation of this JIRA is quoted from Bikas' comment in YARN-1222:
{quote}
We should move to creating a node hierarchy for apps such that all znodes for an app are stored under an app znode instead of the app root znode. This will help in removeApplication and also in scaling better on ZK. The earlier code was written this way to ensure create/delete happens under a root znode for fencing. But given that we have moved to multi-operations globally, this isnt required anymore.
{quote}</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-1306">YARN-1306</a>.
     Major bug reported by Wei Yan and fixed by Wei Yan <br>
     <b>Clean up hadoop-sls sample-conf according to YARN-1228</b><br>
     <blockquote>Move fair scheduler allocations configuration to fair-scheduler.xml, and move all scheduler stuffs to yarn-site.xml</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-1305">YARN-1305</a>.
     Major sub-task reported by Tsuyoshi OZAWA and fixed by Tsuyoshi OZAWA (resourcemanager)<br>
     <b>RMHAProtocolService#serviceInit should handle HAUtil's IllegalArgumentException</b><br>
     <blockquote>When yarn.resourcemanager.ha.enabled is true, RMHAProtocolService#serviceInit calls HAUtil.setAllRpcAddresses. If the configuration values are null, it just throws IllegalArgumentException.
It's messy to analyse which keys are null, so we should handle it and log the name of keys which are null.

A current log dump is as follows:
{code}
2013-10-15 06:24:53,431 INFO org.apache.hadoop.yarn.server.resourcemanager.ResourceManager: registered UNIX signal handlers for [TERM, HUP, INT]
2013-10-15 06:24:54,203 INFO org.apache.hadoop.service.AbstractService: Service RMHAProtocolService failed in state INITED; cause: java.lang.IllegalArgumentException: Property value must not be null
java.lang.IllegalArgumentException: Property value must not be null
        at com.google.common.base.Preconditions.checkArgument(Preconditions.java:88)
        at org.apache.hadoop.conf.Configuration.set(Configuration.java:816)
        at org.apache.hadoop.conf.Configuration.set(Configuration.java:798)
        at org.apache.hadoop.yarn.conf.HAUtil.setConfValue(HAUtil.java:100)
        at org.apache.hadoop.yarn.conf.HAUtil.setAllRpcAddresses(HAUtil.java:105)
        at org.apache.hadoop.yarn.server.resourcemanager.RMHAProtocolService.serviceInit(RMHAProtocolService.java:60)
        at org.apache.hadoop.service.AbstractService.init(AbstractService.java:163)
        at org.apache.hadoop.service.CompositeService.serviceInit(CompositeService.java:108)
        at org.apache.hadoop.yarn.server.resourcemanager.ResourceManager.serviceInit(ResourceManager.java:187)
        at org.apache.hadoop.service.AbstractService.init(AbstractService.java:163)
        at org.apache.hadoop.yarn.server.resourcemanager.ResourceManager.main(ResourceManager.java:940)
{code}</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-1303">YARN-1303</a>.
     Major improvement reported by Tassapol Athiapinya and fixed by Xuan Gong (applications/distributed-shell)<br>
     <b>Allow multiple commands separating with ";" in distributed-shell</b><br>
     <blockquote>In shell, we can do "ls; ls" to run 2 commands at once. 

In distributed shell, this is not working. We should improve to allow this to occur. There are practical use cases that I know of to run multiple commands or to set environment variables before a command.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-1300">YARN-1300</a>.
     Major bug reported by Ted Yu and fixed by Ted Yu <br>
     <b>SLS tests fail because conf puts yarn properties in fair-scheduler.xml</b><br>
     <blockquote>I was looking at https://builds.apache.org/job/PreCommit-YARN-Build/2165//testReport/org.apache.hadoop.yarn.sls/TestSLSRunner/testSimulatorRunning/
I am able to reproduce the failure locally.

I found that FairSchedulerConfiguration.getAllocationFile() doesn't read the yarn.scheduler.fair.allocation.file config entry from fair-scheduler.xml

This leads to the following:
{code}
Caused by: org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.AllocationConfigurationException: Bad fair scheduler config file: top-level element not &lt;allocations&gt;
	at org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.QueueManager.reloadAllocs(QueueManager.java:302)
	at org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.QueueManager.initialize(QueueManager.java:108)
	at org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.FairScheduler.reinitialize(FairScheduler.java:1145)
{code}</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-1295">YARN-1295</a>.
     Major bug reported by Sandy Ryza and fixed by Sandy Ryza (nodemanager)<br>
     <b>In UnixLocalWrapperScriptBuilder, using bash -c can cause "Text file busy" errors</b><br>
     <blockquote>I missed this when working on YARN-1271.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-1293">YARN-1293</a>.
     Major bug reported by Tsuyoshi OZAWA and fixed by Tsuyoshi OZAWA <br>
     <b>TestContainerLaunch.testInvalidEnvSyntaxDiagnostics fails on trunk</b><br>
     <blockquote>{quote}
-------------------------------------------------------------------------------
Test set: org.apache.hadoop.yarn.server.nodemanager.containermanager.launcher.TestContainerLaunch
-------------------------------------------------------------------------------
Tests run: 8, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 12.655 sec &lt;&lt;&lt; FAILURE! - in org.apache.hadoop.yarn.server.nodemanager.containermanager.launcher.TestContainerLaunch
testInvalidEnvSyntaxDiagnostics(org.apache.hadoop.yarn.server.nodemanager.containermanager.launcher.TestContainerLaunch)  Time elapsed: 0.114 sec  &lt;&lt;&lt; FAILURE!
junit.framework.AssertionFailedError: null
        at junit.framework.Assert.fail(Assert.java:48)
        at junit.framework.Assert.assertTrue(Assert.java:20)
        at junit.framework.Assert.assertTrue(Assert.java:27)
        at org.apache.hadoop.yarn.server.nodemanager.containermanager.launcher.TestContainerLaunch.testInvalidEnvSyntaxDiagnostics(TestContainerLaunch.java:273)
{quote}</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-1290">YARN-1290</a>.
     Major improvement reported by Wei Yan and fixed by Wei Yan <br>
     <b>Let continuous scheduling achieve more balanced task assignment</b><br>
     <blockquote>Currently, in continuous scheduling (YARN-1010), in each round, the thread iterates over pre-ordered nodes and assigns tasks. This mechanism may overload the first several nodes, while the latter nodes have no tasks.

We should sort all nodes according to available resource. In each round, always assign tasks to nodes with larger capacity, which can balance the load distribution among all nodes.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-1288">YARN-1288</a>.
     Major bug reported by Sandy Ryza and fixed by Sandy Ryza (scheduler)<br>
     <b>Make Fair Scheduler ACLs more user friendly</b><br>
     <blockquote>The Fair Scheduler currently defaults the root queue's acl to empty and all other queues' acl to "*".  Now that YARN-1258 enables configuring the root queue, we should reverse this.  This will also bring the Fair Scheduler in line with the Capacity Scheduler.

We should also not trim the acl strings, which makes it impossible to only specify groups in an acl.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-1284">YARN-1284</a>.
     Blocker bug reported by Alejandro Abdelnur and fixed by Alejandro Abdelnur (nodemanager)<br>
     <b>LCE: Race condition leaves dangling cgroups entries for killed containers</b><br>
     <blockquote>When LCE &amp; cgroups are enabled, when a container is is killed (in this case by its owning AM, an MRAM) it seems to be a race condition at OS level when doing a SIGTERM/SIGKILL and when the OS does all necessary cleanup. 

LCE code, after sending the SIGTERM/SIGKILL and getting the exitcode, immediately attempts to clean up the cgroups entry for the container. But this is failing with an error like:

{code}
2013-10-07 15:21:24,359 WARN org.apache.hadoop.yarn.server.nodemanager.LinuxContainerExecutor: Exit code from container container_1381179532433_0016_01_000011 is : 143
2013-10-07 15:21:24,359 DEBUG org.apache.hadoop.yarn.server.nodemanager.containermanager.container.Container: Processing container_1381179532433_0016_01_000011 of type UPDATE_DIAGNOSTICS_MSG
2013-10-07 15:21:24,359 DEBUG org.apache.hadoop.yarn.server.nodemanager.util.CgroupsLCEResourcesHandler: deleteCgroup: /run/cgroups/cpu/hadoop-yarn/container_1381179532433_0016_01_000011
2013-10-07 15:21:24,359 WARN org.apache.hadoop.yarn.server.nodemanager.util.CgroupsLCEResourcesHandler: Unable to delete cgroup at: /run/cgroups/cpu/hadoop-yarn/container_1381179532433_0016_01_000011
{code}


CgroupsLCEResourcesHandler.clearLimits() has logic to wait for 500 ms for AM containers to avoid this problem. it seems this should be done for all containers.

Still, waiting for extra 500ms seems too expensive.

We should look at a way of doing this in a more 'efficient way' from time perspective, may be spinning while the deleteCgroup() cannot be done with a minimal sleep and a timeout.
</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-1283">YARN-1283</a>.
     Major sub-task reported by Yesha Vora and fixed by Omkar Vinit Joshi <br>
     <b>Invalid 'url of job' mentioned in Job output with yarn.http.policy=HTTPS_ONLY</b><br>
     <blockquote>After setting yarn.http.policy=HTTPS_ONLY, the job output shows incorrect "The url to track the job".

Currently, its printing http://RM:&lt;httpsport&gt;/proxy/application_1381162886563_0001/ instead https://RM:&lt;httpsport&gt;/proxy/application_1381162886563_0001/

http://hostname:8088/proxy/application_1381162886563_0001/ is invalid

hadoop  jar hadoop-mapreduce-client-jobclient-tests.jar sleep -m 1 -r 1 
13/10/07 18:39:39 INFO client.RMProxy: Connecting to ResourceManager at hostname/100.00.00.000:8032
13/10/07 18:39:40 INFO mapreduce.JobSubmitter: number of splits:1
13/10/07 18:39:40 INFO Configuration.deprecation: user.name is deprecated. Instead, use mapreduce.job.user.name
13/10/07 18:39:40 INFO Configuration.deprecation: mapred.jar is deprecated. Instead, use mapreduce.job.jar
13/10/07 18:39:40 INFO Configuration.deprecation: mapred.map.tasks.speculative.execution is deprecated. Instead, use mapreduce.map.speculative
13/10/07 18:39:40 INFO Configuration.deprecation: mapred.reduce.tasks is deprecated. Instead, use mapreduce.job.reduces
13/10/07 18:39:40 INFO Configuration.deprecation: mapreduce.partitioner.class is deprecated. Instead, use mapreduce.job.partitioner.class
13/10/07 18:39:40 INFO Configuration.deprecation: mapred.reduce.tasks.speculative.execution is deprecated. Instead, use mapreduce.reduce.speculative
13/10/07 18:39:40 INFO Configuration.deprecation: mapred.mapoutput.value.class is deprecated. Instead, use mapreduce.map.output.value.class
13/10/07 18:39:40 INFO Configuration.deprecation: mapreduce.map.class is deprecated. Instead, use mapreduce.job.map.class
13/10/07 18:39:40 INFO Configuration.deprecation: mapred.job.name is deprecated. Instead, use mapreduce.job.name
13/10/07 18:39:40 INFO Configuration.deprecation: mapreduce.reduce.class is deprecated. Instead, use mapreduce.job.reduce.class
13/10/07 18:39:40 INFO Configuration.deprecation: mapreduce.inputformat.class is deprecated. Instead, use mapreduce.job.inputformat.class
13/10/07 18:39:40 INFO Configuration.deprecation: mapred.input.dir is deprecated. Instead, use mapreduce.input.fileinputformat.inputdir
13/10/07 18:39:40 INFO Configuration.deprecation: mapreduce.outputformat.class is deprecated. Instead, use mapreduce.job.outputformat.class
13/10/07 18:39:40 INFO Configuration.deprecation: mapred.map.tasks is deprecated. Instead, use mapreduce.job.maps
13/10/07 18:39:40 INFO Configuration.deprecation: mapred.mapoutput.key.class is deprecated. Instead, use mapreduce.map.output.key.class
13/10/07 18:39:40 INFO Configuration.deprecation: mapred.working.dir is deprecated. Instead, use mapreduce.job.working.dir
13/10/07 18:39:40 INFO mapreduce.JobSubmitter: Submitting tokens for job: job_1381162886563_0001
13/10/07 18:39:40 INFO impl.YarnClientImpl: Submitted application application_1381162886563_0001 to ResourceManager at hostname/100.00.00.000:8032
13/10/07 18:39:40 INFO mapreduce.Job: The url to track the job: http://hostname:8088/proxy/application_1381162886563_0001/
13/10/07 18:39:40 INFO mapreduce.Job: Running job: job_1381162886563_0001
13/10/07 18:39:46 INFO mapreduce.Job: Job job_1381162886563_0001 running in uber mode : false
13/10/07 18:39:46 INFO mapreduce.Job:  map 0% reduce 0%
13/10/07 18:39:53 INFO mapreduce.Job:  map 100% reduce 0%
13/10/07 18:39:58 INFO mapreduce.Job:  map 100% reduce 100%
13/10/07 18:39:58 INFO mapreduce.Job: Job job_1381162886563_0001 completed successfully
13/10/07 18:39:58 INFO mapreduce.Job: Counters: 43
	File System Counters
		FILE: Number of bytes read=26
		FILE: Number of bytes written=177279
		FILE: Number of read operations=0
		FILE: Number of large read operations=0
		FILE: Number of write operations=0
		HDFS: Number of bytes read=48
		HDFS: Number of bytes written=0
		HDFS: Number of read operations=1
		HDFS: Number of large read operations=0
		HDFS: Number of write operations=0
	Job Counters 
		Launched map tasks=1
		Launched reduce tasks=1
		Other local map tasks=1
		Total time spent by all maps in occupied slots (ms)=7136
		Total time spent by all reduces in occupied slots (ms)=6062
	Map-Reduce Framework
		Map input records=1
		Map output records=1
		Map output bytes=4
		Map output materialized bytes=22
		Input split bytes=48
		Combine input records=0
		Combine output records=0
		Reduce input groups=1
		Reduce shuffle bytes=22
		Reduce input records=1
		Reduce output records=0
		Spilled Records=2
		Shuffled Maps =1
		Failed Shuffles=0
		Merged Map outputs=1
		GC time elapsed (ms)=60
		CPU time spent (ms)=1700
		Physical memory (bytes) snapshot=567582720
		Virtual memory (bytes) snapshot=4292997120
		Total committed heap usage (bytes)=846594048
	Shuffle Errors
		BAD_ID=0
		CONNECTION=0
		IO_ERROR=0
		WRONG_LENGTH=0
		WRONG_MAP=0
		WRONG_REDUCE=0
	File Input Format Counters 
		Bytes Read=0
	File Output Format Counters 
		Bytes Written=0

</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-1268">YARN-1268</a>.
     Major bug reported by Sandy Ryza and fixed by Sandy Ryza (scheduler)<br>
     <b>TestFairScheduler.testContinuousScheduling is flaky</b><br>
     <blockquote>It looks like there's a timeout in it that's causing it to be flaky.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-1265">YARN-1265</a>.
     Major bug reported by Sandy Ryza and fixed by Sandy Ryza (resourcemanager , scheduler)<br>
     <b>Fair Scheduler chokes on unhealthy node reconnect</b><br>
     <blockquote>Only nodes in the RUNNING state are tracked by schedulers.  When a node reconnects, RMNodeImpl.ReconnectNodeTransition tries to remove it, even if it's in the RUNNING state.  The FairScheduler doesn't guard against this.

I think the best way to fix this is to check to see whether a node is RUNNING before telling the scheduler to remove it.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-1259">YARN-1259</a>.
     Trivial bug reported by Sandy Ryza and fixed by Robert Kanter (scheduler)<br>
     <b>In Fair Scheduler web UI, queue num pending and num active apps switched</b><br>
     <blockquote>The values returned in FairSchedulerLeafQueueInfo by numPendingApplications and numActiveApplications should be switched.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-1258">YARN-1258</a>.
     Major improvement reported by Sandy Ryza and fixed by Sandy Ryza (scheduler)<br>
     <b>Allow configuring the Fair Scheduler root queue</b><br>
     <blockquote>This would be useful for acls, maxRunningApps, scheduling modes, etc.

The allocation file should be able to accept both:
* An implicit root queue
* A root queue at the top of the hierarchy with all queues under/inside of it</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-1253">YARN-1253</a>.
     Blocker new feature reported by Alejandro Abdelnur and fixed by Roman Shaposhnik (nodemanager)<br>
     <b>Changes to LinuxContainerExecutor to run containers as a single dedicated user in non-secure mode</b><br>
     <blockquote>When using cgroups we require LCE to be configured in the cluster to start containers. 

When LCE starts containers as the user that submitted the job. While this works correctly in a secure setup, in an un-secure setup this presents a couple issues:

* LCE requires all Hadoop users submitting jobs to be Unix users in all nodes
* Because users can impersonate other users, any user would have access to any local file of other users

Particularly, the second issue is not desirable as a user could get access to ssh keys of other users in the nodes or if there are NFS mounts, get to other users data outside of the cluster.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-1241">YARN-1241</a>.
     Major bug reported by Sandy Ryza and fixed by Sandy Ryza <br>
     <b>In Fair Scheduler, maxRunningApps does not work for non-leaf queues</b><br>
     <blockquote>Setting the maxRunningApps property on a parent queue should make it that the sum of apps in all subqueues can't exceed it</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-1239">YARN-1239</a>.
     Major sub-task reported by Bikas Saha and fixed by Jian He (resourcemanager)<br>
     <b>Save version information in the state store</b><br>
     <blockquote>When creating root dir for the first time we should write version 1. If root dir exists then we should check that the version in the state store matches the version from config.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-1232">YARN-1232</a>.
     Major sub-task reported by Karthik Kambatla and fixed by Karthik Kambatla (resourcemanager)<br>
     <b>Configuration to support multiple RMs</b><br>
     <blockquote>We should augment the configuration to allow users specify two RMs and the individual RPC addresses for them.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-1222">YARN-1222</a>.
     Major sub-task reported by Bikas Saha and fixed by Karthik Kambatla <br>
     <b>Make improvements in ZKRMStateStore for fencing</b><br>
     <blockquote>Using multi-operations for every ZK interaction. 
In every operation, automatically creating/deleting a lock znode that is the child of the root znode. This is to achieve fencing by modifying the create/delete permissions on the root znode.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-1210">YARN-1210</a>.
     Major sub-task reported by Vinod Kumar Vavilapalli and fixed by Omkar Vinit Joshi <br>
     <b>During RM restart, RM should start a new attempt only when previous attempt exits for real</b><br>
     <blockquote>When RM recovers, it can wait for existing AMs to contact RM back and then kill them forcefully before even starting a new AM. Worst case, RM will start a new AppAttempt after waiting for 10 mins ( the expiry interval). This way we'll minimize multiple AMs racing with each other. This can help issues with downstream components like Pig, Hive and Oozie during RM restart.

In the mean while, new apps will proceed as usual as existing apps wait for recovery.

This can continue to be useful after work-preserving restart, so that AMs which can properly sync back up with RM can continue to run and those that don't are guaranteed to be killed before starting a new attempt.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-1199">YARN-1199</a>.
     Major improvement reported by Mit Desai and fixed by Mit Desai <br>
     <b>Make NM/RM Versions Available</b><br>
     <blockquote>Now as we have the NM and RM Versions available, we can display the YARN version of nodes running in the cluster.

</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-1188">YARN-1188</a>.
     Trivial bug reported by Akira AJISAKA and fixed by Tsuyoshi OZAWA <br>
     <b>The context of QueueMetrics becomes 'default' when using FairScheduler</b><br>
     <blockquote>I found the context of QueueMetrics changed to 'default' from 'yarn' when I was using FairScheduler.
The context should always be 'yarn' by adding an annotation to FSQueueMetrics like below:

{code}
+ @Metrics(context="yarn")
public class FSQueueMetrics extends QueueMetrics {
{code}</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-1185">YARN-1185</a>.
     Major sub-task reported by Jason Lowe and fixed by Omkar Vinit Joshi (resourcemanager)<br>
     <b>FileSystemRMStateStore can leave partial files that prevent subsequent recovery</b><br>
     <blockquote>FileSystemRMStateStore writes directly to the destination file when storing state. However if the RM were to crash in the middle of the write, the recovery method could encounter a partially-written file and either outright crash during recovery or silently load incomplete state.

To avoid this, the data should be written to a temporary file and renamed to the destination file afterwards.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-1183">YARN-1183</a>.
     Major bug reported by Andrey Klochkov and fixed by Andrey Klochkov <br>
     <b>MiniYARNCluster shutdown takes several minutes intermittently</b><br>
     <blockquote>As described in MAPREDUCE-5501 sometimes M/R tests leave MRAppMaster java processes living for several minutes after successful completion of the corresponding test. There is a concurrency issue in MiniYARNCluster shutdown logic which leads to this. Sometimes RM stops before an app master sends it's last report, and then the app master keeps retrying for &gt;6 minutes. In some cases it leads to failures in subsequent tests, and it affects performance of tests as app masters eat resources.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-1182">YARN-1182</a>.
     Major bug reported by Karthik Kambatla and fixed by Karthik Kambatla <br>
     <b>MiniYARNCluster creates and inits the RM/NM only on start()</b><br>
     <blockquote>MiniYARNCluster creates and inits the RM/NM only on start(). It should create and init() during init() itself.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-1181">YARN-1181</a>.
     Major sub-task reported by Karthik Kambatla and fixed by Karthik Kambatla <br>
     <b>Augment MiniYARNCluster to support HA mode</b><br>
     <blockquote>MiniYARNHACluster, along the lines of MiniYARNCluster, is needed for end-to-end HA tests.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-1180">YARN-1180</a>.
     Trivial bug reported by Thomas Graves and fixed by Chen He (capacityscheduler)<br>
     <b>Update capacity scheduler docs to include types on the configs</b><br>
     <blockquote>The capacity scheduler docs (http://hadoop.apache.org/docs/r2.1.0-beta/hadoop-yarn/hadoop-yarn-site/CapacityScheduler.html) don't include types for all the configs. For instance the minimum-user-limit-percent doesn't say its an Int.  It also the only setting for the Resource Allocation configs that is an Int rather then a float.</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-1172">YARN-1172</a>.
     Major sub-task reported by Karthik Kambatla and fixed by Tsuyoshi OZAWA (resourcemanager)<br>
     <b>Convert *SecretManagers in the RM to services</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-1145">YARN-1145</a>.
     Major bug reported by Rohith and fixed by Rohith <br>
     <b>Potential file handle leak in aggregated logs web ui</b><br>
     <blockquote>Any problem in getting aggregated logs for rendering on web ui, then LogReader is not closed. 

Now, it reader is not closed which causing many connections in close_wait state.

hadoopuser@hadoopuser:&gt; jps
*27909* JobHistoryServer

DataNode port is 50010. When greped with DataNode port, many connections are in CLOSE_WAIT from JHS.
hadoopuser@hadoopuser:&gt; netstat -tanlp |grep 50010
tcp        0      0 10.18.40.48:50010       0.0.0.0:*               LISTEN      21453/java          
tcp        1      0 10.18.40.48:20596       10.18.40.48:50010       CLOSE_WAIT  *27909*/java          
tcp        1      0 10.18.40.48:19667       10.18.40.152:50010      CLOSE_WAIT  *27909*/java          
tcp        1      0 10.18.40.48:20593       10.18.40.48:50010       CLOSE_WAIT  *27909*/java          
tcp        1      0 10.18.40.48:12290       10.18.40.48:50010       CLOSE_WAIT  *27909*/java          
tcp        1      0 10.18.40.48:19662       10.18.40.152:50010      CLOSE_WAIT  *27909*/java          </blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-1138">YARN-1138</a>.
     Major bug reported by Yingda Chen and fixed by Chuan Liu (api)<br>
     <b>yarn.application.classpath is set to point to $HADOOP_CONF_DIR etc., which does not work on Windows</b><br>
     <blockquote>yarn-default.xml has "yarn.application.classpath" entry set to $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/,$HADOOP_YARN_HOME/share/hadoop/yarn/*,$HADOOP_YARN_HOME/share/hadoop/yarn/lib. It does not work on Windows which needs to be fixed.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-1121">YARN-1121</a>.
     Major sub-task reported by Bikas Saha and fixed by Jian He (resourcemanager)<br>
     <b>RMStateStore should flush all pending store events before closing</b><br>
     <blockquote>on serviceStop it should wait for all internal pending events to drain before stopping.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-1119">YARN-1119</a>.
     Major test reported by Robert Parker and fixed by Mit Desai (resourcemanager)<br>
     <b>Add ClusterMetrics checks to tho TestRMNodeTransitions tests</b><br>
     <blockquote>YARN-1101 identified an issue where UNHEALTHY nodes could double decrement the active nodes. We should add checks for RUNNING node transitions.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-1109">YARN-1109</a>.
     Major improvement reported by Sandy Ryza and fixed by haosdent (nodemanager)<br>
     <b>Demote NodeManager "Sending out status for container" logs to debug</b><br>
     <blockquote>Diagnosing NodeManager and container launch problems is made more difficult by the enormous number of logs like
{code}
Sending out status for container: container_id {, app_attempt_id {, application_id {, id: 18, cluster_timestamp: 1377559361179, }, attemptId: 1, }, id: 1337, }, state: C_RUNNING, diagnostics: "Container killed by the ApplicationMaster.\n", exit_status: -1000
{code}

On an NM with a few containers I am seeing tens of these per second.</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-1098">YARN-1098</a>.
     Major sub-task reported by Karthik Kambatla and fixed by Karthik Kambatla (resourcemanager)<br>
     <b>Separate out RM services into "Always On" and "Active"</b><br>
     <blockquote>From discussion on YARN-1027, it makes sense to separate out services that are stateful and stateless. The stateless services can  run perennially irrespective of whether the RM is in Active/Standby state, while the stateful services need to  be started on transitionToActive() and completely shutdown on transitionToStandby().

The external-facing stateless services should respond to the client/AM/NM requests depending on whether the RM is Active/Standby.
</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-1068">YARN-1068</a>.
     Major sub-task reported by Karthik Kambatla and fixed by Karthik Kambatla (resourcemanager)<br>
     <b>Add admin support for HA operations</b><br>
     <blockquote>Support HA admin operations to facilitate transitioning the RM to Active and Standby states.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-1060">YARN-1060</a>.
     Major bug reported by Sandy Ryza and fixed by Niranjan Singh (scheduler)<br>
     <b>Two tests in TestFairScheduler are missing @Test annotation</b><br>
     <blockquote>Amazingly, these tests appear to pass with the annotations added.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-1053">YARN-1053</a>.
     Blocker bug reported by Omkar Vinit Joshi and fixed by Omkar Vinit Joshi <br>
     <b>Diagnostic message from ContainerExitEvent is ignored in ContainerImpl</b><br>
     <blockquote>If the container launch fails then we send ContainerExitEvent. This event contains exitCode and diagnostic message. Today we are ignoring diagnostic message while handling this event inside ContainerImpl. Fixing it as it is useful in diagnosing the failure.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-1044">YARN-1044</a>.
     Critical bug reported by Sangjin Lee and fixed by Sangjin Lee (resourcemanager , scheduler)<br>
     <b>used/min/max resources do not display info in the scheduler page</b><br>
     <blockquote>Go to the scheduler page in RM, and click any queue to display the detailed info. You'll find that none of the resources entries (used, min, or max) would display values.

It is because the values contain brackets ("&lt;" and "&gt;") and are not properly html-escaped.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-1033">YARN-1033</a>.
     Major sub-task reported by Nemon Lou and fixed by Karthik Kambatla <br>
     <b>Expose RM active/standby state to Web UI and REST API</b><br>
     <blockquote>Both active and standby RM shall expose it's web server and show it's current state (active or standby) on web page. Users should be able to access this information through the REST API as well.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-1029">YARN-1029</a>.
     Major sub-task reported by Bikas Saha and fixed by Karthik Kambatla <br>
     <b>Allow embedding leader election into the RM</b><br>
     <blockquote>It should be possible to embed common ActiveStandyElector into the RM such that ZooKeeper based leader election and notification is in-built. In conjunction with a ZK state store, this configuration will be a simple deployment option.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-1028">YARN-1028</a>.
     Major sub-task reported by Bikas Saha and fixed by Karthik Kambatla <br>
     <b>Add FailoverProxyProvider like capability to RMProxy</b><br>
     <blockquote>RMProxy layer currently abstracts RM discovery and implements it by looking up service information from configuration. Motivated by HDFS and using existing classes from Common, we can add failover proxy providers that may provide RM discovery in extensible ways.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-1027">YARN-1027</a>.
     Major sub-task reported by Bikas Saha and fixed by Karthik Kambatla <br>
     <b>Implement RMHAProtocolService</b><br>
     <blockquote>Implement existing HAServiceProtocol from Hadoop common. This protocol is the single point of interaction between the RM and HA clients/services.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-1022">YARN-1022</a>.
     Trivial bug reported by Bikas Saha and fixed by haosdent <br>
     <b>Unnecessary INFO logs in AMRMClientAsync</b><br>
     <blockquote>Logs like the following should be debug or else every legitimate stop causes unnecessary exception traces in the logs.

464 2013-08-03 20:01:34,459 INFO [AMRM Heartbeater thread] org.apache.hadoop.yarn.client.api.async.impl.AMRMClientAsyncImpl:            Heartbeater interrupted
465 java.lang.InterruptedException: sleep interrupted
466   at java.lang.Thread.sleep(Native Method)
467   at org.apache.hadoop.yarn.client.api.async.impl.AMRMClientAsyncImpl$HeartbeatThread.run(AMRMClientAsyncImpl.java:249)
468 2013-08-03 20:01:34,460 INFO [AMRM Callback Handler Thread] org.apache.hadoop.yarn.client.api.async.impl.AMRMClientAsyncImpl:       Interrupted while waiting for queue
469 java.lang.InterruptedException
470   at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.reportInterruptAfterWait(AbstractQueuedSynchronizer.     java:1961)
471   at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1996)
472   at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:399)
473   at org.apache.hadoop.yarn.client.api.async.impl.AMRMClientAsyncImpl$CallbackHandlerThread.run(AMRMClientAsyncImpl.java:275)</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-1021">YARN-1021</a>.
     Major new feature reported by Wei Yan and fixed by Wei Yan (scheduler)<br>
     <b>Yarn Scheduler Load Simulator</b><br>
     <blockquote>The Yarn Scheduler is a fertile area of interest with different implementations, e.g., Fifo, Capacity and Fair  schedulers. Meanwhile, several optimizations are also made to improve scheduler performance for different scenarios and workload. Each scheduler algorithm has its own set of features, and drives scheduling decisions by many factors, such as fairness, capacity guarantee, resource availability, etc. It is very important to evaluate a scheduler algorithm very well before we deploy it in a production cluster. Unfortunately, currently it is non-trivial to evaluate a scheduling algorithm. Evaluating in a real cluster is always time and cost consuming, and it is also very hard to find a large-enough cluster. Hence, a simulator which can predict how well a scheduler algorithm for some specific workload would be quite useful.

We want to build a Scheduler Load Simulator to simulate large-scale Yarn clusters and application loads in a single machine. This would be invaluable in furthering Yarn by providing a tool for researchers and developers to prototype new scheduler features and predict their behavior and performance with reasonable amount of confidence, there-by aiding rapid innovation.

The simulator will exercise the real Yarn ResourceManager removing the network factor by simulating NodeManagers and ApplicationMasters via handling and dispatching NM/AMs heartbeat events from within the same JVM.

To keep tracking of scheduler behavior and performance, a scheduler wrapper will wrap the real scheduler.

The simulator will produce real time metrics while executing, including:

* Resource usages for whole cluster and each queue, which can be utilized to configure cluster and queue's capacity.
* The detailed application execution trace (recorded in relation to simulated time), which can be analyzed to understand/validate the  scheduler behavior (individual jobs turn around time, throughput, fairness, capacity guarantee, etc).
* Several key metrics of scheduler algorithm, such as time cost of each scheduler operation (allocate, handle, etc), which can be utilized by Hadoop developers to find the code spots and scalability limits.

The simulator will provide real time charts showing the behavior of the scheduler and its performance.

A short demo is available http://www.youtube.com/watch?v=6thLi8q0qLE, showing how to use simulator to simulate Fair Scheduler and Capacity Scheduler.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-1010">YARN-1010</a>.
     Critical improvement reported by Alejandro Abdelnur and fixed by Wei Yan (scheduler)<br>
     <b>FairScheduler: decouple container scheduling from nodemanager heartbeats</b><br>
     <blockquote>Currently scheduling for a node is done when a node heartbeats.

For large cluster where the heartbeat interval is set to several seconds this delays scheduling of incoming allocations significantly.

We could have a continuous loop scanning all nodes and doing scheduling. If there is availability AMs will get the allocation in the next heartbeat after the one that placed the request.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-985">YARN-985</a>.
     Major improvement reported by Ravi Prakash and fixed by Ravi Prakash (nodemanager)<br>
     <b>Nodemanager should log where a resource was localized</b><br>
     <blockquote>When a resource is localized, we should log WHERE on the local disk it was localized. This helps in debugging afterwards (e.g. if the disk was to go bad).</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-976">YARN-976</a>.
     Major sub-task reported by Sandy Ryza and fixed by Sandy Ryza (documentation)<br>
     <b>Document the meaning of a virtual core</b><br>
     <blockquote>As virtual cores are a somewhat novel concept, it would be helpful to have thorough documentation that clarifies their meaning.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-895">YARN-895</a>.
     Major sub-task reported by Jian He and fixed by Jian He (resourcemanager)<br>
     <b>RM crashes if it restarts while the state-store is down</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-891">YARN-891</a>.
     Major sub-task reported by Bikas Saha and fixed by Jian He (resourcemanager)<br>
     <b>Store completed application information in RM state store</b><br>
     <blockquote>Store completed application/attempt info in RMStateStore when application/attempt completes. This solves some problems like finished application get lost after RM restart and some other races like YARN-1195</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-888">YARN-888</a>.
     Major bug reported by Alejandro Abdelnur and fixed by Alejandro Abdelnur <br>
     <b>clean up POM dependencies</b><br>
     <blockquote>Intermediate 'pom' modules define dependencies inherited by leaf modules.

This is causing issues in intellij IDE.

We should normalize the leaf modules like in common, hdfs and tools where all dependencies are defined in each leaf module and the intermediate 'pom' module do not define any dependency.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-879">YARN-879</a>.
     Major bug reported by Junping Du and fixed by Junping Du <br>
     <b>Fix tests w.r.t o.a.h.y.server.resourcemanager.Application</b><br>
     <blockquote>getResources() will return a list of containers that allocated by RM. However, it is now return null directly. The worse thing is: if LOG.debug is enabled, then it will definitely cause NPE exception.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-819">YARN-819</a>.
     Major sub-task reported by Robert Parker and fixed by Robert Parker (nodemanager , resourcemanager)<br>
     <b>ResourceManager and NodeManager should check for a minimum allowed version</b><br>
     <blockquote>Our use case is during upgrade on a large cluster several NodeManagers may not restart with the new version.  Once the RM comes back up the NodeManager will re-register without issue to the RM.

The NM should report the version the RM.  The RM should have a configuration to disallow the check (default), equal to the RM (to prevent config change for each release), equal to or greater than RM (to allow NM upgrades), and finally an explicit version or version range.

The RM should also have an configuration on how to treat the mismatch: REJECT, or REBOOT the NM.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-807">YARN-807</a>.
     Major improvement reported by Sandy Ryza and fixed by Sandy Ryza <br>
     <b>When querying apps by queue, iterating over all apps is inefficient and limiting </b><br>
     <blockquote>The question "which apps are in queue x" can be asked via the RM REST APIs, through the ClientRMService, and through the command line.  In all these cases, the question is answered by scanning through every RMApp and filtering by the app's queue name.

All schedulers maintain a mapping of queues to applications.  I think it would make more sense to ask the schedulers which applications are in a given queue. This is what was done in MR1. This would also have the advantage of allowing a parent queue to return all the applications on leaf queues under it, and allow queue name aliases, as in the way that "root.default" and "default" refer to the same queue in the fair scheduler.

</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-786">YARN-786</a>.
     Major improvement reported by Sandy Ryza and fixed by Sandy Ryza <br>
     <b>Expose application resource usage in RM REST API</b><br>
     <blockquote>It might be good to require users to explicitly ask for this information, as it's a little more expensive to collect than the other fields in AppInfo.</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-709">YARN-709</a>.
     Major sub-task reported by Jian He and fixed by Jian He (resourcemanager)<br>
     <b>verify that new jobs submitted with old RM delegation tokens after RM restart are accepted</b><br>
     <blockquote>More elaborate test for restoring RM delegation tokens on RM restart.
New jobs with old RM delegation tokens should be accepted by new RM as long as the token is still valid</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-674">YARN-674</a>.
     Major sub-task reported by Vinod Kumar Vavilapalli and fixed by Omkar Vinit Joshi (resourcemanager)<br>
     <b>Slow or failing DelegationToken renewals on submission itself make RM unavailable</b><br>
     <blockquote>This was caused by YARN-280. A slow or a down NameNode for will make it look like RM is unavailable as it may run out of RPC handlers due to blocked client submissions.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-649">YARN-649</a>.
     Major sub-task reported by Sandy Ryza and fixed by Sandy Ryza (nodemanager)<br>
     <b>Make container logs available over HTTP in plain text</b><br>
     <blockquote>It would be good to make container logs available over the REST API for MAPREDUCE-4362 and so that they can be accessed programatically in general.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-584">YARN-584</a>.
     Major bug reported by Sandy Ryza and fixed by Harshit Daga (scheduler)<br>
     <b>In scheduler web UIs, queues unexpand on refresh</b><br>
     <blockquote>In the fair scheduler web UI, you can expand queue information.  Refreshing the page causes the expansions to go away, which is annoying for someone who wants to monitor the scheduler page and needs to reopen all the queues they care about each time.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-546">YARN-546</a>.
     Major bug reported by Lohit Vijayarenu and fixed by Sandy Ryza (scheduler)<br>
     <b>Allow disabling the Fair Scheduler event log</b><br>
     <blockquote>Hadoop 1.0 supported an option to turn on/off FairScheduler event logging using mapred.fairscheduler.eventlog.enabled. In Hadoop 2.0, it looks like this option has been removed (or not ported?) which causes event logging to be enabled by default and there is no way to turn it off.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-478">YARN-478</a>.
     Major sub-task reported by Aleksey Gorshkov and fixed by Aleksey Gorshkov <br>
     <b>fix coverage org.apache.hadoop.yarn.webapp.log</b><br>
     <blockquote>fix coverage org.apache.hadoop.yarn.webapp.log
one patch for trunk, branch-2, branch-0.23</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-465">YARN-465</a>.
     Major sub-task reported by Aleksey Gorshkov and fixed by Andrey Klochkov <br>
     <b>fix coverage  org.apache.hadoop.yarn.server.webproxy</b><br>
     <blockquote>fix coverage  org.apache.hadoop.yarn.server.webproxy
patch YARN-465-trunk.patch for trunk
patch YARN-465-branch-2.patch for branch-2
patch YARN-465-branch-0.23.patch for branch-0.23

There is issue in branch-0.23 . Patch does not creating .keep file.
For fix it need to run commands:

mkdir yhadoop-common/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/resources/webapps/proxy
touch yhadoop-common/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/resources/webapps/proxy/.keep 
</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-461">YARN-461</a>.
     Major bug reported by Sandy Ryza and fixed by Wei Yan (resourcemanager)<br>
     <b>Fair scheduler should not accept apps with empty string queue name</b><br>
     <blockquote>When an app is submitted with "" for the queue, the RMAppManager passes it on like it does with any other string.
</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-427">YARN-427</a>.
     Major sub-task reported by Aleksey Gorshkov and fixed by Aleksey Gorshkov <br>
     <b>Coverage fix for org.apache.hadoop.yarn.server.api.*</b><br>
     <blockquote>Coverage fix for org.apache.hadoop.yarn.server.api.*

patch YARN-427-trunk.patch for trunk
patch YARN-427-branch-2.patch for branch-2 and branch-0.23</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-425">YARN-425</a>.
     Major sub-task reported by Aleksey Gorshkov and fixed by Aleksey Gorshkov <br>
     <b>coverage fix for yarn api</b><br>
     <blockquote>coverage fix for yarn api
patch YARN-425-trunk-a.patch for trunk
patch YARN-425-branch-2.patch for branch-2
patch YARN-425-branch-0.23.patch for branch-0.23</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-408">YARN-408</a>.
     Minor bug reported by Mayank Bansal and fixed by Mayank Bansal (scheduler)<br>
     <b>Capacity Scheduler delay scheduling should not be disabled by default</b><br>
     <blockquote>Capacity Scheduler delay scheduling should not be disabled by default.
Enabling it to number of nodes in one rack.

Thanks,
Mayank</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-353">YARN-353</a>.
     Major sub-task reported by Hitesh Shah and fixed by Karthik Kambatla (resourcemanager)<br>
     <b>Add Zookeeper-based store implementation for RMStateStore</b><br>
     <blockquote>Add store that write RM state data to ZK
</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-312">YARN-312</a>.
     Major sub-task reported by Junping Du and fixed by Junping Du (api)<br>
     <b>Add updateNodeResource in ResourceManagerAdministrationProtocol</b><br>
     <blockquote>Add fundamental RPC (ResourceManagerAdministrationProtocol) to support node's resource change. For design detail, please refer parent JIRA: YARN-291.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-311">YARN-311</a>.
     Major sub-task reported by Junping Du and fixed by Junping Du (resourcemanager , scheduler)<br>
     <b>Dynamic node resource configuration: core scheduler changes</b><br>
     <blockquote>As the first step, we go for resource change on RM side and expose admin APIs (admin protocol, CLI, REST and JMX API) later. In this jira, we will only contain changes in scheduler. 
The flow to update node's resource and awareness in resource scheduling is: 
1. Resource update is through admin API to RM and take effect on RMNodeImpl.
2. When next NM heartbeat for updating status comes, the RMNode's resource change will be aware and the delta resource is added to schedulerNode's availableResource before actual scheduling happens.
3. Scheduler do resource allocation according to new availableResource in SchedulerNode.
For more design details, please refer proposal and discussions in parent JIRA: YARN-291.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-305">YARN-305</a>.
     Critical bug reported by Lohit Vijayarenu and fixed by Lohit Vijayarenu (resourcemanager)<br>
     <b>Fair scheduler logs too many "Node offered to app:..." messages</b><br>
     <blockquote>Running fair scheduler YARN shows that RM has lots of messages like the below.
{noformat}
INFO org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.AppSchedulable: Node offered to app: application_1357147147433_0002 reserved: false
{noformat}

They dont seem to tell much and same line is dumped many times in RM log. It would be good to have it improved with node information or moved to some other logging level with enough debug information</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-7">YARN-7</a>.
     Major sub-task reported by Arun C Murthy and fixed by Junping Du <br>
     <b>Add support for DistributedShell to ask for CPUs along with memory</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5744">MAPREDUCE-5744</a>.
     Blocker bug reported by Sangjin Lee and fixed by Gera Shegalov <br>
     <b>Job hangs because RMContainerAllocator$AssignedRequests.preemptReduce() violates the comparator contract</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5743">MAPREDUCE-5743</a>.
     Major bug reported by Ted Yu and fixed by Ted Yu <br>
     <b>TestRMContainerAllocator is failing</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5729">MAPREDUCE-5729</a>.
     Critical bug reported by Karthik Kambatla and fixed by Karthik Kambatla (mrv2)<br>
     <b>mapred job -list throws NPE</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5725">MAPREDUCE-5725</a>.
     Major bug reported by Sandy Ryza and fixed by Sandy Ryza <br>
     <b>TestNetworkedJob relies on the Capacity Scheduler</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5724">MAPREDUCE-5724</a>.
     Critical bug reported by Alejandro Abdelnur and fixed by Alejandro Abdelnur (jobhistoryserver)<br>
     <b>JobHistoryServer does not start if HDFS is not running</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5723">MAPREDUCE-5723</a>.
     Blocker bug reported by Mohammad Kamrul Islam and fixed by Mohammad Kamrul Islam (applicationmaster)<br>
     <b>MR AM container log can be truncated or empty</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5694">MAPREDUCE-5694</a>.
     Major bug reported by Mohammad Kamrul Islam and fixed by Mohammad Kamrul Islam <br>
     <b>MR AM container syslog is empty  </b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5693">MAPREDUCE-5693</a>.
     Major bug reported by Gera Shegalov and fixed by Gera Shegalov (mrv2)<br>
     <b>Restore MRv1 behavior for log flush</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5692">MAPREDUCE-5692</a>.
     Major improvement reported by Gera Shegalov and fixed by Gera Shegalov (mrv2)<br>
     <b>Add explicit diagnostics when a task attempt is killed due to speculative execution</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5689">MAPREDUCE-5689</a>.
     Critical bug reported by Lohit Vijayarenu and fixed by Lohit Vijayarenu <br>
     <b>MRAppMaster does not preempt reducers when scheduled maps cannot be fulfilled</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5687">MAPREDUCE-5687</a>.
     Major test reported by Ted Yu and fixed by Jian He <br>
     <b>TestYARNRunner#testResourceMgrDelegate fails with NPE after YARN-1446</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5685">MAPREDUCE-5685</a>.
     Blocker bug reported by Yi Song and fixed by Yi Song (client)<br>
     <b>getCacheFiles()  api doesn't work in WrappedReducer.java due to typo</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5679">MAPREDUCE-5679</a>.
     Major bug reported by Liyin Liang and fixed by Liyin Liang <br>
     <b>TestJobHistoryParsing has race condition</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5674">MAPREDUCE-5674</a>.
     Major bug reported by Chuan Liu and fixed by Chuan Liu (client)<br>
     <b>Missing start and finish time in mapred.JobStatus</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5672">MAPREDUCE-5672</a>.
     Major improvement reported by Gera Shegalov and fixed by Gera Shegalov (mr-am , mrv2)<br>
     <b>Provide optional RollingFileAppender for container log4j (syslog)</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5656">MAPREDUCE-5656</a>.
     Critical bug reported by Jason Lowe and fixed by Jason Lowe <br>
     <b>bzip2 codec can drop records when reading data in splits</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5650">MAPREDUCE-5650</a>.
     Major bug reported by Gera Shegalov and fixed by Gera Shegalov (mrv2)<br>
     <b>Job fails when hprof mapreduce.task.profile.map/reduce.params is specified</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5645">MAPREDUCE-5645</a>.
     Major bug reported by Jonathan Eagles and fixed by Mit Desai <br>
     <b>TestFixedLengthInputFormat fails with native libs</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5640">MAPREDUCE-5640</a>.
     Trivial improvement reported by Jason Lowe and fixed by Jason Lowe (test)<br>
     <b>Rename TestLineRecordReader in jobclient module</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5632">MAPREDUCE-5632</a>.
     Major test reported by Ted Yu and fixed by Jonathan Eagles <br>
     <b>TestRMContainerAllocator#testUpdatedNodes fails</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5631">MAPREDUCE-5631</a>.
     Major bug reported by Jonathan Eagles and fixed by Jonathan Eagles <br>
     <b>TestJobEndNotifier.testNotifyRetries fails with Should have taken more than 5 seconds in jdk7</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5625">MAPREDUCE-5625</a>.
     Major test reported by Jonathan Eagles and fixed by Mariappan Asokan <br>
     <b>TestFixedLengthInputFormat fails in jdk7 environment</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5623">MAPREDUCE-5623</a>.
     Major bug reported by Tsuyoshi OZAWA and fixed by Jason Lowe <br>
     <b>TestJobCleanup fails because of RejectedExecutionException and NPE.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5616">MAPREDUCE-5616</a>.
     Major bug reported by Chris Nauroth and fixed by Chris Nauroth (client)<br>
     <b>MR Client-AppMaster RPC max retries on socket timeout is too high.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5613">MAPREDUCE-5613</a>.
     Major bug reported by Gera Shegalov and fixed by Gera Shegalov (applicationmaster)<br>
     <b>DefaultSpeculator holds and checks hashmap that is always empty</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5610">MAPREDUCE-5610</a>.
     Major test reported by Jonathan Eagles and fixed by Jonathan Eagles <br>
     <b>TestSleepJob fails in jdk7</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5604">MAPREDUCE-5604</a>.
     Minor bug reported by Chris Nauroth and fixed by Chris Nauroth (test)<br>
     <b>TestMRAMWithNonNormalizedCapabilities fails on Windows due to exceeding max path length</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5601">MAPREDUCE-5601</a>.
     Major improvement reported by Sandy Ryza and fixed by Sandy Ryza <br>
     <b>ShuffleHandler fadvises file regions as DONTNEED even when fetch fails</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5598">MAPREDUCE-5598</a>.
     Major bug reported by Robert Kanter and fixed by Robert Kanter (test)<br>
     <b>TestUserDefinedCounters.testMapReduceJob is flakey</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5596">MAPREDUCE-5596</a>.
     Major improvement reported by Sandy Ryza and fixed by Sandy Ryza <br>
     <b>Allow configuring the number of threads used to serve shuffle connections</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5587">MAPREDUCE-5587</a>.
     Major bug reported by Jonathan Eagles and fixed by Jonathan Eagles <br>
     <b>TestTextOutputFormat fails on JDK7</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5586">MAPREDUCE-5586</a>.
     Major bug reported by Jonathan Eagles and fixed by Jonathan Eagles <br>
     <b>TestCopyMapper#testCopyFailOnBlockSizeDifference fails when run from hadoop-tools/hadoop-distcp directory</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5585">MAPREDUCE-5585</a>.
     Major bug reported by Jonathan Eagles and fixed by Jonathan Eagles <br>
     <b>TestCopyCommitter#testNoCommitAction Fails on JDK7</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5569">MAPREDUCE-5569</a>.
     Major bug reported by Nathan Roberts and fixed by Nathan Roberts <br>
     <b>FloatSplitter is not generating correct splits</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5561">MAPREDUCE-5561</a>.
     Critical bug reported by Cindy Li and fixed by Karthik Kambatla <br>
     <b>org.apache.hadoop.mapreduce.v2.app.job.impl.TestJobImpl testcase failing on trunk</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5550">MAPREDUCE-5550</a>.
     Major bug reported by Vrushali C and fixed by Gera Shegalov <br>
     <b>Task Status message (reporter.setStatus) not shown in UI with Hadoop 2.0</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5546">MAPREDUCE-5546</a>.
     Major bug reported by Chuan Liu and fixed by Chuan Liu <br>
     <b>mapred.cmd on Windows set HADOOP_OPTS incorrectly</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5522">MAPREDUCE-5522</a>.
     Minor bug reported by Jinghui Wang and fixed by Jinghui Wang (test)<br>
     <b>Incorrectly expect the array of JobQueueInfo returned by o.a.h.mapred.QueueManager#getJobQueueInfos to have a specific order.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5518">MAPREDUCE-5518</a>.
     Trivial bug reported by Albert Chu and fixed by Albert Chu (examples)<br>
     <b>Fix typo "can't read paritions file"</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5514">MAPREDUCE-5514</a>.
     Blocker bug reported by Zhijie Shen and fixed by Zhijie Shen <br>
     <b>TestRMContainerAllocator fails on trunk</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5504">MAPREDUCE-5504</a>.
     Major bug reported by Thomas Graves and fixed by Kousuke Saruta (client)<br>
     <b>mapred queue -info inconsistent with types</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5487">MAPREDUCE-5487</a>.
     Major improvement reported by Sandy Ryza and fixed by Sandy Ryza (performance , task)<br>
     <b>In task processes, JobConf is unnecessarily loaded again in Limits</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5484">MAPREDUCE-5484</a>.
     Major improvement reported by Sandy Ryza and fixed by Sandy Ryza (task)<br>
     <b>YarnChild unnecessarily loads job conf twice</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5481">MAPREDUCE-5481</a>.
     Blocker bug reported by Jason Lowe and fixed by Sandy Ryza (mrv2 , test)<br>
     <b>Enable uber jobs to have multiple reducers </b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5464">MAPREDUCE-5464</a>.
     Major task reported by Sandy Ryza and fixed by Sandy Ryza <br>
     <b>Add analogs of the SLOTS_MILLIS counters that jive with the YARN resource model</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5463">MAPREDUCE-5463</a>.
     Major task reported by Sandy Ryza and fixed by Tsuyoshi OZAWA <br>
     <b>Deprecate SLOTS_MILLIS counters</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5457">MAPREDUCE-5457</a>.
     Major improvement reported by Sandy Ryza and fixed by Sandy Ryza <br>
     <b>Add a KeyOnlyTextOutputReader to enable streaming to write out text files without separators</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5451">MAPREDUCE-5451</a>.
     Major bug reported by Mostafa Elhemali and fixed by Yingda Chen <br>
     <b>MR uses LD_LIBRARY_PATH which doesn't mean anything in Windows</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5431">MAPREDUCE-5431</a>.
     Major bug reported by Timothy St. Clair and fixed by Timothy St. Clair (build)<br>
     <b>Missing pom dependency in MR-client</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5411">MAPREDUCE-5411</a>.
     Major sub-task reported by Ashwin Shankar and fixed by Ashwin Shankar (jobhistoryserver)<br>
     <b>Refresh size of loaded job cache on history server</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5409">MAPREDUCE-5409</a>.
     Major sub-task reported by Devaraj K and fixed by Gera Shegalov <br>
     <b>MRAppMaster throws InvalidStateTransitonException: Invalid event: TA_TOO_MANY_FETCH_FAILURE at KILLED for TaskAttemptImpl</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5404">MAPREDUCE-5404</a>.
     Major bug reported by Ted Yu and fixed by Ted Yu (jobhistoryserver)<br>
     <b>HSAdminServer does not use ephemeral ports in minicluster mode</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5386">MAPREDUCE-5386</a>.
     Major sub-task reported by Ashwin Shankar and fixed by Ashwin Shankar (jobhistoryserver)<br>
     <b>Ability to refresh history server job retention and job cleaner settings</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5380">MAPREDUCE-5380</a>.
     Major bug reported by Stephen Chu and fixed by Stephen Chu <br>
     <b>Invalid mapred command should return non-zero exit code</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5373">MAPREDUCE-5373</a>.
     Major bug reported by Chuan Liu and fixed by Jonathan Eagles <br>
     <b>TestFetchFailure.testFetchFailureMultipleReduces could fail intermittently</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5356">MAPREDUCE-5356</a>.
     Major sub-task reported by Ashwin Shankar and fixed by Ashwin Shankar (jobhistoryserver)<br>
     <b>Ability to refresh aggregated log retention period and check interval </b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5332">MAPREDUCE-5332</a>.
     Major new feature reported by Jason Lowe and fixed by Jason Lowe (jobhistoryserver)<br>
     <b>Support token-preserving restart of history server</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5329">MAPREDUCE-5329</a>.
     Major bug reported by Avner BenHanoch and fixed by Avner BenHanoch (mr-am)<br>
     <b>APPLICATION_INIT is never sent to AuxServices other than the builtin ShuffleHandler</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5316">MAPREDUCE-5316</a>.
     Major bug reported by Ashwin Shankar and fixed by Ashwin Shankar (client)<br>
     <b>job -list-attempt-ids command does not handle illegal task-state</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5266">MAPREDUCE-5266</a>.
     Major new feature reported by Jason Lowe and fixed by Ashwin Shankar (jobhistoryserver)<br>
     <b>Ability to refresh retention settings on history server</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5265">MAPREDUCE-5265</a>.
     Major new feature reported by Jason Lowe and fixed by Ashwin Shankar (jobhistoryserver)<br>
     <b>History server admin service to refresh user and superuser group mappings</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5186">MAPREDUCE-5186</a>.
     Critical bug reported by Sangjin Lee and fixed by Robert Parker (job submission)<br>
     <b>mapreduce.job.max.split.locations causes some splits created by CombineFileInputFormat to fail</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5102">MAPREDUCE-5102</a>.
     Major test reported by Aleksey Gorshkov and fixed by Andrey Klochkov <br>
     <b>fix coverage  org.apache.hadoop.mapreduce.lib.db and org.apache.hadoop.mapred.lib.db</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5084">MAPREDUCE-5084</a>.
     Major test reported by Aleksey Gorshkov and fixed by Aleksey Gorshkov <br>
     <b>fix coverage  org.apache.hadoop.mapreduce.v2.app.webapp and org.apache.hadoop.mapreduce.v2.hs.webapp</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5052">MAPREDUCE-5052</a>.
     Critical bug reported by Kendall Thrapp and fixed by Chen He (jobhistoryserver , webapps)<br>
     <b>Job History UI and web services confusing job start time and job submit time</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-4680">MAPREDUCE-4680</a>.
     Major bug reported by Sandy Ryza and fixed by Robert Kanter (jobhistoryserver)<br>
     <b>Job history cleaner should only check timestamps of files in old enough directories</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4421">MAPREDUCE-4421</a>.
     Major improvement reported by Arun C Murthy and fixed by Jason Lowe <br>
     <b>Run MapReduce framework via the distributed cache</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3310">MAPREDUCE-3310</a>.
     Major improvement reported by Mathias Herberts and fixed by Alejandro Abdelnur (client)<br>
     <b>Custom grouping comparator cannot be set for Combiners</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-1176">MAPREDUCE-1176</a>.
     Major new feature reported by BitsOfInfo and fixed by Mariappan Asokan <br>
     <b>FixedLengthInputFormat and FixedLengthRecordReader</b><br>
     <blockquote>Addition of FixedLengthInputFormat and FixedLengthRecordReader in the org.apache.hadoop.mapreduce.lib.input package. These two classes can be used when you need to read data from files containing fixed length (fixed width) records. Such files have no CR/LF (or any combination thereof), no delimiters etc, but each record is a fixed length, and extra data is padded with spaces. The data is one gigantic line within a file. When creating a job that specifies this input format, the job must have the "mapreduce.input.fixedlengthinputformat.record.length" property set as follows myJobConf.setInt("mapreduce.input.fixedlengthinputformat.record.length",[myFixedRecordLength]); 

Please see javadoc for more details.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-434">MAPREDUCE-434</a>.
     Minor improvement reported by Yoram Arnon and fixed by Aaron Kimball <br>
     <b>LocalJobRunner limited to single reducer</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5921">HDFS-5921</a>.
     Critical bug reported by Aaron T. Myers and fixed by Aaron T. Myers (namenode)<br>
     <b>Cannot browse file system via NN web UI if any directory has the sticky bit set</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5876">HDFS-5876</a>.
     Major bug reported by Haohui Mai and fixed by Haohui Mai (datanode)<br>
     <b>SecureDataNodeStarter does not pick up configuration in hdfs-site.xml</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5873">HDFS-5873</a>.
     Major bug reported by Yesha Vora and fixed by Haohui Mai <br>
     <b>dfs.http.policy should have higher precedence over dfs.https.enable</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5845">HDFS-5845</a>.
     Blocker bug reported by Andrew Wang and fixed by Andrew Wang (namenode)<br>
     <b>SecondaryNameNode dies when checkpointing with cache pools</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5844">HDFS-5844</a>.
     Minor bug reported by Akira AJISAKA and fixed by Akira AJISAKA (documentation)<br>
     <b>Fix broken link in WebHDFS.apt.vm</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5842">HDFS-5842</a>.
     Major bug reported by Arpit Gupta and fixed by Jing Zhao (security)<br>
     <b>Cannot create hftp filesystem when using a proxy user ugi and a doAs on a secure cluster</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5841">HDFS-5841</a>.
     Major improvement reported by Andrew Wang and fixed by Andrew Wang <br>
     <b>Update HDFS caching documentation with new changes</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5837">HDFS-5837</a>.
     Major bug reported by Bryan Beaudreault and fixed by Tao Luo (namenode)<br>
     <b>dfs.namenode.replication.considerLoad does not consider decommissioned nodes</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5833">HDFS-5833</a>.
     Trivial improvement reported by Bangtao Zhou and fixed by  (namenode)<br>
     <b>SecondaryNameNode have an incorrect java doc</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5830">HDFS-5830</a>.
     Blocker bug reported by Yongjun Zhang and fixed by Yongjun Zhang (caching , hdfs-client)<br>
     <b>WebHdfsFileSystem.getFileBlockLocations throws IllegalArgumentException when accessing another cluster. </b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5825">HDFS-5825</a>.
     Minor improvement reported by Haohui Mai and fixed by Haohui Mai <br>
     <b>Use FileUtils.copyFile() to implement DFSTestUtils.copyFile()</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5806">HDFS-5806</a>.
     Major bug reported by Nathan Roberts and fixed by Nathan Roberts (balancer)<br>
     <b>balancer should set SoTimeout to avoid indefinite hangs</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5800">HDFS-5800</a>.
     Trivial bug reported by Kousuke Saruta and fixed by Kousuke Saruta (hdfs-client)<br>
     <b>Typo: soft-limit for hard-limit in DFSClient</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5789">HDFS-5789</a>.
     Major bug reported by Uma Maheswara Rao G and fixed by Uma Maheswara Rao G (namenode)<br>
     <b>Some of snapshot APIs missing checkOperation double check in fsn</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5788">HDFS-5788</a>.
     Major improvement reported by Nathan Roberts and fixed by Nathan Roberts (namenode)<br>
     <b>listLocatedStatus response can be very large</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5784">HDFS-5784</a>.
     Major sub-task reported by Colin Patrick McCabe and fixed by Colin Patrick McCabe (namenode)<br>
     <b>reserve space in edit log header and fsimage header for feature flag section</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5777">HDFS-5777</a>.
     Major bug reported by Jing Zhao and fixed by Jing Zhao (namenode)<br>
     <b>Update LayoutVersion for the new editlog op OP_ADD_BLOCK</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5766">HDFS-5766</a>.
     Major bug reported by Liang Xie and fixed by Liang Xie (hdfs-client)<br>
     <b>In DFSInputStream, do not add datanode to deadNodes after InvalidEncryptionKeyException in fetchBlockByteRange</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5762">HDFS-5762</a>.
     Major bug reported by Colin Patrick McCabe and fixed by Colin Patrick McCabe <br>
     <b>BlockReaderLocal doesn't return -1 on EOF when doing zero-length reads</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5756">HDFS-5756</a>.
     Major bug reported by Colin Patrick McCabe and fixed by Colin Patrick McCabe (libhdfs)<br>
     <b>hadoopRzOptionsSetByteBufferPool does not accept NULL argument, contrary to docs</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5748">HDFS-5748</a>.
     Major improvement reported by Kihwal Lee and fixed by Haohui Mai <br>
     <b>Too much information shown in the dfs health page.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5747">HDFS-5747</a>.
     Minor bug reported by Tsz Wo (Nicholas), SZE and fixed by Arpit Agarwal (namenode)<br>
     <b>BlocksMap.getStoredBlock(..) and BlockInfoUnderConstruction.addReplicaIfNotPresent(..) may throw NullPointerException</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5728">HDFS-5728</a>.
     Critical bug reported by Vinayakumar B and fixed by Vinayakumar B (datanode)<br>
     <b>[Diskfull] Block recovery will fail if the metafile does not have crc for all chunks of the block</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5721">HDFS-5721</a>.
     Minor improvement reported by Ted Yu and fixed by Ted Yu <br>
     <b>sharedEditsImage in Namenode#initializeSharedEdits() should be closed before method returns</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5719">HDFS-5719</a>.
     Minor bug reported by Ted Yu and fixed by Ted Yu (namenode)<br>
     <b>FSImage#doRollback() should close prevState before return</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5710">HDFS-5710</a>.
     Major bug reported by Ted Yu and fixed by Uma Maheswara Rao G <br>
     <b>FSDirectory#getFullPathName should check inodes against null</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5704">HDFS-5704</a>.
     Major bug reported by Suresh Srinivas and fixed by Jing Zhao (namenode)<br>
     <b>Change OP_UPDATE_BLOCKS  with a new OP_ADD_BLOCK</b><br>
     <blockquote>Add a new editlog record (OP_ADD_BLOCK) that only records allocation of the new block instead of the entire block list, on every block allocation.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5703">HDFS-5703</a>.
     Major new feature reported by Alejandro Abdelnur and fixed by Alejandro Abdelnur (webhdfs)<br>
     <b>Add support for HTTPS and swebhdfs to HttpFS</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5695">HDFS-5695</a>.
     Major improvement reported by Haohui Mai and fixed by Haohui Mai (test)<br>
     <b>Clean up TestOfflineEditsViewer and OfflineEditsViewerHelper</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5691">HDFS-5691</a>.
     Minor bug reported by Akira AJISAKA and fixed by Akira AJISAKA (documentation)<br>
     <b>Fix typo in ShortCircuitLocalRead document</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5690">HDFS-5690</a>.
     Blocker bug reported by Haohui Mai and fixed by Haohui Mai <br>
     <b>DataNode fails to start in secure mode when dfs.http.policy equals to HTTP_ONLY</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5681">HDFS-5681</a>.
     Major bug reported by Daryn Sharp and fixed by Daryn Sharp (namenode)<br>
     <b>renewLease should not hold fsn write lock</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5677">HDFS-5677</a>.
     Minor improvement reported by Vincent Sheffer and fixed by Vincent Sheffer (datanode , ha)<br>
     <b>Need error checking for HA cluster configuration</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5676">HDFS-5676</a>.
     Minor improvement reported by Colin Patrick McCabe and fixed by Colin Patrick McCabe (hdfs-client)<br>
     <b>fix inconsistent synchronization of CachingStrategy</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5675">HDFS-5675</a>.
     Minor bug reported by Plamen Jeliazkov and fixed by Plamen Jeliazkov (benchmarks)<br>
     <b>Add Mkdirs operation to NNThroughputBenchmark</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5674">HDFS-5674</a>.
     Minor improvement reported by Tsz Wo (Nicholas), SZE and fixed by Tsz Wo (Nicholas), SZE (namenode)<br>
     <b>Editlog code cleanup</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5671">HDFS-5671</a>.
     Critical bug reported by JamesLi and fixed by JamesLi (hdfs-client)<br>
     <b>Fix socket leak in DFSInputStream#getBlockReader</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5667">HDFS-5667</a>.
     Major sub-task reported by Eric Sirianni and fixed by Arpit Agarwal (datanode)<br>
     <b>Include DatanodeStorage in StorageReport</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5666">HDFS-5666</a>.
     Minor bug reported by Colin Patrick McCabe and fixed by Jimmy Xiang (namenode)<br>
     <b>Fix inconsistent synchronization in BPOfferService</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5663">HDFS-5663</a>.
     Major improvement reported by Liang Xie and fixed by Liang Xie (hdfs-client)<br>
     <b>make the retry time and interval value configurable in openInfo()</b><br>
     <blockquote>Makes the retries and time between retries getting the length of the last block on file configurable.  Below are the new configurations.

dfs.client.retry.times.get-last-block-length
dfs.client.retry.interval-ms.get-last-block-length

They are set to the 3 and 4000 respectively, these being what was previously hardcoded.

</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5662">HDFS-5662</a>.
     Major improvement reported by Brandon Li and fixed by Brandon Li (namenode)<br>
     <b>Can't decommission a DataNode due to file's replication factor larger than the rest of the cluster size</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5661">HDFS-5661</a>.
     Major bug reported by Benoy Antony and fixed by Benoy Antony <br>
     <b>Browsing FileSystem via web ui, should use datanode's fqdn instead of ip address</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5657">HDFS-5657</a>.
     Major bug reported by Brandon Li and fixed by Brandon Li (nfs)<br>
     <b>race condition causes writeback state error in NFS gateway</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5652">HDFS-5652</a>.
     Minor improvement reported by Liang Xie and fixed by Liang Xie (hdfs-client)<br>
     <b>refactoring/uniforming invalid block token exception handling in DFSInputStream</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5649">HDFS-5649</a>.
     Major bug reported by Brandon Li and fixed by Brandon Li (nfs)<br>
     <b>Unregister NFS and Mount service when NFS gateway is shutting down</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5637">HDFS-5637</a>.
     Major improvement reported by Liang Xie and fixed by Liang Xie (hdfs-client , security)<br>
     <b>try to refeatchToken while local read InvalidToken occurred</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5634">HDFS-5634</a>.
     Major sub-task reported by Colin Patrick McCabe and fixed by Colin Patrick McCabe (hdfs-client)<br>
     <b>allow BlockReaderLocal to switch between checksumming and not</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5633">HDFS-5633</a>.
     Minor improvement reported by Jing Zhao and fixed by Jing Zhao <br>
     <b>Improve OfflineImageViewer to use less memory</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5629">HDFS-5629</a>.
     Major sub-task reported by Haohui Mai and fixed by Haohui Mai <br>
     <b>Support HTTPS in JournalNode and SecondaryNameNode</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5592">HDFS-5592</a>.
     Major bug reported by Vinayakumar B and fixed by Vinayakumar B <br>
     <b>"DIR* completeFile: /file is closed by DFSClient_" should be logged only for successful closure of the file.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5590">HDFS-5590</a>.
     Major bug reported by Jing Zhao and fixed by Jing Zhao <br>
     <b>Block ID and generation stamp may be reused when persistBlocks is set to false</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5587">HDFS-5587</a>.
     Minor improvement reported by Brandon Li and fixed by Brandon Li (nfs)<br>
     <b>add debug information when NFS fails to start with duplicate user or group names</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5582">HDFS-5582</a>.
     Minor bug reported by Henry Hung and fixed by sathish <br>
     <b>hdfs getconf -excludeFile or -includeFile always failed</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5581">HDFS-5581</a>.
     Major bug reported by Vinayakumar B and fixed by Vinayakumar B (namenode)<br>
     <b>NameNodeFsck should use only one instance of BlockPlacementPolicy</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5580">HDFS-5580</a>.
     Major bug reported by Binglin Chang and fixed by Binglin Chang <br>
     <b>Infinite loop in Balancer.waitForMoveCompletion</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5579">HDFS-5579</a>.
     Major bug reported by zhaoyunjiong and fixed by zhaoyunjiong (namenode)<br>
     <b>Under construction files make DataNode decommission take very long hours</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5577">HDFS-5577</a>.
     Trivial improvement reported by Brandon Li and fixed by Brandon Li (documentation)<br>
     <b>NFS user guide update</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5568">HDFS-5568</a>.
     Major improvement reported by Vinayakumar B and fixed by Vinayakumar B (snapshots)<br>
     <b>Support inclusion of snapshot paths in Namenode fsck</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5563">HDFS-5563</a>.
     Major improvement reported by Brandon Li and fixed by Brandon Li (nfs)<br>
     <b>NFS gateway should commit the buffered data when read request comes after write to the same file</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5561">HDFS-5561</a>.
     Minor improvement reported by Fengdong Yu and fixed by Haohui Mai (namenode)<br>
     <b>FSNameSystem#getNameJournalStatus() in JMX should return plain text instead of HTML</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5560">HDFS-5560</a>.
     Major bug reported by Josh Elser and fixed by Josh Elser <br>
     <b>Trash configuration log statements prints incorrect units</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5558">HDFS-5558</a>.
     Major bug reported by Kihwal Lee and fixed by Kihwal Lee <br>
     <b>LeaseManager monitor thread can crash if the last block is complete but another block is not.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5557">HDFS-5557</a>.
     Critical bug reported by Kihwal Lee and fixed by Kihwal Lee <br>
     <b>Write pipeline recovery for the last packet in the block may cause rejection of valid replicas</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5552">HDFS-5552</a>.
     Major bug reported by Shinichi Yamashita and fixed by Haohui Mai (namenode)<br>
     <b>Fix wrong information of "Cluster summay" in dfshealth.html</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5548">HDFS-5548</a>.
     Major improvement reported by Haohui Mai and fixed by Haohui Mai (nfs)<br>
     <b>Use ConcurrentHashMap in portmap</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5545">HDFS-5545</a>.
     Major sub-task reported by Haohui Mai and fixed by Haohui Mai <br>
     <b>Allow specifying endpoints for listeners in HttpServer</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5544">HDFS-5544</a>.
     Minor bug reported by sathish and fixed by sathish (hdfs-client)<br>
     <b>Adding Test case For Checking dfs.checksum type as NULL value</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5540">HDFS-5540</a>.
     Minor bug reported by Binglin Chang and fixed by Binglin Chang <br>
     <b>Fix intermittent failure in TestBlocksWithNotEnoughRacks</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5538">HDFS-5538</a>.
     Major sub-task reported by Haohui Mai and fixed by Haohui Mai <br>
     <b>URLConnectionFactory should pick up the SSL related configuration by default</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5536">HDFS-5536</a>.
     Major sub-task reported by Haohui Mai and fixed by Haohui Mai <br>
     <b>Implement HTTP policy for Namenode and DataNode</b><br>
     <blockquote>Add new HTTP policy configuration. Users can use "dfs.http.policy" to control the HTTP endpoints for NameNode and DataNode. Specifically, The following values are supported:
- HTTP_ONLY : Service is provided only on http
- HTTPS_ONLY : Service is provided only on https
- HTTP_AND_HTTPS : Service is provided both on http and https

hadoop.ssl.enabled and dfs.https.enabled are deprecated. When the deprecated configuration properties are still configured, currently http policy is decided based on the following rules:
1. If dfs.http.policy is set to HTTPS_ONLY or HTTP_AND_HTTPS. It picks the specified policy, otherwise it proceeds to 2~4.
2. It picks HTTPS_ONLY if hadoop.ssl.enabled equals to true.
3. It picks HTTP_AND_HTTPS if dfs.https.enable equals to true.
4. It picks HTTP_ONLY for other configurations.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5533">HDFS-5533</a>.
     Minor bug reported by Binglin Chang and fixed by Binglin Chang (snapshots)<br>
     <b>Symlink delete/create should be treated as DELETE/CREATE in snapshot diff report</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5532">HDFS-5532</a>.
     Major improvement reported by Vinayakumar B and fixed by Vinayakumar B (webhdfs)<br>
     <b>Enable the webhdfs by default to support new HDFS web UI</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5526">HDFS-5526</a>.
     Blocker bug reported by Tsz Wo (Nicholas), SZE and fixed by Kihwal Lee (datanode)<br>
     <b>Datanode cannot roll back to previous layout version</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5525">HDFS-5525</a>.
     Major sub-task reported by Haohui Mai and fixed by Haohui Mai <br>
     <b>Inline dust templates</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5519">HDFS-5519</a>.
     Minor sub-task reported by Brandon Li and fixed by Brandon Li (nfs)<br>
     <b>COMMIT handler should update the commit status after sync</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5514">HDFS-5514</a>.
     Major sub-task reported by Daryn Sharp and fixed by Daryn Sharp (namenode)<br>
     <b>FSNamesystem's fsLock should allow custom implementation</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5506">HDFS-5506</a>.
     Major sub-task reported by Haohui Mai and fixed by Haohui Mai <br>
     <b>Use URLConnectionFactory in DelegationTokenFetcher</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5504">HDFS-5504</a>.
     Major bug reported by Vinayakumar B and fixed by Vinayakumar B (snapshots)<br>
     <b>In HA mode, OP_DELETE_SNAPSHOT is not decrementing the safemode threshold, leads to NN safemode.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5502">HDFS-5502</a>.
     Major sub-task reported by Haohui Mai and fixed by Haohui Mai <br>
     <b>Fix HTTPS support in HsftpFileSystem</b><br>
     <blockquote>Fix the https support in HsftpFileSystem. With the change the client now verifies the server certificate. In particular, client side will verify the Common Name of the certificate using a strategy specified by the configuration property "hadoop.ssl.hostname.verifier".</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5495">HDFS-5495</a>.
     Major improvement reported by Andrew Wang and fixed by Jarek Jarcec Cecho <br>
     <b>Remove further JUnit3 usages from HDFS</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5489">HDFS-5489</a>.
     Major sub-task reported by Haohui Mai and fixed by Haohui Mai <br>
     <b>Use TokenAspect in WebHDFSFileSystem</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5488">HDFS-5488</a>.
     Major sub-task reported by Haohui Mai and fixed by Haohui Mai <br>
     <b>Clean up TestHftpURLTimeout</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5487">HDFS-5487</a>.
     Major sub-task reported by Haohui Mai and fixed by Haohui Mai <br>
     <b>Introduce unit test for TokenAspect</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5476">HDFS-5476</a>.
     Major bug reported by Jing Zhao and fixed by Jing Zhao <br>
     <b>Snapshot: clean the blocks/files/directories under a renamed file/directory while deletion</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5474">HDFS-5474</a>.
     Major bug reported by Uma Maheswara Rao G and fixed by sathish (snapshots)<br>
     <b>Deletesnapshot can make Namenode in safemode on NN restarts.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5469">HDFS-5469</a>.
     Major sub-task reported by Brandon Li and fixed by Brandon Li (nfs)<br>
     <b>Add configuration property for the sub-directroy export path</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5467">HDFS-5467</a>.
     Trivial improvement reported by Andrew Wang and fixed by Shinichi Yamashita <br>
     <b>Remove tab characters in hdfs-default.xml</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5458">HDFS-5458</a>.
     Major bug reported by Andrew Wang and fixed by Mike Mellenthin (datanode)<br>
     <b>Datanode failed volume threshold ignored if exception is thrown in getDataDirsFromURIs</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5456">HDFS-5456</a>.
     Critical bug reported by Chris Nauroth and fixed by Chris Nauroth (namenode)<br>
     <b>NameNode startup progress creates new steps if caller attempts to create a counter for a step that doesn't already exist.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5454">HDFS-5454</a>.
     Minor sub-task reported by Eric Sirianni and fixed by Arpit Agarwal (datanode)<br>
     <b>DataNode UUID should be assigned prior to FsDataset initialization</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5449">HDFS-5449</a>.
     Blocker bug reported by Kihwal Lee and fixed by Kihwal Lee <br>
     <b>WebHdfs compatibility broken between 2.2 and 1.x / 23.x</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5444">HDFS-5444</a>.
     Major sub-task reported by Haohui Mai and fixed by Haohui Mai <br>
     <b>Choose default web UI based on browser capabilities</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5443">HDFS-5443</a>.
     Major bug reported by Uma Maheswara Rao G and fixed by Jing Zhao (snapshots)<br>
     <b>Delete 0-sized block when deleting an under-construction file that is included in snapshot</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5440">HDFS-5440</a>.
     Major sub-task reported by Haohui Mai and fixed by Haohui Mai <br>
     <b>Extract the logic of handling delegation tokens in HftpFileSystem to the TokenAspect class</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5438">HDFS-5438</a>.
     Critical bug reported by Kihwal Lee and fixed by Kihwal Lee (namenode)<br>
     <b>Flaws in block report processing can cause data loss</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5436">HDFS-5436</a>.
     Major sub-task reported by Haohui Mai and fixed by Haohui Mai <br>
     <b>Move HsFtpFileSystem and HFtpFileSystem into org.apache.hdfs.web</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5434">HDFS-5434</a>.
     Minor bug reported by Buddy and fixed by  (namenode)<br>
     <b>Write resiliency for replica count 1</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5433">HDFS-5433</a>.
     Critical bug reported by Aaron T. Myers and fixed by Aaron T. Myers (snapshots)<br>
     <b>When reloading fsimage during checkpointing, we should clear existing snapshottable directories</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5432">HDFS-5432</a>.
     Trivial bug reported by Chris Nauroth and fixed by Chris Nauroth (datanode , test)<br>
     <b>TestDatanodeJsp fails on Windows due to assumption that loopback address resolves to host name localhost.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5428">HDFS-5428</a>.
     Major bug reported by Vinayakumar B and fixed by Jing Zhao (snapshots)<br>
     <b>under construction files deletion after snapshot+checkpoint+nn restart leads nn safemode</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5427">HDFS-5427</a>.
     Major bug reported by Vinayakumar B and fixed by Vinayakumar B (snapshots)<br>
     <b>not able to read deleted files from snapshot directly under snapshottable dir after checkpoint and NN restart</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5425">HDFS-5425</a>.
     Major bug reported by sathish and fixed by Jing Zhao (namenode , snapshots)<br>
     <b>Renaming underconstruction file with snapshots can make NN failure on restart</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5413">HDFS-5413</a>.
     Major bug reported by Chris Nauroth and fixed by Chris Nauroth (scripts)<br>
     <b>hdfs.cmd does not support passthrough to any arbitrary class.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5407">HDFS-5407</a>.
     Trivial bug reported by Haohui Mai and fixed by Haohui Mai <br>
     <b>Fix typos in DFSClientCache</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5406">HDFS-5406</a>.
     Major sub-task reported by Arpit Agarwal and fixed by Arpit Agarwal (datanode)<br>
     <b>Send incremental block reports for all storages in a single call</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5403">HDFS-5403</a>.
     Major bug reported by Aaron T. Myers and fixed by Aaron T. Myers (webhdfs)<br>
     <b>WebHdfs client cannot communicate with older WebHdfs servers post HDFS-5306</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5400">HDFS-5400</a>.
     Major bug reported by Colin Patrick McCabe and fixed by Colin Patrick McCabe <br>
     <b>DFS_CLIENT_MMAP_CACHE_THREAD_RUNS_PER_TIMEOUT constant is set to the wrong value</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5399">HDFS-5399</a>.
     Major improvement reported by Jing Zhao and fixed by Jing Zhao <br>
     <b>Revisit SafeModeException and corresponding retry policies</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5393">HDFS-5393</a>.
     Minor sub-task reported by Haohui Mai and fixed by Haohui Mai <br>
     <b>Serve bootstrap and jQuery locally</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5382">HDFS-5382</a>.
     Major sub-task reported by Haohui Mai and fixed by Haohui Mai <br>
     <b>Implement the UI of browsing filesystems in HTML 5 page</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5379">HDFS-5379</a>.
     Major sub-task reported by Haohui Mai and fixed by Haohui Mai <br>
     <b>Update links to datanode information in dfshealth.html</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5375">HDFS-5375</a>.
     Minor bug reported by Chris Nauroth and fixed by Chris Nauroth (tools)<br>
     <b>hdfs.cmd does not expose several snapshot commands.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5374">HDFS-5374</a>.
     Trivial bug reported by Suresh Srinivas and fixed by Suresh Srinivas <br>
     <b>Remove deadcode in DFSOutputStream</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5372">HDFS-5372</a>.
     Major bug reported by Tsz Wo (Nicholas), SZE and fixed by Vinayakumar B (namenode)<br>
     <b>In FSNamesystem, hasReadLock() returns false if the current thread holds the write lock</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5371">HDFS-5371</a>.
     Minor improvement reported by Jing Zhao and fixed by Jing Zhao (ha , test)<br>
     <b>Let client retry the same NN when "dfs.client.test.drop.namenode.response.number" is enabled</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5370">HDFS-5370</a>.
     Trivial bug reported by Kousuke Saruta and fixed by Kousuke Saruta (hdfs-client)<br>
     <b>Typo in Error Message:  different between range in condition and range in error message</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5365">HDFS-5365</a>.
     Major bug reported by Radim Kolar and fixed by Radim Kolar (build , libhdfs)<br>
     <b>Fix libhdfs compile error on FreeBSD9</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5364">HDFS-5364</a>.
     Major sub-task reported by Brandon Li and fixed by Brandon Li (nfs)<br>
     <b>Add OpenFileCtx cache</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5363">HDFS-5363</a>.
     Major sub-task reported by Haohui Mai and fixed by Haohui Mai <br>
     <b>Refactor WebHdfsFileSystem: move SPENGO-authenticated connection creation to URLConnectionFactory </b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5360">HDFS-5360</a>.
     Minor improvement reported by Shinichi Yamashita and fixed by Shinichi Yamashita (snapshots)<br>
     <b>Improvement of usage message of renameSnapshot and deleteSnapshot</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5353">HDFS-5353</a>.
     Blocker bug reported by Haohui Mai and fixed by Colin Patrick McCabe <br>
     <b>Short circuit reads fail when dfs.encrypt.data.transfer is enabled</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5352">HDFS-5352</a>.
     Minor bug reported by Ted Yu and fixed by Ted Yu <br>
     <b>Server#initLog() doesn't close InputStream in httpfs</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5350">HDFS-5350</a>.
     Minor improvement reported by Rob Weltman and fixed by Jimmy Xiang (namenode)<br>
     <b>Name Node should report fsimage transfer time as a metric</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5347">HDFS-5347</a>.
     Major sub-task reported by Brandon Li and fixed by Brandon Li (documentation)<br>
     <b>add HDFS NFS user guide</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5346">HDFS-5346</a>.
     Major bug reported by Kihwal Lee and fixed by Ravi Prakash (namenode , performance)<br>
     <b>Avoid unnecessary call to getNumLiveDataNodes() for each block during IBR processing</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5344">HDFS-5344</a>.
     Minor improvement reported by sathish and fixed by sathish (snapshots , tools)<br>
     <b>Make LsSnapshottableDir as Tool interface implementation</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5343">HDFS-5343</a>.
     Major bug reported by sathish and fixed by sathish (hdfs-client)<br>
     <b>When cat command is issued on snapshot files getting unexpected result</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5342">HDFS-5342</a>.
     Major sub-task reported by Haohui Mai and fixed by Haohui Mai <br>
     <b>Provide more information in the FSNamesystem JMX interfaces</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5341">HDFS-5341</a>.
     Major bug reported by qus-jiawei and fixed by qus-jiawei (datanode)<br>
     <b>Reduce fsdataset lock duration during directory scanning.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5338">HDFS-5338</a>.
     Major improvement reported by Tsz Wo (Nicholas), SZE and fixed by Tsz Wo (Nicholas), SZE (namenode)<br>
     <b>Add a conf to disable hostname check in DN registration</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5337">HDFS-5337</a>.
     Major sub-task reported by Brandon Li and fixed by Brandon Li (nfs)<br>
     <b>should do hsync for a commit request even there is no pending writes</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5336">HDFS-5336</a>.
     Minor bug reported by Akira AJISAKA and fixed by Akira AJISAKA (namenode)<br>
     <b>DataNode should not output 'StartupProgress' metrics</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5335">HDFS-5335</a>.
     Major bug reported by Arpit Gupta and fixed by Haohui Mai <br>
     <b>DFSOutputStream#close() keeps throwing exceptions when it is called multiple times</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5334">HDFS-5334</a>.
     Major sub-task reported by Haohui Mai and fixed by Haohui Mai <br>
     <b>Implement dfshealth.jsp in HTML pages</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5331">HDFS-5331</a>.
     Major improvement reported by Vinayakumar B and fixed by Vinayakumar B (snapshots)<br>
     <b>make SnapshotDiff.java to a o.a.h.util.Tool interface implementation</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5330">HDFS-5330</a>.
     Major sub-task reported by Brandon Li and fixed by Brandon Li (nfs)<br>
     <b>fix readdir and readdirplus for large directories</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5329">HDFS-5329</a>.
     Major bug reported by Brandon Li and fixed by Brandon Li (namenode , nfs)<br>
     <b>Update FSNamesystem#getListing() to handle inode path in startAfter token</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5325">HDFS-5325</a>.
     Major sub-task reported by Haohui Mai and fixed by Haohui Mai <br>
     <b>Remove WebHdfsFileSystem#ConnRunner</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5323">HDFS-5323</a>.
     Minor improvement reported by Colin Patrick McCabe and fixed by Colin Patrick McCabe (namenode)<br>
     <b>Remove some deadcode in BlockManager</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5322">HDFS-5322</a>.
     Major bug reported by Arpit Gupta and fixed by Jing Zhao (ha)<br>
     <b>HDFS delegation token not found in cache errors seen on secure HA clusters</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5317">HDFS-5317</a>.
     Critical sub-task reported by Suresh Srinivas and fixed by Haohui Mai <br>
     <b>Go back to DFS Home link does not work on datanode webUI</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5316">HDFS-5316</a>.
     Critical sub-task reported by Suresh Srinivas and fixed by Haohui Mai <br>
     <b>Namenode ignores the default https port</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5312">HDFS-5312</a>.
     Major sub-task reported by Haohui Mai and fixed by Haohui Mai <br>
     <b>Generate HTTP / HTTPS URL in DFSUtil#getInfoServer() based on the configured http policy</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5307">HDFS-5307</a>.
     Major sub-task reported by Haohui Mai and fixed by Haohui Mai <br>
     <b>Support both HTTP and HTTPS in jsp pages</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5305">HDFS-5305</a>.
     Major bug reported by Suresh Srinivas and fixed by Suresh Srinivas <br>
     <b>Add https support in HDFS</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5297">HDFS-5297</a>.
     Major bug reported by Akira AJISAKA and fixed by Akira AJISAKA (documentation)<br>
     <b>Fix dead links in HDFS site documents</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5291">HDFS-5291</a>.
     Critical bug reported by Arpit Gupta and fixed by Jing Zhao (ha)<br>
     <b>Clients need to retry when Active NN is in SafeMode</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5288">HDFS-5288</a>.
     Major sub-task reported by Haohui Mai and fixed by Haohui Mai (nfs)<br>
     <b>Close idle connections in portmap</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5283">HDFS-5283</a>.
     Critical bug reported by Vinayakumar B and fixed by Vinayakumar B (snapshots)<br>
     <b>NN not coming out of startup safemode due to under construction blocks only inside snapshots also counted in safemode threshhold</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5281">HDFS-5281</a>.
     Major sub-task reported by Brandon Li and fixed by Brandon Li (nfs)<br>
     <b>COMMIT request should not block</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5276">HDFS-5276</a>.
     Major bug reported by Chengxiang Li and fixed by Colin Patrick McCabe <br>
     <b>FileSystem.Statistics got performance issue on multi-thread read/write.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5267">HDFS-5267</a>.
     Minor improvement reported by Junping Du and fixed by Junping Du <br>
     <b>Remove volatile from LightWeightHashSet</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5260">HDFS-5260</a>.
     Major new feature reported by Chris Nauroth and fixed by Chris Nauroth (hdfs-client , libhdfs)<br>
     <b>Merge zero-copy memory-mapped HDFS client reads to trunk and branch-2.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5257">HDFS-5257</a>.
     Major bug reported by Vinayakumar B and fixed by Vinayakumar B (hdfs-client , namenode)<br>
     <b>addBlock() retry should return LocatedBlock with locations else client will get AIOBE</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5252">HDFS-5252</a>.
     Major sub-task reported by Brandon Li and fixed by Brandon Li (nfs)<br>
     <b>Stable write is not handled correctly in someplace</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5240">HDFS-5240</a>.
     Major sub-task reported by Daryn Sharp and fixed by Daryn Sharp (namenode)<br>
     <b>Separate formatting from logging in the audit logger API</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5239">HDFS-5239</a>.
     Major sub-task reported by Daryn Sharp and fixed by Daryn Sharp (namenode)<br>
     <b>Allow FSNamesystem lock fairness to be configurable</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5220">HDFS-5220</a>.
     Major improvement reported by Rob Weltman and fixed by Jimmy Xiang (namenode)<br>
     <b>Expose group resolution time as metric</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5207">HDFS-5207</a>.
     Major improvement reported by Junping Du and fixed by Junping Du (namenode)<br>
     <b>In BlockPlacementPolicy, update 2 parameters of chooseTarget()</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5188">HDFS-5188</a>.
     Major improvement reported by Tsz Wo (Nicholas), SZE and fixed by Tsz Wo (Nicholas), SZE (namenode)<br>
     <b>Clean up BlockPlacementPolicy and its implementations</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5171">HDFS-5171</a>.
     Major sub-task reported by Brandon Li and fixed by Haohui Mai (nfs)<br>
     <b>NFS should create input stream for a file and try to share it with multiple read requests</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5170">HDFS-5170</a>.
     Trivial bug reported by Andrew Wang and fixed by Andrew Wang <br>
     <b>BlockPlacementPolicyDefault uses the wrong classname when alerting to enable debug logging</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5164">HDFS-5164</a>.
     Minor bug reported by Colin Patrick McCabe and fixed by Colin Patrick McCabe (namenode)<br>
     <b>deleteSnapshot should check if OperationCategory.WRITE is possible before taking write lock</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5144">HDFS-5144</a>.
     Minor improvement reported by Akira AJISAKA and fixed by Akira AJISAKA (documentation)<br>
     <b>Document time unit to NameNodeMetrics.java</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-5130">HDFS-5130</a>.
     Minor test reported by Binglin Chang and fixed by Binglin Chang (test)<br>
     <b>Add test for snapshot related FsShell and DFSAdmin commands</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5122">HDFS-5122</a>.
     Major bug reported by Arpit Gupta and fixed by Haohui Mai (ha , webhdfs)<br>
     <b>Support failover and retry in WebHdfsFileSystem for NN HA</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-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-5093">HDFS-5093</a>.
     Minor bug reported by Chuan Liu and fixed by Chuan Liu (test)<br>
     <b>TestGlobPaths should re-use the MiniDFSCluster to avoid failure on Windows</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-5075">HDFS-5075</a>.
     Major bug reported by Timothy St. Clair and fixed by Timothy St. Clair <br>
     <b>httpfs-config.sh calls out incorrect env script name</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5074">HDFS-5074</a>.
     Major bug reported by Todd Lipcon and fixed by Todd Lipcon (ha , namenode)<br>
     <b>Allow starting up from an fsimage checkpoint in the middle of a segment</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5073">HDFS-5073</a>.
     Minor bug reported by Kihwal Lee and fixed by Arpit Agarwal (test)<br>
     <b>TestListCorruptFileBlocks fails intermittently </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-5068">HDFS-5068</a>.
     Major improvement reported by Konstantin Shvachko and fixed by Konstantin Shvachko (benchmarks)<br>
     <b>Convert NNThroughputBenchmark to a Tool to allow generic options.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5065">HDFS-5065</a>.
     Major bug reported by Ivan Mitic and fixed by Ivan Mitic (hdfs-client , test)<br>
     <b>TestSymlinkHdfsDisable fails on Windows</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-5037">HDFS-5037</a>.
     Critical improvement reported by Todd Lipcon and fixed by Andrew Wang (ha , namenode)<br>
     <b>Active NN should trigger its own edit log rolls</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5035">HDFS-5035</a>.
     Major bug reported by Andrew Wang and fixed by Andrew Wang (namenode)<br>
     <b>getFileLinkStatus and rename do not correctly check permissions of symlinks</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5034">HDFS-5034</a>.
     Trivial improvement reported by Andrew Wang and fixed by Andrew Wang (namenode)<br>
     <b>Remove debug prints from getFileLinkInfo</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5023">HDFS-5023</a>.
     Major bug reported by Ravi Prakash and fixed by Mit Desai (snapshots , test)<br>
     <b>TestSnapshotPathINodes.testAllowSnapshot is failing with jdk7</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5014">HDFS-5014</a>.
     Major bug reported by Vinayakumar B and fixed by Vinayakumar B (datanode , ha)<br>
     <b>BPOfferService#processCommandFromActor() synchronization on namenode RPC call delays IBR to Active NN, if Stanby NN is unstable</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5004">HDFS-5004</a>.
     Major improvement reported by Trevor Lorimer and fixed by Trevor Lorimer (namenode)<br>
     <b>Add additional JMX bean for NameNode status data</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4997">HDFS-4997</a>.
     Major bug reported by Colin Patrick McCabe and fixed by Colin Patrick McCabe (libhdfs)<br>
     <b>libhdfs doesn't return correct error codes in most cases</b><br>
     <blockquote>libhdfs now returns correct codes in errno. Previously, due to a bug, many functions set errno to 255 instead of the more specific error code.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4995">HDFS-4995</a>.
     Major bug reported by Kihwal Lee and fixed by Kihwal Lee (namenode)<br>
     <b>Make getContentSummary() less expensive</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4994">HDFS-4994</a>.
     Minor bug reported by Kihwal Lee and fixed by Robert Parker (namenode)<br>
     <b>Audit log getContentSummary() calls</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4983">HDFS-4983</a>.
     Major improvement reported by Harsh J and fixed by Yongjun Zhang (webhdfs)<br>
     <b>Numeric usernames do not work with WebHDFS FS</b><br>
     <blockquote>Add a new configuration property "dfs.webhdfs.user.provider.user.pattern" for specifying user name filters for WebHDFS.</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-4949">HDFS-4949</a>.
     Major new feature reported by Andrew Wang and fixed by Andrew Wang (datanode , namenode)<br>
     <b>Centralized cache management in HDFS</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-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-4885">HDFS-4885</a>.
     Major sub-task reported by Junping Du and fixed by Junping Du <br>
     <b>Update verifyBlockPlacement() API in BlockPlacementPolicy</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4879">HDFS-4879</a>.
     Major improvement reported by Todd Lipcon and fixed by Todd Lipcon (namenode)<br>
     <b>Add "blocked ArrayList" collection to avoid CMS full GCs</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4860">HDFS-4860</a>.
     Major improvement reported by Trevor Lorimer and fixed by Trevor Lorimer (namenode)<br>
     <b>Add additional attributes to JMX beans</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4816">HDFS-4816</a>.
     Major bug reported by Andrew Wang and fixed by Andrew Wang (namenode)<br>
     <b>transitionToActive blocks if the SBN is doing checkpoint image transfer</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-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-4657">HDFS-4657</a>.
     Major bug reported by Aaron T. Myers and fixed by Aaron T. Myers (namenode)<br>
     <b>Limit the number of blocks logged by the NN after a block report to a configurable value.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4633">HDFS-4633</a>.
     Major bug reported by Chris Nauroth and fixed by Chris Nauroth (hdfs-client , test)<br>
     <b>TestDFSClientExcludedNodes fails sporadically if excluded nodes cache expires too quickly</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4517">HDFS-4517</a>.
     Major test reported by Vadim Bondarev and fixed by Ivan A. Veselovsky <br>
     <b>Cover class RemoteBlockReader with unit tests</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4516">HDFS-4516</a>.
     Critical bug reported by Uma Maheswara Rao G and fixed by Vinayakumar B (namenode)<br>
     <b>Client crash after block allocation and NN switch before lease recovery for the same file can cause readers to fail forever</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4512">HDFS-4512</a>.
     Major test reported by Vadim Bondarev and fixed by Vadim Bondarev <br>
     <b>Cover package org.apache.hadoop.hdfs.server.common with tests</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4511">HDFS-4511</a>.
     Major test reported by Vadim Bondarev and fixed by Andrey Klochkov <br>
     <b>Cover package org.apache.hadoop.hdfs.tools with unit test</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4510">HDFS-4510</a>.
     Major test reported by Vadim Bondarev and fixed by Andrey Klochkov <br>
     <b>Cover classes ClusterJspHelper/NamenodeJspHelper with unit tests</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4491">HDFS-4491</a>.
     Major test reported by Tsuyoshi OZAWA and fixed by Andrey Klochkov (test)<br>
     <b>Parallel testing HDFS</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4376">HDFS-4376</a>.
     Major bug reported by Aaron T. Myers and fixed by Junping Du (balancer)<br>
     <b> Fix several race conditions in Balancer and resolve intermittent timeout of TestBalancerWithNodeGroup</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-4278">HDFS-4278</a>.
     Major improvement reported by Harsh J and fixed by Kousuke Saruta (datanode , namenode)<br>
     <b>Log an ERROR when DFS_BLOCK_ACCESS_TOKEN_ENABLE config  is disabled but security is turned on.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4201">HDFS-4201</a>.
     Critical bug reported by Eli Collins and fixed by Jimmy Xiang (namenode)<br>
     <b>NPE in BPServiceActor#sendHeartBeat</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4096">HDFS-4096</a>.
     Major sub-task reported by Jing Zhao and fixed by Haohui Mai (datanode , namenode)<br>
     <b>Add snapshot information to namenode WebUI</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3987">HDFS-3987</a>.
     Major sub-task reported by Alejandro Abdelnur and fixed by Haohui Mai <br>
     <b>Support webhdfs over HTTPS</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-3981">HDFS-3981</a>.
     Major bug reported by Xiaobo Peng and fixed by Xiaobo Peng (namenode)<br>
     <b>access time is set without holding FSNamesystem write lock</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-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-10317">HADOOP-10317</a>.
     Major bug reported by Andrew Wang and fixed by Andrew Wang <br>
     <b>Rename branch-2.3 release version from 2.4.0-SNAPSHOT to 2.3.0-SNAPSHOT</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10313">HADOOP-10313</a>.
     Major bug reported by Alejandro Abdelnur and fixed by Alejandro Abdelnur (build)<br>
     <b>Script and jenkins job to produce Hadoop release artifacts</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10311">HADOOP-10311</a>.
     Blocker bug reported by Suresh Srinivas and fixed by Alejandro Abdelnur <br>
     <b>Cleanup vendor names from the code base</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10310">HADOOP-10310</a>.
     Blocker bug reported by Aaron T. Myers and fixed by Aaron T. Myers (security)<br>
     <b>SaslRpcServer should be initialized even when no secret manager present</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10305">HADOOP-10305</a>.
     Major bug reported by Akira AJISAKA and fixed by Akira AJISAKA (metrics)<br>
     <b>Add "rpc.metrics.quantile.enable" and "rpc.metrics.percentiles.intervals" to core-default.xml</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10292">HADOOP-10292</a>.
     Major bug reported by Haohui Mai and fixed by Haohui Mai <br>
     <b>Restore HttpServer from branch-2.2 in branch-2</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10291">HADOOP-10291</a>.
     Major bug reported by Mit Desai and fixed by Mit Desai <br>
     <b>TestSecurityUtil#testSocketAddrWithIP fails</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10288">HADOOP-10288</a>.
     Major bug reported by Todd Lipcon and fixed by Todd Lipcon (util)<br>
     <b>Explicit reference to Log4JLogger breaks non-log4j users</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10274">HADOOP-10274</a>.
     Minor improvement reported by takeshi.miao and fixed by takeshi.miao (security)<br>
     <b>Lower the logging level from ERROR to WARN for UGI.doAs method</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10273">HADOOP-10273</a>.
     Major bug reported by Arpit Agarwal and fixed by Arpit Agarwal (build)<br>
     <b>Fix 'mvn site'</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10255">HADOOP-10255</a>.
     Blocker bug reported by Haohui Mai and fixed by Haohui Mai <br>
     <b>Rename HttpServer to HttpServer2 to retain older HttpServer in branch-2 for compatibility</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10252">HADOOP-10252</a>.
     Major bug reported by Jimmy Xiang and fixed by Jimmy Xiang <br>
     <b>HttpServer can't start if hostname is not specified</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10250">HADOOP-10250</a>.
     Major bug reported by Yongjun Zhang and fixed by Yongjun Zhang <br>
     <b>VersionUtil returns wrong value when comparing two versions</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10248">HADOOP-10248</a>.
     Major improvement reported by Ted Yu and fixed by Akira AJISAKA <br>
     <b>Property name should be included in the exception where property value is null</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10240">HADOOP-10240</a>.
     Trivial bug reported by Chris Nauroth and fixed by Chris Nauroth (documentation)<br>
     <b>Windows build instructions incorrectly state requirement of protoc 2.4.1 instead of 2.5.0</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10236">HADOOP-10236</a>.
     Trivial bug reported by Akira AJISAKA and fixed by Akira AJISAKA <br>
     <b>Fix typo in o.a.h.ipc.Client#checkResponse</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10235">HADOOP-10235</a>.
     Major bug reported by Alejandro Abdelnur and fixed by Alejandro Abdelnur (build)<br>
     <b>Hadoop tarball has 2 versions of stax-api JARs</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10234">HADOOP-10234</a>.
     Major bug reported by Chris Nauroth and fixed by Chris Nauroth (scripts)<br>
     <b>"hadoop.cmd jar" does not propagate exit code.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10228">HADOOP-10228</a>.
     Minor improvement reported by Haohui Mai and fixed by Haohui Mai (fs)<br>
     <b>FsPermission#fromShort() should cache FsAction.values()</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10223">HADOOP-10223</a>.
     Minor bug reported by Ted Yu and fixed by Ted Yu <br>
     <b>MiniKdc#main() should close the FileReader it creates</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10214">HADOOP-10214</a>.
     Major bug reported by Liang Xie and fixed by Liang Xie (ha)<br>
     <b>Fix multithreaded correctness warnings in ActiveStandbyElector</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10212">HADOOP-10212</a>.
     Major bug reported by Akira AJISAKA and fixed by Akira AJISAKA (documentation)<br>
     <b>Incorrect compile command in Native Library document</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10208">HADOOP-10208</a>.
     Trivial improvement reported by Benoy Antony and fixed by Benoy Antony <br>
     <b>Remove duplicate initialization in StringUtils.getStringCollection</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10207">HADOOP-10207</a>.
     Minor test reported by Jimmy Xiang and fixed by Jimmy Xiang <br>
     <b>TestUserGroupInformation#testLogin is flaky</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10203">HADOOP-10203</a>.
     Major bug reported by Andrei Savu and fixed by Andrei Savu (fs/s3)<br>
     <b>Connection leak in Jets3tNativeFileSystemStore#retrieveMetadata </b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10198">HADOOP-10198</a>.
     Minor improvement reported by Colin Patrick McCabe and fixed by Colin Patrick McCabe (native)<br>
     <b>DomainSocket: add support for socketpair</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10193">HADOOP-10193</a>.
     Minor bug reported by Gregory Chanan and fixed by Gregory Chanan (security)<br>
     <b>hadoop-auth's PseudoAuthenticationHandler can consume getInputStream</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10178">HADOOP-10178</a>.
     Major bug reported by shanyu zhao and fixed by shanyu zhao (conf)<br>
     <b>Configuration deprecation always emit "deprecated" warnings when a new key is used</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10175">HADOOP-10175</a>.
     Major bug reported by Chuan Liu and fixed by Chuan Liu (fs)<br>
     <b>Har files system authority should preserve userinfo</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10173">HADOOP-10173</a>.
     Critical improvement reported by Daryn Sharp and fixed by Daryn Sharp (ipc)<br>
     <b>Remove UGI from DIGEST-MD5 SASL server creation</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10172">HADOOP-10172</a>.
     Critical improvement reported by Daryn Sharp and fixed by Daryn Sharp (ipc)<br>
     <b>Cache SASL server factories</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10171">HADOOP-10171</a>.
     Major bug reported by Mit Desai and fixed by Mit Desai <br>
     <b>TestRPC fails intermittently on jkd7</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10169">HADOOP-10169</a>.
     Minor improvement reported by Liang Xie and fixed by Liang Xie (metrics)<br>
     <b>remove the unnecessary  synchronized in JvmMetrics class</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10168">HADOOP-10168</a>.
     Major bug reported by Thejas M Nair and fixed by Thejas M Nair <br>
     <b>fix javadoc of ReflectionUtils.copy </b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10167">HADOOP-10167</a>.
     Major improvement reported by Mikhail Antonov and fixed by  (build)<br>
     <b>Mark hadoop-common source as UTF-8 in Maven pom files / refactoring</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10164">HADOOP-10164</a>.
     Major improvement reported by Robert Joseph Evans and fixed by Robert Joseph Evans <br>
     <b>Allow UGI to login with a known Subject</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10162">HADOOP-10162</a>.
     Major bug reported by Mit Desai and fixed by Mit Desai <br>
     <b>Fix symlink-related test failures in TestFileContextResolveAfs and TestStat in branch-2</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10147">HADOOP-10147</a>.
     Minor bug reported by Eric Sirianni and fixed by Steve Loughran (build)<br>
     <b>Upgrade to commons-logging 1.1.3 to avoid potential deadlock in MiniDFSCluster</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10146">HADOOP-10146</a>.
     Critical bug reported by Daryn Sharp and fixed by Daryn Sharp (util)<br>
     <b>Workaround JDK7 Process fd close bug</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10143">HADOOP-10143</a>.
     Major improvement reported by Liang Xie and fixed by Liang Xie (io)<br>
     <b>replace WritableFactories's hashmap with ConcurrentHashMap</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10142">HADOOP-10142</a>.
     Major bug reported by Vinayakumar B and fixed by Vinayakumar B <br>
     <b>Avoid groups lookup for unprivileged users such as "dr.who"</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10135">HADOOP-10135</a>.
     Major bug reported by David Dobbins and fixed by David Dobbins (fs)<br>
     <b>writes to swift fs over partition size leave temp files and empty output file</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10132">HADOOP-10132</a>.
     Minor improvement reported by Ted Yu and fixed by Ted Yu <br>
     <b>RPC#stopProxy() should log the class of proxy when IllegalArgumentException is encountered</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10130">HADOOP-10130</a>.
     Minor bug reported by Binglin Chang and fixed by Binglin Chang <br>
     <b>RawLocalFS::LocalFSFileInputStream.pread does not track FS::Statistics</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10129">HADOOP-10129</a>.
     Critical bug reported by Daryn Sharp and fixed by Daryn Sharp (tools/distcp)<br>
     <b>Distcp may succeed when it fails</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10127">HADOOP-10127</a>.
     Major bug reported by Karthik Kambatla and fixed by Karthik Kambatla (ipc)<br>
     <b>Add ipc.client.connect.retry.interval to control the frequency of connection retries</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10126">HADOOP-10126</a>.
     Minor bug reported by Vinayakumar B and fixed by Vinayakumar B (util)<br>
     <b>LightWeightGSet log message is confusing : "2.0% max memory = 2.0 GB"</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10125">HADOOP-10125</a>.
     Major bug reported by Ming Ma and fixed by Ming Ma (ipc)<br>
     <b>no need to process RPC request if the client connection has been dropped</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10112">HADOOP-10112</a>.
     Major bug reported by Brandon Li and fixed by Brandon Li (tools)<br>
     <b>har file listing  doesn't work with wild card</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10111">HADOOP-10111</a>.
     Major improvement reported by Kihwal Lee and fixed by Kihwal Lee <br>
     <b>Allow DU to be initialized with an initial value</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10110">HADOOP-10110</a>.
     Blocker bug reported by Chuan Liu and fixed by Chuan Liu (build)<br>
     <b>hadoop-auth has a build break due to missing dependency</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10109">HADOOP-10109</a>.
     Major sub-task reported by Colin Patrick McCabe and fixed by Colin Patrick McCabe (test)<br>
     <b>Fix test failure in TestOfflineEditsViewer introduced by HADOOP-10052</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10107">HADOOP-10107</a>.
     Major sub-task reported by Tsz Wo (Nicholas), SZE and fixed by Kihwal Lee (ipc)<br>
     <b>Server.getNumOpenConnections may throw NPE</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10106">HADOOP-10106</a>.
     Minor bug reported by Ming Ma and fixed by Ming Ma <br>
     <b>Incorrect thread name in RPC log messages</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10103">HADOOP-10103</a>.
     Minor sub-task reported by Steve Loughran and fixed by Akira AJISAKA (build)<br>
     <b>update commons-lang to 2.6</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10102">HADOOP-10102</a>.
     Minor sub-task reported by Steve Loughran and fixed by Akira AJISAKA (build)<br>
     <b>update commons IO from 2.1 to 2.4</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10100">HADOOP-10100</a>.
     Major bug reported by Robert Kanter and fixed by Robert Kanter <br>
     <b>MiniKDC shouldn't use apacheds-all artifact</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10095">HADOOP-10095</a>.
     Minor improvement reported by Nicolas Liochon and fixed by Nicolas Liochon (io)<br>
     <b>Performance improvement in CodecPool</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10094">HADOOP-10094</a>.
     Trivial bug reported by Enis Soztutar and fixed by Enis Soztutar (util)<br>
     <b>NPE in GenericOptionsParser#preProcessForWindows()</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10093">HADOOP-10093</a>.
     Major bug reported by shanyu zhao and fixed by shanyu zhao (conf)<br>
     <b>hadoop-env.cmd sets HADOOP_CLIENT_OPTS with a max heap size that is too small.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10090">HADOOP-10090</a>.
     Major bug reported by Ivan Mitic and fixed by Ivan Mitic (metrics)<br>
     <b>Jobtracker metrics not updated properly after execution of a mapreduce job</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10088">HADOOP-10088</a>.
     Major bug reported by Raja Aluri and fixed by Raja Aluri (build)<br>
     <b>copy-nativedistlibs.sh needs to quote snappy lib dir</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10087">HADOOP-10087</a>.
     Major bug reported by Yu Gao and fixed by Colin Patrick McCabe (security)<br>
     <b>UserGroupInformation.getGroupNames() fails to return primary group first when JniBasedUnixGroupsMappingWithFallback is used</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10086">HADOOP-10086</a>.
     Minor improvement reported by Masatake Iwasaki and fixed by Masatake Iwasaki (documentation)<br>
     <b>User document for authentication in secure cluster</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10081">HADOOP-10081</a>.
     Critical bug reported by Jason Lowe and fixed by Tsuyoshi OZAWA (ipc)<br>
     <b>Client.setupIOStreams can leak socket resources on exception or error</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10079">HADOOP-10079</a>.
     Major improvement reported by Colin Patrick McCabe and fixed by Colin Patrick McCabe <br>
     <b>log a warning message if group resolution takes too long.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10078">HADOOP-10078</a>.
     Minor bug reported by Robert Kanter and fixed by Robert Kanter (security)<br>
     <b>KerberosAuthenticator always does SPNEGO</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10072">HADOOP-10072</a>.
     Trivial bug reported by Chris Nauroth and fixed by Chris Nauroth (nfs , test)<br>
     <b>TestNfsExports#testMultiMatchers fails due to non-deterministic timing around cache expiry check.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10067">HADOOP-10067</a>.
     Minor improvement reported by Robert Rati and fixed by Robert Rati <br>
     <b>Missing POM dependency on jsr305</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10064">HADOOP-10064</a>.
     Major improvement reported by Arpit Agarwal and fixed by Arpit Agarwal (build)<br>
     <b>Upgrade to maven antrun plugin version 1.7</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10058">HADOOP-10058</a>.
     Minor bug reported by Akira AJISAKA and fixed by Chen He (metrics)<br>
     <b>TestMetricsSystemImpl#testInitFirstVerifyStopInvokedImmediately fails on trunk</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10055">HADOOP-10055</a>.
     Trivial bug reported by Eli Collins and fixed by Akira AJISAKA (documentation)<br>
     <b>FileSystemShell.apt.vm doc has typo "numRepicas" </b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10052">HADOOP-10052</a>.
     Major sub-task reported by Andrew Wang and fixed by Andrew Wang (fs)<br>
     <b>Temporarily disable client-side symlink resolution</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10047">HADOOP-10047</a>.
     Major new feature reported by Gopal V and fixed by Gopal V (io)<br>
     <b>Add a directbuffer Decompressor API to hadoop</b><br>
     <blockquote>Direct Bytebuffer decompressors for Zlib (Deflate &amp; Gzip) and Snappy </blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10046">HADOOP-10046</a>.
     Trivial improvement reported by David S. Wang and fixed by David S. Wang <br>
     <b>Print a log message when SSL is enabled</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10040">HADOOP-10040</a>.
     Major bug reported by Yingda Chen and fixed by Chris Nauroth <br>
     <b>hadoop.cmd in UNIX format and would not run by default on Windows</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10039">HADOOP-10039</a>.
     Major bug reported by Suresh Srinivas and fixed by Haohui Mai (security)<br>
     <b>Add Hive to the list of projects using AbstractDelegationTokenSecretManager</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10031">HADOOP-10031</a>.
     Major bug reported by Chuan Liu and fixed by Chuan Liu (fs)<br>
     <b>FsShell -get/copyToLocal/moveFromLocal should support Windows local path</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10030">HADOOP-10030</a>.
     Major bug reported by Chuan Liu and fixed by Chuan Liu <br>
     <b>FsShell -put/copyFromLocal should support Windows local path</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10029">HADOOP-10029</a>.
     Major bug reported by Suresh Srinivas and fixed by Suresh Srinivas (fs)<br>
     <b>Specifying har file to MR job fails in secure cluster</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10028">HADOOP-10028</a>.
     Minor bug reported by Jing Zhao and fixed by Haohui Mai <br>
     <b>Malformed ssl-server.xml.example </b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10006">HADOOP-10006</a>.
     Blocker bug reported by Junping Du and fixed by Junping Du (fs , util)<br>
     <b>Compilation failure in trunk for o.a.h.fs.swift.util.JSONUtil</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10005">HADOOP-10005</a>.
     Trivial improvement reported by Jackie Chang and fixed by Jackie Chang <br>
     <b>No need to check INFO severity level is enabled or not</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9998">HADOOP-9998</a>.
     Major improvement reported by Junping Du and fixed by Junping Du (net)<br>
     <b>Provide methods to clear only part of the DNSToSwitchMapping</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9982">HADOOP-9982</a>.
     Major bug reported by Akira AJISAKA and fixed by Akira AJISAKA (documentation)<br>
     <b>Fix dead links in hadoop site docs</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9981">HADOOP-9981</a>.
     Critical bug reported by Kihwal Lee and fixed by Colin Patrick McCabe <br>
     <b>globStatus should minimize its listStatus and getFileStatus calls</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9964">HADOOP-9964</a>.
     Major bug reported by Junping Du and fixed by Junping Du (util)<br>
     <b>O.A.H.U.ReflectionUtils.printThreadInfo() is not thread-safe which cause TestHttpServer pending 10 minutes or longer.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9956">HADOOP-9956</a>.
     Major sub-task reported by Daryn Sharp and fixed by Daryn Sharp (ipc)<br>
     <b>RPC listener inefficiently assigns connections to readers</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9955">HADOOP-9955</a>.
     Major sub-task reported by Daryn Sharp and fixed by Daryn Sharp (ipc)<br>
     <b>RPC idle connection closing is extremely inefficient</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9929">HADOOP-9929</a>.
     Major bug reported by Jason Lowe and fixed by Colin Patrick McCabe (fs)<br>
     <b>Insufficient permissions for a path reported as file not found</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9915">HADOOP-9915</a>.
     Trivial improvement reported by Binglin Chang and fixed by Binglin Chang <br>
     <b>o.a.h.fs.Stat support on Macosx</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9909">HADOOP-9909</a>.
     Major improvement reported by Shinichi Yamashita and fixed by  (fs)<br>
     <b>org.apache.hadoop.fs.Stat should permit other LANG</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9908">HADOOP-9908</a>.
     Major bug reported by Todd Lipcon and fixed by Todd Lipcon (util)<br>
     <b>Fix NPE when versioninfo properties file is missing</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9898">HADOOP-9898</a>.
     Minor bug reported by Todd Lipcon and fixed by Todd Lipcon (ipc , net)<br>
     <b>Set SO_KEEPALIVE on all our sockets</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9897">HADOOP-9897</a>.
     Trivial improvement reported by Binglin Chang and fixed by Binglin Chang (fs)<br>
     <b>Add method to get path start position without drive specifier in o.a.h.fs.Path  </b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9889">HADOOP-9889</a>.
     Major bug reported by Wei Yan and fixed by Wei Yan <br>
     <b>Refresh the Krb5 configuration when creating a new kdc in Hadoop-MiniKDC</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9887">HADOOP-9887</a>.
     Major bug reported by Chris Nauroth and fixed by Chuan Liu (fs)<br>
     <b>globStatus does not correctly handle paths starting with a drive spec on Windows</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9875">HADOOP-9875</a>.
     Minor bug reported by Aaron T. Myers and fixed by Aaron T. Myers (test)<br>
     <b>TestDoAsEffectiveUser can fail on JDK 7</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9871">HADOOP-9871</a>.
     Minor bug reported by Luke Lu and fixed by Junping Du <br>
     <b>Fix intermittent findbug warnings in DefaultMetricsSystem</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9866">HADOOP-9866</a>.
     Major test reported by Alejandro Abdelnur and fixed by Wei Yan (test)<br>
     <b>convert hadoop-auth testcases requiring kerberos to use minikdc</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9865">HADOOP-9865</a>.
     Major bug reported by Chuan Liu and fixed by Chuan Liu <br>
     <b>FileContext.globStatus() has a regression with respect to relative path</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9860">HADOOP-9860</a>.
     Major improvement reported by Wei Yan and fixed by Wei Yan <br>
     <b>Remove class HackedKeytab and HackedKeytabEncoder from hadoop-minikdc once jira DIRSERVER-1882 solved</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9848">HADOOP-9848</a>.
     Major new feature reported by Wei Yan and fixed by Wei Yan (security , test)<br>
     <b>Create a MiniKDC for use with security testing</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9847">HADOOP-9847</a>.
     Minor bug reported by Andrew Wang and fixed by Colin Patrick McCabe <br>
     <b>TestGlobPath symlink tests fail to cleanup properly</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-9830">HADOOP-9830</a>.
     Trivial bug reported by Dmitry Lysnichenko and fixed by Kousuke Saruta (documentation)<br>
     <b>Typo at http://hadoop.apache.org/docs/current/</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-9817">HADOOP-9817</a>.
     Major bug reported by Colin Patrick McCabe and fixed by Colin Patrick McCabe <br>
     <b>FileSystem#globStatus and FileContext#globStatus need to work with symlinks</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-9791">HADOOP-9791</a>.
     Major bug reported by Ivan Mitic and fixed by Ivan Mitic <br>
     <b>Add a test case covering long paths for new FileUtil access check methods</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-9784">HADOOP-9784</a>.
     Major improvement reported by Junping Du and fixed by Junping Du <br>
     <b>Add a builder for HttpServer</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9748">HADOOP-9748</a>.
     Critical sub-task reported by Daryn Sharp and fixed by Daryn Sharp (security)<br>
     <b>Reduce blocking on UGI.ensureInitialized</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9703">HADOOP-9703</a>.
     Minor bug reported by Mark Miller and fixed by Tsuyoshi OZAWA <br>
     <b>org.apache.hadoop.ipc.Client leaks threads on stop.</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-9693">HADOOP-9693</a>.
     Trivial improvement reported by Steve Loughran and fixed by  <br>
     <b>Shell should add a probe for OSX</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-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-9660">HADOOP-9660</a>.
     Major bug reported by Enis Soztutar and fixed by Enis Soztutar (scripts , util)<br>
     <b>[WINDOWS] Powershell / cmd parses -Dkey=value from command line as [-Dkey, value] which breaks GenericsOptionParser</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9652">HADOOP-9652</a>.
     Major improvement reported by Colin Patrick McCabe and fixed by Andrew Wang <br>
     <b>Allow RawLocalFs#getFileLinkStatus to fill in the link owner and mode if requested</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9635">HADOOP-9635</a>.
     Major bug reported by V. Karthik Kumar and fixed by  (native)<br>
     <b>Fix Potential Stack Overflow in DomainSocket.c</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9623">HADOOP-9623</a>.
     Major improvement reported by Timothy St. Clair and fixed by Amandeep Khurana (fs/s3)<br>
     <b>Update jets3t dependency to  0.9.0 </b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9618">HADOOP-9618</a>.
     Major new feature reported by Todd Lipcon and fixed by Todd Lipcon (util)<br>
     <b>Add thread which detects JVM pauses</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9611">HADOOP-9611</a>.
     Major improvement reported by Timothy St. Clair and fixed by Timothy St. Clair (build)<br>
     <b>mvn-rpmbuild against google-guice &gt; 3.0 yields missing cglib dependency</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9598">HADOOP-9598</a>.
     Major test reported by Aleksey Gorshkov and fixed by Andrey Klochkov <br>
     <b>Improve code coverage of RMAdminCLI</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9594">HADOOP-9594</a>.
     Major improvement reported by Timothy St. Clair and fixed by Timothy St. Clair (build)<br>
     <b>Update apache commons math dependency</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9582">HADOOP-9582</a>.
     Major bug reported by Ashwin Shankar and fixed by Ashwin Shankar (conf)<br>
     <b>Non-existent file to "hadoop fs -conf" doesn't throw error</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-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-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-9494">HADOOP-9494</a>.
     Major improvement reported by Dennis Y and fixed by Andrey Klochkov <br>
     <b>Excluded auto-generated and examples code from clover reports</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9487">HADOOP-9487</a>.
     Major improvement reported by Steve Loughran and fixed by  (conf)<br>
     <b>Deprecation warnings in Configuration should go to their own log or otherwise be suppressible</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9470">HADOOP-9470</a>.
     Major improvement reported by Ivan A. Veselovsky and fixed by Ivan A. Veselovsky (test)<br>
     <b>eliminate duplicate FQN tests in different Hadoop modules</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9432">HADOOP-9432</a>.
     Minor new feature reported by Steve Loughran and fixed by  (build , documentation)<br>
     <b>Add support for markdown .md files in site documentation</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-9420">HADOOP-9420</a>.
     Major bug reported by Todd Lipcon and fixed by Liang Xie (ipc , metrics)<br>
     <b>Add percentile or max metric for rpcQueueTime, processing time</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9417">HADOOP-9417</a>.
     Major sub-task reported by Andrew Wang and fixed by Andrew Wang (fs)<br>
     <b>Support for symlink resolution in LocalFileSystem / RawLocalFileSystem</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9350">HADOOP-9350</a>.
     Minor bug reported by Steve Loughran and fixed by Robert Kanter (build)<br>
     <b>Hadoop not building against Java7 on OSX </b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9319">HADOOP-9319</a>.
     Major improvement reported by Arpit Agarwal and fixed by Binglin Chang <br>
     <b>Update bundled lz4 source to latest version</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9291">HADOOP-9291</a>.
     Major test reported by Ivan A. Veselovsky and fixed by Ivan A. Veselovsky <br>
     <b>enhance unit-test coverage of package o.a.h.metrics2</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9254">HADOOP-9254</a>.
     Major test reported by Vadim Bondarev and fixed by Vadim Bondarev <br>
     <b>Cover packages org.apache.hadoop.util.bloom, org.apache.hadoop.util.hash</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9241">HADOOP-9241</a>.
     Trivial improvement reported by Harsh J and fixed by Harsh J <br>
     <b>DU refresh interval is not configurable</b><br>
     <blockquote>The 'du' (disk usage command from Unix) script refresh monitor is now configurable in the same way as its 'df' counterpart, via the property 'fs.du.interval', the default of which is 10 minute (in ms).</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9225">HADOOP-9225</a>.
     Major test reported by Vadim Bondarev and fixed by Andrey Klochkov <br>
     <b>Cover package org.apache.hadoop.compress.Snappy</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9199">HADOOP-9199</a>.
     Major test reported by Vadim Bondarev and fixed by Andrey Klochkov <br>
     <b>Cover package org.apache.hadoop.io with unit tests</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9114">HADOOP-9114</a>.
     Minor bug reported by liuyang and fixed by sathish <br>
     <b>After defined the dfs.checksum.type as the NULL, write file and hflush will through java.lang.ArrayIndexOutOfBoundsException</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9078">HADOOP-9078</a>.
     Major test reported by Ivan A. Veselovsky and fixed by Ivan A. Veselovsky <br>
     <b>enhance unit-test coverage of class org.apache.hadoop.fs.FileContext</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9063">HADOOP-9063</a>.
     Minor test reported by Ivan A. Veselovsky and fixed by Ivan A. Veselovsky <br>
     <b>enhance unit-test coverage of class org.apache.hadoop.fs.FileUtil</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9016">HADOOP-9016</a>.
     Minor bug reported by Ivan A. Veselovsky and fixed by Ivan A. Veselovsky <br>
     <b>org.apache.hadoop.fs.HarFileSystem.HarFSDataInputStream.HarFsInputStream.skip(long) must never return negative value.</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>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8753">HADOOP-8753</a>.
     Minor bug reported by Nishan Shetty, Huawei and fixed by Benoy Antony <br>
     <b>LocalDirAllocator throws "ArithmeticException: / by zero" when there is no available space on configured local dir</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8704">HADOOP-8704</a>.
     Major improvement reported by Thomas Graves and fixed by Jonathan Eagles <br>
     <b>add request logging to jetty/httpserver</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8545">HADOOP-8545</a>.
     Major new feature reported by Tim Miller and fixed by Dmitry Mezhensky (fs)<br>
     <b>Filesystem Implementation for OpenStack Swift</b><br>
     <blockquote>Added file system implementation for OpenStack Swift.
There are two implementation: block and native (similar to Amazon S3 integration).
Data locality issue solved by patch in Swift, commit procedure to OpenStack is in progress.

To use implementation add to core-site.xml following:
...
	&lt;property&gt;
	        &lt;name&gt;fs.swift.impl&lt;/name&gt;
	    	&lt;value&gt;com.mirantis.fs.SwiftFileSystem&lt;/value&gt;
	&lt;/property&gt;
	&lt;property&gt;
	    	&lt;name&gt;fs.swift.block.impl&lt;/name&gt;
	         &lt;value&gt;com.mirantis.fs.block.SwiftBlockFileSystem&lt;/value&gt;
        &lt;/property&gt;
...

In MapReduce job specify following configs for OpenStack Keystone authentication:
conf.set("swift.auth.url", "http://172.18.66.117:5000/v2.0/tokens");
conf.set("swift.tenant", "superuser");
conf.set("swift.username", "admin1");
conf.set("swift.password", "password");
conf.setInt("swift.http.port", 8080);
conf.setInt("swift.https.port", 443);

Additional information specified on github: https://github.com/DmitryMezhensky/Hadoop-and-Swift-integration</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7344">HADOOP-7344</a>.
     Major bug reported by Daryn Sharp and fixed by Colin Patrick McCabe (fs)<br>
     <b>globStatus doesn't grok groupings with a slash</b><br>
     <blockquote></blockquote></li>
</ul>
</body></html>
<!--
   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.2.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  2.2.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 2.1.1-beta</h2>
<ul>
<li> <a href="https://issues.apache.org/jira/browse/YARN-1278">YARN-1278</a>.
     Blocker bug reported by Yesha Vora and fixed by Hitesh Shah <br>
     <b>New AM does not start after rm restart</b><br>
     <blockquote>The new AM fails to start after RM restarts. It fails to start new Application master and job fails with below error.

 /usr/bin/mapred job -status job_1380985373054_0001
13/10/05 15:04:04 INFO client.RMProxy: Connecting to ResourceManager at hostname
Job: job_1380985373054_0001
Job File: /user/abc/.staging/job_1380985373054_0001/job.xml
Job Tracking URL : http://hostname:8088/cluster/app/application_1380985373054_0001
Uber job : false
Number of maps: 0
Number of reduces: 0
map() completion: 0.0
reduce() completion: 0.0
Job state: FAILED
retired: false
reason for failure: There are no failed tasks for the job. Job is failed due to some other reason and reason can be found in the logs.
Counters: 0</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-1277">YARN-1277</a>.
     Major sub-task reported by Suresh Srinivas and fixed by Omkar Vinit Joshi <br>
     <b>Add http policy support for YARN daemons</b><br>
     <blockquote>This YARN part of HADOOP-10022.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-1274">YARN-1274</a>.
     Blocker bug reported by Alejandro Abdelnur and fixed by Siddharth Seth (nodemanager)<br>
     <b>LCE fails to run containers that don't have resources to localize</b><br>
     <blockquote>LCE container launch assumes the usercache/USER directory exists and it is owned by the user running the container process.

But the directory is created only if there are resources to localize by the LCE localization command, if there are not resourcdes to localize, LCE localization never executes and launching fails reporting 255 exit code and the NM logs have something like:

{code}
2013-10-04 14:07:56,425 INFO org.apache.hadoop.yarn.server.nodemanager.ContainerExecutor: main : command provided 1
2013-10-04 14:07:56,425 INFO org.apache.hadoop.yarn.server.nodemanager.ContainerExecutor: main : user is llama
2013-10-04 14:07:56,425 INFO org.apache.hadoop.yarn.server.nodemanager.ContainerExecutor: Can't create directory llama in /yarn/nm/usercache/llama/appcache/application_1380853306301_0004/container_1380853306301_0004_01_000004 - Permission denied
{code}
</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-1273">YARN-1273</a>.
     Major bug reported by Hitesh Shah and fixed by Hitesh Shah <br>
     <b>Distributed shell does not account for start container failures reported asynchronously.</b><br>
     <blockquote>2013-10-04 22:09:15,234 ERROR [org.apache.hadoop.yarn.client.api.async.impl.NMClientAsyncImpl #1] distributedshell.ApplicationMaster (ApplicationMaster.java:onStartContainerError(719)) - Failed to start Container container_1380920347574_0018_01_000006</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-1271">YARN-1271</a>.
     Major bug reported by Sandy Ryza and fixed by Sandy Ryza (nodemanager)<br>
     <b>"Text file busy" errors launching containers again</b><br>
     <blockquote>The error is shown below in the comments.

MAPREDUCE-2374 fixed this by removing "-c" when running the container launch script.  It looks like the "-c" got brought back during the windows branch merge, so we should remove it again.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-1262">YARN-1262</a>.
     Major bug reported by Sandy Ryza and fixed by Karthik Kambatla <br>
     <b>TestApplicationCleanup relies on all containers assigned in a single heartbeat</b><br>
     <blockquote>TestApplicationCleanup submits container requests and waits for allocations to come in.  It only sends a single node heartbeat to the node, expecting multiple containers to be assigned on this heartbeat, which not all schedulers do by default.

This is causing the test to fail when run with the Fair Scheduler.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-1260">YARN-1260</a>.
     Major sub-task reported by Yesha Vora and fixed by Omkar Vinit Joshi <br>
     <b>RM_HOME link breaks when webapp.https.address related properties are not specified</b><br>
     <blockquote>This issue happens in multiple node cluster where resource manager and node manager are running on different machines.

Steps to reproduce:
1) set yarn.resourcemanager.hostname = &lt;resourcemanager host&gt; in yarn-site.xml
2) set hadoop.ssl.enabled = true in core-site.xml
3) Do not specify below property in yarn-site.xml
yarn.nodemanager.webapp.https.address and yarn.resourcemanager.webapp.https.address
Here, the default value of above two property will be considered.
4) Go to nodemanager web UI "https://&lt;nodemanager host&gt;:8044/node"
5) Click on RM_HOME link 
This link redirects to "https://&lt;nodemanager host&gt;:8090/cluster" instead "https://&lt;resourcemanager host&gt;:8090/cluster"
</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-1256">YARN-1256</a>.
     Critical sub-task reported by Bikas Saha and fixed by Xuan Gong <br>
     <b>NM silently ignores non-existent service in StartContainerRequest</b><br>
     <blockquote>A container can set token service metadata for a service, say shuffle_service. If that service does not exist then the errors is silently ignored. Later, when the next container wants to access data written to shuffle_service by the first task, then it fails because the service does not have the token that was supposed to be set by the first task.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-1254">YARN-1254</a>.
     Major sub-task reported by Vinod Kumar Vavilapalli and fixed by Omkar Vinit Joshi <br>
     <b>NM is polluting container's credentials</b><br>
     <blockquote>Before launching the container, NM is using the same credential object and so is polluting what container should see. We should fix this.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-1251">YARN-1251</a>.
     Major bug reported by Junping Du and fixed by Xuan Gong (applications/distributed-shell)<br>
     <b>TestDistributedShell#TestDSShell failed with timeout</b><br>
     <blockquote>TestDistributedShell#TestDSShell on trunk Jenkins are failed consistently recently.
The Stacktrace is:
{code}
java.lang.Exception: test timed out after 90000 milliseconds
	at com.google.protobuf.LiteralByteString.&lt;init&gt;(LiteralByteString.java:234)
	at com.google.protobuf.ByteString.copyFromUtf8(ByteString.java:255)
	at org.apache.hadoop.ipc.protobuf.ProtobufRpcEngineProtos$RequestHeaderProto.getMethodNameBytes(ProtobufRpcEngineProtos.java:286)
	at org.apache.hadoop.ipc.protobuf.ProtobufRpcEngineProtos$RequestHeaderProto.getSerializedSize(ProtobufRpcEngineProtos.java:462)
	at com.google.protobuf.AbstractMessageLite.writeDelimitedTo(AbstractMessageLite.java:84)
	at org.apache.hadoop.ipc.ProtobufRpcEngine$RpcMessageWithHeader.write(ProtobufRpcEngine.java:302)
	at org.apache.hadoop.ipc.Client$Connection.sendRpcRequest(Client.java:989)
	at org.apache.hadoop.ipc.Client.call(Client.java:1377)
	at org.apache.hadoop.ipc.Client.call(Client.java:1357)
	at org.apache.hadoop.ipc.ProtobufRpcEngine$Invoker.invoke(ProtobufRpcEngine.java:206)
	at $Proxy70.getApplicationReport(Unknown Source)
	at org.apache.hadoop.yarn.api.impl.pb.client.ApplicationClientProtocolPBClientImpl.getApplicationReport(ApplicationClientProtocolPBClientImpl.java:137)
	at sun.reflect.GeneratedMethodAccessor40.invoke(Unknown Source)
	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:185)
	at org.apache.hadoop.io.retry.RetryInvocationHandler.invoke(RetryInvocationHandler.java:101)
	at $Proxy71.getApplicationReport(Unknown Source)
	at org.apache.hadoop.yarn.client.api.impl.YarnClientImpl.getApplicationReport(YarnClientImpl.java:195)
	at org.apache.hadoop.yarn.applications.distributedshell.Client.monitorApplication(Client.java:622)
	at org.apache.hadoop.yarn.applications.distributedshell.Client.run(Client.java:597)
	at org.apache.hadoop.yarn.applications.distributedshell.TestDistributedShell.testDSShell(TestDistributedShell.java:125)
{code}
For details, please refer:
https://builds.apache.org/job/PreCommit-YARN-Build/2039//testReport/</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-1247">YARN-1247</a>.
     Major bug reported by Roman Shaposhnik and fixed by Roman Shaposhnik (nodemanager)<br>
     <b>test-container-executor has gotten out of sync with the changes to container-executor</b><br>
     <blockquote>If run under the super-user account test-container-executor.c fails in multiple different places. It would be nice to fix it so that we have better testing of LCE functionality.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-1246">YARN-1246</a>.
     Minor improvement reported by Arpit Gupta and fixed by Arpit Gupta <br>
     <b>Log application status in the rm log when app is done running</b><br>
     <blockquote>Since there is no yarn history server it becomes difficult to determine what the status of an old application is. One has to be familiar with the state transition in yarn to know what means a success.

We should add a log at info level that captures what the finalStatus of an app is. This would be helpful while debugging applications if the RM has restarted and we no longer can use the UI.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-1236">YARN-1236</a>.
     Major bug reported by Sandy Ryza and fixed by Sandy Ryza (resourcemanager)<br>
     <b>FairScheduler setting queue name in RMApp is not working </b><br>
     <blockquote>The fair scheduler sometimes picks a different queue than the one an application was submitted to, such as when user-as-default-queue is turned on.  It needs to update the queue name in the RMApp so that this choice will be reflected in the UI.

This isn't working because the scheduler is looking up the RMApp by application attempt id instead of app id and failing to find it.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-1229">YARN-1229</a>.
     Blocker bug reported by Tassapol Athiapinya and fixed by Xuan Gong (nodemanager)<br>
     <b>Define constraints on Auxiliary Service names. Change ShuffleHandler service name from mapreduce.shuffle to mapreduce_shuffle.</b><br>
     <blockquote>I run sleep job. If AM fails to start, this exception could occur:

13/09/20 11:00:23 INFO mapreduce.Job: Job job_1379673267098_0020 failed with state FAILED due to: Application application_1379673267098_0020 failed 1 times due to AM Container for appattempt_1379673267098_0020_000001 exited with  exitCode: 1 due to: Exception from container-launch:
org.apache.hadoop.util.Shell$ExitCodeException: /myappcache/application_1379673267098_0020/container_1379673267098_0020_01_000001/launch_container.sh: line 12: export: `NM_AUX_SERVICE_mapreduce.shuffle=AAA0+gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
': not a valid identifier

at org.apache.hadoop.util.Shell.runCommand(Shell.java:464)
at org.apache.hadoop.util.Shell.run(Shell.java:379)
at org.apache.hadoop.util.Shell$ShellCommandExecutor.execute(Shell.java:589)
at org.apache.hadoop.yarn.server.nodemanager.DefaultContainerExecutor.launchContainer(DefaultContainerExecutor.java:195)
at org.apache.hadoop.yarn.server.nodemanager.containermanager.launcher.ContainerLaunch.call(ContainerLaunch.java:270)
at org.apache.hadoop.yarn.server.nodemanager.containermanager.launcher.ContainerLaunch.call(ContainerLaunch.java:78)
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)
.Failing this attempt.. Failing the application.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-1228">YARN-1228</a>.
     Major improvement reported by Sandy Ryza and fixed by Sandy Ryza (scheduler)<br>
     <b>Clean up Fair Scheduler configuration loading</b><br>
     <blockquote>Currently the Fair Scheduler is configured in two ways
* An allocations file that has a different format than the standard Hadoop configuration file, which makes it easier to specify hierarchical objects like queues and their properties. 
* With properties like yarn.scheduler.fair.max.assign that are specified in the standard Hadoop configuration format.

The standard and default way of configuring it is to use fair-scheduler.xml as the allocations file and to put the yarn.scheduler properties in yarn-site.xml.

It is also possible to specify a different file as the allocations file, and to place the yarn.scheduler properties in fair-scheduler.xml, which will be interpreted as in the standard Hadoop configuration format.  This flexibility is both confusing and unnecessary.

Additionally, the allocation file is loaded as fair-scheduler.xml from the classpath if it is not specified, but is loaded as a File if it is.  This causes two problems
1. We see different behavior when not setting the yarn.scheduler.fair.allocation.file, and setting it to fair-scheduler.xml, which is its default.
2. Classloaders may choose to cache resources, which can break the reload logic when yarn.scheduler.fair.allocation.file is not specified.

We should never allow the yarn.scheduler properties to go into fair-scheduler.xml.  And we should always load the allocations file as a file, not as a resource on the classpath.  To preserve existing behavior and allow loading files from the classpath, we can look for files on the classpath, but strip of their scheme and interpret them as Files.
</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-1221">YARN-1221</a>.
     Major bug reported by Sandy Ryza and fixed by Siqi Li (resourcemanager , scheduler)<br>
     <b>With Fair Scheduler, reserved MB reported in RM web UI increases indefinitely</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-1219">YARN-1219</a>.
     Major bug reported by shanyu zhao and fixed by shanyu zhao (nodemanager)<br>
     <b>FSDownload changes file suffix making FileUtil.unTar() throw exception</b><br>
     <blockquote>While running a Hive join operation on Yarn, I saw exception as described below. This is caused by FSDownload copy the files into a temp file and change the suffix into ".tmp" before unpacking it. In unpack(), it uses FileUtil.unTar() which will determine if the file is "gzipped" by looking at the file suffix:
{code}
boolean gzipped = inFile.toString().endsWith("gz");
{code}

To fix this problem, we can remove the ".tmp" in the temp file name.

Here is the detailed exception:

org.apache.commons.compress.archivers.tar.TarArchiveInputStream.getNextTarEntry(TarArchiveInputStream.java:240)
	at org.apache.hadoop.fs.FileUtil.unTarUsingJava(FileUtil.java:676)
	at org.apache.hadoop.fs.FileUtil.unTar(FileUtil.java:625)
	at org.apache.hadoop.yarn.util.FSDownload.unpack(FSDownload.java:203)
	at org.apache.hadoop.yarn.util.FSDownload.call(FSDownload.java:287)
	at org.apache.hadoop.yarn.util.FSDownload.call(FSDownload.java:50)
	at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
	at java.util.concurrent.FutureTask.run(FutureTask.java:166)
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
	at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
	at java.util.concurrent.FutureTask.run(FutureTask.java:166)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)

at java.lang.Thread.run(Thread.java:722)</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-1215">YARN-1215</a>.
     Major bug reported by Chuan Liu and fixed by Chuan Liu (api)<br>
     <b>Yarn URL should include userinfo</b><br>
     <blockquote>In the {{org.apache.hadoop.yarn.api.records.URL}} class, we don't have an userinfo as part of the URL. When converting a {{java.net.URI}} object into the YARN URL object in {{ConverterUtils.getYarnUrlFromURI()}} method, we will set uri host as the url host. If the uri has a userinfo part, the userinfo is discarded. This will lead to information loss if the original uri has the userinfo, e.g. foo://username:password@example.com will be converted to foo://example.com and username/password information is lost during the conversion.

</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-1214">YARN-1214</a>.
     Critical sub-task reported by Jian He and fixed by Jian He (resourcemanager)<br>
     <b>Register ClientToken MasterKey in SecretManager after it is saved</b><br>
     <blockquote>Currently, app attempt ClientToken master key is registered before it is saved. This can cause problem that before the master key is saved, client gets the token and RM also crashes, RM cannot reloads the master key back after it restarts as it is not saved. As a result, client is holding an invalid token.

We can register the client token master key after it is saved in the store.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-1213">YARN-1213</a>.
     Major improvement reported by Sandy Ryza and fixed by Sandy Ryza (scheduler)<br>
     <b>Restore config to ban submitting to undeclared pools in the Fair Scheduler</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-1204">YARN-1204</a>.
     Major sub-task reported by Yesha Vora and fixed by Omkar Vinit Joshi <br>
     <b>Need to add https port related property in Yarn</b><br>
     <blockquote>There is no yarn property available to configure https port for Resource manager, nodemanager and history server. Currently, Yarn services uses the port defined for http [defined by 'mapreduce.jobhistory.webapp.address','yarn.nodemanager.webapp.address', 'yarn.resourcemanager.webapp.address'] for running services on https protocol.

Yarn should have list of property to assign https port for RM, NM and JHS.
It can be like below.
yarn.nodemanager.webapp.https.address
yarn.resourcemanager.webapp.https.address
mapreduce.jobhistory.webapp.https.address </blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-1203">YARN-1203</a>.
     Major sub-task reported by Yesha Vora and fixed by Omkar Vinit Joshi <br>
     <b>Application Manager UI does not appear with Https enabled</b><br>
     <blockquote>Need to add support to disable 'hadoop.ssl.enabled' for MR jobs.

A job should be able to run on http protocol by setting 'hadoop.ssl.enabled' property at job level.
</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-1167">YARN-1167</a>.
     Major bug reported by Tassapol Athiapinya and fixed by Xuan Gong (applications/distributed-shell)<br>
     <b>Submitted distributed shell application shows appMasterHost = empty</b><br>
     <blockquote>Submit distributed shell application. Once the application turns to be RUNNING state, app master host should not be empty. In reality, it is empty.

==console logs==
distributedshell.Client: Got application report from ASM for, appId=12, clientToAMToken=null, appDiagnostics=, appMasterHost=, appQueue=default, appMasterRpcPort=0, appStartTime=1378505161360, yarnAppState=RUNNING, distributedFinalState=UNDEFINED, 
</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-1157">YARN-1157</a>.
     Major bug reported by Tassapol Athiapinya and fixed by Xuan Gong (resourcemanager)<br>
     <b>ResourceManager UI has invalid tracking URL link for distributed shell application</b><br>
     <blockquote>Submit YARN distributed shell application. Goto ResourceManager Web UI. The application definitely appears. In Tracking UI column, there will be history link. Click on that link. Instead of showing application master web UI, HTTP error 500 would appear.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-1149">YARN-1149</a>.
     Major bug reported by Ramya Sunil and fixed by Xuan Gong <br>
     <b>NM throws InvalidStateTransitonException: Invalid event: APPLICATION_LOG_HANDLING_FINISHED at RUNNING</b><br>
     <blockquote>When nodemanager receives a kill signal when an application has finished execution but log aggregation has not kicked in, InvalidStateTransitonException: Invalid event: APPLICATION_LOG_HANDLING_FINISHED at RUNNING is thrown

{noformat}
2013-08-25 20:45:00,875 INFO  logaggregation.AppLogAggregatorImpl (AppLogAggregatorImpl.java:finishLogAggregation(254)) - Application just finished : application_1377459190746_0118
2013-08-25 20:45:00,876 INFO  logaggregation.AppLogAggregatorImpl (AppLogAggregatorImpl.java:uploadLogsForContainer(105)) - Starting aggregate log-file for app application_1377459190746_0118 at /app-logs/foo/logs/application_1377459190746_0118/&lt;host&gt;_45454.tmp
2013-08-25 20:45:00,876 INFO  logaggregation.LogAggregationService (LogAggregationService.java:stopAggregators(151)) - Waiting for aggregation to complete for application_1377459190746_0118
2013-08-25 20:45:00,891 INFO  logaggregation.AppLogAggregatorImpl (AppLogAggregatorImpl.java:uploadLogsForContainer(122)) - Uploading logs for container container_1377459190746_0118_01_000004. Current good log dirs are /tmp/yarn/local
2013-08-25 20:45:00,915 INFO  logaggregation.AppLogAggregatorImpl (AppLogAggregatorImpl.java:doAppLogAggregation(182)) - Finished aggregate log-file for app application_1377459190746_0118
2013-08-25 20:45:00,925 WARN  application.Application (ApplicationImpl.java:handle(427)) - Can't handle this event at current state
org.apache.hadoop.yarn.state.InvalidStateTransitonException: Invalid event: APPLICATION_LOG_HANDLING_FINISHED at RUNNING
        at org.apache.hadoop.yarn.state.StateMachineFactory.doTransition(StateMachineFactory.java:305) 
        at org.apache.hadoop.yarn.state.StateMachineFactory.access$300(StateMachineFactory.java:46)
        at org.apache.hadoop.yarn.state.StateMachineFactory$InternalStateMachine.doTransition(StateMachineFactory.java:448)
        at org.apache.hadoop.yarn.server.nodemanager.containermanager.application.ApplicationImpl.handle(ApplicationImpl.java:425)
        at org.apache.hadoop.yarn.server.nodemanager.containermanager.application.ApplicationImpl.handle(ApplicationImpl.java:59)
        at org.apache.hadoop.yarn.server.nodemanager.containermanager.ContainerManagerImpl$ApplicationEventDispatcher.handle(ContainerManagerImpl.java:697)
        at org.apache.hadoop.yarn.server.nodemanager.containermanager.ContainerManagerImpl$ApplicationEventDispatcher.handle(ContainerManagerImpl.java:689)
        at org.apache.hadoop.yarn.event.AsyncDispatcher.dispatch(AsyncDispatcher.java:134)
        at org.apache.hadoop.yarn.event.AsyncDispatcher$1.run(AsyncDispatcher.java:81)   
        at java.lang.Thread.run(Thread.java:662)
2013-08-25 20:45:00,926 INFO  application.Application (ApplicationImpl.java:handle(430)) - Application application_1377459190746_0118 transitioned from RUNNING to null
2013-08-25 20:45:00,927 WARN  monitor.ContainersMonitorImpl (ContainersMonitorImpl.java:run(463)) - org.apache.hadoop.yarn.server.nodemanager.containermanager.monitor.ContainersMonitorImpl is interrupted. Exiting.
2013-08-25 20:45:00,938 INFO  ipc.Server (Server.java:stop(2437)) - Stopping server on 8040
{noformat}

</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-1141">YARN-1141</a>.
     Major bug reported by Zhijie Shen and fixed by Zhijie Shen <br>
     <b>Updating resource requests should be decoupled with updating blacklist</b><br>
     <blockquote>Currently, in CapacityScheduler and FifoScheduler, blacklist is updated together with resource requests, only when the incoming resource requests are not empty. Therefore, when the incoming resource requests are empty, the blacklist will not be updated even when blacklist additions and removals are not empty.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-1131">YARN-1131</a>.
     Minor sub-task reported by Tassapol Athiapinya and fixed by Siddharth Seth (client)<br>
     <b>$yarn logs command should return an appropriate error message if YARN application is still running</b><br>
     <blockquote>In the case when log aggregation is enabled, if a user submits MapReduce job and runs $ yarn logs -applicationId &lt;app ID&gt; while the YARN application is running, the command will return no message and return user back to shell. It is nice to tell the user that log aggregation is in progress.

{code}
-bash-4.1$ /usr/bin/yarn logs -applicationId application_1377900193583_0002
-bash-4.1$
{code}

At the same time, if invalid application ID is given, YARN CLI should say that the application ID is incorrect rather than throwing NoSuchElementException.
{code}
$ /usr/bin/yarn logs -applicationId application_00000
Exception in thread "main" java.util.NoSuchElementException
at com.google.common.base.AbstractIterator.next(AbstractIterator.java:75)
at org.apache.hadoop.yarn.util.ConverterUtils.toApplicationId(ConverterUtils.java:124)
at org.apache.hadoop.yarn.util.ConverterUtils.toApplicationId(ConverterUtils.java:119)
at org.apache.hadoop.yarn.logaggregation.LogDumper.run(LogDumper.java:110)
at org.apache.hadoop.yarn.logaggregation.LogDumper.main(LogDumper.java:255)

{code}
</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-1128">YARN-1128</a>.
     Major bug reported by Sandy Ryza and fixed by Karthik Kambatla (scheduler)<br>
     <b>FifoPolicy.computeShares throws NPE on empty list of Schedulables</b><br>
     <blockquote>FifoPolicy gives all of a queue's share to the earliest-scheduled application.

{code}
    Schedulable earliest = null;
    for (Schedulable schedulable : schedulables) {
      if (earliest == null ||
          schedulable.getStartTime() &lt; earliest.getStartTime()) {
        earliest = schedulable;
      }
    }
    earliest.setFairShare(Resources.clone(totalResources));
{code}

If the queue has no schedulables in it, earliest will be left null, leading to an NPE on the last line.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-1090">YARN-1090</a>.
     Major bug reported by Yesha Vora and fixed by Jian He <br>
     <b>Job does not get into Pending State</b><br>
     <blockquote>When there is no resource available to run a job, next job should go in pending state. RM UI should show next job as pending app and the counter for the pending app should be incremented.

But Currently. Next job stays in ACCEPTED state and No AM has been assigned to this job.Though Pending App count is not incremented. 
Running 'job status &lt;nextjob&gt;' shows job state=PREP. 

$ mapred job -status job_1377122233385_0002
13/08/21 21:59:23 INFO client.RMProxy: Connecting to ResourceManager at host1/ip1

Job: job_1377122233385_0002
Job File: /ABC/.staging/job_1377122233385_0002/job.xml
Job Tracking URL : http://host1:port1/application_1377122233385_0002/
Uber job : false
Number of maps: 0
Number of reduces: 0
map() completion: 0.0
reduce() completion: 0.0
Job state: PREP
retired: false
reason for failure:</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-1070">YARN-1070</a>.
     Major sub-task reported by Hitesh Shah and fixed by Zhijie Shen (nodemanager)<br>
     <b>ContainerImpl State Machine: Invalid event: CONTAINER_KILLED_ON_REQUEST at CONTAINER_CLEANEDUP_AFTER_KILL</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-1032">YARN-1032</a>.
     Critical bug reported by Lohit Vijayarenu and fixed by Lohit Vijayarenu <br>
     <b>NPE in RackResolve</b><br>
     <blockquote>We found a case where our rack resolve script was not returning rack due to problem with resolving host address. This exception was see in RackResolver.java as NPE, ultimately caught in RMContainerAllocator. 

{noformat}
2013-08-01 07:11:37,708 ERROR [RMCommunicator Allocator] org.apache.hadoop.mapreduce.v2.app.rm.RMContainerAllocator: ERROR IN CONTACTING RM. 
java.lang.NullPointerException
	at org.apache.hadoop.yarn.util.RackResolver.coreResolve(RackResolver.java:99)
	at org.apache.hadoop.yarn.util.RackResolver.resolve(RackResolver.java:92)
	at org.apache.hadoop.mapreduce.v2.app.rm.RMContainerAllocator$ScheduledRequests.assignMapsWithLocality(RMContainerAllocator.java:1039)
	at org.apache.hadoop.mapreduce.v2.app.rm.RMContainerAllocator$ScheduledRequests.assignContainers(RMContainerAllocator.java:925)
	at org.apache.hadoop.mapreduce.v2.app.rm.RMContainerAllocator$ScheduledRequests.assign(RMContainerAllocator.java:861)
	at org.apache.hadoop.mapreduce.v2.app.rm.RMContainerAllocator$ScheduledRequests.access$400(RMContainerAllocator.java:681)
	at org.apache.hadoop.mapreduce.v2.app.rm.RMContainerAllocator.heartbeat(RMContainerAllocator.java:219)
	at org.apache.hadoop.mapreduce.v2.app.rm.RMCommunicator$1.run(RMCommunicator.java:243)
	at java.lang.Thread.run(Thread.java:722)

{noformat}</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-899">YARN-899</a>.
     Major sub-task reported by Sandy Ryza and fixed by Xuan Gong (scheduler)<br>
     <b>Get queue administration ACLs working</b><br>
     <blockquote>The Capacity Scheduler documents the yarn.scheduler.capacity.root.&lt;queue-path&gt;.acl_administer_queue config option for controlling who can administer a queue, but it is not hooked up to anything.  The Fair Scheduler could make use of a similar option as well.  This is a feature-parity regression from MR1.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-890">YARN-890</a>.
     Major bug reported by Trupti Dhavle and fixed by Xuan Gong (resourcemanager)<br>
     <b>The roundup for memory values on resource manager UI is misleading</b><br>
     <blockquote>
From the yarn-site.xml, I see following values-
&lt;property&gt;
&lt;name&gt;yarn.nodemanager.resource.memory-mb&lt;/name&gt;
&lt;value&gt;4192&lt;/value&gt;
&lt;/property&gt;
&lt;property&gt;
&lt;name&gt;yarn.scheduler.maximum-allocation-mb&lt;/name&gt;
&lt;value&gt;4192&lt;/value&gt;
&lt;/property&gt;
&lt;property&gt;
&lt;name&gt;yarn.scheduler.minimum-allocation-mb&lt;/name&gt;
&lt;value&gt;1024&lt;/value&gt;
&lt;/property&gt;

However the resourcemanager UI shows total memory as 5MB 
</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-876">YARN-876</a>.
     Major bug reported by PengZhang and fixed by PengZhang (resourcemanager)<br>
     <b>Node resource is added twice when node comes back from unhealthy to healthy</b><br>
     <blockquote>When an unhealthy restarts, its resource maybe added twice in scheduler.
First time is at node's reconnection, while node's final state is still "UNHEALTHY".
And second time is at node's update, while node's state changing from "UNHEALTHY" to "HEALTHY".</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-621">YARN-621</a>.
     Critical sub-task reported by Allen Wittenauer and fixed by Omkar Vinit Joshi (resourcemanager)<br>
     <b>RM triggers web auth failure before first job</b><br>
     <blockquote>On a secure YARN setup, before the first job is executed, going to the web interface of the resource manager triggers authentication errors.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/YARN-49">YARN-49</a>.
     Major sub-task reported by Hitesh Shah and fixed by Vinod Kumar Vavilapalli (applications/distributed-shell)<br>
     <b>Improve distributed shell application to work on a secure cluster</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5562">MAPREDUCE-5562</a>.
     Major sub-task reported by Zhijie Shen and fixed by Zhijie Shen <br>
     <b>MR AM should exit when unregister() throws exception</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5554">MAPREDUCE-5554</a>.
     Minor bug reported by Robert Kanter and fixed by Robert Kanter (test)<br>
     <b>hdfs-site.xml included in hadoop-mapreduce-client-jobclient tests jar is breaking tests for downstream components</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5551">MAPREDUCE-5551</a>.
     Blocker sub-task reported by Zhijie Shen and fixed by Zhijie Shen <br>
     <b>Binary Incompatibility of O.A.H.U.mapred.SequenceFileAsBinaryOutputFormat.WritableValueBytes</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5545">MAPREDUCE-5545</a>.
     Major bug reported by Robert Kanter and fixed by Robert Kanter <br>
     <b>org.apache.hadoop.mapred.TestTaskAttemptListenerImpl.testCommitWindow times out</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5544">MAPREDUCE-5544</a>.
     Major bug reported by Sandy Ryza and fixed by Sandy Ryza <br>
     <b>JobClient#getJob loads job conf twice</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5538">MAPREDUCE-5538</a>.
     Blocker sub-task reported by Zhijie Shen and fixed by Zhijie Shen <br>
     <b>MRAppMaster#shutDownJob shouldn't send job end notification before checking isLastRetry</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5536">MAPREDUCE-5536</a>.
     Blocker bug reported by Yesha Vora and fixed by Omkar Vinit Joshi <br>
     <b>mapreduce.jobhistory.webapp.https.address property is not respected</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5533">MAPREDUCE-5533</a>.
     Major bug reported by Tassapol Athiapinya and fixed by Xuan Gong (applicationmaster)<br>
     <b>Speculative execution does not function for reduce</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5531">MAPREDUCE-5531</a>.
     Blocker sub-task reported by Robert Kanter and fixed by Robert Kanter (mrv1 , mrv2)<br>
     <b>Binary and source incompatibility in mapreduce.TaskID and mapreduce.TaskAttemptID between branch-1 and branch-2</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5530">MAPREDUCE-5530</a>.
     Blocker sub-task reported by Robert Kanter and fixed by Robert Kanter (mrv1 , mrv2)<br>
     <b>Binary and source incompatibility in mapred.lib.CombineFileInputFormat between branch-1 and branch-2</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5529">MAPREDUCE-5529</a>.
     Blocker sub-task reported by Robert Kanter and fixed by Robert Kanter (mrv1 , mrv2)<br>
     <b>Binary incompatibilities in mapred.lib.TotalOrderPartitioner between branch-1 and branch-2</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5525">MAPREDUCE-5525</a>.
     Minor test reported by Chuan Liu and fixed by Chuan Liu (mrv2 , test)<br>
     <b>Increase timeout of TestDFSIO.testAppend and TestMRJobsWithHistoryService.testJobHistoryData</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5523">MAPREDUCE-5523</a>.
     Major bug reported by Omkar Vinit Joshi and fixed by Omkar Vinit Joshi <br>
     <b>Need to add https port related property in Job history server</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5515">MAPREDUCE-5515</a>.
     Major bug reported by Omkar Vinit Joshi and fixed by Omkar Vinit Joshi <br>
     <b>Application Manager UI does not appear with Https enabled</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5513">MAPREDUCE-5513</a>.
     Major bug reported by Jason Lowe and fixed by Robert Parker <br>
     <b>ConcurrentModificationException in JobControl</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5505">MAPREDUCE-5505</a>.
     Critical sub-task reported by Jian He and fixed by Zhijie Shen <br>
     <b>Clients should be notified job finished only after job successfully unregistered </b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5503">MAPREDUCE-5503</a>.
     Blocker bug reported by Jason Lowe and fixed by Jian He (mrv2)<br>
     <b>TestMRJobClient.testJobClient is failing</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5489">MAPREDUCE-5489</a>.
     Critical bug reported by Yesha Vora and fixed by Zhijie Shen <br>
     <b>MR jobs hangs as it does not use the node-blacklisting feature in RM requests</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5488">MAPREDUCE-5488</a>.
     Major bug reported by Arpit Gupta and fixed by Jian He <br>
     <b>Job recovery fails after killing all the running containers for the app</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5459">MAPREDUCE-5459</a>.
     Major bug reported by Zhijie Shen and fixed by Zhijie Shen <br>
     <b>Update the doc of running MRv1 examples jar on YARN</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5442">MAPREDUCE-5442</a>.
     Major bug reported by Yingda Chen and fixed by Yingda Chen (client)<br>
     <b>$HADOOP_MAPRED_HOME/$HADOOP_CONF_DIR setting not working on Windows</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5170">MAPREDUCE-5170</a>.
     Trivial bug reported by Sangjin Lee and fixed by Sangjin Lee (mrv2)<br>
     <b>incorrect exception message if min node size &gt; min rack size</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5308">HDFS-5308</a>.
     Major improvement reported by Haohui Mai and fixed by Haohui Mai <br>
     <b>Replace HttpConfig#getSchemePrefix with implicit schemes in HDFS JSP </b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5306">HDFS-5306</a>.
     Major sub-task reported by Suresh Srinivas and fixed by Suresh Srinivas (datanode , namenode)<br>
     <b>Datanode https port is not available at the namenode</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5300">HDFS-5300</a>.
     Major bug reported by Vinay and fixed by Vinay (namenode)<br>
     <b>FSNameSystem#deleteSnapshot() should not check owner in case of permissions disabled</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5299">HDFS-5299</a>.
     Blocker bug reported by Vinay and fixed by Vinay (namenode)<br>
     <b>DFS client hangs in updatePipeline RPC when failover happened</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5289">HDFS-5289</a>.
     Major bug reported by Aaron T. Myers and fixed by Aaron T. Myers (test)<br>
     <b>Race condition in TestRetryCacheWithHA#testCreateSymlink causes spurious test failure</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5279">HDFS-5279</a>.
     Major bug reported by Chris Nauroth and fixed by Chris Nauroth (namenode)<br>
     <b>Guard against NullPointerException in NameNode JSP pages before initialization of FSNamesystem.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5268">HDFS-5268</a>.
     Major bug reported by Brandon Li and fixed by Brandon Li (nfs)<br>
     <b>NFS write commit verifier is not set in a few places</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5265">HDFS-5265</a>.
     Major bug reported by Haohui Mai and fixed by Haohui Mai <br>
     <b>Namenode fails to start when dfs.https.port is unspecified</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5259">HDFS-5259</a>.
     Major sub-task reported by Yesha Vora and fixed by Brandon Li (nfs)<br>
     <b>Support client which combines appended data with old data before sends it to NFS server</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5258">HDFS-5258</a>.
     Minor bug reported by Chris Nauroth and fixed by Chuan Liu (test)<br>
     <b>Skip tests in TestHDFSCLI that are not applicable on Windows.</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5256">HDFS-5256</a>.
     Major improvement reported by Haohui Mai and fixed by Haohui Mai (nfs)<br>
     <b>Use guava LoadingCache to implement DFSClientCache</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5255">HDFS-5255</a>.
     Major bug reported by Yesha Vora and fixed by Arpit Agarwal <br>
     <b>Distcp job fails with hsftp when https is enabled in insecure cluster</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5251">HDFS-5251</a>.
     Major bug reported by Haohui Mai and fixed by Haohui Mai <br>
     <b>Race between the initialization of NameNode and the http server</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5246">HDFS-5246</a>.
     Major sub-task reported by Jinghui Wang and fixed by Jinghui Wang (nfs)<br>
     <b>Make Hadoop nfs server port and mount daemon port configurable</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5230">HDFS-5230</a>.
     Major sub-task reported by Haohui Mai and fixed by Haohui Mai (nfs)<br>
     <b>Introduce RpcInfo to decouple XDR classes from the RPC API</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5228">HDFS-5228</a>.
     Blocker bug reported by Tsz Wo (Nicholas), SZE and fixed by Tsz Wo (Nicholas), SZE (hdfs-client)<br>
     <b>The RemoteIterator returned by DistributedFileSystem.listFiles(..) may throw NPE</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5186">HDFS-5186</a>.
     Minor test reported by Chuan Liu and fixed by Chuan Liu (namenode , test)<br>
     <b>TestFileJournalManager fails on Windows due to file handle leaks</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5139">HDFS-5139</a>.
     Major improvement reported by Arpit Agarwal and fixed by Arpit Agarwal (tools)<br>
     <b>Remove redundant -R option from setrep</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-5031">HDFS-5031</a>.
     Blocker bug reported by Vinay and fixed by Vinay (datanode)<br>
     <b>BlockScanner scans the block multiple times and on restart scans everything</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HDFS-4817">HDFS-4817</a>.
     Minor improvement reported by Colin Patrick McCabe and fixed by Colin Patrick McCabe (hdfs-client)<br>
     <b>make HDFS advisory caching configurable on a per-file basis</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10020">HADOOP-10020</a>.
     Blocker sub-task reported by Colin Patrick McCabe and fixed by Sanjay Radia (fs)<br>
     <b>disable symlinks temporarily</b><br>
     <blockquote>During review of symbolic links, many issues were found related impact on semantics of existing APIs such FileSystem#listStatus, FileSystem#globStatus etc. There were also many issues brought up about symbolic links and the impact on security and functionality of HDFS. All these issues will be address in the upcoming release 2.3. Until then the feature is temporarily disabled.</blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10017">HADOOP-10017</a>.
     Major sub-task reported by Jing Zhao and fixed by Haohui Mai <br>
     <b>Fix NPE in DFSClient#getDelegationToken when doing Distcp from a secured cluster to an insecured cluster</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10012">HADOOP-10012</a>.
     Blocker bug reported by Arpit Gupta and fixed by Suresh Srinivas (ha)<br>
     <b>Secure Oozie jobs fail with delegation token renewal exception in Namenode HA setup</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10003">HADOOP-10003</a>.
     Major bug reported by Jason Dere and fixed by  (fs)<br>
     <b>HarFileSystem.listLocatedStatus() fails</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9976">HADOOP-9976</a>.
     Major bug reported by Karthik Kambatla and fixed by Karthik Kambatla <br>
     <b>Different versions of avro and avro-maven-plugin</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9948">HADOOP-9948</a>.
     Minor test reported by Chuan Liu and fixed by Chuan Liu (test)<br>
     <b>Add a config value to CLITestHelper to skip tests on Windows</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9776">HADOOP-9776</a>.
     Major bug reported by shanyu zhao and fixed by shanyu zhao (fs)<br>
     <b>HarFileSystem.listStatus() returns invalid authority if port number is empty</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9761">HADOOP-9761</a>.
     Blocker bug reported by Andrew Wang and fixed by Andrew Wang (viewfs)<br>
     <b>ViewFileSystem#rename fails when using DistributedFileSystem</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9758">HADOOP-9758</a>.
     Major improvement reported by Andrew Wang and fixed by Andrew Wang <br>
     <b>Provide configuration option for FileSystem/FileContext symlink resolution</b><br>
     <blockquote></blockquote></li>
<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8315">HADOOP-8315</a>.
     Major improvement reported by Todd Lipcon and fixed by Todd Lipcon (auto-failover , ha)<br>
     <b>Support SASL-authenticated ZooKeeper in ActiveStandbyElector</b><br>
     <blockquote></blockquote></li>
</ul>
</body></html>
<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>
