diff --git a/hadoop-common-project/hadoop-common/src/main/docs/releasenotes.html b/hadoop-common-project/hadoop-common/src/main/docs/releasenotes.html
index acd0c56..c797aa8 100644
--- a/hadoop-common-project/hadoop-common/src/main/docs/releasenotes.html
+++ b/hadoop-common-project/hadoop-common/src/main/docs/releasenotes.html
@@ -1,5 +1,5 @@
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Hadoop  2.6.0 Release Notes</title>
+<title>Hadoop  2.7.0 Release Notes</title>
 <STYLE type="text/css">
 	H1 {font-family: sans-serif}
 	H2 {font-family: sans-serif; margin-left: 7mm}
@@ -7,29168 +7,3731 @@
 </STYLE>
 </head>
 <body>
-<h1>Hadoop  2.6.0 Release Notes</h1>
+<h1>Hadoop  2.7.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.5.1</h2>
+<h2>Changes since Hadoop 2.6.0</h2>
 <ul>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2853">YARN-2853</a>.
-     Major bug reported by Jian He and fixed by Jian He <br>
-     <b>Killing app may hang while AM is unregistering</b><br>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-3430">YARN-3430</a>.
+     Blocker sub-task reported by Xuan Gong and fixed by Xuan Gong (resourcemanager , webapp , yarn)<br>
+     <b>RMAppAttempt headroom data is missing in RM Web UI</b><br>
      <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2846">YARN-2846</a>.
-     Blocker bug reported by Junping Du and fixed by Junping Du (nodemanager)<br>
-     <b>Incorrect persist exit code for running containers in reacquireContainer() that interrupted by NodeManager restart.</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2843">YARN-2843</a>.
-     Major sub-task reported by Sushmitha Sreenivasan and fixed by Wangda Tan (resourcemanager)<br>
-     <b>NodeLabels manager should trim all inputs for hosts and labels</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2841">YARN-2841</a>.
-     Critical sub-task reported by Jian He and fixed by Jian He (resourcemanager)<br>
-     <b>RMProxy should retry EOFException </b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2834">YARN-2834</a>.
-     Blocker bug reported by Yesha Vora and fixed by Jian He <br>
-     <b>Resource manager crashed with Null Pointer Exception</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2830">YARN-2830</a>.
-     Blocker bug reported by Jonathan Eagles and fixed by Jonathan Eagles <br>
-     <b>Add backwords compatible ContainerId.newInstance constructor for use within Tez Local Mode</b><br>
-     <blockquote>I just committed this. Thanks [~jeagles] for the patch and [~ozawa] for the reviews!</blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2827">YARN-2827</a>.
-     Critical bug reported by Wangda Tan and fixed by Wangda Tan (client)<br>
-     <b>Fix bugs of yarn queue CLI</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2826">YARN-2826</a>.
-     Critical bug reported by Sidharta Seethana and fixed by Wangda Tan <br>
-     <b>User-Group mappings not updated by RM when a user is removed from a group.</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2825">YARN-2825</a>.
-     Critical bug reported by Jian He and fixed by Jian He <br>
-     <b>Container leak on NM</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2824">YARN-2824</a>.
-     Critical sub-task reported by Wangda Tan and fixed by Wangda Tan (resourcemanager)<br>
-     <b>Capacity of labels should be zero by default</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2823">YARN-2823</a>.
-     Critical bug reported by Gour Saha and fixed by Jian He (resourcemanager)<br>
-     <b>NullPointerException in RM HA enabled 3-node cluster</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2819">YARN-2819</a>.
-     Critical bug reported by Gopal V and fixed by Zhijie Shen (timelineserver)<br>
-     <b>NPE in ATS Timeline Domains when upgrading from 2.4 to 2.6</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2818">YARN-2818</a>.
+<li> <a href="https://issues.apache.org/jira/browse/YARN-3393">YARN-3393</a>.
      Critical bug reported by Zhijie Shen and fixed by Zhijie Shen (timelineserver)<br>
-     <b>Remove the logic to inject entity owner as the primary filter</b><br>
+     <b>Getting application(s) goes wrong when app finishes before starting the attempt</b><br>
      <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2813">YARN-2813</a>.
-     Major bug reported by Zhijie Shen and fixed by Zhijie Shen (timelineserver)<br>
-     <b>NPE from MemoryTimelineStore.getDomains</b><br>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-3384">YARN-3384</a>.
+     Minor bug reported by Naganarasimha G R and fixed by Naganarasimha G R <br>
+     <b>TestLogAggregationService.verifyContainerLogs fails after YARN-2777</b><br>
      <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2812">YARN-2812</a>.
-     Major test reported by Zhijie Shen and fixed by Zhijie Shen (timelineserver)<br>
-     <b>TestApplicationHistoryServer is likely to fail on less powerful machine</b><br>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-3379">YARN-3379</a>.
+     Major sub-task reported by Xuan Gong and fixed by Xuan Gong (resourcemanager , webapp , yarn)<br>
+     <b>Missing data in localityTable and ResourceRequests table in RM WebUI</b><br>
      <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2810">YARN-2810</a>.
-     Major test reported by Varun Vasudev and fixed by Varun Vasudev (resourcemanager)<br>
-     <b>TestRMProxyUsersConf fails on Windows VMs</b><br>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-3369">YARN-3369</a>.
+     Blocker bug reported by Giovanni Matteo Fumarola and fixed by Brahma Reddy Battula (resourcemanager)<br>
+     <b>Missing NullPointer check in AppSchedulingInfo causes RM to die </b><br>
      <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2805">YARN-2805</a>.
-     Blocker bug reported by Arpit Gupta and fixed by Wangda Tan (resourcemanager)<br>
-     <b>RM2 in HA setup tries to login using the RM1's kerberos principal</b><br>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-3349">YARN-3349</a>.
+     Minor improvement reported by zhihai xu and fixed by zhihai xu (test)<br>
+     <b>Treat all exceptions as failure in TestFSRMStateStore#testFSRMStateStoreClientRetry</b><br>
      <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2804">YARN-2804</a>.
-     Critical bug reported by Zhijie Shen and fixed by Zhijie Shen <br>
-     <b>Timeline server .out log have JAXB binding exceptions and warnings.</b><br>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-3338">YARN-3338</a>.
+     Blocker bug reported by Zhijie Shen and fixed by Zhijie Shen (build)<br>
+     <b>Exclude jline dependency from YARN</b><br>
      <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2803">YARN-2803</a>.
-     Critical bug reported by Chris Nauroth and fixed by Craig Welch (nodemanager)<br>
-     <b>MR distributed cache not working correctly on Windows after NodeManager privileged account changes.</b><br>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-3336">YARN-3336</a>.
+     Critical bug reported by zhihai xu and fixed by zhihai xu (resourcemanager)<br>
+     <b>FileSystem memory leak in DelegationTokenRenewer</b><br>
      <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2798">YARN-2798</a>.
-     Blocker bug reported by Arpit Gupta and fixed by Zhijie Shen (timelineserver)<br>
-     <b>YarnClient doesn't need to translate Kerberos name of timeline DT renewer</b><br>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-3304">YARN-3304</a>.
+     Blocker bug reported by Junping Du and fixed by Junping Du (nodemanager)<br>
+     <b>ResourceCalculatorProcessTree#getCpuUsagePercent default return value is inconsistent with other getters</b><br>
      <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2795">YARN-2795</a>.
-     Major sub-task reported by Phil D'Amore and fixed by Wangda Tan (resourcemanager)<br>
-     <b>Resource Manager fails startup with HDFS label storage and secure cluster</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2794">YARN-2794</a>.
-     Major bug reported by Jian He and fixed by Jian He <br>
-     <b>Fix log msgs about distributing system-credentials </b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2790">YARN-2790</a>.
-     Critical bug reported by Tassapol Athiapinya and fixed by Jian He (nodemanager)<br>
-     <b>NM can't aggregate logs past HDFS delegation token expiry.</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2789">YARN-2789</a>.
-     Critical task reported by Siddharth Seth and fixed by Wangda Tan <br>
-     <b>Re-instate the NodeReport.newInstance API modified in YARN-2698</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2788">YARN-2788</a>.
-     Blocker bug reported by Gopal V and fixed by Xuan Gong (log-aggregation)<br>
-     <b>yarn logs -applicationId on 2.6.0 should support logs written by 2.4.0</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2785">YARN-2785</a>.
-     Major test reported by Varun Vasudev and fixed by Varun Vasudev <br>
-     <b>TestContainerResourceUsage fails intermittently</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2779">YARN-2779</a>.
-     Critical bug reported by Zhijie Shen and fixed by Zhijie Shen (resourcemanager , timelineserver)<br>
-     <b>SystemMetricsPublisher can use Kerberos directly instead of timeline DT</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2778">YARN-2778</a>.
-     Major sub-task reported by Wangda Tan and fixed by Wangda Tan (client)<br>
-     <b>YARN node CLI should display labels on returned node reports</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2770">YARN-2770</a>.
-     Critical sub-task reported by Zhijie Shen and fixed by Zhijie Shen (timelineserver)<br>
-     <b>Timeline delegation tokens need to be automatically renewed by the RM</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2769">YARN-2769</a>.
-     Major bug reported by Varun Vasudev and fixed by Varun Vasudev (applications/distributed-shell)<br>
-     <b>Timeline server domain not set correctly when using shell_command on Windows</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2767">YARN-2767</a>.
-     Major test reported by Varun Vasudev and fixed by Varun Vasudev (resourcemanager)<br>
-     <b>RM web services - add test case to ensure the http static user cannot kill or submit apps in secure mode</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2760">YARN-2760</a>.
-     Trivial bug reported by Harsh J and fixed by Harsh J (documentation)<br>
-     <b>Completely remove word 'experimental' from FairScheduler docs</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2758">YARN-2758</a>.
-     Major test reported by Zhijie Shen and fixed by Zhijie Shen (timelineserver)<br>
-     <b>Update TestApplicationHistoryClientService to use the new generic history store</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2755">YARN-2755</a>.
-     Critical bug reported by Siqi Li and fixed by Siqi Li <br>
-     <b>NM fails to clean up usercache_DEL_&lt;timestamp&gt; dirs after YARN-661</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2753">YARN-2753</a>.
-     Major sub-task reported by zhihai xu and fixed by zhihai xu <br>
-     <b>Fix potential issues and code clean up for *NodeLabelsManager</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2752">YARN-2752</a>.
-     Critical bug reported by Xuan Gong and fixed by Xuan Gong <br>
-     <b>ContainerExecutor always append "nice -n" in command on branch-2</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2747">YARN-2747</a>.
-     Major test reported by Xuan Gong and fixed by Xuan Gong <br>
-     <b>TestAggregatedLogFormat fails in trunk</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2744">YARN-2744</a>.
-     Critical sub-task reported by Sumit Mohanty and fixed by Wangda Tan (capacityscheduler)<br>
-     <b>Under some scenario, it is possible to end up with capacity scheduler configuration that uses labels that no longer exist</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2743">YARN-2743</a>.
-     Blocker bug reported by Arpit Gupta and fixed by Jian He (resourcemanager)<br>
-     <b>Yarn jobs via oozie fail with failed to renew token (secure) or digest mismatch (unsecure) errors when RM is being killed</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2741">YARN-2741</a>.
-     Major bug reported by Craig Welch and fixed by Craig Welch (nodemanager)<br>
-     <b>Windows: Node manager cannot serve up log files via the web user interface when yarn.nodemanager.log-dirs to any drive letter other than C: (or, the drive that nodemanager is running on)</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2734">YARN-2734</a>.
-     Major bug reported by Sumit Mohanty and fixed by Xuan Gong (log-aggregation)<br>
-     <b>If a sub-folder is encountered by log aggregator it results in invalid aggregated file</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2732">YARN-2732</a>.
-     Major bug reported by Jian He and fixed by Jian He <br>
-     <b>Fix syntax error in SecureContainer.apt.vm</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2730">YARN-2730</a>.
-     Critical bug reported by Siqi Li and fixed by Siqi Li <br>
-     <b>DefaultContainerExecutor runs only one localizer at a time</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2726">YARN-2726</a>.
-     Minor sub-task reported by Phil D'Amore and fixed by Wangda Tan (capacityscheduler)<br>
-     <b>CapacityScheduler should explicitly log when an accessible label has no capacity</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2724">YARN-2724</a>.
-     Major bug reported by Sumit Mohanty and fixed by Xuan Gong (log-aggregation)<br>
-     <b>If an unreadable file is encountered during log aggregation then aggregated file in HDFS badly formed</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2723">YARN-2723</a>.
-     Major sub-task reported by Phil D'Amore and fixed by Naganarasimha G R (client)<br>
-     <b>rmadmin -replaceLabelsOnNode does not correctly parse port</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2721">YARN-2721</a>.
-     Blocker bug reported by Jian He and fixed by Jian He <br>
-     <b>Race condition: ZKRMStateStore retry logic may throw NodeExist exception </b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2720">YARN-2720</a>.
-     Major bug reported by Craig Welch and fixed by Craig Welch (nodemanager)<br>
-     <b>Windows: Wildcard classpath variables not expanded against resources contained in archives</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2717">YARN-2717</a>.
-     Major sub-task reported by Xuan Gong and fixed by Xuan Gong (log-aggregation)<br>
-     <b>containerLogNotFound log shows multiple time for the same container</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2715">YARN-2715</a>.
-     Blocker bug reported by Zhijie Shen and fixed by Zhijie Shen (resourcemanager)<br>
-     <b>Proxy user is problem for RPC interface if yarn.resourcemanager.webapp.proxyuser is not set.</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2711">YARN-2711</a>.
-     Major test reported by Varun Vasudev and fixed by Varun Vasudev <br>
-     <b>TestDefaultContainerExecutor#testContainerLaunchError fails on Windows</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2709">YARN-2709</a>.
-     Major sub-task reported by Li Lu and fixed by Li Lu <br>
-     <b>Add retry for timeline client getDelegationToken method</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2707">YARN-2707</a>.
-     Minor bug reported by Ted Yu and fixed by Gera Shegalov <br>
-     <b>Potential null dereference in FSDownload</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2705">YARN-2705</a>.
-     Critical sub-task reported by Wangda Tan and fixed by Wangda Tan (api , client , resourcemanager)<br>
-     <b>Changes of RM node label manager default configuration</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2704">YARN-2704</a>.
-     Critical sub-task reported by Jian He and fixed by Jian He <br>
-     <b> Localization and log-aggregation will fail if hdfs delegation token expired after token-max-life-time</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2703">YARN-2703</a>.
-     Major sub-task reported by Xuan Gong and fixed by Xuan Gong (nodemanager , resourcemanager)<br>
-     <b>Add logUploadedTime into LogValue for better display</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2701">YARN-2701</a>.
-     Blocker bug reported by Xuan Gong and fixed by Xuan Gong <br>
-     <b>Potential race condition in startLocalizer when using LinuxContainerExecutor  </b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2700">YARN-2700</a>.
-     Major sub-task reported by Steve Loughran and fixed by Steve Loughran (api , resourcemanager)<br>
-     <b>TestSecureRMRegistryOperations failing on windows: auth problems</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2699">YARN-2699</a>.
-     Blocker sub-task reported by Wangda Tan and fixed by Wangda Tan (client)<br>
-     <b>Fix test timeout in TestResourceTrackerOnHA#testResourceTrackerOnHA</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2698">YARN-2698</a>.
-     Critical sub-task reported by Wangda Tan and fixed by Wangda Tan (api , client , resourcemanager)<br>
-     <b>Move getClusterNodeLabels and getNodeToLabels to YarnClient instead of AdminService</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2692">YARN-2692</a>.
-     Major sub-task reported by Steve Loughran and fixed by Steve Loughran <br>
-     <b>ktutil test hanging on some machines/ktutil versions</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2689">YARN-2689</a>.
-     Major sub-task reported by Steve Loughran and fixed by Steve Loughran (api , resourcemanager)<br>
-     <b>TestSecureRMRegistryOperations failing on windows: secure ZK won't start</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2685">YARN-2685</a>.
-     Major sub-task reported by Wangda Tan and fixed by Wangda Tan (api , client , resourcemanager)<br>
-     <b>Resource on each label not correct when multiple NMs in a same host and some has label some not</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2682">YARN-2682</a>.
-     Minor bug reported by zhihai xu and fixed by zhihai xu (nodemanager)<br>
-     <b>WindowsSecureContainerExecutor should not depend on DefaultContainerExecutor#getFirstApplicationDir. </b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2678">YARN-2678</a>.
-     Major sub-task reported by Gour Saha and fixed by Steve Loughran (api , resourcemanager)<br>
-     <b>Improved Yarn Registry service record structure</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2677">YARN-2677</a>.
-     Major sub-task reported by Steve Loughran and fixed by Steve Loughran (api , resourcemanager)<br>
-     <b>registry punycoding of usernames doesn't fix all usernames to be DNS-valid</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2676">YARN-2676</a>.
-     Major sub-task reported by Zhijie Shen and fixed by Zhijie Shen (timelineserver)<br>
-     <b>Timeline authentication filter should add support for proxy user</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2673">YARN-2673</a>.
-     Major sub-task reported by Li Lu and fixed by Li Lu <br>
-     <b>Add retry for timeline client put APIs</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2671">YARN-2671</a>.
-     Blocker bug reported by Zhijie Shen and fixed by Wangda Tan (resourcemanager)<br>
-     <b>ApplicationSubmissionContext change breaks the existing app submission</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2668">YARN-2668</a>.
-     Major sub-task reported by Steve Loughran and fixed by Steve Loughran (client)<br>
-     <b>yarn-registry JAR won't link against ZK 3.4.5</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2667">YARN-2667</a>.
-     Minor bug reported by Yi Liu and fixed by Yi Liu <br>
-     <b>Fix the release audit warning caused by hadoop-yarn-registry</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2662">YARN-2662</a>.
-     Minor bug reported by Chris Nauroth and fixed by Chris Nauroth (test)<br>
-     <b>TestCgroupsLCEResourcesHandler leaks file descriptors.</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2656">YARN-2656</a>.
-     Major bug reported by Varun Vasudev and fixed by Zhijie Shen (resourcemanager)<br>
-     <b>RM web services authentication filter should add support for proxy user</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2652">YARN-2652</a>.
-     Major sub-task reported by Steve Loughran and fixed by Steve Loughran (api)<br>
-     <b>add hadoop-yarn-registry package under hadoop-yarn</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2651">YARN-2651</a>.
-     Major sub-task reported by Xuan Gong and fixed by Xuan Gong (nodemanager , resourcemanager)<br>
-     <b>Spin off the LogRollingInterval from LogAggregationContext</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2649">YARN-2649</a>.
-     Major bug reported by Ming Ma and fixed by Ming Ma <br>
-     <b>Flaky test TestAMRMRPCNodeUpdates</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2647">YARN-2647</a>.
-     Major sub-task reported by Wangda Tan and fixed by Sunil G (client)<br>
-     <b>Add yarn queue CLI to get queue infos</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2644">YARN-2644</a>.
-     Major sub-task reported by Craig Welch and fixed by Craig Welch <br>
-     <b>Recalculate headroom more frequently to keep it accurate</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2635">YARN-2635</a>.
-     Major bug reported by Wei Yan and fixed by Wei Yan <br>
-     <b>TestRM, TestRMRestart, TestClientToAMTokens should run with both CS and FS</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2632">YARN-2632</a>.
-     Blocker sub-task reported by Junping Du and fixed by Junping Du (nodemanager)<br>
-     <b>Document NM Restart feature</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2630">YARN-2630</a>.
-     Major bug reported by Jian He and fixed by Jian He <br>
-     <b>TestDistributedShell#testDSRestartWithPreviousRunningContainers fails</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2629">YARN-2629</a>.
-     Major sub-task reported by Zhijie Shen and fixed by Zhijie Shen (timelineserver)<br>
-     <b>Make distributed shell use the domain-based timeline ACLs</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2628">YARN-2628</a>.
-     Major bug reported by Varun Vasudev and fixed by Varun Vasudev (capacityscheduler)<br>
-     <b>Capacity scheduler with DominantResourceCalculator carries out reservation even though slots are free</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2627">YARN-2627</a>.
-     Major improvement reported by Xuan Gong and fixed by Xuan Gong <br>
-     <b>Add logs when attemptFailuresValidityInterval is enabled</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2624">YARN-2624</a>.
-     Blocker bug reported by Anubhav Dhoot and fixed by Anubhav Dhoot (nodemanager)<br>
-     <b>Resource Localization fails on a cluster due to existing cache directories</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2621">YARN-2621</a>.
-     Major sub-task reported by Zhijie Shen and fixed by Zhijie Shen (timelineserver)<br>
-     <b>Simplify the output when the user doesn't have the access for getDomain(s) </b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2617">YARN-2617</a>.
-     Major bug reported by Jun Gong and fixed by Jun Gong (nodemanager)<br>
-     <b>NM does not need to send finished container whose APP is not running to RM</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2615">YARN-2615</a>.
-     Blocker sub-task reported by Junping Du and fixed by Junping Du <br>
-     <b>ClientToAMTokenIdentifier and DelegationTokenIdentifier should allow extended fields</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2611">YARN-2611</a>.
-     Major sub-task reported by Subru Krishnan and fixed by Subru Krishnan (capacityscheduler , resourcemanager , scheduler)<br>
-     <b>Fix jenkins findbugs warning and test case failures for trunk merge patch</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2610">YARN-2610</a>.
-     Major bug reported by Ray Chiang and fixed by Ray Chiang <br>
-     <b>Hamlet should close table tags</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2608">YARN-2608</a>.
-     Major bug reported by Wei Yan and fixed by Wei Yan <br>
-     <b>FairScheduler: Potential deadlocks in loading alloc files and clock access</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2607">YARN-2607</a>.
-     Major test reported by Ted Yu and fixed by Wangda Tan <br>
-     <b>TestDistributedShell fails in trunk</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2606">YARN-2606</a>.
-     Major bug reported by Mit Desai and fixed by Mit Desai (timelineserver)<br>
-     <b>Application History Server tries to access hdfs before doing secure login</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2602">YARN-2602</a>.
-     Major bug reported by Karam Singh and fixed by Zhijie Shen (timelineserver)<br>
-     <b>Generic History Service of TimelineServer sometimes not able to handle NPE</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2596">YARN-2596</a>.
-     Major test reported by Junping Du and fixed by Karthik Kambatla <br>
-     <b>TestWorkPreservingRMRestart fails with FairScheduler</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2594">YARN-2594</a>.
-     Blocker bug reported by Karam Singh and fixed by Wangda Tan (resourcemanager)<br>
-     <b>Potential deadlock in RM when querying ApplicationResourceUsageReport</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2591">YARN-2591</a>.
-     Major sub-task reported by Zhijie Shen and fixed by Zhijie Shen (timelineserver)<br>
-     <b>AHSWebServices should return FORBIDDEN(403) if the request user doesn't have access to the history data</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2588">YARN-2588</a>.
-     Major bug reported by Rohith and fixed by Rohith (resourcemanager)<br>
-     <b>Standby RM does not transitionToActive if previous transitionToActive is failed with ZK exception.</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2584">YARN-2584</a>.
-     Major test reported by Zhijie Shen and fixed by Jian He <br>
-     <b>TestContainerManagerSecurity fails on trunk</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2583">YARN-2583</a>.
-     Major sub-task reported by Xuan Gong and fixed by Xuan Gong (nodemanager , resourcemanager)<br>
-     <b>Modify the LogDeletionService to support Log aggregation for LRS</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2582">YARN-2582</a>.
-     Major sub-task reported by Xuan Gong and fixed by Xuan Gong (nodemanager , resourcemanager)<br>
-     <b>Log related CLI and Web UI changes for Aggregated Logs in LRS</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2581">YARN-2581</a>.
-     Major sub-task reported by Xuan Gong and fixed by Xuan Gong (nodemanager , resourcemanager)<br>
-     <b>NMs need to find a way to get LogAggregationContext</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2579">YARN-2579</a>.
-     Blocker bug reported by Rohith and fixed by Rohith (resourcemanager)<br>
-     <b>Deadlock when EmbeddedElectorService and FatalEventDispatcher try to transition RM to StandBy at the same time</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2577">YARN-2577</a>.
-     Trivial improvement reported by Miklos Christine and fixed by Miklos Christine (documentation , fairscheduler)<br>
-     <b>Clarify ACL delimiter and how to configure ACL groups only</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2576">YARN-2576</a>.
-     Major sub-task reported by Subru Krishnan and fixed by Subru Krishnan (capacityscheduler , resourcemanager , scheduler)<br>
-     <b>Prepare yarn-1051 branch for merging with trunk</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2569">YARN-2569</a>.
-     Major sub-task reported by Xuan Gong and fixed by Xuan Gong (nodemanager , resourcemanager)<br>
-     <b>API changes for handling logs of long-running services</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2568">YARN-2568</a>.
-     Major bug reported by Jian He and fixed by Jian He <br>
-     <b>TestAMRMClientOnRMRestart test fails</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2566">YARN-2566</a>.
-     Critical sub-task reported by zhihai xu and fixed by zhihai xu (nodemanager)<br>
-     <b>DefaultContainerExecutor should pick a working directory randomly</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2565">YARN-2565</a>.
-     Major bug reported by Karam Singh and fixed by Zhijie Shen (resourcemanager , timelineserver)<br>
-     <b>RM shouldn't use the old RMApplicationHistoryWriter unless explicitly setting FileSystemApplicationHistoryStore</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2563">YARN-2563</a>.
-     Blocker bug reported by Arpit Gupta and fixed by Zhijie Shen (timelineserver)<br>
-     <b>On secure clusters call to timeline server fails with authentication errors when running a job via oozie</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2562">YARN-2562</a>.
-     Critical bug reported by Vinod Kumar Vavilapalli and fixed by Tsuyoshi OZAWA <br>
-     <b>ContainerId@toString() is unreadable for epoch &gt;0 after YARN-2182</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2561">YARN-2561</a>.
-     Blocker sub-task reported by Tassapol Athiapinya and fixed by Junping Du <br>
-     <b>MR job client cannot reconnect to AM after NM restart.</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2559">YARN-2559</a>.
-     Major bug reported by Karam Singh and fixed by Zhijie Shen (resourcemanager , timelineserver)<br>
-     <b>ResourceManager sometime become un-responsive due to NPE in SystemMetricsPublisher</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2558">YARN-2558</a>.
-     Blocker sub-task reported by Tsuyoshi OZAWA and fixed by Tsuyoshi OZAWA <br>
-     <b>Updating ContainerTokenIdentifier#read/write to use ContainerId#getContainerId</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2557">YARN-2557</a>.
-     Major bug reported by Xuan Gong and fixed by Xuan Gong (applications/distributed-shell)<br>
-     <b>Add a parameter "attempt_Failures_Validity_Interval" in DistributedShell </b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2549">YARN-2549</a>.
-     Minor test reported by Chris Nauroth and fixed by Chris Nauroth (nodemanager , test)<br>
-     <b>TestContainerLaunch fails due to classpath problem with hamcrest classes.</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2547">YARN-2547</a>.
-     Major sub-task reported by Jonathan Eagles and fixed by Mit Desai (timelineserver)<br>
-     <b>Cross Origin Filter throws UnsupportedOperationException upon destroy</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2546">YARN-2546</a>.
-     Major bug reported by Doug Haigh and fixed by Varun Vasudev (api)<br>
-     <b>REST API for application creation/submission is using strings for numeric &amp; boolean values</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2544">YARN-2544</a>.
-     Major sub-task reported by Wangda Tan and fixed by Wangda Tan (api , client , resourcemanager)<br>
-     <b>Common server side PB changes (not include user API PB changes)</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2542">YARN-2542</a>.
-     Major sub-task reported by Zhijie Shen and fixed by Zhijie Shen <br>
-     <b>"yarn application -status &lt;appId&gt;" throws NPE when retrieving the app from the timelineserver</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2541">YARN-2541</a>.
-     Major bug reported by Jian He and fixed by Jian He <br>
-     <b>Fix ResourceManagerRest.apt.vm syntax error</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2540">YARN-2540</a>.
-     Major bug reported by Ashwin Shankar and fixed by Ashwin Shankar (scheduler)<br>
-     <b>FairScheduler: Queue filters not working on scheduler page in RM UI</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2539">YARN-2539</a>.
-     Minor improvement reported by Wei Yan and fixed by Wei Yan <br>
-     <b>FairScheduler: Set the default value for maxAMShare to 0.5</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2538">YARN-2538</a>.
+<li> <a href="https://issues.apache.org/jira/browse/YARN-3300">YARN-3300</a>.
      Major sub-task reported by Xuan Gong and fixed by Xuan Gong (resourcemanager)<br>
-     <b>Add logs when RM send new AMRMToken to ApplicationMaster</b><br>
+     <b>outstanding_resource_requests table should not be shown in AHS</b><br>
      <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2534">YARN-2534</a>.
-     Major bug reported by zhihai xu and fixed by zhihai xu (scheduler)<br>
-     <b>FairScheduler: Potential integer overflow calculating totalMaxShare</b><br>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-3296">YARN-3296</a>.
+     Major bug reported by Hitesh Shah and fixed by Hitesh Shah <br>
+     <b>yarn.nodemanager.container-monitor.process-tree.class is configurable but ResourceCalculatorProcessTree class is marked Private</b><br>
      <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2531">YARN-2531</a>.
-     Major improvement reported by Varun Vasudev and fixed by Varun Vasudev <br>
-     <b>CGroups - Admins should be allowed to enforce strict cpu limits</b><br>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-3295">YARN-3295</a>.
+     Trivial bug reported by Masatake Iwasaki and fixed by Masatake Iwasaki (documentation)<br>
+     <b>Fix documentation nits found in markdown conversion</b><br>
      <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2529">YARN-2529</a>.
-     Major sub-task reported by Zhijie Shen and fixed by Zhijie Shen (timelineserver)<br>
-     <b>Generic history service RPC interface doesn't work when service authorization is enabled</b><br>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-3287">YARN-3287</a>.
+     Major bug reported by Jonathan Eagles and fixed by Daryn Sharp <br>
+     <b>TimelineClient kerberos authentication failure uses wrong login context.</b><br>
      <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2528">YARN-2528</a>.
-     Major sub-task reported by Jonathan Eagles and fixed by Jonathan Eagles (timelineserver)<br>
-     <b>Cross Origin Filter Http response split vulnerability protection rejects valid origins</b><br>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-3285">YARN-3285</a>.
+     Major improvement reported by Masatake Iwasaki and fixed by Masatake Iwasaki (documentation)<br>
+     <b>Convert branch-2 .apt.vm files of YARN to markdown</b><br>
      <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2527">YARN-2527</a>.
-     Major bug reported by Benoy Antony and fixed by Benoy Antony (resourcemanager)<br>
-     <b>NPE in ApplicationACLsManager</b><br>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-3281">YARN-3281</a>.
+     Minor bug reported by Chengbing Liu and fixed by Chengbing Liu (scripts)<br>
+     <b>Add RMStateStore to StateMachine visualization list</b><br>
      <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2526">YARN-2526</a>.
-     Critical bug reported by Wei Yan and fixed by Wei Yan (scheduler-load-simulator)<br>
-     <b>SLS can deadlock when all the threads are taken by AMSimulators</b><br>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-3275">YARN-3275</a>.
+     Major bug reported by Eric Payne and fixed by Eric Payne <br>
+     <b>CapacityScheduler: Preemption happening on non-preemptable queues</b><br>
      <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2523">YARN-2523</a>.
-     Major bug reported by Nishan Shetty and fixed by Rohith (resourcemanager , webapp)<br>
-     <b>ResourceManager UI showing negative value for "Decommissioned Nodes" field</b><br>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-3273">YARN-3273</a>.
+     Major improvement reported by Jian He and fixed by Rohith <br>
+     <b>Improve web UI to facilitate scheduling analysis and debugging</b><br>
      <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2519">YARN-2519</a>.
-     Major test reported by Xiaoyu Yao and fixed by Xiaoyu Yao (webapp)<br>
-     <b>Credential Provider related unit tests failed on Windows</b><br>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-3272">YARN-3272</a>.
+     Major improvement reported by Jian He and fixed by Jian He <br>
+     <b>Surface container locality info in RM web UI</b><br>
      <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2515">YARN-2515</a>.
-     Major sub-task reported by Tsuyoshi OZAWA and fixed by Tsuyoshi OZAWA (resourcemanager)<br>
-     <b>Update ConverterUtils#toContainerId to parse epoch</b><br>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-3270">YARN-3270</a>.
+     Minor bug reported by Rohit Agarwal and fixed by Rohit Agarwal <br>
+     <b>node label expression not getting set in ApplicationSubmissionContext</b><br>
      <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2512">YARN-2512</a>.
-     Major sub-task reported by Jonathan Eagles and fixed by Jonathan Eagles (timelineserver)<br>
-     <b>Allow for origin pattern matching in cross origin filter</b><br>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-3267">YARN-3267</a>.
+     Major bug reported by Prakash Ramachandran and fixed by Chang Li <br>
+     <b>Timelineserver applies the ACL rules after applying the limit on the number of records</b><br>
      <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2511">YARN-2511</a>.
-     Major sub-task reported by Jonathan Eagles and fixed by Jonathan Eagles (timelineserver)<br>
-     <b>Allow All Origins by default when Cross Origin Filter is enabled</b><br>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-3265">YARN-3265</a>.
+     Blocker sub-task reported by Wangda Tan and fixed by Wangda Tan (capacityscheduler , resourcemanager)<br>
+     <b>CapacityScheduler deadlock when computing absolute max avail capacity (fix for trunk/branch-2)</b><br>
      <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2509">YARN-2509</a>.
-     Major sub-task reported by Jonathan Eagles and fixed by Mit Desai (timelineserver)<br>
-     <b>Enable Cross Origin Filter for timeline server only and not all Yarn servers</b><br>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-3262">YARN-3262</a>.
+     Major improvement reported by Jian He and fixed by Jian He (yarn)<br>
+     <b> Surface application outstanding resource requests table in RM web UI</b><br>
      <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2508">YARN-2508</a>.
-     Major sub-task reported by Jonathan Eagles and fixed by Mit Desai (timelineserver)<br>
-     <b>Cross Origin configuration parameters prefix are not honored</b><br>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-3256">YARN-3256</a>.
+     Major bug reported by Anubhav Dhoot and fixed by Anubhav Dhoot <br>
+     <b>TestClientToAMTokens#testClientTokenRace is not running against all Schedulers even when using ParameterizedSchedulerTestBase</b><br>
      <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2507">YARN-2507</a>.
-     Major sub-task reported by Jonathan Eagles and fixed by Jonathan Eagles (documentation , timelineserver)<br>
-     <b>Document Cross Origin Filter Configuration for ATS</b><br>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-3255">YARN-3255</a>.
+     Major bug reported by Konstantin Shvachko and fixed by Konstantin Shvachko (nodemanager , resourcemanager)<br>
+     <b>RM, NM, JobHistoryServer, and WebAppProxyServer's main() should support generic options</b><br>
      <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2505">YARN-2505</a>.
-     Major sub-task reported by Wangda Tan and fixed by Craig Welch (resourcemanager)<br>
-     <b>Support get/add/remove/change labels in RM REST API</b><br>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-3249">YARN-3249</a>.
+     Minor improvement reported by Ryu Kobayashi and fixed by Ryu Kobayashi (resourcemanager)<br>
+     <b>Add a "kill application" button to Resource Manager's Web UI</b><br>
      <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2504">YARN-2504</a>.
-     Critical sub-task reported by Wangda Tan and fixed by Wangda Tan (resourcemanager)<br>
-     <b>Support get/add/remove/change labels in RM admin CLI </b><br>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-3242">YARN-3242</a>.
+     Critical bug reported by zhihai xu and fixed by zhihai xu (resourcemanager)<br>
+     <b>Asynchrony in ZK-close can lead to ZKRMStateStore watcher receiving events for old client</b><br>
      <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2503">YARN-2503</a>.
-     Major sub-task reported by Wangda Tan and fixed by Wangda Tan (resourcemanager)<br>
-     <b>Changes in RM Web UI to better show labels to end users</b><br>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-3239">YARN-3239</a>.
+     Major bug reported by Hitesh Shah and fixed by Jian He <br>
+     <b>WebAppProxy does not support a final tracking url which has query fragments and params </b><br>
      <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2502">YARN-2502</a>.
-     Major sub-task reported by Wangda Tan and fixed by Wangda Tan (resourcemanager)<br>
-     <b>Changes in distributed shell to support specify labels</b><br>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-3238">YARN-3238</a>.
+     Blocker bug reported by Jason Lowe and fixed by Jason Lowe <br>
+     <b>Connection timeouts to nodemanagers are retried at multiple levels</b><br>
      <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2501">YARN-2501</a>.
-     Major sub-task reported by Wangda Tan and fixed by Wangda Tan (resourcemanager)<br>
-     <b>Changes in AMRMClient to support labels</b><br>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-3237">YARN-3237</a>.
+     Major bug reported by Rushabh S Shah and fixed by Rushabh S Shah <br>
+     <b>AppLogAggregatorImpl fails to log error cause</b><br>
      <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2500">YARN-2500</a>.
-     Major sub-task reported by Wangda Tan and fixed by Wangda Tan (resourcemanager)<br>
-     <b>Miscellaneous changes in ResourceManager to support labels</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2496">YARN-2496</a>.
-     Major sub-task reported by Wangda Tan and fixed by Wangda Tan (resourcemanager)<br>
-     <b>Changes for capacity scheduler to support allocate resource respect labels</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2494">YARN-2494</a>.
-     Major sub-task reported by Wangda Tan and fixed by Wangda Tan (resourcemanager)<br>
-     <b>Node label manager API and storage implementations</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2493">YARN-2493</a>.
-     Major sub-task reported by Wangda Tan and fixed by Wangda Tan (api)<br>
-     <b>API changes for users</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2484">YARN-2484</a>.
-     Trivial bug reported by Tsuyoshi OZAWA and fixed by Tsuyoshi OZAWA <br>
-     <b>FileSystemRMStateStore#readFile/writeFile should close FSData(In|Out)putStream in final block</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2475">YARN-2475</a>.
-     Major sub-task reported by Carlo Curino and fixed by Carlo Curino (resourcemanager)<br>
-     <b>ReservationSystem: replan upon capacity reduction</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2468">YARN-2468</a>.
-     Major sub-task reported by Xuan Gong and fixed by Xuan Gong (log-aggregation , nodemanager , resourcemanager)<br>
-     <b>Log handling for LRS</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2462">YARN-2462</a>.
-     Major bug reported by Jason Lowe and fixed by Eric Payne <br>
-     <b>TestNodeManagerResync#testBlockNewContainerRequestsOnStartAndResync should have a test timeout</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2460">YARN-2460</a>.
-     Minor bug reported by Ray Chiang and fixed by Ray Chiang <br>
-     <b>Remove obsolete entries from yarn-default.xml</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2459">YARN-2459</a>.
-     Major bug reported by Mayank Bansal and fixed by Mayank Bansal (resourcemanager)<br>
-     <b>RM crashes if App gets rejected for any reason and HA is enabled</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2456">YARN-2456</a>.
-     Major sub-task reported by Jian He and fixed by Jian He (resourcemanager)<br>
-     <b>Possible livelock in CapacityScheduler when RM is recovering apps</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2453">YARN-2453</a>.
-     Major bug reported by zhihai xu and fixed by zhihai xu <br>
-     <b>TestProportionalCapacityPreemptionPolicy fails with FairScheduler</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2452">YARN-2452</a>.
-     Major bug reported by zhihai xu and fixed by zhihai xu <br>
-     <b>TestRMApplicationHistoryWriter fails with FairScheduler</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2450">YARN-2450</a>.
-     Trivial bug reported by Ray Chiang and fixed by Ray Chiang <br>
-     <b>Fix typos in log messages</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2449">YARN-2449</a>.
-     Critical bug reported by Karam Singh and fixed by Varun Vasudev (timelineserver)<br>
-     <b>Timelineserver returns invalid Delegation token in secure kerberos enabled cluster when hadoop.http.filter.initializers are not set</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2448">YARN-2448</a>.
-     Major improvement reported by Varun Vasudev and fixed by Varun Vasudev <br>
-     <b>RM should expose the resource types considered during scheduling when AMs register</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2447">YARN-2447</a>.
-     Major bug reported by Varun Vasudev and fixed by Varun Vasudev <br>
-     <b>RM web services app submission doesn't pass secrets correctly</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2446">YARN-2446</a>.
-     Major sub-task reported by Zhijie Shen and fixed by Zhijie Shen (timelineserver)<br>
-     <b>Using TimelineNamespace to shield the entities of a user</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2440">YARN-2440</a>.
-     Major bug reported by Varun Vasudev and fixed by Varun Vasudev <br>
-     <b>Cgroups should allow YARN containers to be limited to allocated cores</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2434">YARN-2434</a>.
-     Major sub-task reported by Jian He and fixed by Jian He <br>
-     <b>RM should not recover containers from previously failed attempt when AM restart is not enabled</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2431">YARN-2431</a>.
-     Major sub-task reported by Jason Lowe and fixed by Jason Lowe (nodemanager)<br>
-     <b>NM restart: cgroup is not removed for reacquired containers</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2424">YARN-2424</a>.
-     Blocker bug reported by Allen Wittenauer and fixed by Allen Wittenauer (nodemanager)<br>
-     <b>LCE should support non-cgroups, non-secure mode</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2411">YARN-2411</a>.
-     Major improvement reported by Ram Venkatesh and fixed by Ram Venkatesh (capacityscheduler)<br>
-     <b>[Capacity Scheduler] support simple user and group mappings to queues</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2409">YARN-2409</a>.
-     Critical bug reported by Nishan Shetty and fixed by Rohith (resourcemanager)<br>
-     <b>Active to StandBy transition does not stop rmDispatcher that causes 1 AsyncDispatcher thread leak. </b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2406">YARN-2406</a>.
-     Major sub-task reported by Jian He and fixed by Tsuyoshi OZAWA <br>
-     <b>Move RM recovery related proto to yarn_server_resourcemanager_recovery.proto</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2405">YARN-2405</a>.
-     Major bug reported by Maysam Yabandeh and fixed by Tsuyoshi OZAWA <br>
-     <b>NPE in FairSchedulerAppsBlock</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2400">YARN-2400</a>.
-     Major bug reported by Jian He and fixed by Jian He <br>
-     <b>TestAMRestart fails intermittently</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2399">YARN-2399</a>.
-     Major improvement reported by Karthik Kambatla and fixed by Karthik Kambatla (fairscheduler)<br>
-     <b>FairScheduler: Merge AppSchedulable and FSSchedulerApp into FSAppAttempt</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2397">YARN-2397</a>.
-     Critical bug reported by Varun Vasudev and fixed by Varun Vasudev <br>
-     <b>RM and TS web interfaces sometimes return request is a replay error in secure mode</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2395">YARN-2395</a>.
-     Major new feature reported by Ashwin Shankar and fixed by Wei Yan (fairscheduler)<br>
-     <b>FairScheduler: Preemption timeout should be configurable per queue</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2394">YARN-2394</a>.
-     Major new feature reported by Ashwin Shankar and fixed by Wei Yan (fairscheduler)<br>
-     <b>FairScheduler: Configure fairSharePreemptionThreshold per queue</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2393">YARN-2393</a>.
-     Major new feature reported by Ashwin Shankar and fixed by Wei Yan (fairscheduler)<br>
-     <b>FairScheduler: Add the notion of steady fair share</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2389">YARN-2389</a>.
-     Major sub-task reported by Subru Krishnan and fixed by Subru Krishnan (capacityscheduler , fairscheduler)<br>
-     <b>Adding support for drainig a queue, ie killing all apps in the queue</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2388">YARN-2388</a>.
-     Major test reported by Zhijie Shen and fixed by Zhijie Shen <br>
-     <b>TestTimelineWebServices fails on trunk after HADOOP-10791</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2387">YARN-2387</a>.
-     Blocker bug reported by Mit Desai and fixed by Mit Desai <br>
-     <b>Resource Manager crashes with NPE due to lack of synchronization</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2378">YARN-2378</a>.
-     Major sub-task reported by Subru Krishnan and fixed by Subru Krishnan (capacityscheduler)<br>
-     <b>Adding support for moving apps between queues in Capacity Scheduler</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2377">YARN-2377</a>.
-     Major improvement reported by Gera Shegalov and fixed by Gera Shegalov (nodemanager)<br>
-     <b>Localization exception stack traces are not passed as diagnostic info</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2374">YARN-2374</a>.
-     Major bug reported by Varun Vasudev and fixed by Varun Vasudev <br>
-     <b>YARN trunk build failing TestDistributedShell.testDSShell</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2373">YARN-2373</a>.
-     Major bug reported by Larry McCay and fixed by Larry McCay <br>
-     <b>WebAppUtils Should Use configuration.getPassword for Accessing SSL Passwords</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2372">YARN-2372</a>.
-     Minor improvement reported by Fengdong Yu and fixed by Fengdong Yu (documentation)<br>
-     <b>There are Chinese Characters in the FairScheduler's document</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2370">YARN-2370</a>.
-     Trivial bug reported by Wenwu Peng and fixed by Wenwu Peng (resourcemanager)<br>
-     <b>Fix comment in o.a.h.y.server.resourcemanager.schedulerAppSchedulingInfo</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2363">YARN-2363</a>.
-     Major bug reported by Jason Lowe and fixed by Jason Lowe (resourcemanager)<br>
-     <b>Submitted applications occasionally lack a tracking URL</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2361">YARN-2361</a>.
+<li> <a href="https://issues.apache.org/jira/browse/YARN-3236">YARN-3236</a>.
      Trivial improvement reported by zhihai xu and fixed by zhihai xu (resourcemanager)<br>
-     <b>RMAppAttempt state machine entries for KILLED state has duplicate event entries</b><br>
+     <b>cleanup RMAuthenticationFilter#AUTH_HANDLER_PROPERTY.</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-3231">YARN-3231</a>.
+     Critical bug reported by Siqi Li and fixed by Siqi Li <br>
+     <b>FairScheduler: Changing queueMaxRunningApps interferes with pending jobs</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-3230">YARN-3230</a>.
+     Major improvement reported by Jian He and fixed by Jian He <br>
+     <b>Clarify application states on the web UI</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-3227">YARN-3227</a>.
+     Critical bug reported by Jonathan Eagles and fixed by Zhijie Shen <br>
+     <b>Timeline renew delegation token fails when RM user's TGT is expired</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-3222">YARN-3222</a>.
+     Critical bug reported by Rohith and fixed by Rohith (resourcemanager)<br>
+     <b>RMNodeImpl#ReconnectNodeTransition should send scheduler events in sequential order</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-3217">YARN-3217</a>.
+     Major task reported by Akira AJISAKA and fixed by Brahma Reddy Battula <br>
+     <b>Remove httpclient dependency from hadoop-yarn-server-web-proxy</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-3207">YARN-3207</a>.
+     Major bug reported by Prakash Ramachandran and fixed by Zhijie Shen (timelineserver)<br>
+     <b>secondary filter matches entites which do not have the key being filtered for.</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-3203">YARN-3203</a>.
+     Minor improvement reported by Brahma Reddy Battula and fixed by Brahma Reddy Battula <br>
+     <b>Correct a log message in AuxServices</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-3195">YARN-3195</a>.
+     Minor improvement reported by Jagadesh Kiran N and fixed by Jagadesh Kiran N (client)<br>
+     <b>Add -help to yarn logs and nodes CLI command</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-3194">YARN-3194</a>.
+     Blocker bug reported by Rohith and fixed by Rohith (resourcemanager)<br>
+     <b>RM should handle NMContainerStatuses sent by NM while registering if NM is Reconnected node</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-3191">YARN-3191</a>.
+     Trivial bug reported by Rohith and fixed by Rohith (nodemanager)<br>
+     <b>Log object should be initialized with its own class</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-3187">YARN-3187</a>.
+     Major improvement reported by Naganarasimha G R and fixed by Gururaj Shetty (capacityscheduler , documentation)<br>
+     <b>Documentation of Capacity Scheduler Queue mapping based on user or group</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-3182">YARN-3182</a>.
+     Minor improvement reported by Ray Chiang and fixed by Ray Chiang <br>
+     <b>Cleanup switch statement in ApplicationMasterLauncher#handle()</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-3179">YARN-3179</a>.
+     Minor improvement reported by Ray Chiang and fixed by Ray Chiang <br>
+     <b>Update use of Iterator to Iterable</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-3171">YARN-3171</a>.
+     Minor sub-task reported by Jeff Zhang and fixed by Naganarasimha G R (timelineserver)<br>
+     <b>Sort by Application id, AppAttempt &amp; ContainerID doesn't work in ATS / RM web ui</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-3164">YARN-3164</a>.
+     Minor bug reported by Bibin A Chundatt and fixed by Bibin A Chundatt (resourcemanager)<br>
+     <b>rmadmin command usage prints incorrect command name</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-3160">YARN-3160</a>.
+     Major bug reported by Chengbing Liu and fixed by Chengbing Liu (resourcemanager)<br>
+     <b>Non-atomic operation on nodeUpdateQueue in RMNodeImpl</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-3158">YARN-3158</a>.
+     Major improvement reported by Devaraj K and fixed by Varun Saxena <br>
+     <b>Correct log messages in ResourceTrackerService</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-3157">YARN-3157</a>.
+     Minor improvement reported by Bibin A Chundatt and fixed by Bibin A Chundatt (resourcemanager)<br>
+     <b>Refactor the exception handling in ConverterUtils#to*Id</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-3155">YARN-3155</a>.
+     Minor bug reported by Li Lu and fixed by Li Lu <br>
+     <b>Refactor the exception handling code for TimelineClientImpl's retryOn method</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-3154">YARN-3154</a>.
+     Blocker sub-task reported by Xuan Gong and fixed by Xuan Gong (nodemanager , resourcemanager)<br>
+     <b>Should not upload partial logs for MR jobs or other "short-running' applications </b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-3151">YARN-3151</a>.
+     Minor bug reported by Bibin A Chundatt and fixed by Rohith (client , resourcemanager)<br>
+     <b>On Failover tracking url wrong in application cli for KILLED application</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-3149">YARN-3149</a>.
+     Trivial bug reported by Bibin A Chundatt and fixed by Bibin A Chundatt (resourcemanager)<br>
+     <b>Typo in message for invalid application id</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-3147">YARN-3147</a>.
+     Major improvement reported by Steve Loughran and fixed by Steve Loughran (webapp)<br>
+     <b>Clean up RM web proxy code </b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-3145">YARN-3145</a>.
+     Major bug reported by Jian He and fixed by Tsuyoshi Ozawa <br>
+     <b>ConcurrentModificationException on CapacityScheduler ParentQueue#getQueueUserAclInfo</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-3144">YARN-3144</a>.
+     Major improvement reported by Jonathan Eagles and fixed by Jonathan Eagles <br>
+     <b>Configuration for making delegation token failures to timeline server not-fatal</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-3143">YARN-3143</a>.
+     Major bug reported by Kendall Thrapp and fixed by Jason Lowe (webapp)<br>
+     <b>RM Apps REST API can return NPE or entries missing id and other fields</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-3132">YARN-3132</a>.
+     Major sub-task reported by Wangda Tan and fixed by Wangda Tan (api , client , resourcemanager)<br>
+     <b>RMNodeLabelsManager should remove node from node-to-label mapping when node becomes deactivated</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-3131">YARN-3131</a>.
+     Major bug reported by Chang Li and fixed by Chang Li <br>
+     <b>YarnClientImpl should check FAILED and KILLED state in submitApplication</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-3124">YARN-3124</a>.
+     Major sub-task reported by Wangda Tan and fixed by Wangda Tan (api , client , resourcemanager)<br>
+     <b>Capacity Scheduler LeafQueue/ParentQueue should use QueueCapacities to track capacities-by-label</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-3123">YARN-3123</a>.
+     Major improvement reported by Zhijie Shen and fixed by Naganarasimha G R (client)<br>
+     <b>Make YARN CLI show a single completed container even if the app is running</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-3122">YARN-3122</a>.
+     Major sub-task reported by Anubhav Dhoot and fixed by Anubhav Dhoot (nodemanager)<br>
+     <b>Metrics for container's actual CPU usage</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-3113">YARN-3113</a>.
+     Major bug reported by Chang Li and fixed by Steve Loughran <br>
+     <b>Release audit warning for "Sorting icons.psd"</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-3108">YARN-3108</a>.
+     Major improvement reported by Chang Li and fixed by Chang Li <br>
+     <b>ApplicationHistoryServer doesn't process -D arguments</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-3104">YARN-3104</a>.
+     Major bug reported by Jason Lowe and fixed by Jason Lowe (resourcemanager)<br>
+     <b>RM generates new AMRM tokens every heartbeat between rolling and activation</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-3103">YARN-3103</a>.
+     Blocker bug reported by Jason Lowe and fixed by Jason Lowe (client)<br>
+     <b>AMRMClientImpl does not update AMRM token properly</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-3101">YARN-3101</a>.
+     Major bug reported by Anubhav Dhoot and fixed by Anubhav Dhoot (fairscheduler)<br>
+     <b>In Fair Scheduler, fix canceling of reservations for exceeding max share</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-3100">YARN-3100</a>.
+     Major improvement reported by Jian He and fixed by Jian He <br>
+     <b>Make YARN authorization pluggable</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-3099">YARN-3099</a>.
+     Major sub-task reported by Wangda Tan and fixed by Wangda Tan (api , client , resourcemanager)<br>
+     <b>Capacity Scheduler LeafQueue/ParentQueue should use ResourceUsage to track used-resources-by-label.</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-3098">YARN-3098</a>.
+     Major sub-task reported by Wangda Tan and fixed by Wangda Tan (capacityscheduler)<br>
+     <b>Create common QueueCapacities class in Capacity Scheduler to track capacities-by-labels of queues</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-3094">YARN-3094</a>.
+     Major bug reported by Jun Gong and fixed by Jun Gong (resourcemanager)<br>
+     <b>reset timer for liveness monitors after RM recovery</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-3092">YARN-3092</a>.
+     Major sub-task reported by Wangda Tan and fixed by Wangda Tan (api , client , resourcemanager)<br>
+     <b>Create common ResourceUsage class to track labeled resource usages in Capacity Scheduler</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-3090">YARN-3090</a>.
+     Major bug reported by Jason Lowe and fixed by Varun Saxena (nodemanager)<br>
+     <b>DeletionService can silently ignore deletion task failures</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-3089">YARN-3089</a>.
+     Blocker bug reported by Jason Lowe and fixed by Eric Payne <br>
+     <b>LinuxContainerExecutor does not handle file arguments to deleteAsUser</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-3088">YARN-3088</a>.
+     Major bug reported by Jason Lowe and fixed by Eric Payne (nodemanager)<br>
+     <b>LinuxContainerExecutor.deleteAsUser can throw NPE if native executor returns an error</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-3086">YARN-3086</a>.
+     Minor improvement reported by Robert Metzger and fixed by Robert Metzger (test)<br>
+     <b>Make NodeManager memory configurable in MiniYARNCluster</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-3085">YARN-3085</a>.
+     Major improvement reported by Jason Lowe and fixed by Rohith (resourcemanager)<br>
+     <b>Application summary should include the application type</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-3082">YARN-3082</a>.
+     Major bug reported by Anubhav Dhoot and fixed by Anubhav Dhoot <br>
+     <b>Non thread safe access to systemCredentials in NodeHeartbeatResponse processing</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-3079">YARN-3079</a>.
+     Major bug reported by zhihai xu and fixed by zhihai xu <br>
+     <b>Scheduler should also update maximumAllocation when updateNodeResource.</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-3078">YARN-3078</a>.
+     Minor bug reported by sam liu and fixed by  (log-aggregation)<br>
+     <b>LogCLIHelpers lacks of a blank space before string 'does not exist'</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-3077">YARN-3077</a>.
+     Major improvement reported by Chun Chen and fixed by Chun Chen (resourcemanager)<br>
+     <b>RM should create yarn.resourcemanager.zk-state-store.parent-path recursively</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-3076">YARN-3076</a>.
+     Major sub-task reported by Varun Saxena and fixed by Varun Saxena (client)<br>
+     <b>Add API/Implementation to YarnClient to retrieve label-to-node mapping</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-3075">YARN-3075</a>.
+     Major sub-task reported by Varun Saxena and fixed by Varun Saxena (resourcemanager)<br>
+     <b>NodeLabelsManager implementation to retrieve label to node mapping</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-3074">YARN-3074</a>.
+     Major bug reported by Jason Lowe and fixed by Varun Saxena (nodemanager)<br>
+     <b>Nodemanager dies when localizer runner tries to write to a full disk</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-3071">YARN-3071</a>.
+     Trivial bug reported by Masatake Iwasaki and fixed by Masatake Iwasaki (documentation)<br>
+     <b>Remove invalid char from sample conf in doc of FairScheduler</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-3070">YARN-3070</a>.
+     Minor test reported by Ted Yu and fixed by Junping Du <br>
+     <b>TestRMAdminCLI#testHelp fails for transitionToActive command</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-3064">YARN-3064</a>.
+     Critical bug reported by Wangda Tan and fixed by Jian He (scheduler)<br>
+     <b>TestRMRestart/TestContainerResourceUsage/TestNodeManagerResync failure with allocation timeout</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-3058">YARN-3058</a>.
+     Minor bug reported by Yi Liu and fixed by Yi Liu <br>
+     <b>Fix error message of tokens' activation delay configuration</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-3056">YARN-3056</a>.
+     Trivial improvement reported by zhihai xu and fixed by zhihai xu (test)<br>
+     <b>add verification for containerLaunchDuration in TestNodeManagerMetrics.</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-3055">YARN-3055</a>.
+     Blocker bug reported by Yi Liu and fixed by Daryn Sharp (security)<br>
+     <b>The token is not renewed properly if it's shared by jobs (oozie) in DelegationTokenRenewer</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-3029">YARN-3029</a>.
+     Major bug reported by Steve Loughran and fixed by Varun Saxena (nodemanager)<br>
+     <b>FSDownload.unpack() uses local locale for FS case conversion, may not work everywhere</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-3028">YARN-3028</a>.
+     Major sub-task reported by Jian He and fixed by Rohith (api , client , resourcemanager)<br>
+     <b>Better syntax for replaceLabelsOnNode in RMAdmin CLI</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-3027">YARN-3027</a>.
+     Major bug reported by Anubhav Dhoot and fixed by Anubhav Dhoot <br>
+     <b>Scheduler should use totalAvailable resource from node instead of availableResource for maxAllocation</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-3024">YARN-3024</a>.
+     Major bug reported by Chengbing Liu and fixed by Chengbing Liu (nodemanager)<br>
+     <b>LocalizerRunner should give DIE action when all resources are localized</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-3022">YARN-3022</a>.
+     Major improvement reported by Anubhav Dhoot and fixed by Anubhav Dhoot <br>
+     <b>Expose Container resource information from NodeManager for monitoring</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-3019">YARN-3019</a>.
+     Major sub-task reported by Jian He and fixed by Jian He (resourcemanager)<br>
+     <b>Make work-preserving-recovery the default mechanism for RM recovery</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-3015">YARN-3015</a>.
+     Minor bug reported by Chris Nauroth and fixed by Varun Saxena (scripts)<br>
+     <b>yarn classpath command should support same options as hadoop classpath.</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-3014">YARN-3014</a>.
+     Major sub-task reported by Wangda Tan and fixed by Wangda Tan <br>
+     <b>Replaces labels on a host should update all NM's labels on that host</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-3011">YARN-3011</a>.
+     Major sub-task reported by Wang Hao and fixed by Varun Saxena (nodemanager)<br>
+     <b>NM dies because of the failure of resource localization</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-3010">YARN-3010</a>.
+     Minor bug reported by Yi Liu and fixed by Yi Liu <br>
+     <b>Fix recent findbug issue in AbstractYarnScheduler</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-3005">YARN-3005</a>.
+     Trivial improvement reported by Akira AJISAKA and fixed by  <br>
+     <b>[JDK7] Use switch statement for String instead of if-else statement in RegistrySecurity.java</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-2998">YARN-2998</a>.
+     Major sub-task reported by Anubhav Dhoot and fixed by Anubhav Dhoot (fairscheduler)<br>
+     <b>Abstract out scheduler independent PlanFollower components</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-2997">YARN-2997</a>.
+     Major bug reported by Chengbing Liu and fixed by Chengbing Liu (nodemanager)<br>
+     <b>NM keeps sending already-sent completed containers to RM until containers are removed from context</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-2996">YARN-2996</a>.
+     Major improvement reported by Yi Liu and fixed by Yi Liu (resourcemanager)<br>
+     <b>Refine fs operations in FileSystemRMStateStore and few fixes</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-2994">YARN-2994</a>.
+     Major sub-task reported by Jian He and fixed by Jian He (resourcemanager)<br>
+     <b>Document work-preserving RM restart</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-2993">YARN-2993</a>.
+     Major bug reported by Yi Liu and fixed by Yi Liu (resourcemanager)<br>
+     <b>Several fixes (missing acl check, error log msg ...) and some refinement in AdminService</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-2992">YARN-2992</a>.
+     Blocker bug reported by Karthik Kambatla and fixed by Karthik Kambatla (resourcemanager)<br>
+     <b>ZKRMStateStore crashes due to session expiry</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-2991">YARN-2991</a>.
+     Blocker bug reported by Zhijie Shen and fixed by Rohith <br>
+     <b>TestRMRestart.testDecomissionedNMsMetricsOnRMRestart intermittently fails on trunk</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-2990">YARN-2990</a>.
+     Major bug reported by Karthik Kambatla and fixed by Karthik Kambatla (fairscheduler)<br>
+     <b>FairScheduler's delay-scheduling always waits for node-local and rack-local delays, even for off-rack-only requests</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-2988">YARN-2988</a>.
+     Minor bug reported by Ted Yu and fixed by Ted Yu <br>
+     <b>Graph#save() may leak file descriptors</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-2987">YARN-2987</a>.
+     Major bug reported by Jian He and fixed by Varun Saxena <br>
+     <b>ClientRMService#getQueueInfo doesn't check app ACLs</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-2984">YARN-2984</a>.
+     Major sub-task reported by Karthik Kambatla and fixed by Karthik Kambatla (nodemanager)<br>
+     <b>Metrics for container's actual memory usage</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-2983">YARN-2983</a>.
+     Major bug reported by Varun Saxena and fixed by Varun Saxena (resourcemanager)<br>
+     <b>NPE possible in ClientRMService#getQueueInfo</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-2978">YARN-2978</a>.
+     Critical bug reported by Jason Tufo and fixed by Varun Saxena <br>
+     <b>ResourceManager crashes with NPE while getting queue info</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-2977">YARN-2977</a>.
+     Major bug reported by Junping Du and fixed by Junping Du <br>
+     <b>TestNMClient get failed intermittently </b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-2975">YARN-2975</a>.
+     Blocker bug reported by Karthik Kambatla and fixed by Karthik Kambatla <br>
+     <b>FSLeafQueue app lists are accessed without required locks</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-2972">YARN-2972</a>.
+     Major bug reported by Jason Lowe and fixed by Jason Lowe (resourcemanager)<br>
+     <b>DelegationTokenRenewer thread pool never expands</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-2971">YARN-2971</a>.
+     Major sub-task reported by Jonathan Eagles and fixed by Jonathan Eagles (timelineserver)<br>
+     <b>RM uses conf instead of token service address to renew timeline delegation tokens</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-2970">YARN-2970</a>.
+     Minor sub-task reported by Junping Du and fixed by Varun Saxena (api , client , resourcemanager)<br>
+     <b>NodeLabel operations in RMAdmin CLI get missing in help command.</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-2964">YARN-2964</a>.
+     Blocker bug reported by Daryn Sharp and fixed by Jian He (resourcemanager)<br>
+     <b>RM prematurely cancels tokens for jobs that submit jobs (oozie)</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-2958">YARN-2958</a>.
+     Blocker bug reported by Zhijie Shen and fixed by Varun Saxena (resourcemanager)<br>
+     <b>RMStateStore seems to unnecessarily and wrongly store sequence number separately</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-2957">YARN-2957</a>.
+     Minor improvement reported by Ray Chiang and fixed by Ray Chiang <br>
+     <b>Create unit test to automatically compare YarnConfiguration and yarn-default.xml</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-2956">YARN-2956</a>.
+     Minor bug reported by Remus Rusanu and fixed by Masatake Iwasaki (documentation)<br>
+     <b>Some yarn-site index linked pages are difficult to discover because are not in the side bar</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-2952">YARN-2952</a>.
+     Major bug reported by Jian He and fixed by Rohith <br>
+     <b>Incorrect version check in RMStateStore</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-2950">YARN-2950</a>.
+     Minor improvement reported by Harsh J and fixed by Dustin Cote (webapp)<br>
+     <b>Change message to mandate, not suggest JS requirement on UI</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-2949">YARN-2949</a>.
+     Major task reported by Varun Vasudev and fixed by Varun Vasudev (documentation , nodemanager)<br>
+     <b>Add documentation for CGroups</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-2945">YARN-2945</a>.
+     Major bug reported by Tsuyoshi Ozawa and fixed by Tsuyoshi Ozawa <br>
+     <b>FSLeafQueue#assignContainer - document the reason for using both write and read locks</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-2944">YARN-2944</a>.
+     Minor sub-task reported by Chris Trezzo and fixed by Chris Trezzo <br>
+     <b>InMemorySCMStore can not be instantiated with ReflectionUtils#newInstance</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-2943">YARN-2943</a>.
+     Major sub-task reported by Wangda Tan and fixed by Wangda Tan (resourcemanager)<br>
+     <b>Add a node-labels page in RM web UI</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-2940">YARN-2940</a>.
+     Major improvement reported by Varun Saxena and fixed by Li Lu <br>
+     <b>Fix new findbugs warnings in rest of the hadoop-yarn components</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-2939">YARN-2939</a>.
+     Major improvement reported by Varun Saxena and fixed by Li Lu <br>
+     <b>Fix new findbugs warnings in hadoop-yarn-common</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-2938">YARN-2938</a>.
+     Major improvement reported by Varun Saxena and fixed by Varun Saxena <br>
+     <b>Fix new findbugs warnings in hadoop-yarn-resourcemanager and hadoop-yarn-applicationhistoryservice</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-2937">YARN-2937</a>.
+     Major improvement reported by Varun Saxena and fixed by Varun Saxena <br>
+     <b>Fix new findbugs warnings in hadoop-yarn-nodemanager</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-2936">YARN-2936</a>.
+     Major bug reported by Zhijie Shen and fixed by Varun Saxena <br>
+     <b>YARNDelegationTokenIdentifier doesn't set proto.builder now</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-2933">YARN-2933</a>.
+     Major sub-task reported by Wangda Tan and fixed by Mayank Bansal (capacityscheduler)<br>
+     <b>Capacity Scheduler preemption policy should only consider capacity without labels temporarily</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-2932">YARN-2932</a>.
+     Major bug reported by Eric Payne and fixed by Eric Payne <br>
+     <b>Add entry for "preemptable" status (enabled/disabled) to scheduler web UI and queue initialize/refresh logging</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-2931">YARN-2931</a>.
+     Critical bug reported by Anubhav Dhoot and fixed by Anubhav Dhoot (nodemanager)<br>
+     <b>PublicLocalizer may fail until directory is initialized by LocalizeRunner</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-2930">YARN-2930</a>.
+     Minor test reported by Ted Yu and fixed by Wangda Tan <br>
+     <b>TestRMRestart#testRMRestartRecoveringNodeLabelManager sometimes fails against Java 7 &amp; 8</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-2927">YARN-2927</a>.
+     Major sub-task reported by Ray Chiang and fixed by Ray Chiang <br>
+     <b>InMemorySCMStore properties are inconsistent</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-2924">YARN-2924</a>.
+     Major sub-task reported by Wangda Tan and fixed by Wangda Tan (client)<br>
+     <b>Node to labels mapping should not transfer to lowercase when adding from RMAdminCLI</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-2922">YARN-2922</a>.
+     Major bug reported by Jason Tufo and fixed by Rohith (capacityscheduler , resourcemanager , scheduler)<br>
+     <b>ConcurrentModificationException in CapacityScheduler's LeafQueue</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-2920">YARN-2920</a>.
+     Major sub-task reported by Wangda Tan and fixed by Wangda Tan <br>
+     <b>CapacityScheduler should be notified when labels on nodes changed</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-2917">YARN-2917</a>.
+     Critical bug reported by Rohith and fixed by Rohith (resourcemanager)<br>
+     <b>Potential deadlock in AsyncDispatcher when system.exit called in AsyncDispatcher#dispatch and AsyscDispatcher#serviceStop from shutdown hook</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-2914">YARN-2914</a>.
+     Minor sub-task reported by Ted Yu and fixed by Varun Saxena <br>
+     <b>Potential race condition in Singleton implementation of SharedCacheUploaderMetrics, CleanerMetrics, ClientSCMMetrics</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-2912">YARN-2912</a>.
+     Major bug reported by Steve Loughran and fixed by Varun Saxena (test)<br>
+     <b>Jersey Tests failing with port in use</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-2910">YARN-2910</a>.
+     Major bug reported by Wilfred Spiegelenburg and fixed by Wilfred Spiegelenburg (fairscheduler)<br>
+     <b>FSLeafQueue can throw ConcurrentModificationException</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-2907">YARN-2907</a>.
+     Trivial bug reported by Rohith and fixed by Rohith (resourcemanager)<br>
+     <b>SchedulerNode#toString should print all resource detail instead of only memory.</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-2906">YARN-2906</a>.
+     Major bug reported by Jason Lowe and fixed by Jason Lowe (capacityscheduler)<br>
+     <b>CapacitySchedulerPage shows HTML tags for a queue's Active Users</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-2905">YARN-2905</a>.
+     Blocker bug reported by Jason Lowe and fixed by Varun Saxena <br>
+     <b>AggregatedLogsBlock page can infinitely loop if the aggregated log file is corrupted</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-2899">YARN-2899</a>.
+     Minor bug reported by Ming Ma and fixed by Ming Ma (nodemanager , test)<br>
+     <b>Run TestDockerContainerExecutorWithMocks on Linux only</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-2897">YARN-2897</a>.
+     Major bug reported by Mit Desai and fixed by Mit Desai <br>
+     <b>CrossOriginFilter needs more log statements</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-2894">YARN-2894</a>.
+     Major bug reported by Rohith and fixed by Rohith (resourcemanager)<br>
+     <b>When ACL's are enabled, if RM switches then application can not be viewed from web.</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-2891">YARN-2891</a>.
+     Minor improvement reported by Dustin Cote and fixed by Dustin Cote (nodemanager)<br>
+     <b>Failed Container Executor does not provide a clear error message</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-2881">YARN-2881</a>.
+     Major sub-task reported by Anubhav Dhoot and fixed by Anubhav Dhoot (fairscheduler)<br>
+     <b>Implement PlanFollower for FairScheduler</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-2880">YARN-2880</a>.
+     Major sub-task reported by Wangda Tan and fixed by Rohith (resourcemanager)<br>
+     <b>Add a test in TestRMRestart to make sure node labels will be recovered if it is enabled</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-2878">YARN-2878</a>.
+     Major improvement reported by Abin Shahab and fixed by Abin Shahab (documentation)<br>
+     <b>Fix DockerContainerExecutor.apt.vm formatting</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-2874">YARN-2874</a>.
+     Blocker bug reported by Naganarasimha G R and fixed by Naganarasimha G R (resourcemanager)<br>
+     <b>Dead lock in "DelegationTokenRenewer" which blocks RM to execute any further apps</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-2870">YARN-2870</a>.
+     Trivial bug reported by Masatake Iwasaki and fixed by Masatake Iwasaki (documentation , timelineserver)<br>
+     <b>Update examples in document of Timeline Server</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-2869">YARN-2869</a>.
+     Major bug reported by Wangda Tan and fixed by Wangda Tan (capacityscheduler , resourcemanager)<br>
+     <b>CapacityScheduler should trim sub queue names when parse configuration</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-2865">YARN-2865</a>.
+     Critical bug reported by Rohith and fixed by Rohith (resourcemanager)<br>
+     <b>Application recovery continuously fails with "Application with id already present. Cannot duplicate"</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-2861">YARN-2861</a>.
+     Major bug reported by Zhijie Shen and fixed by Zhijie Shen <br>
+     <b>Timeline DT secret manager should not reuse the RM's configs.</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-2857">YARN-2857</a>.
+     Critical bug reported by Mohammad Kamrul Islam and fixed by Mohammad Kamrul Islam <br>
+     <b>ConcurrentModificationException in ContainerLogAppender</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-2856">YARN-2856</a>.
+     Critical bug reported by Rohith and fixed by Rohith (resourcemanager)<br>
+     <b>Application recovery throw InvalidStateTransitonException: Invalid event: ATTEMPT_KILLED at ACCEPTED</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-2854">YARN-2854</a>.
+     Critical improvement reported by Zhijie Shen and fixed by Naganarasimha G R (timelineserver)<br>
+     <b>The document about timeline service and generic service needs to be updated</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-2847">YARN-2847</a>.
+     Major bug reported by Jason Lowe and fixed by Olaf Flebbe (nodemanager)<br>
+     <b>Linux native container executor segfaults if default banned user detected</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-2837">YARN-2837</a>.
+     Blocker new feature reported by Zhijie Shen and fixed by Zhijie Shen (timelineserver)<br>
+     <b>Timeline server needs to recover the timeline DT when restarting</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-2820">YARN-2820</a>.
+     Major improvement reported by zhihai xu and fixed by zhihai xu (resourcemanager)<br>
+     <b> Retry in FileSystemRMStateStore when FS's operations fail due to IOException.</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-2816">YARN-2816</a>.
+     Major bug reported by zhihai xu and fixed by zhihai xu (nodemanager)<br>
+     <b>NM fail to start with NPE during container recovery</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-2815">YARN-2815</a>.
+     Major bug reported by Ferdinand Xu and fixed by Ferdinand Xu <br>
+     <b>Remove jline from hadoop-yarn-server-common</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-2811">YARN-2811</a>.
+     Major bug reported by Siqi Li and fixed by Siqi Li <br>
+     <b>In Fair Scheduler, reservation fulfillments shouldn't ignore max share</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-2809">YARN-2809</a>.
+     Major bug reported by Nathan Roberts and fixed by Nathan Roberts (nodemanager)<br>
+     <b>Implement workaround for linux kernel panic when removing cgroup</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-2808">YARN-2808</a>.
+     Major bug reported by Gordon Wang and fixed by Naganarasimha G R (client)<br>
+     <b>yarn client tool can not list app_attempt's container info correctly</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-2807">YARN-2807</a>.
+     Minor sub-task reported by Wangda Tan and fixed by Masatake Iwasaki (documentation , resourcemanager)<br>
+     <b>Option "--forceactive" not works as described in usage of "yarn rmadmin -transitionToActive"</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-2802">YARN-2802</a>.
+     Major improvement reported by zhihai xu and fixed by zhihai xu (resourcemanager)<br>
+     <b>ClusterMetrics to include AM launch and register delays</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-2800">YARN-2800</a>.
+     Major sub-task reported by Wangda Tan and fixed by Wangda Tan (client , resourcemanager)<br>
+     <b>Remove MemoryNodeLabelsStore and add a way to enable/disable node labels feature</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-2799">YARN-2799</a>.
+     Minor improvement reported by zhihai xu and fixed by zhihai xu (test)<br>
+     <b>cleanup TestLogAggregationService based on the change in YARN-90</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-2797">YARN-2797</a>.
+     Minor improvement reported by Karthik Kambatla and fixed by Karthik Kambatla <br>
+     <b>TestWorkPreservingRMRestart should use ParametrizedSchedulerTestBase</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-2786">YARN-2786</a>.
+     Major sub-task reported by Wangda Tan and fixed by Wangda Tan (api , client , resourcemanager)<br>
+     <b>Create yarn cluster CLI to enable list node labels collection</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-2780">YARN-2780</a>.
+     Minor improvement reported by Koji Noguchi and fixed by Eric Payne (resourcemanager)<br>
+     <b>Log aggregated resource allocation in rm-appsummary.log</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-2777">YARN-2777</a>.
+     Major improvement reported by Ted Yu and fixed by Varun Saxena <br>
+     <b>Mark the end of individual log in aggregated log</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-2766">YARN-2766</a>.
+     Major sub-task reported by Robert Kanter and fixed by Robert Kanter (timelineserver)<br>
+     <b> ApplicationHistoryManager is expected to return a sorted list of apps/attempts/containers</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-2765">YARN-2765</a>.
+     Major sub-task reported by Jason Lowe and fixed by Jason Lowe (resourcemanager)<br>
+     <b>Add leveldb-based implementation for RMStateStore</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-2762">YARN-2762</a>.
+     Minor sub-task reported by Rohith and fixed by Rohith (resourcemanager)<br>
+     <b>RMAdminCLI node-labels-related args should be trimmed and checked before sending to RM</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-2749">YARN-2749</a>.
+     Major bug reported by Xuan Gong and fixed by Xuan Gong <br>
+     <b>Some testcases from TestLogAggregationService fails in trunk</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-2742">YARN-2742</a>.
+     Minor bug reported by Sangjin Lee and fixed by Wei Yan (fairscheduler)<br>
+     <b>FairSchedulerConfiguration should allow extra spaces between value and unit</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-2738">YARN-2738</a>.
+     Major sub-task reported by Anubhav Dhoot and fixed by Anubhav Dhoot (fairscheduler)<br>
+     <b>Add FairReservationSystem for FairScheduler</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-2735">YARN-2735</a>.
+     Trivial bug reported by zhihai xu and fixed by zhihai xu (nodemanager)<br>
+     <b>diskUtilizationPercentageCutoff and diskUtilizationSpaceCutoff are initialized twice in DirectoryCollection</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-2731">YARN-2731</a>.
+     Major bug reported by Carlo Curino and fixed by Carlo Curino <br>
+     <b>Fixed RegisterApplicationMasterResponsePBImpl to properly invoke maybeInitBuilder</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-2713">YARN-2713</a>.
+     Major bug reported by Karthik Kambatla and fixed by Karthik Kambatla (resourcemanager)<br>
+     <b>"RM Home" link in NM should point to one of the RMs in an HA setup</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-2712">YARN-2712</a>.
+     Major sub-task reported by Tsuyoshi Ozawa and fixed by Tsuyoshi Ozawa (resourcemanager)<br>
+     <b>TestWorkPreservingRMRestart: Augment FS tests with queue and headroom checks</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-2697">YARN-2697</a>.
+     Major bug reported by Zhijie Shen and fixed by haosdent (resourcemanager)<br>
+     <b>RMAuthenticationHandler is no longer useful</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-2694">YARN-2694</a>.
+     Major sub-task reported by Wangda Tan and fixed by Wangda Tan (capacityscheduler , resourcemanager)<br>
+     <b>Ensure only single node labels specified in resource request / host, and node label expression only specified when resourceName=ANY</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-2690">YARN-2690</a>.
+     Major sub-task reported by Anubhav Dhoot and fixed by Anubhav Dhoot (fairscheduler)<br>
+     <b>Make ReservationSystem and its dependent classes independent of Scheduler type  </b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-2683">YARN-2683</a>.
+     Major sub-task reported by Steve Loughran and fixed by Steve Loughran (api , resourcemanager)<br>
+     <b>registry config options: document and move to core-default</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-2679">YARN-2679</a>.
+     Major improvement reported by zhihai xu and fixed by zhihai xu (nodemanager)<br>
+     <b>Add metric for container launch duration</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-2675">YARN-2675</a>.
+     Major bug reported by zhihai xu and fixed by zhihai xu (nodemanager)<br>
+     <b>containersKilled metrics is not updated when the container is killed during localization</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-2669">YARN-2669</a>.
+     Major improvement reported by Wei Yan and fixed by Wei Yan <br>
+     <b>FairScheduler: queue names shouldn't allow periods</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-2643">YARN-2643</a>.
+     Trivial improvement reported by Sandy Ryza and fixed by Karthik Kambatla <br>
+     <b>Don't create a new DominantResourceCalculator on every FairScheduler.allocate call</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-2641">YARN-2641</a>.
+     Major improvement reported by zhihai xu and fixed by zhihai xu (resourcemanager)<br>
+     <b>Decommission nodes on -refreshNodes instead of next NM-RM heartbeat</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-2637">YARN-2637</a>.
+     Critical bug reported by Wangda Tan and fixed by Craig Welch (resourcemanager)<br>
+     <b>maximum-am-resource-percent could be respected for both LeafQueue/User when trying to activate applications.</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-2616">YARN-2616</a>.
+     Major sub-task reported by Steve Loughran and fixed by Akshay Radia (client)<br>
+     <b>Add CLI client to the registry to list, view and manipulate entries</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-2604">YARN-2604</a>.
+     Major improvement reported by Karthik Kambatla and fixed by Robert Kanter (scheduler)<br>
+     <b>Scheduler should consider max-allocation-* in conjunction with the largest node</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-2574">YARN-2574</a>.
+     Major new feature reported by Subru Krishnan and fixed by Anubhav Dhoot (fairscheduler)<br>
+     <b>Add support for FairScheduler to the ReservationSystem</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-2543">YARN-2543</a>.
+     Major sub-task reported by Zhijie Shen and fixed by Naganarasimha G R (timelineserver)<br>
+     <b>Resource usage should be published to the timeline server as well</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-2461">YARN-2461</a>.
+     Minor bug reported by Ray Chiang and fixed by Ray Chiang <br>
+     <b>Fix PROCFS_USE_SMAPS_BASED_RSS_ENABLED property in YarnConfiguration</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-2432">YARN-2432</a>.
+     Major bug reported by Varun Saxena and fixed by Varun Saxena (resourcemanager)<br>
+     <b>RMStateStore should process the pending events before close</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-2427">YARN-2427</a>.
+     Major new feature reported by Varun Vasudev and fixed by Varun Vasudev (resourcemanager)<br>
+     <b>Add support for moving apps between queues in RM web services</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-2414">YARN-2414</a>.
+     Major bug reported by Zhijie Shen and fixed by Wangda Tan (webapp)<br>
+     <b>RM web UI: app page will crash if app is failed before any attempt has been created</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-2404">YARN-2404</a>.
+     Major sub-task reported by Jian He and fixed by Tsuyoshi Ozawa <br>
+     <b>Remove ApplicationAttemptState and ApplicationState class in RMStateStore class </b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-2375">YARN-2375</a>.
+     Major sub-task reported by Jonathan Eagles and fixed by Mit Desai <br>
+     <b>Allow enabling/disabling timeline server per framework</b><br>
      <blockquote></blockquote></li>
 <li> <a href="https://issues.apache.org/jira/browse/YARN-2360">YARN-2360</a>.
      Major new feature reported by Ashwin Shankar and fixed by Ashwin Shankar (fairscheduler)<br>
      <b>Fair Scheduler: Display dynamic fair share for queues on the scheduler page</b><br>
      <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2359">YARN-2359</a>.
-     Critical bug reported by zhihai xu and fixed by zhihai xu (resourcemanager)<br>
-     <b>Application hangs when it fails to launch AM container </b><br>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-2356">YARN-2356</a>.
+     Minor bug reported by Sunil G and fixed by Sunil G (client)<br>
+     <b>yarn status command for non-existent application/application attempt/container is too verbose </b><br>
      <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2354">YARN-2354</a>.
-     Major sub-task reported by Jian He and fixed by Li Lu <br>
-     <b>DistributedShell may allocate more containers than client specified after it restarts</b><br>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-2340">YARN-2340</a>.
+     Critical bug reported by Nishan Shetty and fixed by Rohith (resourcemanager , scheduler)<br>
+     <b>NPE thrown when RM restart after queue is STOPPED. There after RM can not recovery application's and remain in standby</b><br>
      <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2352">YARN-2352</a>.
-     Major improvement reported by Karthik Kambatla and fixed by Karthik Kambatla (scheduler)<br>
-     <b>FairScheduler: Collect metrics on duration of critical methods that affect performance</b><br>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-2315">YARN-2315</a>.
+     Major bug reported by zhihai xu and fixed by zhihai xu <br>
+     <b>FairScheduler: Set current capacity in addition to capacity</b><br>
      <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2347">YARN-2347</a>.
-     Major sub-task reported by Junping Du and fixed by Junping Du <br>
-     <b>Consolidate RMStateVersion and NMDBSchemaVersion into StateVersion in yarn-server-common</b><br>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-2301">YARN-2301</a>.
+     Major improvement reported by Jian He and fixed by Naganarasimha G R <br>
+     <b>Improve yarn container command</b><br>
      <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2343">YARN-2343</a>.
-     Trivial improvement reported by Li Lu and fixed by Li Lu <br>
-     <b>Improve error message on token expire exception</b><br>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-2254">YARN-2254</a>.
+     Minor improvement reported by zhihai xu and fixed by zhihai xu <br>
+     <b>TestRMWebServicesAppsModification should run against both CS and FS</b><br>
      <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2337">YARN-2337</a>.
-     Trivial improvement reported by zhihai xu and fixed by zhihai xu (resourcemanager)<br>
-     <b>ResourceManager sets ClientRMService in RMContext multiple times</b><br>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-2246">YARN-2246</a>.
+     Major bug reported by Devaraj K and fixed by Devaraj K (webapp)<br>
+     <b>Job History Link in RM UI is redirecting to the URL which contains Job Id twice</b><br>
      <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2323">YARN-2323</a>.
-     Minor improvement reported by Hong Zhiguo and fixed by Hong Zhiguo (fairscheduler)<br>
-     <b>FairShareComparator creates too many Resource objects</b><br>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-2243">YARN-2243</a>.
+     Minor bug reported by Ted Yu and fixed by Devaraj K <br>
+     <b>Order of arguments for Preconditions.checkNotNull() is wrong in SchedulerApplicationAttempt ctor</b><br>
      <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2321">YARN-2321</a>.
-     Major bug reported by Leitao Guo and fixed by Leitao Guo (nodemanager)<br>
-     <b>NodeManager web UI can incorrectly report Pmem enforcement</b><br>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-2236">YARN-2236</a>.
+     Major sub-task reported by Chris Trezzo and fixed by Chris Trezzo <br>
+     <b>Shared Cache uploader service on the Node Manager</b><br>
      <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2317">YARN-2317</a>.
-     Major sub-task reported by Li Lu and fixed by Li Lu (documentation)<br>
-     <b>Update documentation about how to write YARN applications</b><br>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-2230">YARN-2230</a>.
+     Minor bug reported by Adam Kawa and fixed by Vijay Bhat (client , documentation , scheduler)<br>
+     <b>Fix description of yarn.scheduler.maximum-allocation-vcores in yarn-default.xml (or code)</b><br>
+     <blockquote>I have modified the description of the yarn.scheduler.maximum-allocation-vcores setting in yarn-default.xml to be reflective of the actual behavior (throw InvalidRequestException when the limit is crossed).
+
+Since this is a documentation change, I have not added any test cases.
+
+Please review the patch, thanks!</blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-2217">YARN-2217</a>.
+     Major sub-task reported by Chris Trezzo and fixed by Chris Trezzo <br>
+     <b>Shared cache client side changes</b><br>
      <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2314">YARN-2314</a>.
-     Critical bug reported by Jason Lowe and fixed by Jason Lowe (client)<br>
-     <b>ContainerManagementProtocolProxy can create thousands of threads for a large cluster</b><br>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-2213">YARN-2213</a>.
+     Minor task reported by Ted Yu and fixed by Varun Saxena <br>
+     <b>Change proxy-user cookie log in AmIpFilter to DEBUG</b><br>
      <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2313">YARN-2313</a>.
-     Major bug reported by Tsuyoshi OZAWA and fixed by Tsuyoshi OZAWA (fairscheduler)<br>
-     <b>Livelock can occur in FairScheduler when there are lots of running apps</b><br>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-2203">YARN-2203</a>.
+     Major sub-task reported by Chris Trezzo and fixed by Chris Trezzo <br>
+     <b>Web UI for cache manager</b><br>
      <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2312">YARN-2312</a>.
-     Major sub-task reported by Tsuyoshi OZAWA and fixed by Tsuyoshi OZAWA (resourcemanager)<br>
-     <b>Marking ContainerId#getId as deprecated</b><br>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-2190">YARN-2190</a>.
+     Major new feature reported by Chuan Liu and fixed by Chuan Liu (nodemanager)<br>
+     <b>Add CPU and memory limit options to the default container executor for Windows containers</b><br>
      <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2308">YARN-2308</a>.
-     Critical bug reported by Wangda Tan and fixed by chang li (resourcemanager , scheduler)<br>
-     <b>NPE happened when RM restart after CapacityScheduler queue configuration changed </b><br>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-2189">YARN-2189</a>.
+     Major sub-task reported by Chris Trezzo and fixed by Chris Trezzo <br>
+     <b>Admin service for cache manager</b><br>
      <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2302">YARN-2302</a>.
-     Major sub-task reported by Zhijie Shen and fixed by Zhijie Shen (timelineserver)<br>
-     <b>Refactor TimelineWebServices</b><br>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-2188">YARN-2188</a>.
+     Major sub-task reported by Chris Trezzo and fixed by Chris Trezzo <br>
+     <b>Client service for cache manager</b><br>
      <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2298">YARN-2298</a>.
-     Major sub-task reported by Zhijie Shen and fixed by Zhijie Shen (client)<br>
-     <b>Move TimelineClient to yarn-common project</b><br>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-2186">YARN-2186</a>.
+     Major sub-task reported by Chris Trezzo and fixed by Chris Trezzo <br>
+     <b>Node Manager uploader service for cache manager</b><br>
      <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2295">YARN-2295</a>.
-     Major sub-task reported by Li Lu and fixed by Li Lu <br>
-     <b>Refactor YARN distributed shell with existing public stable API</b><br>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-2183">YARN-2183</a>.
+     Major sub-task reported by Chris Trezzo and fixed by Chris Trezzo <br>
+     <b>Cleaner service for cache manager</b><br>
      <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2288">YARN-2288</a>.
-     Major sub-task reported by Junping Du and fixed by Junping Du (timelineserver)<br>
-     <b>Data persistent in timelinestore should be versioned</b><br>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-2180">YARN-2180</a>.
+     Major sub-task reported by Chris Trezzo and fixed by Chris Trezzo <br>
+     <b>In-memory backing store for cache manager</b><br>
      <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2279">YARN-2279</a>.
-     Major sub-task reported by Zhijie Shen and fixed by Zhijie Shen (timelineserver)<br>
-     <b>Add UTs to cover timeline server authentication</b><br>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-2179">YARN-2179</a>.
+     Major sub-task reported by Chris Trezzo and fixed by Chris Trezzo <br>
+     <b>Initial cache manager structure and context</b><br>
      <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2277">YARN-2277</a>.
-     Major sub-task reported by Jonathan Eagles and fixed by Jonathan Eagles (timelineserver)<br>
-     <b>Add Cross-Origin support to the ATS REST API</b><br>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-2165">YARN-2165</a>.
+     Major sub-task reported by Karam Singh and fixed by Vasanth kumar RJ (timelineserver)<br>
+     <b>Timeline server should validate the numeric configuration values</b><br>
      <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2274">YARN-2274</a>.
-     Trivial improvement reported by Karthik Kambatla and fixed by Karthik Kambatla (fairscheduler)<br>
-     <b>FairScheduler: Add debug information about cluster capacity, availability and reservations</b><br>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-2157">YARN-2157</a>.
+     Major improvement reported by Akira AJISAKA and fixed by Akira AJISAKA (documentation)<br>
+     <b>Document YARN metrics</b><br>
      <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2273">YARN-2273</a>.
-     Major bug reported by Andy Skelton and fixed by Wei Yan (fairscheduler , resourcemanager)<br>
-     <b>NPE in ContinuousScheduling thread when we lose a node</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2269">YARN-2269</a>.
-     Major bug reported by Yesha Vora and fixed by Craig Welch <br>
-     <b>External links need to be removed from YARN UI</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2264">YARN-2264</a>.
-     Major bug reported by Siddharth Seth and fixed by Li Lu <br>
-     <b>Race in DrainDispatcher can cause random test failures</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2260">YARN-2260</a>.
-     Major sub-task reported by Jian He and fixed by Jian He (resourcemanager)<br>
-     <b>Add containers to launchedContainers list in RMNode on container recovery</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2252">YARN-2252</a>.
-     Major bug reported by Ratandeep Ratti and fixed by  (scheduler)<br>
-     <b>Intermittent failure of TestFairScheduler.testContinuousScheduling</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2251">YARN-2251</a>.
-     Major bug reported by Zhijie Shen and fixed by Zhijie Shen <br>
-     <b>Avoid negative elapsed time in JHS/MRAM web UI and services</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2249">YARN-2249</a>.
-     Major sub-task reported by Jian He and fixed by Jian He (resourcemanager)<br>
-     <b>AM release request may be lost on RM restart</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2248">YARN-2248</a>.
-     Major sub-task reported by Janos Matyas and fixed by Janos Matyas (capacityscheduler)<br>
-     <b>Capacity Scheduler changes for moving apps between queues</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2244">YARN-2244</a>.
-     Critical bug reported by Anubhav Dhoot and fixed by Anubhav Dhoot (fairscheduler)<br>
-     <b>FairScheduler missing handling of containers for unknown application attempts </b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2242">YARN-2242</a>.
-     Major sub-task reported by Li Lu and fixed by Li Lu <br>
-     <b>Improve exception information on AM launch crashes</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2237">YARN-2237</a>.
-     Major sub-task reported by Xuan Gong and fixed by Xuan Gong (resourcemanager)<br>
-     <b>MRAppMaster changes for AMRMToken roll-up</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2229">YARN-2229</a>.
-     Major sub-task reported by Tsuyoshi OZAWA and fixed by Tsuyoshi OZAWA (resourcemanager)<br>
-     <b>ContainerId can overflow with RM restart</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2228">YARN-2228</a>.
-     Major sub-task reported by Zhijie Shen and fixed by Zhijie Shen <br>
-     <b>TimelineServer should load pseudo authentication filter when authentication = simple</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2219">YARN-2219</a>.
-     Major bug reported by Ashwin Shankar and fixed by Jian He (resourcemanager)<br>
-     <b>AMs and NMs can get exceptions after recovery but before scheduler knowns apps and app-attempts</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2214">YARN-2214</a>.
-     Major improvement reported by Ashwin Shankar and fixed by Ashwin Shankar (scheduler)<br>
-     <b>FairScheduler: preemptContainerPreCheck() in FSParentQueue delays convergence towards fairness</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2212">YARN-2212</a>.
-     Major sub-task reported by Xuan Gong and fixed by Xuan Gong (resourcemanager)<br>
-     <b>ApplicationMaster needs to find a way to update the AMRMToken periodically</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2211">YARN-2211</a>.
-     Major sub-task reported by Xuan Gong and fixed by Xuan Gong (resourcemanager)<br>
-     <b>RMStateStore needs to save AMRMToken master key for recovery when RM restart/failover happens </b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2209">YARN-2209</a>.
-     Major improvement reported by Jian He and fixed by Jian He <br>
-     <b>Replace AM resync/shutdown command with corresponding exceptions</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2208">YARN-2208</a>.
-     Major sub-task reported by Xuan Gong and fixed by Xuan Gong (resourcemanager)<br>
-     <b>AMRMTokenManager need to have a way to roll over AMRMToken</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2207">YARN-2207</a>.
-     Major task reported by Xuan Gong and fixed by Xuan Gong (resourcemanager)<br>
-     <b>Add ability to roll over AMRMToken</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2198">YARN-2198</a>.
-     Major improvement reported by Remus Rusanu and fixed by Remus Rusanu <br>
-     <b>Remove the need to run NodeManager as privileged account for Windows Secure Container Executor</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2197">YARN-2197</a>.
-     Minor improvement reported by Akira AJISAKA and fixed by Akira AJISAKA (documentation)<br>
-     <b>Add a link to YARN CHANGES.txt in the left side of doc</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2182">YARN-2182</a>.
-     Major sub-task reported by Tsuyoshi OZAWA and fixed by Tsuyoshi OZAWA <br>
-     <b>Update ContainerId#toString() to avoid conflicts before and after RM restart</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2181">YARN-2181</a>.
-     Major bug reported by Wangda Tan and fixed by Wangda Tan (resourcemanager , webapp)<br>
-     <b>Add preemption info to RM Web UI and add logs when preemption occurs</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2174">YARN-2174</a>.
-     Major sub-task reported by Zhijie Shen and fixed by Zhijie Shen <br>
-     <b>Enabling HTTPs for the writer REST API of TimelineServer</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2161">YARN-2161</a>.
-     Major bug reported by Binglin Chang and fixed by Binglin Chang <br>
-     <b>Fix build on macosx: YARN parts</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2158">YARN-2158</a>.
-     Minor test reported by Ted Yu and fixed by Varun Vasudev <br>
-     <b>TestRMWebServicesAppsModification sometimes fails in trunk</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2153">YARN-2153</a>.
-     Major sub-task reported by Jian He and fixed by Jian He (resourcemanager)<br>
-     <b>Ensure distributed shell work with RM work-preserving recovery</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2147">YARN-2147</a>.
-     Minor bug reported by Jason Lowe and fixed by Chen He (resourcemanager)<br>
-     <b>client lacks delegation token exception details when application submit fails</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2138">YARN-2138</a>.
+<li> <a href="https://issues.apache.org/jira/browse/YARN-2136">YARN-2136</a>.
      Major bug reported by Jian He and fixed by Varun Saxena <br>
-     <b>Cleanup notifyDone* methods in RMStateStore</b><br>
+     <b>RMStateStore can explicitly handle store/update events when fenced</b><br>
      <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2131">YARN-2131</a>.
-     Major new feature reported by Karthik Kambatla and fixed by Robert Kanter (resourcemanager)<br>
-     <b>Add a way to format the RMStateStore</b><br>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-2079">YARN-2079</a>.
+     Major sub-task reported by Jason Lowe and fixed by Jason Lowe (nodemanager)<br>
+     <b>Recover NonAggregatingLogHandler state upon nodemanager restart</b><br>
      <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2102">YARN-2102</a>.
+<li> <a href="https://issues.apache.org/jira/browse/YARN-2056">YARN-2056</a>.
+     Major sub-task reported by Mayank Bansal and fixed by Eric Payne (resourcemanager)<br>
+     <b>Disable preemption at Queue level</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-1984">YARN-1984</a>.
+     Major sub-task reported by Jason Lowe and fixed by Varun Saxena <br>
+     <b>LeveldbTimelineStore does not handle db exceptions properly</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-1979">YARN-1979</a>.
+     Major test reported by Vinod Kumar Vavilapalli and fixed by Vinod Kumar Vavilapalli <br>
+     <b>TestDirectoryCollection fails when the umask is unusual</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-1904">YARN-1904</a>.
      Major sub-task reported by Zhijie Shen and fixed by Zhijie Shen <br>
-     <b>More generalized timeline ACLs</b><br>
+     <b>Uniform the XXXXNotFound messages from ClientRMService and ApplicationHistoryClientService</b><br>
+     <blockquote>I just committed this. Thanks Zhijie!</blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-1884">YARN-1884</a>.
+     Major sub-task reported by Zhijie Shen and fixed by Xuan Gong <br>
+     <b>ContainerReport should have nodeHttpAddress</b><br>
      <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2088">YARN-2088</a>.
-     Major bug reported by Binglin Chang and fixed by Binglin Chang <br>
-     <b>Fix code bug in GetApplicationsRequestPBImpl#mergeLocalToBuilder</b><br>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-1809">YARN-1809</a>.
+     Major sub-task reported by Zhijie Shen and fixed by Xuan Gong <br>
+     <b>Synchronize RM and Generic History Service Web-UIs</b><br>
      <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2080">YARN-2080</a>.
-     Major sub-task reported by Subru Krishnan and fixed by Subru Krishnan (resourcemanager)<br>
-     <b>Admission Control: Integrate Reservation subsystem with ResourceManager</b><br>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-1723">YARN-1723</a>.
+     Major sub-task reported by Bikas Saha and fixed by Bartosz &#321;ugowski <br>
+     <b>AMRMClientAsync missing blacklist addition and removal functionality</b><br>
      <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2070">YARN-2070</a>.
-     Minor sub-task reported by Zhijie Shen and fixed by Robert Kanter <br>
-     <b>DistributedShell publishes unfriendly user information to the timeline server</b><br>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-1703">YARN-1703</a>.
+     Critical bug reported by Rohith and fixed by Rohith <br>
+     <b>Too many connections are opened for proxy server when applicationMaster UI is accessed.</b><br>
      <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2045">YARN-2045</a>.
-     Major sub-task reported by Junping Du and fixed by Junping Du (nodemanager)<br>
-     <b>Data persisted in NM should be versioned</b><br>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-1615">YARN-1615</a>.
+     Trivial bug reported by Akira AJISAKA and fixed by Akira AJISAKA (documentation , scheduler)<br>
+     <b>Fix typos in description about delay scheduling</b><br>
      <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2035">YARN-2035</a>.
-     Major sub-task reported by Jonathan Eagles and fixed by Jonathan Eagles <br>
-     <b>FileSystemApplicationHistoryStore blocks RM and AHS while NN is in safemode</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2034">YARN-2034</a>.
-     Minor bug reported by Jason Lowe and fixed by Chen He (nodemanager)<br>
-     <b>Description for yarn.nodemanager.localizer.cache.target-size-mb is incorrect</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2033">YARN-2033</a>.
-     Major sub-task reported by Vinod Kumar Vavilapalli and fixed by Zhijie Shen <br>
-     <b>Merging generic-history into the Timeline Store</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2026">YARN-2026</a>.
-     Major bug reported by Ashwin Shankar and fixed by Ashwin Shankar (scheduler)<br>
-     <b>Fair scheduler: Consider only active queues for computing fairshare</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2013">YARN-2013</a>.
-     Major sub-task reported by Zhijie Shen and fixed by Tsuyoshi OZAWA (nodemanager)<br>
-     <b>The diagnostics is always the ExitCodeException stack when the container crashes</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2010">YARN-2010</a>.
-     Blocker bug reported by bc Wong and fixed by Karthik Kambatla (resourcemanager)<br>
-     <b>Handle app-recovery failures gracefully</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2008">YARN-2008</a>.
-     Major sub-task reported by Chen He and fixed by Craig Welch <br>
-     <b>CapacityScheduler may report incorrect queueMaxCap if there is hierarchy queue structure </b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2001">YARN-2001</a>.
-     Major sub-task reported by Jian He and fixed by Jian He (resourcemanager)<br>
-     <b>Threshold for RM to accept requests from AM after failover</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1994">YARN-1994</a>.
-     Major improvement reported by Arpit Agarwal and fixed by Craig Welch (nodemanager , resourcemanager , webapp)<br>
-     <b>Expose YARN/MR endpoints on multiple interfaces</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1972">YARN-1972</a>.
-     Major sub-task reported by Remus Rusanu and fixed by Remus Rusanu (nodemanager)<br>
-     <b>Implement secure Windows Container Executor</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1964">YARN-1964</a>.
-     Major new feature reported by Arun C Murthy and fixed by Abin Shahab <br>
-     <b>Create Docker analog of the LinuxContainerExecutor in YARN</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1959">YARN-1959</a>.
-     Major bug reported by Sandy Ryza and fixed by Anubhav Dhoot <br>
-     <b>Fix headroom calculation in FairScheduler</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1954">YARN-1954</a>.
-     Major improvement reported by Zhijie Shen and fixed by Tsuyoshi OZAWA (client)<br>
-     <b>Add waitFor to AMRMClient(Async)</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1922">YARN-1922</a>.
-     Major bug reported by Billie Rinaldi and fixed by Billie Rinaldi (nodemanager)<br>
-     <b>Process group remains alive after container process is killed externally</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1919">YARN-1919</a>.
-     Minor bug reported by Devaraj K and fixed by Tsuyoshi OZAWA (resourcemanager)<br>
-     <b>Potential NPE in EmbeddedElectorService#stop</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1918">YARN-1918</a>.
-     Trivial improvement reported by Devaraj K and fixed by Anandha L Ranganathan <br>
-     <b>Typo in description and error message for 'yarn.resourcemanager.cluster-id'</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1915">YARN-1915</a>.
-     Blocker sub-task reported by Hitesh Shah and fixed by Jason Lowe <br>
-     <b>ClientToAMTokenMasterKey should be provided to AM at launch time</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1879">YARN-1879</a>.
-     Critical sub-task reported by Jian He and fixed by Tsuyoshi OZAWA (resourcemanager)<br>
-     <b>Mark Idempotent/AtMostOnce annotations to ApplicationMasterProtocol for RM fail over</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1857">YARN-1857</a>.
-     Critical sub-task reported by Thomas Graves and fixed by Chen He (capacityscheduler)<br>
-     <b>CapacityScheduler headroom doesn't account for other AM's running</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1796">YARN-1796</a>.
-     Minor bug reported by Aaron T. Myers and fixed by Aaron T. Myers (nodemanager)<br>
-     <b>container-executor shouldn't require o-r permissions</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1779">YARN-1779</a>.
-     Blocker sub-task reported by Karthik Kambatla and fixed by Jian He (resourcemanager)<br>
-     <b>Handle AMRMTokens across RM failover</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1769">YARN-1769</a>.
+<li> <a href="https://issues.apache.org/jira/browse/YARN-1582">YARN-1582</a>.
      Major improvement reported by Thomas Graves and fixed by Thomas Graves (capacityscheduler)<br>
-     <b>CapacityScheduler:  Improve reservations</b><br>
+     <b>Capacity Scheduler: add a maximum-allocation-mb setting per queue </b><br>
      <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1712">YARN-1712</a>.
-     Major sub-task reported by Carlo Curino and fixed by Carlo Curino (capacityscheduler , resourcemanager)<br>
-     <b>Admission Control: plan follower</b><br>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-1580">YARN-1580</a>.
+     Trivial bug reported by German Florez-Larrahondo and fixed by Brahma Reddy Battula (documentation)<br>
+     <b>Documentation error regarding "container-allocation.expiry-interval-ms"</b><br>
      <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1711">YARN-1711</a>.
-     Major sub-task reported by Carlo Curino and fixed by Carlo Curino <br>
-     <b>CapacityOverTimePolicy: a policy to enforce quotas over time for YARN-1709</b><br>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-1537">YARN-1537</a>.
+     Major test reported by Hong Shen and fixed by Xuan Gong (nodemanager)<br>
+     <b>TestLocalResourcesTrackerImpl.testLocalResourceCache often failed</b><br>
      <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1710">YARN-1710</a>.
-     Major sub-task reported by Carlo Curino and fixed by Carlo Curino (resourcemanager)<br>
-     <b>Admission Control: agents to allocate reservation</b><br>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-1514">YARN-1514</a>.
+     Major sub-task reported by Tsuyoshi Ozawa and fixed by Tsuyoshi Ozawa <br>
+     <b>Utility to benchmark ZKRMStateStore#loadState for ResourceManager-HA</b><br>
      <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1709">YARN-1709</a>.
-     Major sub-task reported by Carlo Curino and fixed by Subru Krishnan (resourcemanager)<br>
-     <b>Admission Control: Reservation subsystem</b><br>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-1453">YARN-1453</a>.
+     Minor bug reported by Andrew Purtell and fixed by Akira AJISAKA <br>
+     <b>[JDK8] Fix Javadoc errors caused by incorrect or illegal tags in doc comments</b><br>
      <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1708">YARN-1708</a>.
-     Major sub-task reported by Carlo Curino and fixed by Subru Krishnan (resourcemanager)<br>
-     <b>Add a public API to reserve resources (part of YARN-1051)</b><br>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-1393">YARN-1393</a>.
+     Major improvement reported by Wei Yan and fixed by Wei Yan <br>
+     <b>SLS: Add how-to-use instructions</b><br>
      <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1707">YARN-1707</a>.
-     Major sub-task reported by Carlo Curino and fixed by Carlo Curino (capacityscheduler)<br>
-     <b>Making the CapacityScheduler more dynamic</b><br>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-1299">YARN-1299</a>.
+     Major improvement reported by Devaraj K and fixed by  (resourcemanager)<br>
+     <b>Improve a log message in AppSchedulingInfo by adding application id</b><br>
      <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1372">YARN-1372</a>.
-     Major sub-task reported by Bikas Saha and fixed by Anubhav Dhoot (resourcemanager)<br>
-     <b>Ensure all completed containers are reported to the AMs across RM restart</b><br>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-1237">YARN-1237</a>.
+     Minor bug reported by Hitesh Shah and fixed by Brahma Reddy Battula (documentation)<br>
+     <b>Description for yarn.nodemanager.aux-services in yarn-default.xml is misleading</b><br>
      <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1370">YARN-1370</a>.
-     Major sub-task reported by Bikas Saha and fixed by Anubhav Dhoot (resourcemanager)<br>
-     <b>Fair scheduler to re-populate container allocation state</b><br>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-1156">YARN-1156</a>.
+     Major improvement reported by Akira AJISAKA and fixed by Tsuyoshi Ozawa <br>
+     <b>Enhance NodeManager AllocatedGB and AvailableGB metrics for aggregation of decimal values</b><br>
      <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1367">YARN-1367</a>.
-     Major sub-task reported by Bikas Saha and fixed by Anubhav Dhoot (resourcemanager)<br>
-     <b>After restart NM should resync with the RM without killing containers</b><br>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-933">YARN-933</a>.
+     Major bug reported by J.Andreina and fixed by Rohith (resourcemanager)<br>
+     <b>Potential InvalidStateTransitonException: Invalid event: LAUNCHED at FINAL_SAVING</b><br>
      <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1354">YARN-1354</a>.
-     Major sub-task reported by Jason Lowe and fixed by Jason Lowe (nodemanager)<br>
-     <b>Recover applications upon nodemanager restart</b><br>
+<li> <a href="https://issues.apache.org/jira/browse/YARN-570">YARN-570</a>.
+     Major bug reported by Peng Zhang and fixed by Akira AJISAKA (webapp)<br>
+     <b>Time strings are formated in different timezone</b><br>
      <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1342">YARN-1342</a>.
-     Major sub-task reported by Jason Lowe and fixed by Jason Lowe (nodemanager)<br>
-     <b>Recover container tokens upon nodemanager restart</b><br>
+<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-6303">MAPREDUCE-6303</a>.
+     Blocker bug reported by Jason Lowe and fixed by Jason Lowe <br>
+     <b>Read timeout when retrying a fetch error can be fatal to a reducer</b><br>
      <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1341">YARN-1341</a>.
-     Major sub-task reported by Jason Lowe and fixed by Jason Lowe (nodemanager)<br>
-     <b>Recover NMTokens upon nodemanager restart</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1337">YARN-1337</a>.
-     Major sub-task reported by Jason Lowe and fixed by Jason Lowe (nodemanager)<br>
-     <b>Recover containers upon nodemanager restart</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1326">YARN-1326</a>.
-     Major sub-task reported by Tsuyoshi OZAWA and fixed by Tsuyoshi OZAWA <br>
-     <b>RM should log using RMStore at startup time</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1250">YARN-1250</a>.
-     Major sub-task reported by Vinod Kumar Vavilapalli and fixed by Zhijie Shen <br>
-     <b>Generic history service should support application-acls</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1063">YARN-1063</a>.
-     Major sub-task reported by Kyle Leckie and fixed by Remus Rusanu (nodemanager)<br>
-     <b>Winutils needs ability to create task as domain user</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1051">YARN-1051</a>.
-     Major improvement reported by Carlo Curino and fixed by Carlo Curino (capacityscheduler , resourcemanager , scheduler)<br>
-     <b>YARN Admission Control/Planner: enhancing the resource allocation model with time.</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-668">YARN-668</a>.
-     Blocker sub-task reported by Siddharth Seth and fixed by Junping Du <br>
-     <b>TokenIdentifier serialization should consider Unknown fields</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-611">YARN-611</a>.
-     Major sub-task reported by Chris Riccomini and fixed by Xuan Gong (resourcemanager)<br>
-     <b>Add an AM retry count reset window to YARN RM</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-415">YARN-415</a>.
-     Major new feature reported by Kendall Thrapp and fixed by Eric Payne (resourcemanager)<br>
-     <b>Capture aggregate memory allocation at the app-level for chargeback</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-90">YARN-90</a>.
-     Major sub-task reported by Ravi Gummadi and fixed by Varun Vasudev (nodemanager)<br>
-     <b>NodeManager should identify failed disks becoming good again</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-6156">MAPREDUCE-6156</a>.
-     Blocker bug reported by Sidharta Seethana and fixed by Junping Du <br>
-     <b>Fetcher - connect() doesn't handle connection refused correctly </b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-6142">MAPREDUCE-6142</a>.
-     Critical sub-task reported by Zhijie Shen and fixed by Zhijie Shen <br>
-     <b>Test failure in TestJobHistoryEventHandler and TestMRTimelineEventHandling</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-6126">MAPREDUCE-6126</a>.
-     Major bug reported by Junping Du and fixed by Junping Du <br>
-     <b>(Rumen) Rumen tool returns error "ava.lang.IllegalArgumentException: JobBuilder.process(HistoryEvent): unknown event type"</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-6125">MAPREDUCE-6125</a>.
-     Major bug reported by Mit Desai and fixed by Mit Desai (test)<br>
-     <b>TestContainerLauncherImpl sometimes fails</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-6123">MAPREDUCE-6123</a>.
-     Trivial bug reported by Chris Nauroth and fixed by Chris Nauroth (test)<br>
-     <b>TestCombineFileInputFormat incorrectly starts 2 MiniDFSCluster instances.</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-6122">MAPREDUCE-6122</a>.
-     Trivial bug reported by Chris Nauroth and fixed by Chris Nauroth (test)<br>
-     <b>TestLineRecordReader may fail due to test data files checked out of git with incorrect line endings.</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-6115">MAPREDUCE-6115</a>.
-     Minor test reported by Ted Yu and fixed by Binglin Chang <br>
-     <b>TestPipeApplication#testSubmitter fails in trunk</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-6109">MAPREDUCE-6109</a>.
-     Trivial bug reported by Charles Lamb and fixed by Charles Lamb (distcp)<br>
-     <b>Fix minor typo in distcp -p usage text</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-6104">MAPREDUCE-6104</a>.
-     Major bug reported by Mit Desai and fixed by Mit Desai <br>
-     <b>TestJobHistoryParsing.testPartialJob fails in branch-2</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-6095">MAPREDUCE-6095</a>.
-     Major bug reported by Gera Shegalov and fixed by Gera Shegalov (applicationmaster , distributed-cache)<br>
-     <b>Enable DistributedCache for uber-mode Jobs</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-6094">MAPREDUCE-6094</a>.
-     Minor bug reported by Sangjin Lee and fixed by Akira AJISAKA (test)<br>
-     <b>TestMRCJCFileInputFormat.testAddInputPath() fails on trunk</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-6093">MAPREDUCE-6093</a>.
-     Trivial bug reported by Charles Lamb and fixed by Charles Lamb (distcp , documentation)<br>
-     <b>minor distcp doc edits</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-6091">MAPREDUCE-6091</a>.
-     Major bug reported by Sangjin Lee and fixed by Sangjin Lee (client)<br>
-     <b>YARNRunner.getJobStatus() fails with ApplicationNotFoundException if the job rolled off the RM view</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-6090">MAPREDUCE-6090</a>.
-     Major bug reported by Robert Kanter and fixed by Robert Kanter (client)<br>
-     <b>mapred hsadmin getGroups fails to connect in some cases</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-6086">MAPREDUCE-6086</a>.
-     Major improvement reported by zhihai xu and fixed by zhihai xu (security)<br>
-     <b>mapreduce.job.credentials.binary should allow all URIs</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-6075">MAPREDUCE-6075</a>.
-     Major bug reported by Jason Lowe and fixed by Jason Lowe (jobhistoryserver)<br>
-     <b>HistoryServerFileSystemStateStore can create zero-length files</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-6073">MAPREDUCE-6073</a>.
-     Trivial bug reported by Tsuyoshi OZAWA and fixed by Tsuyoshi OZAWA (documentation)<br>
-     <b>Description of mapreduce.job.speculative.slowtaskthreshold in mapred-default should be moved into description tags</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-6072">MAPREDUCE-6072</a>.
-     Minor improvement reported by Akira AJISAKA and fixed by Akira AJISAKA (documentation)<br>
-     <b>Remove INSTALL document</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-6071">MAPREDUCE-6071</a>.
-     Trivial improvement reported by Tsuyoshi OZAWA and fixed by Tsuyoshi OZAWA (client)<br>
-     <b>JobImpl#makeUberDecision doesn't log that Uber mode is disabled because of too much CPUs</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-6070">MAPREDUCE-6070</a>.
-     Trivial improvement reported by Tsuyoshi OZAWA and fixed by Tsuyoshi OZAWA (documentation)<br>
-     <b>yarn.app.am.resource.mb/cpu-vcores affects uber mode but is not documented</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-6063">MAPREDUCE-6063</a>.
-     Major bug reported by zhihai xu and fixed by zhihai xu (mrv1 , mrv2)<br>
-     <b>In sortAndSpill of MapTask.java, size is calculated wrongly when bufend &lt; bufstart.</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-6052">MAPREDUCE-6052</a>.
-     Major bug reported by Junping Du and fixed by Junping Du <br>
-     <b>Support overriding log4j.properties per job</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-6051">MAPREDUCE-6051</a>.
-     Trivial bug reported by Ray Chiang and fixed by Ray Chiang <br>
-     <b>Fix typos in log messages</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-6048">MAPREDUCE-6048</a>.
-     Minor test reported by Ted Yu and fixed by Varun Vasudev <br>
-     <b>TestJavaSerialization fails in trunk build</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-6044">MAPREDUCE-6044</a>.
-     Major bug reported by Zhijie Shen and fixed by Zhijie Shen (jobhistoryserver)<br>
-     <b>Fully qualified intermediate done directory will break per-user dir creation on Windows</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-6036">MAPREDUCE-6036</a>.
-     Major bug reported by Mit Desai and fixed by chang li <br>
-     <b>TestJobEndNotifier fails intermittently in branch-2</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-6032">MAPREDUCE-6032</a>.
-     Major bug reported by Benjamin Zhitomirsky and fixed by Benjamin Zhitomirsky (jobhistoryserver)<br>
-     <b>Unable to check mapreduce job status if submitted using a non-default namenode</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-6029">MAPREDUCE-6029</a>.
-     Major bug reported by Ted Yu and fixed by Mit Desai <br>
-     <b>TestCommitterEventHandler fails in trunk</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-6024">MAPREDUCE-6024</a>.
-     Critical improvement reported by zhaoyunjiong and fixed by zhaoyunjiong (mr-am , task)<br>
-     <b>java.net.SocketTimeoutException in Fetcher caused jobs stuck for more than 1 hour</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-6022">MAPREDUCE-6022</a>.
-     Major bug reported by Jason Lowe and fixed by Jason Lowe <br>
-     <b>map_input_file is missing from streaming job environment</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-6021">MAPREDUCE-6021</a>.
-     Major bug reported by Jason Lowe and fixed by Jason Lowe (mr-am)<br>
-     <b>MR AM should have working directory in LD_LIBRARY_PATH</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-6019">MAPREDUCE-6019</a>.
-     Major bug reported by Xuan Gong and fixed by Craig Welch <br>
-     <b>MapReduce changes for exposing YARN/MR endpoints on multiple interfaces.</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-6018">MAPREDUCE-6018</a>.
-     Major sub-task reported by Jonathan Eagles and fixed by Robert Kanter <br>
-     <b>Create a framework specific config to enable timeline server</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-6014">MAPREDUCE-6014</a>.
-     Major bug reported by Mit Desai and fixed by Mit Desai <br>
-     <b>New task status field in task attempts table can lead to an empty web page </b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-6012">MAPREDUCE-6012</a>.
-     Major bug reported by Julien Serdaru and fixed by Wei Yan <br>
-     <b>DBInputSplit creates invalid ranges on Oracle</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-6010">MAPREDUCE-6010</a>.
-     Major bug reported by Jason Lowe and fixed by Jason Lowe (jobhistoryserver)<br>
-     <b>HistoryServerFileSystemStateStore fails to update tokens</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5999">MAPREDUCE-5999</a>.
-     Minor bug reported by Akira AJISAKA and fixed by Akira AJISAKA (documentation)<br>
-     <b>Fix dead link in InputFormat javadoc</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5998">MAPREDUCE-5998</a>.
-     Minor bug reported by Akira AJISAKA and fixed by Akira AJISAKA (documentation)<br>
-     <b>CompositeInputFormat javadoc is broken</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5974">MAPREDUCE-5974</a>.
-     Major sub-task reported by Todd Lipcon and fixed by Todd Lipcon (task)<br>
-     <b>Allow specifying multiple MapOutputCollectors with fallback</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5971">MAPREDUCE-5971</a>.
-     Trivial improvement reported by Charles Lamb and fixed by Charles Lamb (distcp)<br>
-     <b>Move the default options for distcp -p to DistCpOptionSwitch</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5970">MAPREDUCE-5970</a>.
-     Minor improvement reported by Gera Shegalov and fixed by Gera Shegalov (applicationmaster , client)<br>
-     <b>Provide a boolean switch to enable MR-AM profiling</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5963">MAPREDUCE-5963</a>.
-     Major sub-task reported by Junping Du and fixed by Junping Du <br>
-     <b>ShuffleHandler DB schema should be versioned with compatible/incompatible changes</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5960">MAPREDUCE-5960</a>.
-     Major bug reported by Gera Shegalov and fixed by Gera Shegalov (client)<br>
-     <b>JobSubmitter's check whether job.jar is local is incorrect with no authority in job jar path.</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5958">MAPREDUCE-5958</a>.
-     Minor bug reported by Emilio Coppa and fixed by Emilio Coppa <br>
-     <b>Wrong reduce task progress if map output is compressed</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5957">MAPREDUCE-5957</a>.
-     Major bug reported by Sangjin Lee and fixed by Sangjin Lee <br>
-     <b>AM throws ClassNotFoundException with job classloader enabled if custom output format/committer is used</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5956">MAPREDUCE-5956</a>.
-     Blocker sub-task reported by Vinod Kumar Vavilapalli and fixed by Wangda Tan (applicationmaster , mrv2)<br>
-     <b>MapReduce AM should not use maxAttempts to determine if this is the last retry</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5950">MAPREDUCE-5950</a>.
-     Major bug reported by Yongjun Zhang and fixed by Akira AJISAKA (documentation)<br>
-     <b>incorrect description in distcp2 document</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5945">MAPREDUCE-5945</a>.
-     Minor sub-task reported by Akira AJISAKA and fixed by Akira AJISAKA (documentation)<br>
-     <b>Update the description of GenericOptionsParser -jt option</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5943">MAPREDUCE-5943</a>.
-     Minor improvement reported by Akira AJISAKA and fixed by Akira AJISAKA (documentation)<br>
-     <b>Separate mapred commands from CommandsManual.apt.vm</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5942">MAPREDUCE-5942</a>.
-     Minor sub-task reported by Akira AJISAKA and fixed by Akira AJISAKA (documentation)<br>
-     <b>Remove MRv1 commands from CommandsManual.apt.vm</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5933">MAPREDUCE-5933</a>.
-     Major sub-task reported by Zhijie Shen and fixed by Robert Kanter (mr-am)<br>
-     <b>Enable MR AM to post history events to the timeline server</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5931">MAPREDUCE-5931</a>.
-     Minor bug reported by Gera Shegalov and fixed by Gera Shegalov (test)<br>
-     <b>Validate SleepJob command line parameters</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5910">MAPREDUCE-5910</a>.
-     Major task reported by Rohith and fixed by Rohith (applicationmaster)<br>
-     <b>MRAppMaster should handle Resync from RM instead of shutting down.</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5906">MAPREDUCE-5906</a>.
-     Minor improvement reported by Akira AJISAKA and fixed by Akira AJISAKA <br>
-     <b>Inconsistent configuration in property "mapreduce.reduce.shuffle.input.buffer.percent"</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5891">MAPREDUCE-5891</a>.
-     Major sub-task reported by Jason Lowe and fixed by Junping Du <br>
-     <b>Improved shuffle error handling across NM restarts</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5885">MAPREDUCE-5885</a>.
-     Major bug reported by Jason Lowe and fixed by Chen He (test)<br>
-     <b>build/test/test.mapred.spill causes release audit warnings</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5878">MAPREDUCE-5878</a>.
-     Major bug reported by Sangjin Lee and fixed by Sangjin Lee (mrv2)<br>
-     <b>some standard JDK APIs are not part of system classes defaults</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5873">MAPREDUCE-5873</a>.
-     Major bug reported by Siqi Li and fixed by Siqi Li <br>
-     <b>Shuffle bandwidth computation includes time spent waiting for maps</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5866">MAPREDUCE-5866</a>.
-     Major test reported by Varun Vasudev and fixed by Varun Vasudev (client , test)<br>
-     <b>TestFixedLengthInputFormat fails in windows</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5831">MAPREDUCE-5831</a>.
-     Blocker bug reported by Zhijie Shen and fixed by Junping Du (client , mr-am)<br>
-     <b>Old MR client is not compatible with new MR application</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5796">MAPREDUCE-5796</a>.
-     Minor bug reported by Akira AJISAKA and fixed by Akira AJISAKA (documentation)<br>
-     <b>Use current version of the archive name in DistributedCacheDeploy document</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5756">MAPREDUCE-5756</a>.
-     Major bug reported by Jason Dere and fixed by Jason Dere <br>
-     <b>CombineFileInputFormat.getSplits() including directories in its results</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5597">MAPREDUCE-5597</a>.
-     Minor bug reported by Christopher Tubbs and fixed by Akira AJISAKA (client , documentation , job submission)<br>
-     <b>Missing alternatives in javadocs for deprecated constructors in mapreduce.Job</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5595">MAPREDUCE-5595</a>.
-     Trivial bug reported by Efe Gencer and fixed by Akira AJISAKA <br>
-     <b>Typo in MergeManagerImpl.java</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5542">MAPREDUCE-5542</a>.
-     Major bug reported by Jason Lowe and fixed by Rohith (client , mrv2)<br>
-     <b>Killing a job just as it finishes can generate an NPE in client</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5363">MAPREDUCE-5363</a>.
-     Minor bug reported by Sandy Ryza and fixed by Akira AJISAKA (mrv1 , mrv2)<br>
-     <b>Fix doc and spelling for TaskCompletionEvent#getTaskStatus and getStatus</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5279">MAPREDUCE-5279</a>.
-     Critical bug reported by Peng Zhang and fixed by Peng Zhang (mrv2 , scheduler)<br>
-     <b>Jobs can deadlock if headroom is limited by cpu instead of memory</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5130">MAPREDUCE-5130</a>.
-     Major improvement reported by Sandy Ryza and fixed by Ray Chiang (documentation)<br>
-     <b>Add missing job config options to mapred-default.xml</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4791">MAPREDUCE-4791</a>.
-     Minor improvement reported by Matt Lavin and fixed by Akira AJISAKA (documentation)<br>
-     <b>Javadoc for KeyValueTextInputFormat should include default separator and how to change it</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-883">MAPREDUCE-883</a>.
-     Minor improvement reported by Koji Noguchi and fixed by Akira AJISAKA (documentation , harchive)<br>
-     <b>harchive: Document how to unarchive</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-7391">HDFS-7391</a>.
-     Blocker bug reported by Robert Kanter and fixed by Robert Kanter (webhdfs)<br>
-     <b>Renable SSLv2Hello in HttpFS</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-7387">HDFS-7387</a>.
-     Critical bug reported by Brandon Li and fixed by Brandon Li (nfs)<br>
-     <b>NFS may only do partial commit due to a race between COMMIT and write</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-7385">HDFS-7385</a>.
-     Blocker bug reported by jiangyu and fixed by jiangyu (namenode)<br>
-     <b>ThreadLocal used in FSEditLog class causes FSImage permission mess up</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-7383">HDFS-7383</a>.
-     Major bug reported by Tsz Wo Nicholas Sze and fixed by Tsz Wo Nicholas Sze (datanode)<br>
-     <b>DataNode.requestShortCircuitFdsForRead may throw NullPointerException</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-7382">HDFS-7382</a>.
-     Minor bug reported by Chris Nauroth and fixed by Chris Nauroth (datanode , security)<br>
-     <b>DataNode in secure mode may throw NullPointerException if client connects before DataNode registers itself with NameNode.</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-7379">HDFS-7379</a>.
-     Minor bug reported by Xiaoyu Yao and fixed by Xiaoyu Yao (test)<br>
-     <b>TestBalancer#testBalancerWithRamDisk creates test files incorrectly</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-7367">HDFS-7367</a>.
-     Major bug reported by Chris Nauroth and fixed by Chris Nauroth (hdfs-client)<br>
-     <b>HDFS short-circuit read cannot negotiate shared memory slot and file descriptors when SASL is enabled on DataTransferProtocol.</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-7364">HDFS-7364</a>.
-     Minor bug reported by Tsz Wo Nicholas Sze and fixed by Tsz Wo Nicholas Sze (balancer &amp; mover)<br>
-     <b>Balancer always shows zero Bytes Already Moved</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-7359">HDFS-7359</a>.
-     Major bug reported by Chris Nauroth and fixed by Chris Nauroth (journal-node , namenode)<br>
-     <b>NameNode in secured HA cluster fails to start if dfs.namenode.secondary.http-address cannot be interpreted as a network address.</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-7355">HDFS-7355</a>.
-     Trivial test reported by Chris Nauroth and fixed by Chris Nauroth (test)<br>
-     <b>TestDataNodeVolumeFailure#testUnderReplicationAfterVolFailure fails on Windows, because we cannot deny access to the file owner.</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-7340">HDFS-7340</a>.
-     Major bug reported by Arpit Gupta and fixed by Jing Zhao (ha)<br>
-     <b>make rollingUpgrade start/finalize idempotent</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-7334">HDFS-7334</a>.
-     Minor bug reported by Charles Lamb and fixed by Charles Lamb (test)<br>
-     <b>Fix periodic failures of TestCheckpoint#testTooManyEditReplayFailures</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-7328">HDFS-7328</a>.
-     Trivial bug reported by Chris Nauroth and fixed by Chris Nauroth (test)<br>
-     <b>TestTraceAdmin assumes Unix line endings.</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-7313">HDFS-7313</a>.
-     Major improvement reported by Chris Nauroth and fixed by Chris Nauroth (datanode , hdfs-client , security)<br>
-     <b>Support optional configuration of AES cipher suite on DataTransferProtocol.</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-7309">HDFS-7309</a>.
-     Minor bug reported by Ravi Prakash and fixed by Colin Patrick McCabe <br>
-     <b>XMLUtils.mangleXmlString doesn't seem to handle less than sign</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-7305">HDFS-7305</a>.
-     Minor bug reported by Arpit Gupta and fixed by Jing Zhao (webhdfs)<br>
-     <b>NPE seen in wbhdfs FS while running SLive</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-7300">HDFS-7300</a>.
-     Critical bug reported by Kihwal Lee and fixed by Kihwal Lee <br>
-     <b>The getMaxNodesPerRack() method in BlockPlacementPolicyDefault is flawed</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-7296">HDFS-7296</a>.
-     Minor bug reported by Jing Zhao and fixed by Jing Zhao <br>
-     <b>HdfsConstants#MEMORY_STORAGE_POLICY_ID and HdfsConstants#MEMORY_STORAGE_POLICY_ID are missing in branch-2</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-7291">HDFS-7291</a>.
-     Major sub-task reported by Xiaoyu Yao and fixed by Xiaoyu Yao (datanode)<br>
-     <b>Persist in-memory replicas with appropriate unbuffered copy API on POSIX and Windows</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-7287">HDFS-7287</a>.
-     Major bug reported by Ravi Prakash and fixed by Ravi Prakash <br>
-     <b>The OfflineImageViewer (OIV) can output invalid XML depending on the filename</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-7276">HDFS-7276</a>.
-     Major improvement reported by Tsz Wo Nicholas Sze and fixed by Tsz Wo Nicholas Sze (hdfs-client)<br>
-     <b>Limit the number of byte arrays used by DFSOutputStream</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-7274">HDFS-7274</a>.
-     Blocker bug reported by Robert Kanter and fixed by Robert Kanter (webhdfs)<br>
-     <b>Disable SSLv3 in HttpFS</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-7260">HDFS-7260</a>.
-     Minor improvement reported by Tsz Wo Nicholas Sze and fixed by Tsz Wo Nicholas Sze (hdfs-client)<br>
-     <b>Make DFSOutputStream.MAX_PACKETS configurable</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-7259">HDFS-7259</a>.
-     Major bug reported by Brandon Li and fixed by Brandon Li (nfs)<br>
-     <b>Unresponseive NFS mount point due to deferred COMMIT response</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-7243">HDFS-7243</a>.
-     Major bug reported by Yi Liu and fixed by Charles Lamb (encryption , namenode)<br>
-     <b>HDFS concat operation should not be allowed in Encryption Zone</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-7237">HDFS-7237</a>.
-     Minor bug reported by Tsz Wo Nicholas Sze and fixed by Tsz Wo Nicholas Sze (namenode)<br>
-     <b>namenode -rollingUpgrade throws ArrayIndexOutOfBoundsException</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-7236">HDFS-7236</a>.
-     Major bug reported by Yongjun Zhang and fixed by Yongjun Zhang <br>
-     <b>Fix TestOpenFilesWithSnapshot#testOpenFilesWithMultipleSnapshots</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-7233">HDFS-7233</a>.
-     Major improvement reported by Rushabh S Shah and fixed by Rushabh S Shah (namenode)<br>
-     <b>NN logs unnecessary org.apache.hadoop.hdfs.protocol.UnresolvedPathException</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-7230">HDFS-7230</a>.
-     Major improvement reported by Tsz Wo Nicholas Sze and fixed by Tsz Wo Nicholas Sze (documentation)<br>
-     <b>Add rolling downgrade documentation</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-7228">HDFS-7228</a>.
-     Major improvement reported by Jing Zhao and fixed by Jing Zhao <br>
-     <b>Add an SSD policy into the default BlockStoragePolicySuite</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-7226">HDFS-7226</a>.
-     Major bug reported by Yongjun Zhang and fixed by Yongjun Zhang (ha)<br>
-     <b>TestDNFencing.testQueueingWithAppend failed often in latest test</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-7221">HDFS-7221</a>.
-     Minor bug reported by Charles Lamb and fixed by Charles Lamb (test)<br>
-     <b>TestDNFencingWithReplication fails consistently</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-7218">HDFS-7218</a>.
-     Minor bug reported by Charles Lamb and fixed by Charles Lamb (namenode)<br>
-     <b>FSNamesystem ACL operations should write to audit log on failure</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-7217">HDFS-7217</a>.
-     Major improvement reported by Kihwal Lee and fixed by Kihwal Lee <br>
-     <b>Better batching of IBRs</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-7215">HDFS-7215</a>.
-     Minor improvement reported by Brandon Li and fixed by Brandon Li (nfs)<br>
-     <b>Add JvmPauseMonitor to NFS gateway</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-7208">HDFS-7208</a>.
-     Major bug reported by Ming Ma and fixed by Ming Ma (namenode)<br>
-     <b>NN doesn't schedule replication when a DN storage fails</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-7199">HDFS-7199</a>.
-     Critical bug reported by Jason Lowe and fixed by Rushabh S Shah (hdfs-client)<br>
-     <b>DFSOutputStream should not silently drop data if DataStreamer crashes with an unchecked exception</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-7195">HDFS-7195</a>.
-     Major improvement reported by Yi Liu and fixed by Chris Nauroth (documentation , security)<br>
-     <b>Update user doc of secure mode about Datanodes don't require root or jsvc</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-7185">HDFS-7185</a>.
-     Major bug reported by Colin Patrick McCabe and fixed by Jing Zhao (namenode)<br>
-     <b>The active NameNode will not accept an fsimage sent from the standby during rolling upgrade</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-7181">HDFS-7181</a>.
-     Critical sub-task reported by Andrew Wang and fixed by Andrew Wang (encryption)<br>
-     <b>Remove incorrect precondition check on key length in FileEncryptionInfo</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-7180">HDFS-7180</a>.
-     Critical bug reported by Eric Zhiqiang Ma and fixed by Brandon Li (nfs)<br>
-     <b>NFSv3 gateway frequently gets stuck due to GC</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-7179">HDFS-7179</a>.
-     Critical sub-task reported by Andrew Wang and fixed by Andrew Wang (encryption)<br>
-     <b>DFSClient should instantiate a KeyProvider, not a KeyProviderCryptoExtension</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-7178">HDFS-7178</a>.
-     Major bug reported by Arpit Agarwal and fixed by Arpit Agarwal (test)<br>
-     <b>Additional unit test for replica write with full disk</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-7176">HDFS-7176</a>.
-     Minor bug reported by Colin Patrick McCabe and fixed by Colin Patrick McCabe (namenode)<br>
-     <b>The namenode usage message doesn't include "-rollingupgrade started"</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-7172">HDFS-7172</a>.
-     Trivial bug reported by Chris Nauroth and fixed by Chris Nauroth (test)<br>
-     <b>Test data files may be checked out of git with incorrect line endings, causing test failures in TestHDFSCLI.</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-7171">HDFS-7171</a>.
-     Major sub-task reported by Arpit Agarwal and fixed by Arpit Agarwal (datanode)<br>
-     <b>Fix Jenkins failures in HDFS-6581 branch</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-7169">HDFS-7169</a>.
-     Minor bug reported by Tsz Wo Nicholas Sze and fixed by Tsz Wo Nicholas Sze (build)<br>
-     <b>Fix a findbugs warning in ReplaceDatanodeOnFailure</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-7167">HDFS-7167</a>.
-     Major bug reported by Prabushankar Chinnasamy and fixed by Jing Zhao (balancer &amp; mover)<br>
-     <b>NPE while running Mover if the given path is for a file</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-7162">HDFS-7162</a>.
-     Major bug reported by Chengbing Liu and fixed by Chengbing Liu (fuse-dfs)<br>
-     <b>Wrong path when deleting through fuse-dfs a file which already exists in trash</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-7159">HDFS-7159</a>.
-     Major sub-task reported by Arpit Agarwal and fixed by Arpit Agarwal (namenode)<br>
-     <b>Use block storage policy to set lazy persist preference</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-7158">HDFS-7158</a>.
-     Major improvement reported by Haohui Mai and fixed by Haohui Mai <br>
-     <b>Reduce the memory usage of WebImageViewer</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-7157">HDFS-7157</a>.
-     Major sub-task reported by Lei (Eddy) Xu and fixed by Lei (Eddy) Xu (datanode)<br>
-     <b>Using Time.now() for recording start/end time of reconfiguration tasks</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-7156">HDFS-7156</a>.
-     Major bug reported by Konstantin Shvachko and fixed by Masahiro Yamaguchi (documentation)<br>
-     <b>Fsck documentation is outdated.</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-7155">HDFS-7155</a>.
-     Major sub-task reported by Arpit Agarwal and fixed by Arpit Agarwal (datanode)<br>
-     <b>Bugfix in createLocatedFileStatus caused by bad merge</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-7154">HDFS-7154</a>.
-     Major sub-task reported by Lei (Eddy) Xu and fixed by Lei (Eddy) Xu (datanode)<br>
-     <b>Fix returning value of starting reconfiguration task</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-7153">HDFS-7153</a>.
-     Major improvement reported by Arpit Agarwal and fixed by Arpit Agarwal (namenode)<br>
-     <b>Add storagePolicy to NN edit log during file creation</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-7148">HDFS-7148</a>.
-     Major bug reported by Andrew Wang and fixed by Andrew Wang (encryption)<br>
-     <b>TestEncryptionZones#testIsEncryptedMethod fails on branch-2 after archival storage merge</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-7147">HDFS-7147</a>.
-     Blocker bug reported by Tsz Wo Nicholas Sze and fixed by Tsz Wo Nicholas Sze (documentation)<br>
-     <b>Update archival storage user documentation</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-7144">HDFS-7144</a>.
-     Minor sub-task reported by Tsz Wo Nicholas Sze and fixed by Tsz Wo Nicholas Sze (datanode)<br>
-     <b>Fix findbugs warnings in RamDiskReplicaTracker</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-7143">HDFS-7143</a>.
-     Major sub-task reported by Tsz Wo Nicholas Sze and fixed by Tsz Wo Nicholas Sze (datanode)<br>
-     <b>Fix findbugs warnings in HDFS-6581 branch</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-7140">HDFS-7140</a>.
-     Minor sub-task reported by Jing Zhao and fixed by Jing Zhao (hdfs-client , namenode)<br>
-     <b>Add a tool to list all the existing block storage policies</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-7139">HDFS-7139</a>.
-     Minor sub-task reported by Zhe Zhang and fixed by Zhe Zhang <br>
-     <b>Unit test for creating encryption zone on root path</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-7138">HDFS-7138</a>.
-     Major sub-task reported by Charles Lamb and fixed by Charles Lamb (namenode)<br>
-     <b>Fix hftp to work with encryption</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-7132">HDFS-7132</a>.
-     Minor bug reported by Charles Lamb and fixed by Charles Lamb (namenode)<br>
-     <b>hdfs namenode -metadataVersion command does not honor configured name dirs</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-7131">HDFS-7131</a>.
-     Major bug reported by Jing Zhao and fixed by Jing Zhao (qjm)<br>
-     <b>During HA upgrade, JournalNode should create a new committedTxnId file in the current directory</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-7130">HDFS-7130</a>.
-     Major bug reported by Chris Nauroth and fixed by Chris Nauroth (test)<br>
-     <b>TestDataTransferKeepalive fails intermittently on Windows.</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-7129">HDFS-7129</a>.
-     Major sub-task reported by Arpit Agarwal and fixed by Xiaoyu Yao (datanode)<br>
-     <b>Metrics to track usage of memory for writes</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-7128">HDFS-7128</a>.
-     Major improvement reported by Ming Ma and fixed by Ming Ma (namenode)<br>
-     <b>Decommission slows way down when it gets towards the end</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-7127">HDFS-7127</a>.
-     Major bug reported by Chris Nauroth and fixed by Chris Nauroth (test)<br>
-     <b>TestLeaseRecovery leaks MiniDFSCluster instances.</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-7126">HDFS-7126</a>.
-     Minor test reported by Xiaoyu Yao and fixed by Xiaoyu Yao (security , test)<br>
-     <b>TestEncryptionZonesWithHA assumes Unix path separator for KMS key store path</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-7124">HDFS-7124</a>.
-     Minor sub-task reported by Charles Lamb and fixed by Charles Lamb (namenode)<br>
-     <b>Remove EncryptionZoneManager.NULL_EZ</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-7122">HDFS-7122</a>.
-     Blocker bug reported by Jeff Buell and fixed by Andrew Wang (namenode)<br>
-     <b>Use of ThreadLocal&lt;Random&gt; results in poor block placement</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-7119">HDFS-7119</a>.
-     Minor sub-task reported by Chris Nauroth and fixed by Chris Nauroth (journal-node)<br>
-     <b>Split error checks in AtomicFileOutputStream#close into separate conditions to improve diagnostics.</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-7118">HDFS-7118</a>.
-     Major sub-task reported by Chris Nauroth and fixed by Chris Nauroth (journal-node , namenode)<br>
-     <b>Improve diagnostics on storage directory rename operations by using NativeIO#renameTo in Storage#rename.</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-7115">HDFS-7115</a>.
-     Major test reported by Xiaoyu Yao and fixed by Xiaoyu Yao (encryption)<br>
-     <b>TestEncryptionZones assumes Unix path separator for KMS key store path</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-7112">HDFS-7112</a>.
-     Major sub-task reported by Arpit Agarwal and fixed by Xiaoyu Yao (datanode)<br>
-     <b>LazyWriter should use either async IO or one thread per physical disk</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-7111">HDFS-7111</a>.
-     Trivial bug reported by Chris Nauroth and fixed by Chris Nauroth (test)<br>
-     <b>TestSafeMode assumes Unix line endings in safe mode tip.</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-7110">HDFS-7110</a>.
-     Minor bug reported by Chris Nauroth and fixed by Chris Nauroth (test)<br>
-     <b>Skip tests related to short-circuit read on platforms that do not currently implement short-circuit read.</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-7109">HDFS-7109</a>.
-     Minor bug reported by Chris Nauroth and fixed by Chris Nauroth (test)<br>
-     <b>TestDataStorage does not release file locks between tests.</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-7108">HDFS-7108</a>.
-     Major sub-task reported by Arpit Agarwal and fixed by Arpit Agarwal (test)<br>
-     <b>Fix unit test failures in SimulatedFsDataset</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-7107">HDFS-7107</a>.
-     Trivial bug reported by Chris Nauroth and fixed by Chris Nauroth (ha)<br>
-     <b>Avoid Findbugs warning for synchronization on AbstractNNFailoverProxyProvider#fallbackToSimpleAuth.</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-7106">HDFS-7106</a>.
-     Major bug reported by Chris Nauroth and fixed by Chris Nauroth (datanode)<br>
-     <b>Reconfiguring DataNode volumes does not release the lock files in removed volumes.</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-7105">HDFS-7105</a>.
-     Minor bug reported by Ray Chiang and fixed by Ray Chiang (test)<br>
-     <b>Fix TestJournalNode#testFailToStartWithBadConfig to match log output change</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-7104">HDFS-7104</a>.
-     Minor bug reported by Zhe Zhang and fixed by Zhe Zhang <br>
-     <b>Fix and clarify INodeInPath getter functions</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-7100">HDFS-7100</a>.
-     Major sub-task reported by Arpit Agarwal and fixed by Arpit Agarwal (datanode)<br>
-     <b>Make eviction scheme pluggable</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-7096">HDFS-7096</a>.
-     Minor bug reported by Charles Lamb and fixed by Charles Lamb (test)<br>
-     <b>Fix TestRpcProgramNfs3 to use DFS_ENCRYPTION_KEY_PROVIDER_URI</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-7095">HDFS-7095</a>.
-     Minor sub-task reported by Tsz Wo Nicholas Sze and fixed by Jing Zhao (test)<br>
-     <b>TestStorageMover often fails in Jenkins</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-7093">HDFS-7093</a>.
-     Major improvement reported by Arpit Agarwal and fixed by Arpit Agarwal (namenode)<br>
-     <b>Add config key to restrict setStoragePolicy</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-7091">HDFS-7091</a>.
-     Minor sub-task reported by Arpit Agarwal and fixed by Arpit Agarwal (namenode , test)<br>
-     <b>Add forwarding constructor for INodeFile for existing callers</b><br>
-     <blockquote>Thanks Nicholas! Revised title and committed to the feature branch.</blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-7090">HDFS-7090</a>.
-     Major sub-task reported by Arpit Agarwal and fixed by Xiaoyu Yao (datanode)<br>
-     <b>Use unbuffered writes when persisting in-memory replicas</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-7084">HDFS-7084</a>.
-     Minor sub-task reported by Xiaoyu Yao and fixed by Xiaoyu Yao (datanode)<br>
-     <b>FsDatasetImpl#copyBlockFiles debug log can be improved</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-7081">HDFS-7081</a>.
-     Major sub-task reported by Jing Zhao and fixed by Jing Zhao (balancer &amp; mover , namenode)<br>
-     <b>Add new DistributedFileSystem API for getting all the existing storage policies</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-7080">HDFS-7080</a>.
-     Major sub-task reported by Arpit Agarwal and fixed by Arpit Agarwal (test)<br>
-     <b>Fix finalize and upgrade unit test failures</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-7079">HDFS-7079</a>.
-     Major sub-task reported by Arpit Agarwal and fixed by Arpit Agarwal (test)<br>
-     <b>Few more unit test fixes for HDFS-6581</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-7078">HDFS-7078</a>.
-     Major sub-task reported by Andrew Wang and fixed by Andrew Wang (encryption)<br>
-     <b>Fix listEZs to work correctly with snapshots</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-7077">HDFS-7077</a>.
-     Major sub-task reported by Andrew Wang and fixed by Andrew Wang (encryption)<br>
-     <b>Separate CipherSuite from crypto protocol version</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-7075">HDFS-7075</a>.
-     Major bug reported by Colin Patrick McCabe and fixed by Colin Patrick McCabe <br>
-     <b>hadoop-fuse-dfs fails because it cannot find JavaKeyStoreProvider$Factory</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-7073">HDFS-7073</a>.
-     Major bug reported by Chris Nauroth and fixed by Chris Nauroth (datanode , hdfs-client , security)<br>
-     <b>Allow falling back to a non-SASL connection on DataTransferProtocol in several edge cases.</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-7066">HDFS-7066</a>.
-     Minor sub-task reported by Xiaoyu Yao and fixed by Xiaoyu Yao (datanode)<br>
-     <b>LazyWriter#evictBlocks misses a null check for replicaState</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-7065">HDFS-7065</a>.
-     Critical bug reported by Kihwal Lee and fixed by Kihwal Lee (datanode)<br>
-     <b>Pipeline close recovery race can cause block corruption</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-7064">HDFS-7064</a>.
-     Major sub-task reported by Arpit Agarwal and fixed by Xiaoyu Yao (test)<br>
-     <b>Fix unit test failures in HDFS-6581 branch</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-7061">HDFS-7061</a>.
-     Minor sub-task reported by Stephen Chu and fixed by Stephen Chu (encryption , test)<br>
-     <b>Add test to verify encryption zone creation after NameNode restart without saving namespace</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-7059">HDFS-7059</a>.
-     Minor improvement reported by Rushabh S Shah and fixed by Rushabh S Shah <br>
-     <b>HAadmin transtionToActive with forceActive option can show confusing message.</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-7051">HDFS-7051</a>.
-     Minor test reported by Chris Nauroth and fixed by Chris Nauroth (datanode , test)<br>
-     <b>TestDataNodeRollingUpgrade#isBlockFileInPrevious assumes Unix file path separator.</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-7049">HDFS-7049</a>.
-     Minor bug reported by Juan Yu and fixed by Juan Yu (test)<br>
-     <b>TestByteRangeInputStream.testPropagatedClose fails and throw NPE on branch-2</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-7047">HDFS-7047</a>.
-     Major sub-task reported by Andrew Wang and fixed by Colin Patrick McCabe (encryption)<br>
-     <b>Expose FileStatus#isEncrypted in libhdfs</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-7046">HDFS-7046</a>.
-     Critical bug reported by Daryn Sharp and fixed by Kihwal Lee (namenode)<br>
-     <b>HA NN can NPE upon transition to active</b><br>
-     <blockquote>Thanks for the reviews, gentlemen. It's been committed to trunk and branch-2.</blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-7045">HDFS-7045</a>.
-     Critical bug reported by Yi Liu and fixed by Yi Liu (namenode)<br>
-     <b>Fix NameNode deadlock when opening file under /.reserved path</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-7042">HDFS-7042</a>.
-     Blocker bug reported by Chris Nauroth and fixed by Chris Nauroth (journal-node)<br>
-     <b>Upgrade fails for Windows HA cluster due to file locks held during rename in JournalNode.</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-7032">HDFS-7032</a>.
-     Major sub-task reported by Stephen Chu and fixed by Charles Lamb (encryption , webhdfs)<br>
-     <b>Add WebHDFS support for reading and writing to encryption zones</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-7025">HDFS-7025</a>.
-     Major test reported by Xiaoyu Yao and fixed by Xiaoyu Yao (encryption)<br>
-     <b>HDFS Credential Provider related  Unit Test Failure</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-7006">HDFS-7006</a>.
-     Major test reported by Alejandro Abdelnur and fixed by Alejandro Abdelnur (security , test)<br>
-     <b>Test encryption zones with KMS</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-7005">HDFS-7005</a>.
-     Critical bug reported by Daryn Sharp and fixed by Daryn Sharp (hdfs-client)<br>
-     <b>DFS input streams do not timeout</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-7004">HDFS-7004</a>.
-     Major sub-task reported by Andrew Wang and fixed by Andrew Wang (encryption)<br>
-     <b>Update KeyProvider instantiation to create by URI</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-7003">HDFS-7003</a>.
-     Major sub-task reported by Stephen Chu and fixed by Charles Lamb (encryption , nfs)<br>
-     <b>Add NFS Gateway support for reading and writing to encryption zones</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-7001">HDFS-7001</a>.
-     Minor bug reported by Masatake Iwasaki and fixed by Masatake Iwasaki <br>
-     <b>Tests in TestTracing should not depend on the order of execution</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6996">HDFS-6996</a>.
-     Major bug reported by Jing Zhao and fixed by Jing Zhao (snapshots)<br>
-     <b>SnapshotDiff report can hit IndexOutOfBoundsException when there are nested renamed directory/file</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6995">HDFS-6995</a>.
-     Major bug reported by Vinayakumar B and fixed by Vinayakumar B (namenode)<br>
-     <b>Block should be placed in the client's 'rack-local' node if 'client-local' node is not available</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6991">HDFS-6991</a>.
-     Major sub-task reported by Arpit Agarwal and fixed by Arpit Agarwal (datanode , namenode)<br>
-     <b>Notify NN of evicted block before deleting it from RAM disk</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6990">HDFS-6990</a>.
-     Major sub-task reported by Xiaoyu Yao and fixed by Xiaoyu Yao (datanode)<br>
-     <b>Add unit test for evict/delete RAM_DISK block with open handle</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6988">HDFS-6988</a>.
-     Major sub-task reported by Arpit Agarwal and fixed by Xiaoyu Yao (datanode)<br>
-     <b>Improve HDFS-6581 eviction configuration</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6987">HDFS-6987</a>.
-     Major sub-task reported by Andrew Wang and fixed by Zhe Zhang (encryption)<br>
-     <b>Move CipherSuite xattr information up to the encryption zone root</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6986">HDFS-6986</a>.
-     Major sub-task reported by Alejandro Abdelnur and fixed by Zhe Zhang (security)<br>
-     <b>DistributedFileSystem must get delegation tokens from configured KeyProvider</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6981">HDFS-6981</a>.
-     Major bug reported by James Thomas and fixed by Arpit Agarwal (datanode)<br>
-     <b>Fix DN upgrade with layout version change</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6979">HDFS-6979</a>.
-     Minor bug reported by Remus Rusanu and fixed by Chris Nauroth (hdfs-client)<br>
-     <b>hdfs.dll does not produce .pdb files</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6978">HDFS-6978</a>.
-     Major sub-task reported by Arpit Agarwal and fixed by Arpit Agarwal (datanode)<br>
-     <b>Directory scanner should correctly reconcile blocks on RAM disk</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6977">HDFS-6977</a>.
-     Major sub-task reported by Nathan Yao and fixed by Arpit Agarwal (datanode)<br>
-     <b>Delete all copies when a block is deleted from the block space</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6972">HDFS-6972</a>.
-     Major bug reported by Yongjun Zhang and fixed by Yongjun Zhang <br>
-     <b>TestRefreshUserMappings.testRefreshSuperUserGroupsConfiguration doesn't decode url correctly</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6970">HDFS-6970</a>.
-     Major sub-task reported by Andrew Wang and fixed by Andrew Wang (encryption)<br>
-     <b>Move startFile EDEK retries to the DFSClient</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6966">HDFS-6966</a>.
-     Major sub-task reported by Stephen Chu and fixed by Stephen Chu (encryption)<br>
-     <b>Add additional unit tests for encryption zones</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6965">HDFS-6965</a>.
-     Major bug reported by Daryn Sharp and fixed by Rushabh S Shah (namenode)<br>
-     <b>NN continues to issue block locations for DNs with full disks</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6960">HDFS-6960</a>.
-     Major sub-task reported by Arpit Agarwal and fixed by Arpit Agarwal (datanode , test)<br>
-     <b>Bugfix in LazyWriter, fix test case and some refactoring</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6959">HDFS-6959</a>.
-     Minor new feature reported by Kevin Odell and fixed by Yongjun Zhang <br>
-     <b>Make the HDFS home directory location customizable.</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6956">HDFS-6956</a>.
-     Major sub-task reported by Colin Patrick McCabe and fixed by Colin Patrick McCabe (datanode , namenode)<br>
-     <b>Allow dynamically changing the tracing level in Hadoop servers</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6954">HDFS-6954</a>.
-     Major bug reported by Allen Wittenauer and fixed by Charles Lamb (encryption)<br>
-     <b>With crypto, no native lib systems are too verbose</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6951">HDFS-6951</a>.
-     Major sub-task reported by Stephen Chu and fixed by Charles Lamb (encryption)<br>
-     <b>Correctly persist raw namespace xattrs to edit log and fsimage</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6950">HDFS-6950</a>.
-     Major sub-task reported by Xiaoyu Yao and fixed by Xiaoyu Yao <br>
-     <b>Add Additional unit tests for HDFS-6581</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6948">HDFS-6948</a>.
-     Major bug reported by Daryn Sharp and fixed by Eric Payne <br>
-     <b>DN rejects blocks if it has older UC block</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6943">HDFS-6943</a>.
-     Minor improvement reported by Ming Ma and fixed by Ming Ma (namenode)<br>
-     <b>Improve NN allocateBlock log to include replicas' datanode IPs</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6942">HDFS-6942</a>.
-     Trivial bug reported by Ray Chiang and fixed by Ray Chiang <br>
-     <b>Fix typos in log messages</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6934">HDFS-6934</a>.
-     Major sub-task reported by Arpit Agarwal and fixed by Chris Nauroth (datanode , hdfs-client)<br>
-     <b>Move checksum computation off the hot path when writing to RAM disk</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6932">HDFS-6932</a>.
-     Major sub-task reported by Arpit Agarwal and fixed by Xiaoyu Yao (datanode)<br>
-     <b>Balancer and Mover tools should ignore replicas on RAM_DISK</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6931">HDFS-6931</a>.
-     Major sub-task reported by Arpit Agarwal and fixed by Arpit Agarwal (datanode)<br>
-     <b>Move lazily persisted replicas to finalized directory on DN startup</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6930">HDFS-6930</a>.
-     Major sub-task reported by Arpit Agarwal and fixed by Arpit Agarwal (datanode)<br>
-     <b>Improve replica eviction from RAM disk</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6929">HDFS-6929</a>.
-     Major sub-task reported by Arpit Agarwal and fixed by Arpit Agarwal (datanode)<br>
-     <b>NN periodically unlinks lazy persist files with missing replicas from namespace</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6928">HDFS-6928</a>.
-     Major sub-task reported by Tassapol Athiapinya and fixed by Arpit Agarwal (datanode)<br>
-     <b>'hdfs put' command should accept lazyPersist flag for testing</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6927">HDFS-6927</a>.
-     Major sub-task reported by Arpit Agarwal and fixed by Arpit Agarwal (datanode)<br>
-     <b>Add unit tests</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6926">HDFS-6926</a>.
-     Major sub-task reported by Arpit Agarwal and fixed by Arpit Agarwal (datanode)<br>
-     <b>DN support for saving replicas to persistent storage and evicting in-memory replicas</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6925">HDFS-6925</a>.
-     Major sub-task reported by Arpit Agarwal and fixed by Arpit Agarwal (datanode)<br>
-     <b>DataNode should attempt to place replicas on transient storage first if lazyPersist flag is received</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6924">HDFS-6924</a>.
-     Major sub-task reported by Arpit Agarwal and fixed by Arpit Agarwal (datanode)<br>
-     <b>Add new RAM_DISK storage type</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6923">HDFS-6923</a>.
-     Major sub-task reported by Arpit Agarwal and fixed by Arpit Agarwal (datanode)<br>
-     <b>Propagate LazyPersist flag to DNs via DataTransferProtocol</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6921">HDFS-6921</a>.
-     Major sub-task reported by Arpit Agarwal and fixed by Arpit Agarwal <br>
-     <b>Add LazyPersist flag to FileStatus</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6912">HDFS-6912</a>.
-     Minor bug reported by Gopal V and fixed by Colin Patrick McCabe (caching)<br>
-     <b>SharedFileDescriptorFactory should not allocate sparse files</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6908">HDFS-6908</a>.
-     Critical bug reported by Juan Yu and fixed by Juan Yu (snapshots)<br>
-     <b>incorrect snapshot directory diff generated by snapshot deletion</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6905">HDFS-6905</a>.
-     Blocker bug reported by Allen Wittenauer and fixed by Charles Lamb <br>
-     <b>fs-encryption merge triggered release audit failures</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6904">HDFS-6904</a>.
-     Critical bug reported by Varun Vasudev and fixed by Jitendra Nath Pandey (webhdfs)<br>
-     <b>YARN unable to renew delegation token fetched via webhdfs due to incorrect service port</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6902">HDFS-6902</a>.
-     Minor bug reported by Ted Yu and fixed by Tsuyoshi OZAWA <br>
-     <b>FileWriter should be closed in finally block in BlockReceiver#receiveBlock()</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6899">HDFS-6899</a>.
-     Major improvement reported by Arpit Agarwal and fixed by Arpit Agarwal (datanode , test)<br>
-     <b>Allow changing MiniDFSCluster volumes per DN and capacity per volume</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6894">HDFS-6894</a>.
-     Major sub-task reported by Brandon Li and fixed by Brandon Li (nfs)<br>
-     <b>Add XDR parser method for each NFS response</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6892">HDFS-6892</a>.
-     Major sub-task reported by Brandon Li and fixed by Brandon Li (nfs)<br>
-     <b>Add XDR packaging method for each NFS request</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6890">HDFS-6890</a>.
-     Major bug reported by Brandon Li and fixed by Brandon Li (nfs)<br>
-     <b>NFS readdirplus doesn't return dotdot attributes</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6886">HDFS-6886</a>.
-     Critical improvement reported by Yi Liu and fixed by Yi Liu (namenode)<br>
-     <b>Use single editlog record for creating file + overwrite.</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6880">HDFS-6880</a>.
-     Major sub-task reported by Masatake Iwasaki and fixed by Masatake Iwasaki <br>
-     <b>Adding tracing to DataNode data transfer protocol</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6879">HDFS-6879</a>.
-     Major sub-task reported by Masatake Iwasaki and fixed by Masatake Iwasaki <br>
-     <b>Adding tracing to Hadoop RPC</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6878">HDFS-6878</a>.
-     Minor test reported by Tsz Wo Nicholas Sze and fixed by Arpit Agarwal (test)<br>
-     <b>Change MiniDFSCluster to support StorageType configuration for individual directories</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6870">HDFS-6870</a>.
-     Major bug reported by Yi Liu and fixed by Yi Liu (namenode)<br>
-     <b>Blocks and INodes could leak for Rename with overwrite flag</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6868">HDFS-6868</a>.
-     Major bug reported by Allen Wittenauer and fixed by Brandon Li (documentation , nfs)<br>
-     <b>portmap and nfs3 are documented as hadoop commands instead of hdfs</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6865">HDFS-6865</a>.
-     Major sub-task reported by James Thomas and fixed by James Thomas (hdfs-client , performance)<br>
-     <b>Byte array native checksumming on client side (HDFS changes)</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6862">HDFS-6862</a>.
-     Major bug reported by Arpit Agarwal and fixed by Xiaoyu Yao (test)<br>
-     <b>Add missing timeout annotations to tests</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6858">HDFS-6858</a>.
-     Minor improvement reported by Benoy Antony and fixed by Benoy Antony (security)<br>
-     <b>Allow dfs.data.transfer.saslproperties.resolver.class default to hadoop.security.saslproperties.resolver.class</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6851">HDFS-6851</a>.
-     Major sub-task reported by Charles Lamb and fixed by Charles Lamb (namenode , security)<br>
-     <b>Refactor EncryptionZoneWithId and EncryptionZone</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6850">HDFS-6850</a>.
-     Minor improvement reported by Zhe Zhang and fixed by Zhe Zhang (nfs)<br>
-     <b>Move NFS out of order write unit tests into TestWrites class</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6849">HDFS-6849</a>.
-     Major improvement reported by Alejandro Abdelnur and fixed by Alejandro Abdelnur (security)<br>
-     <b>Replace HttpFS custom proxyuser handling with common implementation</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6848">HDFS-6848</a>.
-     Minor bug reported by Ted Yu and fixed by Xiaoyu Yao <br>
-     <b>Lack of synchronization on access to datanodeUuid in DataStorage#format() </b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6843">HDFS-6843</a>.
-     Major sub-task reported by Charles Lamb and fixed by Charles Lamb (namenode , security)<br>
-     <b>Create FileStatus isEncrypted() method</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6840">HDFS-6840</a>.
-     Critical bug reported by Jason Lowe and fixed by Andrew Wang <br>
-     <b>Clients are always sent to the same datanode when read is off rack</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6838">HDFS-6838</a>.
-     Minor bug reported by Jing Zhao and fixed by Jing Zhao (namenode)<br>
-     <b>Code cleanup for unnecessary INode replacement</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6837">HDFS-6837</a>.
-     Minor improvement reported by Tsz Wo Nicholas Sze and fixed by Tsz Wo Nicholas Sze (balancer &amp; mover)<br>
-     <b>Code cleanup for Balancer and Dispatcher</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6836">HDFS-6836</a>.
-     Major improvement reported by Gopal V and fixed by Nathan Yao (datanode)<br>
-     <b>HDFS INFO logging is verbose &amp; uses file appenders</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6831">HDFS-6831</a>.
-     Minor bug reported by Akira AJISAKA and fixed by Xiaoyu Yao <br>
-     <b>Inconsistency between 'hdfs dfsadmin' and 'hdfs dfsadmin -help'</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6830">HDFS-6830</a>.
-     Major bug reported by Arpit Agarwal and fixed by Arpit Agarwal (namenode)<br>
-     <b>BlockInfo.addStorage fails when DN changes the storage for a block replica</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6829">HDFS-6829</a>.
-     Minor bug reported by zhaoyunjiong and fixed by zhaoyunjiong (tools)<br>
-     <b>DFSAdmin refreshSuperUserGroupsConfiguration failed in security cluster</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6828">HDFS-6828</a>.
-     Major improvement reported by Tsz Wo Nicholas Sze and fixed by Tsz Wo Nicholas Sze (balancer &amp; mover)<br>
-     <b>Separate block replica dispatching from Balancer</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6825">HDFS-6825</a>.
-     Major bug reported by Yongjun Zhang and fixed by Yongjun Zhang (namenode)<br>
-     <b>Edit log corruption due to delayed block removal</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6823">HDFS-6823</a>.
-     Minor bug reported by Allen Wittenauer and fixed by Allen Wittenauer (namenode)<br>
-     <b>dfs.web.authentication.kerberos.principal shows up in logs for insecure HDFS</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6812">HDFS-6812</a>.
-     Minor improvement reported by Tsz Wo Nicholas Sze and fixed by Tsz Wo Nicholas Sze (namenode)<br>
-     <b>Remove addBlock and replaceBlock from DatanodeDescriptor</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6810">HDFS-6810</a>.
-     Minor bug reported by Ted Yu and fixed by Tsz Wo Nicholas Sze (namenode)<br>
-     <b>StorageReport array is initialized with wrong size in DatanodeDescriptor#getStorageReports</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6809">HDFS-6809</a>.
-     Minor improvement reported by Tsz Wo Nicholas Sze and fixed by Tsz Wo Nicholas Sze (balancer &amp; mover)<br>
-     <b>Move some Balancer's inner classes to standalone classes</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6808">HDFS-6808</a>.
-     Major sub-task reported by Lei (Eddy) Xu and fixed by Lei (Eddy) Xu (datanode)<br>
-     <b>Add command line option to ask DataNode reload configuration.</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6802">HDFS-6802</a>.
-     Major bug reported by Akira AJISAKA and fixed by Akira AJISAKA (test)<br>
-     <b>Some tests in TestDFSClientFailover are missing @Test annotation</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6800">HDFS-6800</a>.
-     Major improvement reported by Colin Patrick McCabe and fixed by James Thomas (datanode)<br>
-     <b>Support Datanode layout changes with rolling upgrade</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6799">HDFS-6799</a>.
-     Minor bug reported by Megasthenis Asteris and fixed by Megasthenis Asteris (datanode , test)<br>
-     <b>The invalidate method in SimulatedFSDataset.java failed to remove (invalidate) blocks from the file system.</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6798">HDFS-6798</a>.
-     Major improvement reported by Benoy Antony and fixed by Benoy Antony (balancer &amp; mover)<br>
-     <b>Add test case for incorrect data node condition during balancing</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6797">HDFS-6797</a>.
-     Major bug reported by Benoy Antony and fixed by Benoy Antony (datanode)<br>
-     <b>DataNode logs wrong layoutversion during upgrade</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6796">HDFS-6796</a>.
-     Minor improvement reported by Benoy Antony and fixed by Benoy Antony (balancer &amp; mover)<br>
-     <b>Improving the argument check during balancer command line parsing</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6794">HDFS-6794</a>.
-     Minor improvement reported by Arpit Agarwal and fixed by Arpit Agarwal (namenode)<br>
-     <b>Update BlockManager methods to use DatanodeStorageInfo where possible</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6791">HDFS-6791</a>.
-     Major bug reported by Ming Ma and fixed by Ming Ma <br>
-     <b>A block could remain under replicated if all of its replicas are on decommissioned nodes</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6790">HDFS-6790</a>.
-     Major bug reported by Larry McCay and fixed by Larry McCay <br>
-     <b>DFSUtil Should Use configuration.getPassword for SSL passwords</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6789">HDFS-6789</a>.
-     Major bug reported by Rushabh S Shah and fixed by Akira AJISAKA (test)<br>
-     <b>TestDFSClientFailover.testFileContextDoesntDnsResolveLogicalURI and TestDFSClientFailover.testDoesntDnsResolveLogicalURI failing on jdk7</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6788">HDFS-6788</a>.
-     Major bug reported by Yongjun Zhang and fixed by Yongjun Zhang (datanode)<br>
-     <b>Improve synchronization in BPOfferService with read write lock</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6787">HDFS-6787</a>.
-     Major bug reported by Yi Liu and fixed by Yi Liu (namenode)<br>
-     <b>Remove duplicate code in FSDirectory#unprotectedConcat</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6783">HDFS-6783</a>.
-     Major bug reported by Yi Liu and fixed by Yi Liu (caching)<br>
-     <b>Fix HDFS CacheReplicationMonitor rescan logic</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6781">HDFS-6781</a>.
-     Major improvement reported by Akira AJISAKA and fixed by Akira AJISAKA (documentation)<br>
-     <b>Separate HDFS commands from CommandsManual.apt.vm</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6779">HDFS-6779</a>.
-     Minor improvement reported by Allen Wittenauer and fixed by Sasaki Toru (scripts)<br>
-     <b>Add missing version subcommand for hdfs</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6778">HDFS-6778</a>.
-     Major bug reported by Charles Lamb and fixed by Charles Lamb <br>
-     <b>The extended attributes javadoc should simply refer to the user docs</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6777">HDFS-6777</a>.
-     Major sub-task reported by James Thomas and fixed by James Thomas (qjm)<br>
-     <b>Supporting consistent edit log reads when in-progress edit log segments are included</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6776">HDFS-6776</a>.
-     Major bug reported by Yongjun Zhang and fixed by Yongjun Zhang <br>
-     <b>Using distcp to copy data between insecure and secure cluster via webdhfs doesn't work</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6774">HDFS-6774</a>.
-     Major sub-task reported by Lei (Eddy) Xu and fixed by Lei (Eddy) Xu (datanode)<br>
-     <b>Make FsDataset and DataStore support removing volumes.</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6773">HDFS-6773</a>.
-     Major improvement reported by Daryn Sharp and fixed by Stephen Chu (namenode)<br>
-     <b>MiniDFSCluster should skip edit log fsync by default</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6772">HDFS-6772</a>.
-     Major improvement reported by Ming Ma and fixed by Ming Ma <br>
-     <b>Get DN storages out of blockContentsStale state faster after NN restarts</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6768">HDFS-6768</a>.
-     Major bug reported by Arpit Agarwal and fixed by Arpit Agarwal (test)<br>
-     <b>Fix a few unit tests that use hard-coded port numbers</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6758">HDFS-6758</a>.
-     Major improvement reported by Arpit Agarwal and fixed by Arpit Agarwal (datanode , hdfs-client)<br>
-     <b>block writer should pass the expected block size to DataXceiverServer</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6755">HDFS-6755</a>.
-     Major improvement reported by Mit Desai and fixed by Mit Desai <br>
-     <b>There is an unnecessary sleep in the code path where DFSOutputStream#close gives up its attempt to contact the namenode</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6754">HDFS-6754</a>.
-     Major bug reported by Mit Desai and fixed by Mit Desai <br>
-     <b>TestNamenodeCapacityReport.testXceiverCount may sometimes fail due to lack of retry</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6750">HDFS-6750</a>.
-     Major sub-task reported by Colin Patrick McCabe and fixed by Colin Patrick McCabe (datanode , hdfs-client)<br>
-     <b>The DataNode should use its shared memory segment to mark short-circuit replicas that have been unlinked as stale</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6749">HDFS-6749</a>.
-     Major bug reported by Charles Lamb and fixed by Charles Lamb (namenode)<br>
-     <b>FSNamesystem methods should call resolvePath</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6740">HDFS-6740</a>.
-     Major sub-task reported by Lei (Eddy) Xu and fixed by Lei (Eddy) Xu (datanode)<br>
-     <b>Make FSDataset support adding data volumes dynamically</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6739">HDFS-6739</a>.
-     Major improvement reported by Tsz Wo Nicholas Sze and fixed by Tsz Wo Nicholas Sze (hdfs-client , namenode)<br>
-     <b>Add getDatanodeStorageReport to ClientProtocol</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6731">HDFS-6731</a>.
-     Major bug reported by WenJin Ma and fixed by Masatake Iwasaki (auto-failover , ha)<br>
-     <b>Run "hdfs zkfc-formatZK" on a server in a non-namenode  will cause a null pointer exception.</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6728">HDFS-6728</a>.
-     Major sub-task reported by Lei (Eddy) Xu and fixed by Lei (Eddy) Xu (datanode)<br>
-     <b>Dynamically add new volumes to DataStorage, formatted if necessary.</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6727">HDFS-6727</a>.
-     Major sub-task reported by Lei (Eddy) Xu and fixed by Lei (Eddy) Xu (datanode)<br>
-     <b>Refresh data volumes on DataNode based on configuration changes</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6722">HDFS-6722</a>.
-     Major sub-task reported by Ming Ma and fixed by Ming Ma <br>
-     <b>Display readable last contact time for dead nodes on NN webUI</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6717">HDFS-6717</a>.
-     Minor sub-task reported by Jeff Hansen and fixed by Brandon Li (nfs)<br>
-     <b>Jira HDFS-5804 breaks default nfs-gateway behavior for unsecured config</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6715">HDFS-6715</a>.
-     Major bug reported by Arpit Gupta and fixed by Jing Zhao (ha , webhdfs)<br>
-     <b>webhdfs wont fail over when it gets java.io.IOException: Namenode is in startup mode</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6714">HDFS-6714</a>.
-     Minor bug reported by Vinayakumar B and fixed by Vinayakumar B (test)<br>
-     <b>TestBlocksScheduledCounter#testBlocksScheduledCounter should shutdown cluster</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6705">HDFS-6705</a>.
-     Major sub-task reported by Charles Lamb and fixed by Charles Lamb (namenode , security)<br>
-     <b>Create an XAttr that disallows the HDFS admin from accessing a file</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6704">HDFS-6704</a>.
-     Minor bug reported by Akira AJISAKA and fixed by Akira AJISAKA (documentation)<br>
-     <b>Fix the command to launch JournalNode in HDFS-HA document</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6702">HDFS-6702</a>.
-     Major bug reported by Tsz Wo Nicholas Sze and fixed by Tsz Wo Nicholas Sze (datanode , hdfs-client)<br>
-     <b>DFSClient should create blocks using StorageType </b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6701">HDFS-6701</a>.
-     Major improvement reported by Ashwin Shankar and fixed by Ashwin Shankar (namenode)<br>
-     <b>Make seed optional in NetworkTopology#sortByDistance</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6700">HDFS-6700</a>.
-     Minor improvement reported by Tsz Wo Nicholas Sze and fixed by Tsz Wo Nicholas Sze (namenode)<br>
-     <b>BlockPlacementPolicy shoud choose storage but not datanode for deletion</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6693">HDFS-6693</a>.
-     Major bug reported by Vinayakumar B and fixed by Vinayakumar B (test , tools)<br>
-     <b>TestDFSAdminWithHA fails on windows</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6690">HDFS-6690</a>.
-     Major improvement reported by Andrew Wang and fixed by Andrew Wang (namenode)<br>
-     <b>Deduplicate xattr names in memory</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6689">HDFS-6689</a>.
-     Major bug reported by Yesha Vora and fixed by Brandon Li (nfs)<br>
-     <b>NFS doesn't return correct lookup access for directories</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6685">HDFS-6685</a>.
-     Major improvement reported by Tsz Wo Nicholas Sze and fixed by Tsz Wo Nicholas Sze (balancer &amp; mover)<br>
-     <b>Balancer should preserve storage type of replicas</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6678">HDFS-6678</a>.
-     Minor bug reported by Chris Nauroth and fixed by Chris Nauroth (test)<br>
-     <b>MiniDFSCluster may still be partially running after initialization fails.</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6667">HDFS-6667</a>.
-     Major bug reported by Jian He and fixed by Jing Zhao (security)<br>
-     <b>In HDFS HA mode, Distcp/SLive with webhdfs on secure cluster fails with Client cannot authenticate via:[TOKEN, KERBEROS] error</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6665">HDFS-6665</a>.
-     Major test reported by Stephen Chu and fixed by Stephen Chu (hdfs-client)<br>
-     <b>Add tests for XAttrs in combination with viewfs</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6664">HDFS-6664</a>.
-     Trivial bug reported by Chris Nauroth and fixed by Ray Chiang (documentation)<br>
-     <b>HDFS permissions guide documentation states incorrect default group mapping class.</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6655">HDFS-6655</a>.
-     Major improvement reported by Vinayakumar B and fixed by Vinayakumar B <br>
-     <b>Add 'header banner' to 'explorer.html' also in Namenode UI</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6646">HDFS-6646</a>.
-     Major bug reported by Brahma Reddy Battula and fixed by Brahma Reddy Battula (tools)<br>
-     <b>[ HDFS Rolling Upgrade - Shell  ] shutdownDatanode and getDatanodeInfo usage is missed</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6645">HDFS-6645</a>.
-     Minor test reported by Stephen Chu and fixed by Stephen Chu (snapshots , test)<br>
-     <b>Add test for successive Snapshots between XAttr modifications</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6643">HDFS-6643</a>.
-     Minor improvement reported by Tsz Wo Nicholas Sze and fixed by Tsz Wo Nicholas Sze (namenode)<br>
-     <b>Refactor INodeFile.HeaderFormat and INodeWithAdditionalFields.PermissionStatusFormat</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6640">HDFS-6640</a>.
-     Major bug reported by Brahma Reddy Battula and fixed by Stephen Chu (documentation , webhdfs)<br>
-     <b>[ Web HDFS ] Syntax for MKDIRS, CREATESYMLINK, and SETXATTR are given wrongly(missed webhdfs/v1).).</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6638">HDFS-6638</a>.
-     Major test reported by Liang Xie and fixed by Liang Xie (test)<br>
-     <b>shorten test run time with a smaller retry timeout setting</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6634">HDFS-6634</a>.
-     Major new feature reported by James Thomas and fixed by James Thomas (hdfs-client , namenode , qjm)<br>
-     <b>inotify in HDFS</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6630">HDFS-6630</a>.
-     Major bug reported by J.Andreina and fixed by Haohui Mai (namenode)<br>
-     <b>Unable to fetch the block information  by Browsing the file system on Namenode UI through IE9</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6627">HDFS-6627</a>.
-     Major improvement reported by Liang Xie and fixed by Liang Xie (datanode)<br>
-     <b>Rename DataNode#checkWriteAccess to checkReadAccess.</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6621">HDFS-6621</a>.
-     Major bug reported by Benjamin Bowman and fixed by Rafal Wojdyla (balancer &amp; mover)<br>
-     <b>Hadoop Balancer prematurely exits iterations</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6617">HDFS-6617</a>.
-     Minor test reported by Liang Xie and fixed by Liang Xie (auto-failover , test)<br>
-     <b>Flake TestDFSZKFailoverController.testManualFailoverWithDFSHAAdmin due to a long edit log sync op</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6616">HDFS-6616</a>.
-     Minor bug reported by zhaoyunjiong and fixed by zhaoyunjiong (webhdfs)<br>
-     <b>bestNode shouldn't always return the first DataNode</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6613">HDFS-6613</a>.
-     Minor improvement reported by Andrew Wang and fixed by Andrew Wang (caching)<br>
-     <b>Improve logging in caching classes</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6609">HDFS-6609</a>.
-     Major sub-task reported by Jing Zhao and fixed by Jing Zhao (namenode)<br>
-     <b>Use DirectorySnapshottableFeature to represent a snapshottable directory</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6606">HDFS-6606</a>.
-     Major improvement reported by Yi Liu and fixed by Yi Liu (datanode , hdfs-client , security)<br>
-     <b>Optimize HDFS Encrypted Transport performance</b><br>
-     <blockquote>HDFS now supports the option to configure AES encryption for block data transfer.  AES offers improved cryptographic strength and performance over the prior options of 3DES and RC4.</blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6597">HDFS-6597</a>.
-     Major improvement reported by Danilo Vunjak and fixed by Danilo Vunjak (namenode)<br>
-     <b>Add a new option to NN upgrade to terminate the process after upgrade on NN is completed</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6584">HDFS-6584</a>.
-     Major new feature reported by Tsz Wo Nicholas Sze and fixed by Tsz Wo Nicholas Sze (balancer &amp; mover , namenode)<br>
-     <b>Support Archival Storage</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6582">HDFS-6582</a>.
-     Minor bug reported by Ted Yu and fixed by Abhiraj Butala (nfs)<br>
-     <b>Missing null check in RpcProgramNfs3#read(XDR, SecurityHandler)</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6581">HDFS-6581</a>.
-     Major new feature reported by Arpit Agarwal and fixed by Arpit Agarwal (datanode , hdfs-client , namenode)<br>
-     <b>Write to single replica in memory</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6570">HDFS-6570</a>.
-     Major improvement reported by Thejas M Nair and fixed by Jitendra Nath Pandey (hdfs-client , namenode , webhdfs)<br>
-     <b>add api that enables checking if a user has certain permissions on a file</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6569">HDFS-6569</a>.
-     Major bug reported by Brandon Li and fixed by Brandon Li (datanode)<br>
-     <b>OOB message can't be sent to the client when DataNode shuts down for upgrade</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6567">HDFS-6567</a>.
-     Major bug reported by Haohui Mai and fixed by Tassapol Athiapinya <br>
-     <b>Normalize the order of public final in HdfsFileStatus</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6544">HDFS-6544</a>.
-     Minor bug reported by Suraj Nayak M and fixed by Suraj Nayak M <br>
-     <b>Broken Link for GFS in package.html</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6534">HDFS-6534</a>.
-     Minor bug reported by Binglin Chang and fixed by Binglin Chang <br>
-     <b>Fix build on macosx: HDFS parts</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6519">HDFS-6519</a>.
-     Major improvement reported by Akira AJISAKA and fixed by Akira AJISAKA (documentation)<br>
-     <b>Document oiv_legacy command</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6517">HDFS-6517</a>.
-     Major bug reported by Akira AJISAKA and fixed by Akira AJISAKA <br>
-     <b>Remove hadoop-metrics2.properties from hdfs project</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6511">HDFS-6511</a>.
-     Minor improvement reported by Juan Yu and fixed by Juan Yu <br>
-     <b>BlockManager#computeInvalidateWork() could do nothing</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6506">HDFS-6506</a>.
-     Major bug reported by Binglin Chang and fixed by Binglin Chang (balancer &amp; mover , test)<br>
-     <b>Newly moved block replica been invalidated and deleted in TestBalancer</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6482">HDFS-6482</a>.
-     Major improvement reported by James Thomas and fixed by James Thomas (datanode)<br>
-     <b>Use block ID-based block layout on datanodes</b><br>
-     <blockquote>The directory structure for finalized replicas on DNs has been changed. Now, the directory that a finalized replica goes in is determined uniquely by its ID. Specifically, we use a two-level directory structure, with the 24th through 17th bits identifying the correct directory at the first level and the 16th through 8th bits identifying the correct directory at the second level.</blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6478">HDFS-6478</a>.
-     Major bug reported by Ming Ma and fixed by Ming Ma <br>
-     <b>RemoteException can't be retried properly for non-HA scenario</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6456">HDFS-6456</a>.
-     Major bug reported by Yesha Vora and fixed by Abhiraj Butala (nfs)<br>
-     <b>NFS should throw error for invalid entry in dfs.nfs.exports.allowed.hosts</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6455">HDFS-6455</a>.
-     Major bug reported by Yesha Vora and fixed by Abhiraj Butala (nfs)<br>
-     <b>NFS: Exception should be added in NFS log for invalid separator in nfs.exports.allowed.hosts</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6451">HDFS-6451</a>.
-     Major bug reported by Brandon Li and fixed by Abhiraj Butala (nfs)<br>
-     <b>NFS should not return NFS3ERR_IO for AccessControlException </b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6441">HDFS-6441</a>.
-     Major improvement reported by Benoy Antony and fixed by Benoy Antony (balancer &amp; mover)<br>
-     <b>Add ability to exclude/include specific datanodes while balancing</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6385">HDFS-6385</a>.
-     Major sub-task reported by Jing Zhao and fixed by Chris Nauroth <br>
-     <b>Show when block deletion will start after NameNode startup in WebUI</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6376">HDFS-6376</a>.
-     Major bug reported by Dave Marion and fixed by Dave Marion (datanode , federation , hdfs-client)<br>
-     <b>Distcp data between two HA clusters requires another configuration</b><br>
-     <blockquote>Allow distcp to copy data between HA clusters. Users can use a new configuration property "dfs.internal.nameservices" to explicitly specify the name services belonging to the local cluster, while continue using the configuration property "dfs.nameservices" to specify all the name services in the local and remote clusters.</blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6247">HDFS-6247</a>.
-     Major bug reported by Vinayakumar B and fixed by Vinayakumar B (balancer &amp; mover , datanode)<br>
-     <b>Avoid timeouts for replaceBlock() call by sending intermediate responses to Balancer</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6188">HDFS-6188</a>.
-     Major improvement reported by Benoy Antony and fixed by Benoy Antony (security)<br>
-     <b>An ip whitelist based implementation of TrustedChannelResolver</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6134">HDFS-6134</a>.
-     Major new feature reported by Alejandro Abdelnur and fixed by Charles Lamb (security)<br>
-     <b>Transparent data at rest encryption</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6114">HDFS-6114</a>.
-     Critical bug reported by Vinayakumar B and fixed by Vinayakumar B (datanode)<br>
-     <b>Block Scan log rolling will never happen if blocks written continuously leading to huge size of dncp_block_verification.log.curr</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6036">HDFS-6036</a>.
-     Major sub-task reported by Colin Patrick McCabe and fixed by Colin Patrick McCabe (caching , datanode)<br>
-     <b>Forcibly timeout misbehaving DFSClients that try to do no-checksum reads that extend too long</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-5919">HDFS-5919</a>.
-     Major bug reported by Vinayakumar B and fixed by Vinayakumar B (namenode)<br>
-     <b>FileJournalManager doesn't purge empty and corrupt inprogress edits files</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-5809">HDFS-5809</a>.
-     Critical bug reported by ikweesung and fixed by Colin Patrick McCabe (datanode)<br>
-     <b>BlockPoolSliceScanner and high speed hdfs appending make datanode to drop into infinite loop</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-5723">HDFS-5723</a>.
-     Major bug reported by Vinayakumar B and fixed by Vinayakumar B (namenode)<br>
-     <b>Append failed FINALIZED replica should not be accepted as valid when that block is underconstruction</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-5624">HDFS-5624</a>.
-     Major test reported by Chris Nauroth and fixed by Stephen Chu (hdfs-client , test)<br>
-     <b>Add HDFS tests for ACLs in combination with viewfs.</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-5202">HDFS-5202</a>.
-     Major improvement reported by Colin Patrick McCabe and fixed by Chris Nauroth (datanode)<br>
-     <b>Support Centralized Cache Management on Windows.</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-5185">HDFS-5185</a>.
-     Critical bug reported by Vinayakumar B and fixed by Vinayakumar B (datanode)<br>
-     <b>DN fails to startup if one of the data dir is full</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-5182">HDFS-5182</a>.
-     Major improvement reported by Colin Patrick McCabe and fixed by Colin Patrick McCabe (hdfs-client)<br>
-     <b>BlockReaderLocal must allow zero-copy  reads only when the DN believes it's valid</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-5089">HDFS-5089</a>.
-     Major bug reported by Tsz Wo Nicholas Sze and fixed by Tsz Wo Nicholas Sze (namenode)<br>
-     <b>When a LayoutVersion support SNAPSHOT, it must support FSIMAGE_NAME_OPTIMIZATION.</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-4852">HDFS-4852</a>.
-     Minor bug reported by Andrew Wang and fixed by Chris Nauroth <br>
-     <b>libhdfs documentation is out of date</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-4629">HDFS-4629</a>.
-     Major bug reported by Amir Sanjar and fixed by  (tools)<br>
-     <b>Using com.sun.org.apache.xml.internal.serialize.* in XmlEditsVisitor.java is JVM vendor specific. Breaks IBM JAVA</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-4486">HDFS-4486</a>.
-     Minor improvement reported by Todd Lipcon and fixed by Zhe Zhang <br>
-     <b>Add log category for long-running DFSClient notices</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-4257">HDFS-4257</a>.
-     Minor new feature reported by Harsh J and fixed by Tsz Wo Nicholas Sze (hdfs-client)<br>
-     <b>The ReplaceDatanodeOnFailure policies could have a forgiving option</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-4227">HDFS-4227</a>.
-     Major bug reported by Eli Collins and fixed by Daisuke Kobayashi (documentation)<br>
-     <b>Document dfs.namenode.resource.*  </b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-4165">HDFS-4165</a>.
-     Trivial bug reported by Binglin Chang and fixed by Binglin Chang (namenode)<br>
-     <b>Faulty sanity check in FsDirectory.unprotectedSetQuota</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-4120">HDFS-4120</a>.
-     Minor improvement reported by Liang Xie and fixed by Rakesh R (ha , namenode)<br>
-     <b>Add a new "-skipSharedEditsCheck" option for BootstrapStandby</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-3851">HDFS-3851</a>.
-     Trivial improvement reported by Jing Zhao and fixed by Jing Zhao (hdfs-client)<br>
-     <b>Make DFSOuputSteram$Packet default constructor reuse the other constructor</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-3528">HDFS-3528</a>.
-     Major improvement reported by Todd Lipcon and fixed by James Thomas (datanode , hdfs-client , performance)<br>
-     <b>Use native CRC32 in DFS write path</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-3482">HDFS-3482</a>.
-     Minor bug reported by Stephen Chu and fixed by madhukara phatak (balancer &amp; mover)<br>
-     <b>hdfs balancer throws ArrayIndexOutOfBoundsException if option is specified without arguments</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-2976">HDFS-2976</a>.
-     Trivial bug reported by Uma Maheswara Rao G and fixed by Uma Maheswara Rao G (hdfs-client)<br>
-     <b>Remove unnecessary method (tokenRefetchNeeded) in DFSClient</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-2975">HDFS-2975</a>.
-     Major bug reported by Uma Maheswara Rao G and fixed by Yi Liu (namenode)<br>
-     <b>Rename with overwrite flag true can make NameNode to stuck in safemode on NN (crash + restart).</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-2856">HDFS-2856</a>.
-     Major improvement reported by Owen O'Malley and fixed by Chris Nauroth (datanode , security)<br>
-     <b>Fix block protocol so that Datanodes don't require root or jsvc</b><br>
-     <blockquote>SASL now can be used to secure the DataTransferProtocol, which transfers file block content between HDFS clients and DataNodes.  In this configuration, it is no longer required for secured clusters to start the DataNode as root and bind to privileged ports.</blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-573">HDFS-573</a>.
-     Major improvement reported by Ziliang Guo and fixed by Chris Nauroth (libhdfs)<br>
-     <b>Porting libhdfs to Windows</b><br>
-     <blockquote>The libhdfs C API is now supported on Windows.</blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11286">HADOOP-11286</a>.
-     Blocker bug reported by Christopher Tubbs and fixed by  <br>
-     <b>Map/Reduce dangerously adds Guava @Beta class to CryptoUtils</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11282">HADOOP-11282</a>.
-     Trivial bug reported by Chris Nauroth and fixed by Chris Nauroth (test)<br>
-     <b>Skip NFS TestShellBasedIdMapping tests that are irrelevant on Windows.</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11280">HADOOP-11280</a>.
-     Trivial bug reported by Chris Nauroth and fixed by Chris Nauroth (native , test)<br>
-     <b>TestWinUtils#testChmod fails after removal of NO_PROPAGATE_INHERIT_ACE.</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11265">HADOOP-11265</a>.
-     Major bug reported by Larry McCay and fixed by Larry McCay (scripts)<br>
-     <b>Credential and Key Shell Commands not available on Windows</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11260">HADOOP-11260</a>.
-     Blocker bug reported by Karthik Kambatla and fixed by Mike Yoder (security)<br>
-     <b>Patch up Jetty to disable SSLv3</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11254">HADOOP-11254</a>.
-     Major bug reported by Zhijie Shen and fixed by Zhijie Shen <br>
-     <b>Promoting AccessControlList to be public</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11253">HADOOP-11253</a>.
-     Major test reported by Varun Vasudev and fixed by Varun Vasudev (tools)<br>
-     <b>Hadoop streaming test TestStreamXmlMultipleRecords fails on Windows</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11250">HADOOP-11250</a>.
-     Minor bug reported by Yi Liu and fixed by Yi Liu (build)<br>
-     <b>fix endmacro of set_find_shared_library_without_version in CMakeLists</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11247">HADOOP-11247</a>.
-     Major bug reported by Brandon Li and fixed by Brandon Li (nfs)<br>
-     <b>Fix a couple javac warnings in NFS</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11243">HADOOP-11243</a>.
-     Blocker bug reported by Wei Yan and fixed by Wei Yan <br>
-     <b>SSLFactory shouldn't allow SSLv3</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11241">HADOOP-11241</a>.
-     Major test reported by Varun Vasudev and fixed by Varun Vasudev <br>
-     <b>TestNMSimulator fails sometimes due to timing issue</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11233">HADOOP-11233</a>.
-     Minor bug reported by Steve Loughran and fixed by Stephen Chu (conf)<br>
-     <b>hadoop.security.kms.client.encrypted.key.cache.expiry property spelled wrong in core-default</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11228">HADOOP-11228</a>.
-     Major bug reported by Remus Rusanu and fixed by Remus Rusanu <br>
-     <b>winutils task: unsecure path should not call AddNodeManagerAndUserACEsToObject</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11221">HADOOP-11221</a>.
-     Major bug reported by Jinghui Wang and fixed by Jinghui Wang (util)<br>
-     <b>JAVA specification for hashcode does not enforce it to be non-negative, but IdentityHashStore assumes System.identityHashCode() is non-negative</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11217">HADOOP-11217</a>.
-     Blocker bug reported by Robert Kanter and fixed by Robert Kanter (kms)<br>
-     <b>Disable SSLv3 in KMS</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11216">HADOOP-11216</a>.
-     Major improvement reported by Yi Liu and fixed by Colin Patrick McCabe (security)<br>
-     <b>Improve Openssl library finding</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11207">HADOOP-11207</a>.
-     Major bug reported by Zhijie Shen and fixed by Zhijie Shen (security)<br>
-     <b>DelegationTokenAuthenticationHandler needs to support DT operations for proxy user</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11198">HADOOP-11198</a>.
-     Minor bug reported by Ted Yu and fixed by Li Lu <br>
-     <b>Fix typo in javadoc for FileSystem#listStatus()</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11195">HADOOP-11195</a>.
-     Major improvement reported by Yongjun Zhang and fixed by Yongjun Zhang (nfs , security)<br>
-     <b>Move Id-Name mapping in NFS to the hadoop-common area for better maintenance</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11194">HADOOP-11194</a>.
-     Major bug reported by Karthik Kambatla and fixed by Karthik Kambatla <br>
-     <b>Ignore .keep files</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11193">HADOOP-11193</a>.
-     Major bug reported by Xiaoyu Yao and fixed by Xiaoyu Yao (native)<br>
-     <b>Fix uninitialized variables in NativeIO.c</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11184">HADOOP-11184</a>.
-     Major improvement reported by Colin Patrick McCabe and fixed by Colin Patrick McCabe (native)<br>
-     <b>Update Hadoop's lz4 to r123</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11182">HADOOP-11182</a>.
-     Major bug reported by Sascha Coenen and fixed by Ravi Prakash <br>
-     <b>GraphiteSink emits wrong timestamps</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11181">HADOOP-11181</a>.
-     Major bug reported by Zhijie Shen and fixed by Zhijie Shen (security)<br>
-     <b>o.a.h.security.token.delegation.DelegationTokenManager should be more generalized to handle other DelegationTokenIdentifier</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11179">HADOOP-11179</a>.
-     Major bug reported by Hitesh Shah and fixed by Craig Welch <br>
-     <b>Tarball as local resource type archive fails to localize on Windows </b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11178">HADOOP-11178</a>.
-     Minor bug reported by Arun Suresh and fixed by Arun Suresh (build)<br>
-     <b>Fix findbugs exclude file</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11176">HADOOP-11176</a>.
-     Major bug reported by Arun Suresh and fixed by Arun Suresh <br>
-     <b>KMSClientProvider authentication fails when both currentUgi and loginUgi are a proxied user</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11175">HADOOP-11175</a>.
-     Trivial bug reported by Yi Liu and fixed by Yi Liu (documentation , security)<br>
-     <b>Fix several issues of hadoop security configuration in user doc.</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11174">HADOOP-11174</a>.
-     Major bug reported by Yi Liu and fixed by Yi Liu (kms , security)<br>
-     <b>Delegation token for KMS should only be got once if it already exists</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11170">HADOOP-11170</a>.
-     Major bug reported by Arun Suresh and fixed by Arun Suresh <br>
-     <b>ZKDelegationTokenSecretManager fails to renewToken created by a peer</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11169">HADOOP-11169</a>.
-     Major bug reported by Arun Suresh and fixed by Arun Suresh <br>
-     <b>Fix DelegationTokenAuthenticatedURL to pass the connection Configurator to the authenticator </b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11168">HADOOP-11168</a>.
-     Trivial bug reported by Yi Liu and fixed by Yi Liu (documentation)<br>
-     <b>Remove duplicated entry "dfs.webhdfs.enabled" in the user doc</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11163">HADOOP-11163</a>.
-     Minor bug reported by Chuan Liu and fixed by Chuan Liu (metrics)<br>
-     <b>MetricsSystemImpl may miss a registered source</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11161">HADOOP-11161</a>.
-     Major bug reported by Arun Suresh and fixed by Arun Suresh <br>
-     <b>Expose close method in KeyProvider to give clients of Provider implementations a hook to release resources</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11160">HADOOP-11160</a>.
-     Trivial bug reported by Charles Lamb and fixed by Charles Lamb (nfs)<br>
-     <b>Fix  typo in nfs3 server duplicate entry reporting</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11154">HADOOP-11154</a>.
-     Trivial bug reported by Chris Nauroth and fixed by Chris Nauroth (documentation , native)<br>
-     <b>Update BUILDING.txt to state that CMake 3.0 or newer is required on Mac.</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11153">HADOOP-11153</a>.
-     Major improvement reported by Andrew Wang and fixed by Andrew Wang (kms)<br>
-     <b>Make number of KMS threads configurable</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11151">HADOOP-11151</a>.
-     Major bug reported by zhubin and fixed by Arun Suresh (security)<br>
-     <b>Automatically refresh auth token and retry on auth failure</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11145">HADOOP-11145</a>.
-     Major bug reported by Akira AJISAKA and fixed by Akira AJISAKA (test)<br>
-     <b>TestFairCallQueue fails</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11143">HADOOP-11143</a>.
-     Minor bug reported by Steve Loughran and fixed by Steve Loughran (net)<br>
-     <b>NetUtils.wrapException loses inner stack trace on BindException</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11140">HADOOP-11140</a>.
-     Major bug reported by Juan Yu and fixed by Juan Yu <br>
-     <b>hadoop-aws only need test-scoped dependency on hadoop-common's tests jar</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11133">HADOOP-11133</a>.
-     Minor bug reported by zhubin and fixed by Yi Liu (security)<br>
-     <b>Should trim the content of keystore password file for JavaKeyStoreProvider</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11130">HADOOP-11130</a>.
-     Major bug reported by Allen Wittenauer and fixed by Brandon Li (nfs)<br>
-     <b>NFS updateMaps OS check is reversed</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11122">HADOOP-11122</a>.
-     Blocker bug reported by Karthik Kambatla and fixed by Arun Suresh <br>
-     <b>Fix findbugs in ZK DelegationTokenSecretManagers </b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11113">HADOOP-11113</a>.
-     Major bug reported by Arun Suresh and fixed by Arun Suresh (security)<br>
-     <b>Namenode not able to reconnect to KMS after KMS restart</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11112">HADOOP-11112</a>.
-     Major bug reported by Alejandro Abdelnur and fixed by Alejandro Abdelnur (security)<br>
-     <b>TestKMSWithZK does not use KEY_PROVIDER_URI</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11111">HADOOP-11111</a>.
-     Minor improvement reported by Steve Loughran and fixed by Steve Loughran (tools)<br>
-     <b>MiniKDC to use locale EN_US for case conversions</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11110">HADOOP-11110</a>.
-     Major bug reported by Andrew Wang and fixed by Arun Suresh <br>
-     <b>JavaKeystoreProvider should not report a key as created if it was not flushed to the backing file</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11109">HADOOP-11109</a>.
-     Major bug reported by Jian He and fixed by Jian He <br>
-     <b>Site build is broken </b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11106">HADOOP-11106</a>.
-     Minor improvement reported by Andrew Wang and fixed by Charles Lamb (documentation)<br>
-     <b>Document considerations of HAR and Encryption</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11105">HADOOP-11105</a>.
-     Major bug reported by Chuan Liu and fixed by Chuan Liu (metrics)<br>
-     <b>MetricsSystemImpl could leak memory in registered callbacks</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11101">HADOOP-11101</a>.
-     Minor improvement reported by skrho and fixed by skrho <br>
-     <b>How about inputstream close statement from catch block to finally block in FileContext#copy() ?</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11099">HADOOP-11099</a>.
-     Major bug reported by Alejandro Abdelnur and fixed by Alejandro Abdelnur (security)<br>
-     <b>KMS return HTTP UNAUTHORIZED 401 on ACL failure</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11097">HADOOP-11097</a>.
-     Trivial bug reported by Charles Lamb and fixed by Charles Lamb (documentation)<br>
-     <b>kms docs say proxyusers, not proxyuser for config params</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11096">HADOOP-11096</a>.
-     Major bug reported by Alejandro Abdelnur and fixed by Alejandro Abdelnur (security)<br>
-     <b>KMS: KeyAuthorizationKeyProvider should verify the keyversion belongs to the keyname on decrypt</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11091">HADOOP-11091</a>.
-     Minor bug reported by David S. Wang and fixed by David S. Wang (fs/s3)<br>
-     <b>Eliminate old configuration parameter names from s3a</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11088">HADOOP-11088</a>.
-     Major test reported by Xiaoyu Yao and fixed by Xiaoyu Yao (security)<br>
-     <b>Unittest TestKeyShell, TestCredShell and TestKMS assume UNIX path separator for JECKS key store path</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11085">HADOOP-11085</a>.
-     Major bug reported by Mit Desai and fixed by Mit Desai <br>
-     <b>Excessive logging by org.apache.hadoop.util.Progress when value is NaN</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11083">HADOOP-11083</a>.
-     Major bug reported by Alejandro Abdelnur and fixed by Alejandro Abdelnur (security)<br>
-     <b>After refactoring of HTTP proxyuser to common, doAs param is case sensitive</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11077">HADOOP-11077</a>.
-     Major bug reported by Gregory Chanan and fixed by Gregory Chanan (security)<br>
-     <b>NPE if hosts not specified in ProxyUsers</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11074">HADOOP-11074</a>.
-     Major sub-task reported by David S. Wang and fixed by David S. Wang (fs/s3)<br>
-     <b>Move s3-related FS connector code to hadoop-aws</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11073">HADOOP-11073</a>.
-     Major test reported by Xiaoyu Yao and fixed by Xiaoyu Yao (security)<br>
-     <b>Credential Provider related Unit Tests Failure on Windows</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11071">HADOOP-11071</a>.
-     Minor test reported by Alejandro Abdelnur and fixed by Alejandro Abdelnur (security)<br>
-     <b>KMSClientProvider should drain the local generated EEK cache on key rollover</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11070">HADOOP-11070</a>.
-     Major test reported by Alejandro Abdelnur and fixed by Alejandro Abdelnur (security , test)<br>
-     <b>Create MiniKMS for testing</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11069">HADOOP-11069</a>.
-     Major bug reported by Alejandro Abdelnur and fixed by Alejandro Abdelnur (security)<br>
-     <b>KMSClientProvider should use getAuthenticationMethod() to determine if in proxyuser mode or not</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11068">HADOOP-11068</a>.
-     Major improvement reported by Gregory Chanan and fixed by Gregory Chanan (security)<br>
-     <b>Match hadoop.auth cookie format to jetty output</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11067">HADOOP-11067</a>.
-     Major bug reported by Yesha Vora and fixed by Xiaoyu Yao <br>
-     <b>warning message 'ssl.client.truststore.location has not been set' gets printed for hftp command</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11064">HADOOP-11064</a>.
-     Blocker bug reported by Steve Loughran and fixed by Chris Nauroth (native)<br>
-     <b>UnsatisifedLinkError with hadoop 2.4 JARs on hadoop-2.6 due to NativeCRC32 method changes</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11063">HADOOP-11063</a>.
-     Blocker bug reported by Chris Nauroth and fixed by Chris Nauroth <br>
-     <b>KMS cannot deploy on Windows, because class names are too long.</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11062">HADOOP-11062</a>.
-     Major bug reported by Alejandro Abdelnur and fixed by Arun Suresh (security , test)<br>
-     <b>CryptoCodec testcases requiring OpenSSL should be run only if -Pnative is used</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11060">HADOOP-11060</a>.
-     Major test reported by Alejandro Abdelnur and fixed by Yi Liu (security)<br>
-     <b>Create a CryptoCodec test that verifies interoperability between the JCE and OpenSSL implementations</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11057">HADOOP-11057</a>.
-     Minor improvement reported by Steve Loughran and fixed by Xiaoyu Yao (native)<br>
-     <b>checknative command to probe for winutils.exe on windows</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11056">HADOOP-11056</a>.
-     Major bug reported by Yongjun Zhang and fixed by Yongjun Zhang (security)<br>
-     <b>OsSecureRandom.setConf() might leak file descriptors.</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11054">HADOOP-11054</a>.
-     Major improvement reported by Alejandro Abdelnur and fixed by Alejandro Abdelnur (security)<br>
-     <b>Add a KeyProvider instantiation based on a URI</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11049">HADOOP-11049</a>.
-     Minor bug reported by Sangjin Lee and fixed by Sangjin Lee (util)<br>
-     <b>javax package system class default is too broad</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11048">HADOOP-11048</a>.
-     Minor bug reported by Sangjin Lee and fixed by Sangjin Lee (util)<br>
-     <b>user/custom LogManager fails to load if the client classloader is enabled</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11040">HADOOP-11040</a>.
-     Major bug reported by Yi Liu and fixed by Yi Liu (security)<br>
-     <b>Return value of read(ByteBuffer buf) in CryptoInputStream is incorrect in some cases</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11036">HADOOP-11036</a>.
-     Minor bug reported by Tsuyoshi OZAWA and fixed by Tsuyoshi OZAWA <br>
-     <b>Add build directory to .gitignore</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11030">HADOOP-11030</a>.
-     Minor improvement reported by Juan Yu and fixed by Juan Yu <br>
-     <b>Define a variable jackson.version instead of using constant at multiple places</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11021">HADOOP-11021</a>.
-     Minor improvement reported by Zhe Zhang and fixed by Zhe Zhang <br>
-     <b>Configurable replication factor in the hadoop archive command</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11017">HADOOP-11017</a>.
-     Major improvement reported by Alejandro Abdelnur and fixed by Arun Suresh (security)<br>
-     <b>KMS delegation token secret manager should be able to use zookeeper as store</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11016">HADOOP-11016</a>.
-     Major improvement reported by Alejandro Abdelnur and fixed by Alejandro Abdelnur (security)<br>
-     <b>KMS should support signing cookies with zookeeper secret manager</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11015">HADOOP-11015</a>.
-     Major improvement reported by Alejandro Abdelnur and fixed by Alejandro Abdelnur <br>
-     <b>Http server/client utils to propagate and recreate Exceptions from server to client</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11012">HADOOP-11012</a>.
-     Major bug reported by Eric Payne and fixed by Eric Payne (fs)<br>
-     <b>hadoop fs -text of zero-length file causes EOFException</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11009">HADOOP-11009</a>.
-     Major improvement reported by Gary Steelman and fixed by Gary Steelman (tools/distcp)<br>
-     <b>Add Timestamp Preservation to DistCp</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11007">HADOOP-11007</a>.
-     Major improvement reported by Jason Lowe and fixed by Jason Lowe (build , fs)<br>
-     <b>Reinstate building of ant tasks support</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11005">HADOOP-11005</a>.
-     Minor bug reported by Lei (Eddy) Xu and fixed by Lei (Eddy) Xu (conf)<br>
-     <b>Fix HTTP content type for ReconfigurationServlet</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10998">HADOOP-10998</a>.
-     Trivial improvement reported by Jim Hester and fixed by Jim Hester (scripts)<br>
-     <b>Fix bash tab completion code to work</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10994">HADOOP-10994</a>.
-     Major task reported by Alejandro Abdelnur and fixed by Alejandro Abdelnur (security)<br>
-     <b>KeyProviderCryptoExtension should use CryptoCodec for generation/decryption of keys</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10992">HADOOP-10992</a>.
-     Major task reported by Alejandro Abdelnur and fixed by Alejandro Abdelnur (security)<br>
-     <b>Merge KMS to branch-2</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10990">HADOOP-10990</a>.
-     Major improvement reported by Brandon Li and fixed by Brandon Li (nfs)<br>
-     <b>Add missed NFSv3 request and response classes</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10989">HADOOP-10989</a>.
-     Major bug reported by Chris Nauroth and fixed by Chris Nauroth (native)<br>
-     <b>Work around buggy getgrouplist() implementations on Linux that return 0 on failure</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10982">HADOOP-10982</a>.
-     Major improvement reported by Andrew Wang and fixed by Alejandro Abdelnur <br>
-     <b>KMS: Support for multiple Kerberos principals</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10975">HADOOP-10975</a>.
-     Major improvement reported by James Thomas and fixed by James Thomas (performance)<br>
-     <b>org.apache.hadoop.util.DataChecksum should support native checksum calculation</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10973">HADOOP-10973</a>.
-     Minor bug reported by Peter Klavins and fixed by Peter Klavins (documentation)<br>
-     <b>Native Libraries Guide contains format error</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10972">HADOOP-10972</a>.
-     Major bug reported by Peter Klavins and fixed by Peter Klavins (documentation)<br>
-     <b>Native Libraries Guide contains mis-spelt build line</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10970">HADOOP-10970</a>.
-     Major improvement reported by Andrew Wang and fixed by Andrew Wang <br>
-     <b>Cleanup KMS configuration keys</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10968">HADOOP-10968</a>.
-     Major bug reported by Dinar Valeev and fixed by  (build)<br>
-     <b>hadoop native build fails to detect java_libarch on ppc64le</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10967">HADOOP-10967</a>.
-     Major improvement reported by Yi Liu and fixed by Yi Liu (security)<br>
-     <b>Improve DefaultCryptoExtension#generateEncryptedKey performance </b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10966">HADOOP-10966</a>.
-     Blocker bug reported by Vinayakumar B and fixed by David Villegas (native)<br>
-     <b>Hadoop Common native compilation broken in windows</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10964">HADOOP-10964</a>.
-     Minor bug reported by Yi Liu and fixed by Yi Liu <br>
-     <b>Small fix for NetworkTopologyWithNodeGroup#sortByDistance</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10962">HADOOP-10962</a>.
-     Major bug reported by David Villegas and fixed by David Villegas (native)<br>
-     <b>Flags for posix_fadvise are not valid in some architectures</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10954">HADOOP-10954</a>.
-     Minor improvement reported by Masatake Iwasaki and fixed by Masatake Iwasaki (documentation)<br>
-     <b>Adding site documents of hadoop-tools</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10946">HADOOP-10946</a>.
-     Trivial bug reported by Ray Chiang and fixed by Ray Chiang <br>
-     <b>Fix a bunch of typos in log messages</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10939">HADOOP-10939</a>.
-     Major bug reported by Arun Suresh and fixed by Arun Suresh <br>
-     <b>Fix TestKeyProviderFactory testcases to use default 128 bit length keys</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10937">HADOOP-10937</a>.
-     Major bug reported by Arun Suresh and fixed by Arun Suresh (security)<br>
-     <b>Need to set version name correctly before decrypting EEK</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10936">HADOOP-10936</a>.
-     Major improvement reported by Andrew Wang and fixed by Andrew Wang <br>
-     <b>Change default KeyProvider bitlength to 128</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10933">HADOOP-10933</a>.
-     Major sub-task reported by Larry McCay and fixed by Larry McCay (security)<br>
-     <b>FileBasedKeyStoresFactory Should use Configuration.getPassword for SSL Passwords</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10931">HADOOP-10931</a>.
-     Minor bug reported by xukun and fixed by  (build , fs/swift)<br>
-     <b>compile error on project "Apache Hadoop OpenStack support"</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10929">HADOOP-10929</a>.
-     Trivial bug reported by Larry McCay and fixed by Larry McCay (security)<br>
-     <b>Typo in Configuration.getPasswordFromCredentialProviders</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10928">HADOOP-10928</a>.
-     Trivial bug reported by Josh Elser and fixed by Josh Elser (security)<br>
-     <b>Incorrect usage on 'hadoop credential list'</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10927">HADOOP-10927</a>.
-     Minor bug reported by Josh Elser and fixed by Josh Elser (security)<br>
-     <b>Fix CredentialShell help behavior and error codes</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10925">HADOOP-10925</a>.
-     Blocker bug reported by Chris Nauroth and fixed by Chris Nauroth (native)<br>
-     <b>Compilation fails in native link0 function on Windows.</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10922">HADOOP-10922</a>.
-     Major improvement reported by Andrew Wang and fixed by Larry McCay <br>
-     <b>User documentation for CredentialShell</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10920">HADOOP-10920</a>.
-     Minor bug reported by Ted Yu and fixed by Akira AJISAKA (documentation)<br>
-     <b>site plugin couldn't parse hadoop-kms index.apt.vm</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10918">HADOOP-10918</a>.
-     Major bug reported by Alejandro Abdelnur and fixed by Alejandro Abdelnur <br>
-     <b>JMXJsonServlet fails when used within Tomcat</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10911">HADOOP-10911</a>.
-     Major bug reported by Gregory Chanan and fixed by  (security)<br>
-     <b>hadoop.auth cookie after HADOOP-10710 still not proper according to RFC2109</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10905">HADOOP-10905</a>.
-     Major sub-task reported by Larry McCay and fixed by Larry McCay (security)<br>
-     <b>LdapGroupsMapping Should use configuration.getPassword for SSL and LDAP Passwords</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10903">HADOOP-10903</a>.
-     Major improvement reported by Chris Nauroth and fixed by Chris Nauroth (scripts , util)<br>
-     <b>Enhance hadoop classpath command to expand wildcards or write classpath into jar manifest.</b><br>
-     <blockquote>The "hadoop classpath" command has been enhanced to support options for automatic expansion of wildcards in classpath elements and writing the classpath to a jar file manifest.  These options make it easier to construct a correct classpath for libhdfs applications.</blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10902">HADOOP-10902</a>.
-     Minor improvement reported by Stephen Chu and fixed by Stephen Chu <br>
-     <b>Deletion of directories with snapshots will not output reason for trash move failure</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10900">HADOOP-10900</a>.
-     Minor bug reported by Andrew Wang and fixed by Andrew Wang <br>
-     <b>CredentialShell args should use single-dash style</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10893">HADOOP-10893</a>.
-     Major new feature reported by Sangjin Lee and fixed by Sangjin Lee (util)<br>
-     <b>isolated classloader on the client side</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10891">HADOOP-10891</a>.
-     Major improvement reported by Andrew Wang and fixed by Andrew Wang <br>
-     <b>Add EncryptedKeyVersion factory method to KeyProviderCryptoExtension</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10887">HADOOP-10887</a>.
-     Major bug reported by Stephen Chu and fixed by Stephen Chu (fs , test)<br>
-     <b>Add XAttrs to ViewFs and make XAttrs + ViewFileSystem internal dir behavior consistent</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10886">HADOOP-10886</a>.
-     Major sub-task reported by Uma Maheswara Rao G and fixed by Uma Maheswara Rao G (fs)<br>
-     <b>CryptoCodec#getCodecclasses throws NPE when configurations not loaded.</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10884">HADOOP-10884</a>.
-     Minor sub-task reported by Akira AJISAKA and fixed by Akira AJISAKA (documentation)<br>
-     <b>Fix dead link in Configuration javadoc</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10882">HADOOP-10882</a>.
-     Minor task reported by Todd Lipcon and fixed by Todd Lipcon (util)<br>
-     <b>Move DirectBufferPool into common util</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10881">HADOOP-10881</a>.
-     Major improvement reported by Andrew Wang and fixed by Andrew Wang <br>
-     <b>Clarify usage of encryption and encrypted encryption key in KeyProviderCryptoExtension</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10880">HADOOP-10880</a>.
-     Blocker bug reported by Alejandro Abdelnur and fixed by Alejandro Abdelnur (security)<br>
-     <b>Move HTTP delegation tokens out of URL querystring to a header</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10868">HADOOP-10868</a>.
-     Major sub-task reported by Robert Kanter and fixed by Robert Kanter (security)<br>
-     <b>Create a ZooKeeper-backed secret provider</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10866">HADOOP-10866</a>.
-     Major bug reported by Yongjun Zhang and fixed by Yongjun Zhang <br>
-     <b>RawLocalFileSystem fails to read symlink targets via the stat command when the format of stat command uses non-curly quotes</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10863">HADOOP-10863</a>.
-     Major improvement reported by Alejandro Abdelnur and fixed by Arun Suresh (security)<br>
-     <b>KMS should have a blacklist for decrypting EEKs</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10862">HADOOP-10862</a>.
-     Major bug reported by Alejandro Abdelnur and fixed by Arun Suresh (security)<br>
-     <b>Miscellaneous trivial corrections to KMS classes</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10857">HADOOP-10857</a>.
-     Major bug reported by Tsuyoshi OZAWA and fixed by Tsuyoshi OZAWA (documentation)<br>
-     <b>Native Libraries Guide doen't mention a dependency on openssl-development package</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10855">HADOOP-10855</a>.
-     Minor improvement reported by Todd Lipcon and fixed by Todd Lipcon (io)<br>
-     <b>Allow Text to be read with a known length</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10851">HADOOP-10851</a>.
-     Major bug reported by Benoy Antony and fixed by Benoy Antony (security)<br>
-     <b>NetgroupCache does not remove group memberships</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10845">HADOOP-10845</a>.
-     Major improvement reported by Chris Nauroth and fixed by Stephen Chu (fs , test)<br>
-     <b>Add common tests for ACLs in combination with viewfs.</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10843">HADOOP-10843</a>.
-     Major bug reported by Jinghui Wang and fixed by Jinghui Wang (test , tools)<br>
-     <b>TestGridmixRecord unit tests failure on PowerPC</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10842">HADOOP-10842</a>.
-     Major bug reported by Alejandro Abdelnur and fixed by Arun Suresh (security)<br>
-     <b>CryptoExtension generateEncryptedKey method should receive the key name</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10841">HADOOP-10841</a>.
-     Major improvement reported by Alejandro Abdelnur and fixed by Arun Suresh (security)<br>
-     <b>EncryptedKeyVersion should have a key name property</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10839">HADOOP-10839</a>.
-     Major improvement reported by shanyu zhao and fixed by shanyu zhao (metrics)<br>
-     <b>Add unregisterSource() to MetricsSystem API</b><br>
-     <blockquote>The MetricsSystem abstract class has added a new abstract method, unregisterSource, for unregistering a previously registered metrics source.  Custom subclasses of MetricsSystem must be updated to provide an implementation of this method.</blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10838">HADOOP-10838</a>.
-     Major improvement reported by James Thomas and fixed by James Thomas (performance)<br>
-     <b>Byte array native checksumming</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10835">HADOOP-10835</a>.
-     Major improvement reported by Alejandro Abdelnur and fixed by Alejandro Abdelnur (security)<br>
-     <b>Implement HTTP proxyuser support in HTTP authentication client/server libraries</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10833">HADOOP-10833</a>.
-     Major improvement reported by Benoy Antony and fixed by Benoy Antony (security)<br>
-     <b>Remove unused cache in UserProvider</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10830">HADOOP-10830</a>.
-     Major bug reported by Benoy Antony and fixed by Benoy Antony (security)<br>
-     <b>Missing lock in JavaKeyStoreProvider.createCredentialEntry</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10826">HADOOP-10826</a>.
-     Major improvement reported by Benoy Antony and fixed by Benoy Antony (security)<br>
-     <b>Iteration on KeyProviderFactory.serviceLoader  is thread-unsafe</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10824">HADOOP-10824</a>.
-     Major improvement reported by Benoy Antony and fixed by Benoy Antony (security)<br>
-     <b>Refactor KMSACLs to avoid locking</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10820">HADOOP-10820</a>.
-     Minor bug reported by Alex Holmes and fixed by zhihai xu <br>
-     <b>Throw an exception in GenericOptionsParser when passed an empty Path</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10817">HADOOP-10817</a>.
-     Major improvement reported by Alejandro Abdelnur and fixed by Alejandro Abdelnur (security)<br>
-     <b>ProxyUsers configuration should support configurable prefixes </b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10816">HADOOP-10816</a>.
-     Major bug reported by Mike Yoder and fixed by Mike Yoder (security)<br>
-     <b>KeyShell returns -1 on error to the shell, should be 1</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10815">HADOOP-10815</a>.
-     Major improvement reported by Chris Nauroth and fixed by Chris Nauroth (native)<br>
-     <b>Implement Windows equivalent of mlock.</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10814">HADOOP-10814</a>.
-     Major bug reported by Alejandro Abdelnur and fixed by Robert Kanter <br>
-     <b>Update Tomcat version used by HttpFS and KMS to latest 6.x version</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10812">HADOOP-10812</a>.
-     Trivial improvement reported by Andrew Wang and fixed by Andrew Wang <br>
-     <b>Delegate KeyProviderExtension#toString to underlying KeyProvider</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10810">HADOOP-10810</a>.
-     Minor bug reported by Chris Nauroth and fixed by Chris Nauroth (native)<br>
-     <b>Clean up native code compilation warnings.</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10808">HADOOP-10808</a>.
-     Minor improvement reported by Chris Nauroth and fixed by Chris Nauroth (native)<br>
-     <b>Remove unused native code for munlock.</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10793">HADOOP-10793</a>.
-     Major improvement reported by Mike Yoder and fixed by Andrew Wang (security)<br>
-     <b>KeyShell args should use single-dash style</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10791">HADOOP-10791</a>.
-     Major improvement reported by Alejandro Abdelnur and fixed by Robert Kanter (security)<br>
-     <b>AuthenticationFilter should support externalizing the secret for signing and provide rotation support</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10781">HADOOP-10781</a>.
-     Major bug reported by Dmitry Sivachenko and fixed by Dmitry Sivachenko <br>
-     <b>Unportable getgrouplist() usage breaks FreeBSD</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10780">HADOOP-10780</a>.
-     Major bug reported by Dmitry Sivachenko and fixed by Dmitry Sivachenko <br>
-     <b>hadoop_user_info_alloc fails on FreeBSD due to incorrect sysconf use</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10771">HADOOP-10771</a>.
-     Major improvement reported by Alejandro Abdelnur and fixed by Alejandro Abdelnur (security)<br>
-     <b>Refactor HTTP delegation support out of httpfs to common</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10770">HADOOP-10770</a>.
-     Major improvement reported by Alejandro Abdelnur and fixed by Alejandro Abdelnur (security)<br>
-     <b>KMS add delegation token support</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10769">HADOOP-10769</a>.
-     Major improvement reported by Alejandro Abdelnur and fixed by Arun Suresh (security)<br>
-     <b>Create KeyProvider extension to handle delegation tokens</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10758">HADOOP-10758</a>.
-     Major improvement reported by Alejandro Abdelnur and fixed by Arun Suresh (security)<br>
-     <b>KMS: add ACLs on per key basis.</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10757">HADOOP-10757</a>.
-     Major improvement reported by Alejandro Abdelnur and fixed by Arun Suresh (security)<br>
-     <b>KeyProvider KeyVersion should provide the key name</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10756">HADOOP-10756</a>.
-     Major improvement reported by Alejandro Abdelnur and fixed by Arun Suresh (security)<br>
-     <b>KMS audit log should consolidate successful similar requests</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10755">HADOOP-10755</a>.
-     Major improvement reported by Andrew Wang and fixed by Lei (Eddy) Xu (security)<br>
-     <b>Support negative caching of user-group mapping</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10750">HADOOP-10750</a>.
-     Major improvement reported by Alejandro Abdelnur and fixed by Arun Suresh (security)<br>
-     <b>KMSKeyProviderCache should be in hadoop-common</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10736">HADOOP-10736</a>.
-     Major improvement reported by Mike Yoder and fixed by Mike Yoder (security)<br>
-     <b>Add key attributes to the key shell</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10733">HADOOP-10733</a>.
-     Minor bug reported by Ted Yu and fixed by Ted Yu <br>
-     <b>Potential null dereference in CredentialShell#promptForCredential()</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10732">HADOOP-10732</a>.
-     Minor bug reported by Ted Yu and fixed by Ted Yu <br>
-     <b>Update without holding write lock in JavaKeyStoreProvider#innerSetCredential()</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10731">HADOOP-10731</a>.
-     Trivial improvement reported by Henry Saputra and fixed by Henry Saputra (documentation)<br>
-     <b>Remove @date JavaDoc comment in ProgramDriver class</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10720">HADOOP-10720</a>.
-     Major improvement reported by Alejandro Abdelnur and fixed by Arun Suresh (security)<br>
-     <b>KMS: Implement generateEncryptedKey and decryptEncryptedKey in the REST API</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10719">HADOOP-10719</a>.
-     Major new feature reported by Alejandro Abdelnur and fixed by Arun Suresh (security)<br>
-     <b>Add generateEncryptedKey and decryptEncryptedKey methods to KeyProvider</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10698">HADOOP-10698</a>.
-     Major improvement reported by Alejandro Abdelnur and fixed by Alejandro Abdelnur (security)<br>
-     <b>KMS, add proxyuser support</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10696">HADOOP-10696</a>.
-     Major improvement reported by Alejandro Abdelnur and fixed by Alejandro Abdelnur (security)<br>
-     <b>Add optional attributes to KeyProvider Options and Metadata</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10695">HADOOP-10695</a>.
-     Major improvement reported by Andrew Wang and fixed by Mike Yoder <br>
-     <b>KMSClientProvider should respect a configurable timeout.</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10681">HADOOP-10681</a>.
-     Major bug reported by Gopal V and fixed by Gopal V (performance)<br>
-     <b>Remove synchronized blocks from SnappyCodec and ZlibCodec buffering inner loop</b><br>
-     <blockquote>Remove unnecessary synchronized blocks from Snappy/Zlib codecs.</blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10677">HADOOP-10677</a>.
-     Major bug reported by David S. Wang and fixed by David S. Wang (fs/s3)<br>
-     <b>ExportSnapshot fails on kerberized cluster using s3a</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10676">HADOOP-10676</a>.
-     Major bug reported by David S. Wang and fixed by David S. Wang (fs/s3)<br>
-     <b>S3AOutputStream not reading new config knobs for multipart configs</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10675">HADOOP-10675</a>.
-     Major improvement reported by David S. Wang and fixed by David S. Wang (fs/s3)<br>
-     <b>Add server-side encryption functionality to s3a</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10673">HADOOP-10673</a>.
-     Major bug reported by Ming Ma and fixed by Ming Ma <br>
-     <b>Update rpc metrics when the call throws an exception</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10650">HADOOP-10650</a>.
-     Major sub-task reported by Benoy Antony and fixed by Benoy Antony (security)<br>
-     <b>Add ability to specify a reverse ACL (black list) of users and groups</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10645">HADOOP-10645</a>.
-     Major bug reported by Alejandro Abdelnur and fixed by Alejandro Abdelnur (security)<br>
-     <b>TestKMS fails because race condition writing acl files</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10635">HADOOP-10635</a>.
-     Major sub-task reported by Alejandro Abdelnur and fixed by Yi Liu (security)<br>
-     <b>Add a method to CryptoCodec to generate SRNs for IV</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10632">HADOOP-10632</a>.
-     Major sub-task reported by Alejandro Abdelnur and fixed by Yi Liu (security)<br>
-     <b>Minor improvements to Crypto input and output streams</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10611">HADOOP-10611</a>.
-     Major bug reported by Alejandro Abdelnur and fixed by Alejandro Abdelnur (security)<br>
-     <b>KMS, keyVersion name should not be assumed to be keyName@versionNumber</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10610">HADOOP-10610</a>.
-     Minor improvement reported by Ted Malaska and fixed by Ted Malaska (fs/s3)<br>
-     <b>Upgrade S3n s3.fs.buffer.dir to support multi directories</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10607">HADOOP-10607</a>.
-     Major new feature reported by Larry McCay and fixed by Larry McCay (security)<br>
-     <b>Create an API to Separate Credentials/Password Storage from Applications</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10591">HADOOP-10591</a>.
-     Major bug reported by Hari Shreedharan and fixed by Colin Patrick McCabe <br>
-     <b>Compression codecs must used pooled direct buffers or deallocate direct buffers when stream is closed</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10586">HADOOP-10586</a>.
-     Minor bug reported by Charles Lamb and fixed by Charles Lamb (bin)<br>
-     <b>KeyShell doesn't allow setting Options via CLI</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10583">HADOOP-10583</a>.
-     Minor bug reported by Charles Lamb and fixed by Charles Lamb (bin)<br>
-     <b>bin/hadoop key throws NPE with no args and assorted other fixups</b><br>
-     <blockquote>bin/hadoop key
-with no args would throw an NPE.</blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10552">HADOOP-10552</a>.
-     Trivial bug reported by Kenji Kikushima and fixed by Kenji Kikushima (documentation)<br>
-     <b>Fix usage and example at FileSystemShell.apt.vm</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10534">HADOOP-10534</a>.
-     Major bug reported by Owen O'Malley and fixed by Owen O'Malley <br>
-     <b>KeyProvider API should using windowing for retrieving metadata</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10507">HADOOP-10507</a>.
-     Minor bug reported by Stephen Chu and fixed by sathish (fs)<br>
-     <b>FsShell setfacl can throw ArrayIndexOutOfBoundsException when no perm is specified</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10488">HADOOP-10488</a>.
-     Major bug reported by Alejandro Abdelnur and fixed by Alejandro Abdelnur (test)<br>
-     <b>TestKeyProviderFactory fails randomly</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10433">HADOOP-10433</a>.
-     Major improvement reported by Alejandro Abdelnur and fixed by Alejandro Abdelnur (security)<br>
-     <b>Key Management Server based on KeyProvider API</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10432">HADOOP-10432</a>.
-     Major improvement reported by Alejandro Abdelnur and fixed by Alejandro Abdelnur (security)<br>
-     <b>Refactor SSLFactory to expose static method to determine HostnameVerifier</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10431">HADOOP-10431</a>.
-     Major improvement reported by Alejandro Abdelnur and fixed by Alejandro Abdelnur (security)<br>
-     <b>Change visibility of KeyStore.Options getter methods to public</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10430">HADOOP-10430</a>.
-     Major improvement reported by Alejandro Abdelnur and fixed by Alejandro Abdelnur (security)<br>
-     <b>KeyProvider Metadata should have an optional description, there should be a method to retrieve the metadata from all keys</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10429">HADOOP-10429</a>.
-     Major improvement reported by Alejandro Abdelnur and fixed by Alejandro Abdelnur (security)<br>
-     <b>KeyStores should have methods to generate the materials themselves, KeyShell should use them</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10428">HADOOP-10428</a>.
-     Major improvement reported by Alejandro Abdelnur and fixed by Alejandro Abdelnur (security)<br>
-     <b>JavaKeyStoreProvider should accept keystore password via configuration falling back to ENV VAR</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10427">HADOOP-10427</a>.
-     Major improvement reported by Alejandro Abdelnur and fixed by Alejandro Abdelnur (security)<br>
-     <b>KeyProvider implementations should be thread safe</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10404">HADOOP-10404</a>.
-     Minor bug reported by Ted Yu and fixed by Colin Patrick McCabe <br>
-     <b>Some accesses to DomainSocketWatcher#closed are not protected by lock</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10402">HADOOP-10402</a>.
-     Major bug reported by Robert Kanter and fixed by Robert Kanter <br>
-     <b>Configuration.getValByRegex does not substitute for variables</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10400">HADOOP-10400</a>.
-     Major new feature reported by Jordan Mendelson and fixed by Jordan Mendelson (fs , fs/s3)<br>
-     <b>Incorporate new S3A FileSystem implementation</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10373">HADOOP-10373</a>.
-     Major improvement reported by Steve Loughran and fixed by Steve Loughran (fs/s3)<br>
-     <b>create tools/hadoop-amazon for aws/EMR support</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10335">HADOOP-10335</a>.
-     Major improvement reported by Benoy Antony and fixed by Benoy Antony <br>
-     <b>An ip whilelist based implementation to resolve Sasl properties per connection</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10281">HADOOP-10281</a>.
-     Major sub-task reported by Chris Li and fixed by Chris Li <br>
-     <b>Create a scheduler, which assigns schedulables a priority level</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10244">HADOOP-10244</a>.
-     Major bug reported by Larry McCay and fixed by Larry McCay (security)<br>
-     <b>TestKeyShell improperly tests the results of a Delete</b><br>
-     <blockquote>Fix of inappropriate test of delete functionality.</blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10237">HADOOP-10237</a>.
-     Major bug reported by Larry McCay and fixed by Larry McCay (security)<br>
-     <b>JavaKeyStoreProvider needs to set keystore permissions properly</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10231">HADOOP-10231</a>.
-     Minor improvement reported by Akira AJISAKA and fixed by Akira AJISAKA (documentation)<br>
-     <b>Add some components in Native Libraries document</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10224">HADOOP-10224</a>.
-     Major bug reported by Larry McCay and fixed by Arun Suresh (security)<br>
-     <b>JavaKeyStoreProvider has to protect against corrupting underlying store</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10201">HADOOP-10201</a>.
-     Major sub-task reported by Larry McCay and fixed by Larry McCay (security)<br>
-     <b>Add Listing Support to Key Management APIs</b><br>
-     <blockquote>I just committed this. Thanks, Larry!</blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10177">HADOOP-10177</a>.
-     Major bug reported by Owen O'Malley and fixed by Larry McCay (security)<br>
-     <b>Create CLI tools for managing keys via the KeyProvider API</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10150">HADOOP-10150</a>.
-     Major new feature reported by Yi Liu and fixed by Yi Liu (security)<br>
-     <b>Hadoop cryptographic file system</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10141">HADOOP-10141</a>.
-     Major bug reported by Owen O'Malley and fixed by Owen O'Malley (security)<br>
-     <b>Create an API to separate encryption key storage from applications</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10131">HADOOP-10131</a>.
-     Major bug reported by Vinayakumar B and fixed by Vinayakumar B <br>
-     <b>NetWorkTopology#countNumOfAvailableNodes() is returning wrong value if excluded nodes passed are not part of the cluster tree</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10121">HADOOP-10121</a>.
-     Trivial bug reported by Akira AJISAKA and fixed by Akira AJISAKA (documentation)<br>
-     <b>Fix javadoc spelling for HadoopArchives#writeTopLevelDirs</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10059">HADOOP-10059</a>.
-     Minor bug reported by Jason Lowe and fixed by Tsuyoshi OZAWA (metrics)<br>
-     <b>RPC authentication and authorization metrics overflow to negative values on busy clusters</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9989">HADOOP-9989</a>.
-     Major bug reported by Jinghui Wang and fixed by zhihai xu (security , util)<br>
-     <b>Bug introduced in HADOOP-9374, which parses the -tokenCacheFile as binary file but set it to the configuration as JSON file.</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9921">HADOOP-9921</a>.
-     Major bug reported by Vinayakumar B and fixed by Vinayakumar B <br>
-     <b>daemon scripts should remove pid file on stop call after stop or process is found not running</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9740">HADOOP-9740</a>.
-     Major bug reported by Allan Yan and fixed by Allan Yan (fs)<br>
-     <b>FsShell's Text command does not read avro data files stored on HDFS</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9576">HADOOP-9576</a>.
-     Major bug reported by Jian He and fixed by Steve Loughran <br>
-     <b>Make NetUtils.wrapException throw EOFException instead of wrapping it as IOException</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9540">HADOOP-9540</a>.
-     Minor improvement reported by Hari and fixed by  (fs/s3 , test)<br>
-     <b>Expose the InMemoryS3 and S3N FilesystemStores implementations for Unit testing.</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8944">HADOOP-8944</a>.
-     Trivial improvement reported by Jonathan Allen and fixed by Jonathan Allen <br>
-     <b>Shell command fs -count should include human readable option</b><br>
-     <blockquote>Implements -h option for fs -count to show file sizes in human readable format. Additionally, ContentSummary.getHeader() now returns a different string that is incompatible with previous releases.</blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8896">HADOOP-8896</a>.
-     Trivial improvement reported by Timothy Mann and fixed by Ray Chiang (documentation , io)<br>
-     <b>Javadoc points to Wrong Reader and Writer classes in SequenceFile</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8815">HADOOP-8815</a>.
-     Minor improvement reported by Brandon Li and fixed by Brandon Li (test)<br>
-     <b>RandomDatum overrides equals(Object) but no hashCode()</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8808">HADOOP-8808</a>.
-     Major bug reported by Hemanth Yamijala and fixed by Akira AJISAKA (documentation , fs)<br>
-     <b>Update FsShell documentation to mention deprecation of some of the commands, and mention alternatives</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8158">HADOOP-8158</a>.
-     Major bug reported by Todd Lipcon and fixed by Daryn Sharp <br>
-     <b>Interrupting hadoop fs -put from the command line causes a LeaseExpiredException</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8069">HADOOP-8069</a>.
-     Major improvement reported by Todd Lipcon and fixed by Todd Lipcon (ipc)<br>
-     <b>Enable TCP_NODELAY by default for IPC</b><br>
-     <blockquote>This change enables the TCP_NODELAY flag for all Hadoop IPC connections, hence bypassing TCP Nagling. Nagling interacts poorly with TCP delayed ACKs especially for request-response protocols.</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>
-</ul>
-</body></html>
-<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Hadoop  2.4.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  2.4.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 2.4.0</h2>
-<ul>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2081">YARN-2081</a>.
-     Minor bug reported by Hong Zhiguo and fixed by Hong Zhiguo (applications/distributed-shell)<br>
-     <b>TestDistributedShell fails after YARN-1962</b><br>
-     <blockquote>java.lang.AssertionError: expected:&lt;1&gt; but was:&lt;0&gt;
-        at org.junit.Assert.fail(Assert.java:88)
-        at org.junit.Assert.failNotEquals(Assert.java:743)
-        at org.junit.Assert.assertEquals(Assert.java:118)
-        at org.junit.Assert.assertEquals(Assert.java:555)
-        at org.junit.Assert.assertEquals(Assert.java:542)
-        at org.apache.hadoop.yarn.applications.distributedshell.TestDistributedShell.testDSShell(TestDistributedShell.java:198)</blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2066">YARN-2066</a>.
-     Minor bug reported by Ted Yu and fixed by Hong Zhiguo <br>
-     <b>Wrong field is referenced in GetApplicationsRequestPBImpl#mergeLocalToBuilder()</b><br>
-     <blockquote>{code}
-    if (this.finish != null) {
-      builder.setFinishBegin(start.getMinimumLong());
-      builder.setFinishEnd(start.getMaximumLong());
-    }
-{code}
-this.finish should be referenced in the if block.</blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2053">YARN-2053</a>.
-     Major sub-task reported by Sumit Mohanty and fixed by Wangda Tan (resourcemanager)<br>
-     <b>Slider AM fails to restart: NPE in RegisterApplicationMasterResponseProto$Builder.addAllNmTokensFromPreviousAttempts</b><br>
-     <blockquote>Slider AppMaster restart fails with the following:
-{code}
-org.apache.hadoop.yarn.proto.YarnServiceProtos$RegisterApplicationMasterResponseProto$Builder.addAllNmTokensFromPreviousAttempts(YarnServiceProtos.java:2700)
-{code}</blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-2016">YARN-2016</a>.
-     Major bug reported by Venkat Ranganathan and fixed by Junping Du (resourcemanager)<br>
-     <b>Yarn getApplicationRequest start time range is not honored</b><br>
-     <blockquote>When we query for the previous applications by creating an instance of GetApplicationsRequest and setting the start time range and application tag, we see that the start range provided is not honored and all applications with the tag are returned
-
-Attaching a reproducer.
-
-</blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1986">YARN-1986</a>.
-     Critical bug reported by Jon Bringhurst and fixed by Hong Zhiguo <br>
-     <b>In Fifo Scheduler, node heartbeat in between creating app and attempt causes NPE</b><br>
-     <blockquote>After upgrade from 2.2.0 to 2.4.0, NPE on first job start.
-
--After RM was restarted, the job runs without a problem.-
-
-{noformat}
-19:11:13,441 FATAL ResourceManager:600 - Error in handling event type NODE_UPDATE to the scheduler
-java.lang.NullPointerException
-	at org.apache.hadoop.yarn.server.resourcemanager.scheduler.fifo.FifoScheduler.assignContainers(FifoScheduler.java:462)
-	at org.apache.hadoop.yarn.server.resourcemanager.scheduler.fifo.FifoScheduler.nodeUpdate(FifoScheduler.java:714)
-	at org.apache.hadoop.yarn.server.resourcemanager.scheduler.fifo.FifoScheduler.handle(FifoScheduler.java:743)
-	at org.apache.hadoop.yarn.server.resourcemanager.scheduler.fifo.FifoScheduler.handle(FifoScheduler.java:104)
-	at org.apache.hadoop.yarn.server.resourcemanager.ResourceManager$SchedulerEventDispatcher$EventProcessor.run(ResourceManager.java:591)
-	at java.lang.Thread.run(Thread.java:744)
-19:11:13,443  INFO ResourceManager:604 - Exiting, bbye..
-{noformat}</blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1976">YARN-1976</a>.
-     Major bug reported by Yesha Vora and fixed by Junping Du <br>
-     <b>Tracking url missing http protocol for FAILED application</b><br>
-     <blockquote>Run yarn application -list -appStates FAILED,  It does not print http protocol name like FINISHED apps.
-
-{noformat}
--bash-4.1$ yarn application -list -appStates FINISHED,FAILED,KILLED
-14/04/15 23:55:07 INFO client.RMProxy: Connecting to ResourceManager at host
-Total number of applications (application-types: [] and states: [FINISHED, FAILED, KILLED]):4
-                Application-Id	    Application-Name	    Application-Type	      User	     Queue	             State	       Final-State	       Progress	                       Tracking-URL
-application_1397598467870_0004	           Sleep job	           MAPREDUCE	    hrt_qa	   default	          FINISHED	         SUCCEEDED	           100%	http://host:19888/jobhistory/job/job_1397598467870_0004
-application_1397598467870_0003	           Sleep job	           MAPREDUCE	    hrt_qa	   default	          FINISHED	         SUCCEEDED	           100%	http://host:19888/jobhistory/job/job_1397598467870_0003
-application_1397598467870_0002	           Sleep job	           MAPREDUCE	    hrt_qa	   default	            FAILED	            FAILED	           100%	host:8088/cluster/app/application_1397598467870_0002
-application_1397598467870_0001	          word count	           MAPREDUCE	    hrt_qa	   default	          FINISHED	         SUCCEEDED	           100%	http://host:19888/jobhistory/job/job_1397598467870_0001
-{noformat}
-
-It only prints 'host:8088/cluster/app/application_1397598467870_0002' instead 'http://host:8088/cluster/app/application_1397598467870_0002' </blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1975">YARN-1975</a>.
-     Major bug reported by Nathan Roberts and fixed by Mit Desai (resourcemanager)<br>
-     <b>Used resources shows escaped html in CapacityScheduler and FairScheduler page</b><br>
-     <blockquote>Used resources displays as &amp;amp;lt;memory:1111, vCores;&amp;amp;gt; with capacity scheduler
-
-</blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1962">YARN-1962</a>.
-     Major sub-task reported by Mohammad Kamrul Islam and fixed by Mohammad Kamrul Islam <br>
-     <b>Timeline server is enabled by default</b><br>
-     <blockquote>Since Timeline server is not matured and secured yet, enabling  it by default might create some confusion.
-
-We were playing with 2.4.0 and found a lot of exceptions for distributed shell example related to connection refused error. Btw, we didn't run TS because it is not secured yet.
-
-Although it is possible to explicitly turn it off through yarn-site config. In my opinion,  this extra change for this new service is not worthy at this point,.  
-
-This JIRA is to turn it off by default.
-If there is an agreement, i can put a simple patch about this.
-
-{noformat}
-14/04/17 23:24:33 ERROR impl.TimelineClientImpl: Failed to get the response from the timeline server.
-com.sun.jersey.api.client.ClientHandlerException: java.net.ConnectException: Connection refused
-	at com.sun.jersey.client.urlconnection.URLConnectionClientHandler.handle(URLConnectionClientHandler.java:149)
-	at com.sun.jersey.api.client.Client.handle(Client.java:648)
-	at com.sun.jersey.api.client.WebResource.handle(WebResource.java:670)
-	at com.sun.jersey.api.client.WebResource.access$200(WebResource.java:74)
-	at com.sun.jersey.api.client.WebResource$Builder.post(WebResource.java:563)
-	at org.apache.hadoop.yarn.client.api.impl.TimelineClientImpl.doPostingEntities(TimelineClientImpl.java:131)
-	at org.apache.hadoop.yarn.client.api.impl.TimelineClientImpl.putEntities(TimelineClientImpl.java:104)
-	at org.apache.hadoop.yarn.applications.distributedshell.ApplicationMaster.publishApplicationAttemptEvent(ApplicationMaster.java:1072)
-	at org.apache.hadoop.yarn.applications.distributedshell.ApplicationMaster.run(ApplicationMaster.java:515)
-	at org.apache.hadoop.yarn.applications.distributedshell.ApplicationMaster.main(ApplicationMaster.java:281)
-Caused by: java.net.ConnectException: Connection refused
-	at java.net.PlainSocketImpl.socketConnect(Native Method)
-	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:339)
-	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:198)
-	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182)
-	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
-	at java.net.Socket.connect(Socket.java:579)
-	at java.net.Socket.connect(Socket.java:528)
-	at sun.net.NetworkClient.doConnect(NetworkClient.java:180)
-	at sun.net.www.http.HttpClient.openServer(HttpClient.java:432)
-	at sun.net.www.http.HttpClient.openServer(HttpClient.java:527)
-	at sun.net.www.http.HttpClient.&lt;in14/04/17 23:24:33 ERROR impl.TimelineClientImpl: Failed to get the response from the timeline server.
-com.sun.jersey.api.client.ClientHandlerException: java.net.ConnectException: Connection refused
-	at com.sun.jersey.client.urlconnection.URLConnectionClientHandler.handle(URLConnectionClientHandler.java:149)
-	at com.sun.jersey.api.client.Client.handle(Client.java:648)
-	at com.sun.jersey.api.client.WebResource.handle(WebResource.java:670)
-	at com.sun.jersey.api.client.WebResource.access$200(WebResource.java:74)
-	at com.sun.jersey.api.client.WebResource$Builder.post(WebResource.java:563)
-	at org.apache.hadoop.yarn.client.api.impl.TimelineClientImpl.doPostingEntities(TimelineClientImpl.java:131)
-	at org.apache.hadoop.yarn.client.api.impl.TimelineClientImpl.putEntities(TimelineClientImpl.java:104)
-	at org.apache.hadoop.yarn.applications.distributedshell.ApplicationMaster.publishApplicationAttemptEvent(ApplicationMaster.java:1072)
-	at org.apache.hadoop.yarn.applications.distributedshell.ApplicationMaster.run(ApplicationMaster.java:515)
-	at org.apache.hadoop.yarn.applications.distributedshell.ApplicationMaster.main(ApplicationMaster.java:281)
-Caused by: java.net.ConnectException: Connection refused
-	at java.net.PlainSocketImpl.socketConnect(Native Method)
-	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:339)
-	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:198)
-	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182)
-	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
-	at java.net.Socket.connect(Socket.java:579)
-	at java.net.Socket.connect(Socket.java:528)
-	at sun.net.NetworkClient.doConnect(NetworkClient.java:180)
-	at sun.net.www.http.HttpClient.openServer(HttpClient.java:432)
-	at sun.net.www.http.HttpClient.openServer(HttpClient.java:527)
-	at sun.net.www.http.HttpClient.&lt;init&gt;(HttpClient.java:211)
-	at sun.net.www.http.HttpClient.New(HttpClient.java:308)
-	at sun.net.www.http.HttpClient.New(HttpClient.java:326)
-	at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:996)
-	at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:932)
-	at sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:850)
-	at sun.net.www.protocol.http.HttpURLConnection.getOutputStream(HttpURLConnection.java:1091)
-	at com.sun.jersey.client.urlconnection.URLConnectionClientHandler$1$1.getOutputStream(URLConnectionClientHandler.java:225)
-	at com.sun.jersey.api.client.CommittingOutputStream.commitWrite(CommittingOutputStream.java:117)
-	at com.sun.jersey.api.client.CommittingOutputStream.write(CommittingOutputStream.java:89)
-	at org.codehaus.jackson.impl.Utf8Generator._flushBuffer(Utf8Generator.java:1754)
-	at org.codehaus.jackson.impl.Utf8Generator.flush(Utf8Generator.java:1088)
-	at org.codehaus.jackson.map.ObjectMapper.writeValue(ObjectMapper.java:1354)
-	at org.codehaus.jackson.jaxrs.JacksonJsonProvider.writeTo(JacksonJsonProvider.java:527)
-	at com.sun.jersey.api.client.RequestWriter.writeRequestEntity(RequestWriter.java:300)
-	at com.sun.jersey.client.urlconnection.URLConnectionClientHandler._invoke(URLConnectionClientHandler.java:204)
-	at com.sun.jersey.client.urlconnection.URLConnectionClientHandler.handle(URLConnectionClientHandler.java:147)
-	... 9 moreit&gt;(HttpClient.java:211)
-	at sun.net.www.http.HttpClient.New(HttpClient.java:308)
-	at sun.net.www.http.HttpClient.New(HttpClient.java:326)
-	at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:996)
-	at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:932)
-	at sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:850)
-	at sun.net.www.protocol.http.HttpURLConnection.getOutputStream(HttpURLConnection.java:1091)
-	at com.sun.jersey.client.urlconnection.URLConnectionClientHandler$1$1.getOutputStream(URLConnectionClientHandler.java:225)
-	at com.sun.jersey.api.client.CommittingOutputStream.commitWrite(CommittingOutputStream.java:117)
-	at com.sun.jersey.api.client.CommittingOutputStream.write(CommittingOutputStream.java:89)
-	at org.codehaus.jackson.impl.Utf8Generator._flushBuffer(Utf8Generator.java:1754)
-	at org.codehaus.jackson.impl.Utf8Generator.flush(Utf8Generator.java:1088)
-	at org.codehaus.jackson.map.ObjectMapper.writeValue(ObjectMapper.java:1354)
-	at org.codehaus.jackson.jaxrs.JacksonJsonProvider.writeTo(JacksonJsonProvider.java:527)
-	at com.sun.jersey.api.client.RequestWriter.writeRequestEntity(RequestWriter.java:300)
-	at com.sun.jersey.client.urlconnection.URLConnectionClientHandler._invoke(URLConnectionClientHandler.java:204)
-	at com.sun.jersey.client.urlconnection.URLConnectionClientHandler.handle(URLConnectionClientHandler.java:147)
-	... 9 more
-
-{noformat}
-</blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1957">YARN-1957</a>.
-     Major sub-task reported by Carlo Curino and fixed by Carlo Curino (resourcemanager)<br>
-     <b>ProportionalCapacitPreemptionPolicy handling of corner cases...</b><br>
-     <blockquote>The current version of ProportionalCapacityPreemptionPolicy should be improved to deal with the following two scenarios:
-1) when rebalancing over-capacity allocations, it potentially preempts without considering the maxCapacity constraints of a queue (i.e., preempting possibly more than strictly necessary)
-2) a zero capacity queue is preempted even if there is no demand (coherent with old use of zero-capacity to disabled queues)
-
-The proposed patch fixes both issues, and introduce few new test cases.</blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1947">YARN-1947</a>.
-     Major test reported by Jian He and fixed by Jian He <br>
-     <b>TestRMDelegationTokens#testRMDTMasterKeyStateOnRollingMasterKey is failing intermittently</b><br>
-     <blockquote>java.lang.AssertionError: null
-	at org.junit.Assert.fail(Assert.java:92)
-	at org.junit.Assert.assertTrue(Assert.java:43)
-	at org.junit.Assert.assertTrue(Assert.java:54)
-	at org.apache.hadoop.yarn.server.resourcemanager.security.TestRMDelegationTokens.testRMDTMasterKeyStateOnRollingMasterKey(TestRMDelegationTokens.java:117)</blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1934">YARN-1934</a>.
-     Blocker bug reported by Rohith and fixed by Karthik Kambatla (resourcemanager)<br>
-     <b>Potential NPE in ZKRMStateStore caused by handling Disconnected event from ZK.</b><br>
-     <blockquote>For ZK disconnected event , zkClient is set to null. It is very much prone to throw NPE.
-
-{noformat}
-        case Disconnected:
-          LOG.info("ZKRMStateStore Session disconnected");
-          oldZkClient = zkClient;
-          zkClient = null;
-          break;
-{noformat}</blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1933">YARN-1933</a>.
-     Major bug reported by Jian He and fixed by Jian He <br>
-     <b>TestAMRestart and TestNodeHealthService failing sometimes on Windows</b><br>
-     <blockquote>TestNodeHealthService failures:
-testNodeHealthScript(org.apache.hadoop.yarn.server.nodemanager.TestNodeHealthService)  Time elapsed: 1.405 sec  &lt;&lt;&lt; ERROR!
-java.io.FileNotFoundException: C:\Users\Administrator\Documents\hadoop-common\hadoop-yarn-project\hadoop-yarn\hadoop-yarn-server\hadoop-yarn-server-nodemanager\target\org.apache.hadoop.yarn.server.nodemanager.TestNodeHealthService-localDir\failingscript.cmd (The process cannot access the file because it is being used by another process)
-	at java.io.FileOutputStream.open(Native Method)
-	at java.io.FileOutputStream.&lt;init&gt;(FileOutputStream.java:221)
-	at java.io.FileOutputStream.&lt;init&gt;(FileOutputStream.java:171)
-	at org.apache.hadoop.yarn.server.nodemanager.TestNodeHealthService.writeNodeHealthScriptFile(TestNodeHealthService.java:82)
-	at org.apache.hadoop.yarn.server.nodemanager.TestNodeHealthService.testNodeHealthScript(TestNodeHealthService.java:154)
-
-testNodeHealthScriptShouldRun(org.apache.hadoop.yarn.server.nodemanager.TestNodeHealthService)  Time elapsed: 0 sec  &lt;&lt;&lt; ERROR!
-java.io.FileNotFoundException: C:\Users\Administrator\Documents\hadoop-common\hadoop-yarn-project\hadoop-yarn\hadoop-yarn-server\hadoop-yarn-server-nodemanager\target\org.apache.hadoop.yarn.server.nodemanager.TestNodeHealthService-localDir\failingscript.cmd (Access is denied)
-	at java.io.FileOutputStream.open(Native Method)
-	at java.io.FileOutputStream.&lt;init&gt;(FileOutputStream.java:221)
-	at java.io.FileOutputStream.&lt;init&gt;(FileOutputStream.java:171)
-	at org.apache.hadoop.yarn.server.nodemanager.TestNodeHealthService.writeNodeHealthScriptFile(TestNodeHealthService.java:82)
-	at org.apache.hadoop.yarn.server.nodemanager.TestNodeHealthService.testNodeHealthScriptShouldRun(TestNodeHealthService.java:103)
-</blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1932">YARN-1932</a>.
-     Blocker bug reported by Mit Desai and fixed by Mit Desai <br>
-     <b>Javascript injection on the job status page</b><br>
-     <blockquote>Scripts can be injected into the job status page as the diagnostics field is
-not sanitized. Whatever string you set there will show up to the jobs page as it is ... ie. if you put any script commands, they will be executed in the browser of the user who is opening the page.
-
-We need escaping the diagnostic string in order to not run the scripts.</blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1931">YARN-1931</a>.
-     Blocker bug reported by Thomas Graves and fixed by Sandy Ryza (applications)<br>
-     <b>Private API change in YARN-1824 in 2.4 broke compatibility with previous releases</b><br>
-     <blockquote>YARN-1824 broke compatibility with previous 2.x releases by changes the API's in org.apache.hadoop.yarn.util.Apps.{setEnvFromInputString,addToEnvironment}  The old api should be added back in.
-
-This affects any ApplicationMasters who were using this api.  It also breaks previously built MapReduce libraries from working with the new Yarn release as MR uses this api. </blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1929">YARN-1929</a>.
-     Blocker bug reported by Rohith and fixed by Karthik Kambatla (resourcemanager)<br>
-     <b>DeadLock in RM when automatic failover is enabled.</b><br>
-     <blockquote>Dead lock detected  in RM when automatic failover is enabled.
-
-
-{noformat}
-Found one Java-level deadlock:
-=============================
-"Thread-2":
-  waiting to lock monitor 0x00007fb514303cf0 (object 0x00000000ef153fd0, a org.apache.hadoop.ha.ActiveStandbyElector),
-  which is held by "main-EventThread"
-"main-EventThread":
-  waiting to lock monitor 0x00007fb514750a48 (object 0x00000000ef154020, a org.apache.hadoop.yarn.server.resourcemanager.EmbeddedElectorService),
-  which is held by "Thread-2"
-{noformat}</blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1928">YARN-1928</a>.
-     Major bug reported by Zhijie Shen and fixed by Zhijie Shen <br>
-     <b>TestAMRMRPCNodeUpdates fails ocassionally</b><br>
-     <blockquote>{code}
-junit.framework.AssertionFailedError: expected:&lt;0&gt; but was:&lt;4&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.resourcemanager.applicationsmanager.TestAMRMRPCNodeUpdates.testAMRMUnusableNodes(TestAMRMRPCNodeUpdates.java:136)
-{code}</blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1926">YARN-1926</a>.
-     Major bug reported by Varun Vasudev and fixed by Varun Vasudev <br>
-     <b>DistributedShell unit tests fail on Windows</b><br>
-     <blockquote>Couple of unit tests for the DistributedShell fail on Windows - specifically testDSShellWithShellScript and testDSRestartWithPreviousRunningContainers </blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1924">YARN-1924</a>.
-     Critical bug reported by Arpit Gupta and fixed by Jian He <br>
-     <b>STATE_STORE_OP_FAILED happens when ZKRMStateStore tries to update app(attempt) before storing it</b><br>
-     <blockquote>Noticed on a HA cluster Both RM shut down with this error. </blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1920">YARN-1920</a>.
-     Major bug reported by Vinod Kumar Vavilapalli and fixed by Vinod Kumar Vavilapalli <br>
-     <b>TestFileSystemApplicationHistoryStore.testMissingApplicationAttemptHistoryData fails in windows</b><br>
-     <blockquote>Though this was only failing in Windows, after debugging, I realized that the test fails because we are leaking a file-handle in the history service.</blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1914">YARN-1914</a>.
-     Major bug reported by Varun Vasudev and fixed by Varun Vasudev <br>
-     <b>Test TestFSDownload.testDownloadPublicWithStatCache fails on Windows</b><br>
-     <blockquote>The TestFSDownload.testDownloadPublicWithStatCache test in hadoop-yarn-common consistently fails on Windows environments.
-
-The root cause is that the test checks for execute permission for all users on every ancestor of the target directory. In windows, by default, group "Everyone" has no permissions on any directory in the install drive. It's unreasonable to expect this test to pass and we should skip it on Windows.</blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1910">YARN-1910</a>.
-     Major bug reported by Xuan Gong and fixed by Xuan Gong <br>
-     <b>TestAMRMTokens fails on windows</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1908">YARN-1908</a>.
-     Major bug reported by Tassapol Athiapinya and fixed by Vinod Kumar Vavilapalli (applications/distributed-shell)<br>
-     <b>Distributed shell with custom script has permission error.</b><br>
-     <blockquote>Create test1.sh having "pwd".
-
-Run this command as user1:
-hadoop jar /usr/lib/hadoop-yarn/hadoop-yarn-applications-distributedshell.jar -jar /usr/lib/hadoop-yarn/hadoop-yarn-applications-distributedshell.jar -shell_script test1.sh
-
-NM is run by yarn user. An exception is thrown because yarn user has no permissions on custom script in hdfs path. The custom script is created with distributed shell app.
-{code}
-Caused by: org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.security.AccessControlException): Permission denied: user=yarn, access=WRITE, inode="/user/user1/DistributedShell/70":user1:user1:drwxr-xr-x
-	at org.apache.hadoop.hdfs.server.namenode.FSPermissionChecker.checkFsPermission(FSPermissionChecker.java:265)
-{code}</blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1907">YARN-1907</a>.
-     Major bug reported by Mit Desai and fixed by Mit Desai <br>
-     <b>TestRMApplicationHistoryWriter#testRMWritingMassiveHistory runs slow and intermittently fails</b><br>
-     <blockquote>The test has 10000 containers that it tries to cleanup.
-The cleanup has a timeout of 20000ms in which the test sometimes cannot do the cleanup completely and gives out an Assertion Failure.</blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1905">YARN-1905</a>.
-     Trivial test reported by Chris Nauroth and fixed by Chris Nauroth (nodemanager)<br>
-     <b>TestProcfsBasedProcessTree must only run on Linux.</b><br>
-     <blockquote>The tests in {{TestProcfsBasedProcessTree}} only make sense on Linux, where the process tree calculations are based on reading the /proc file system.  Right now, not all of the individual tests are skipped when the OS is not Linux.  This patch will make it consistent.</blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1903">YARN-1903</a>.
-     Major bug reported by Zhijie Shen and fixed by Zhijie Shen <br>
-     <b>Killing Container on NEW and LOCALIZING will result in exitCode and diagnostics not set</b><br>
-     <blockquote>The container status after stopping container is not expected.
-{code}
-java.lang.AssertionError: 4: 
-	at org.junit.Assert.fail(Assert.java:93)
-	at org.junit.Assert.assertTrue(Assert.java:43)
-	at org.apache.hadoop.yarn.client.api.impl.TestNMClient.testGetContainerStatus(TestNMClient.java:382)
-	at org.apache.hadoop.yarn.client.api.impl.TestNMClient.testContainerManagement(TestNMClient.java:346)
-	at org.apache.hadoop.yarn.client.api.impl.TestNMClient.testNMClient(TestNMClient.java:226)
-{code}</blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1898">YARN-1898</a>.
-     Major sub-task reported by Yesha Vora and fixed by Xuan Gong (resourcemanager)<br>
-     <b>Standby RM's conf, stacks, logLevel, metrics, jmx and logs links are redirecting to Active RM</b><br>
-     <blockquote>Standby RM links /conf, /stacks, /logLevel, /metrics, /jmx is redirected to Active RM.
-
-It should not be redirected to Active RM</blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1892">YARN-1892</a>.
-     Minor improvement reported by Siddharth Seth and fixed by Jian He (scheduler)<br>
-     <b>Excessive logging in RM</b><br>
-     <blockquote>Mostly in the CS I believe
-
-{code}
- INFO org.apache.hadoop.yarn.server.resourcemanager.scheduler.SchedulerApplicationAttempt: Application application_1395435468498_0011 reserved container container_1395435468498_0011_01_000213 on node host:  #containers=5 available=4096 used=20960, currently has 1 at priority 4; currentReservation 4096
-{code}
-
-{code}
-INFO org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.LeafQueue: hive2 usedResources: &lt;memory:20480, vCores:5&gt; clusterResources: &lt;memory:81920, vCores:16&gt; currentCapacity 0.25 required &lt;memory:4096, vCores:1&gt; potentialNewCapacity: 0.255 (  max-capacity: 0.25)
-{code}
-
-</blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1883">YARN-1883</a>.
-     Major bug reported by Mit Desai and fixed by Mit Desai <br>
-     <b>TestRMAdminService fails due to inconsistent entries in UserGroups</b><br>
-     <blockquote>testRefreshUserToGroupsMappingsWithFileSystemBasedConfigurationProvider fails with the following error:
-{noformat}
-java.lang.AssertionError: null
-	at org.junit.Assert.fail(Assert.java:92)
-	at org.junit.Assert.assertTrue(Assert.java:43)
-	at org.junit.Assert.assertTrue(Assert.java:54)
-	at org.apache.hadoop.yarn.server.resourcemanager.TestRMAdminService.testRefreshUserToGroupsMappingsWithFileSystemBasedConfigurationProvider(TestRMAdminService.java:421)
-	at org.apache.hadoop.yarn.server.resourcemanager.TestRMAdminService.testOrder(TestRMAdminService.java:104)
-{noformat}
-
-Line Numbers will be inconsistent as I was testing to run it in a particular order. But the Line on which the failure occurs is
-{code}
-Assert.assertTrue(groupBefore.contains("test_group_A")
-        &amp;&amp; groupBefore.contains("test_group_B")
-        &amp;&amp; groupBefore.contains("test_group_C") &amp;&amp; groupBefore.size() == 3);
-{code}
-
-testRMInitialsWithFileSystemBasedConfigurationProvider() and
-testRefreshUserToGroupsMappingsWithFileSystemBasedConfigurationProvider()
-calls the function {{MockUnixGroupsMapping.updateGroups();}} which changes the list of userGroups.
-
-testRefreshUserToGroupsMappingsWithFileSystemBasedConfigurationProvider() tries to verify the groups before changing it and fails if testRMInitialsWithFileSystemBasedConfigurationProvider() already ran and made the changes.</blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1861">YARN-1861</a>.
-     Blocker sub-task reported by Arpit Gupta and fixed by Karthik Kambatla (resourcemanager)<br>
-     <b>Both RM stuck in standby mode when automatic failover is enabled</b><br>
-     <blockquote>In our HA tests we noticed that the tests got stuck because both RM's got into standby state and no one became active.</blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1837">YARN-1837</a>.
-     Major bug reported by Tsuyoshi OZAWA and fixed by Hong Zhiguo <br>
-     <b>TestMoveApplication.testMoveRejectedByScheduler randomly fails</b><br>
-     <blockquote>TestMoveApplication#testMoveRejectedByScheduler fails because of NullPointerException. It looks caused by unhandled exception handling at server-side.</blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1750">YARN-1750</a>.
-     Major test reported by Ming Ma and fixed by Wangda Tan (nodemanager)<br>
-     <b>TestNodeStatusUpdater#testNMRegistration is incorrect in test case</b><br>
-     <blockquote>This test case passes. However, the test output log has
-
-java.lang.AssertionError: Number of applications should only be one! expected:&lt;1&gt; but was:&lt;2&gt;
-        at org.junit.Assert.fail(Assert.java:93)
-        at org.junit.Assert.failNotEquals(Assert.java:647)
-        at org.junit.Assert.assertEquals(Assert.java:128)
-        at org.junit.Assert.assertEquals(Assert.java:472)
-        at org.apache.hadoop.yarn.server.nodemanager.TestNodeStatusUpdater$MyResourceTracker.nodeHeartbeat(TestNodeStatusUpdater.java:267)
-        at org.apache.hadoop.yarn.server.nodemanager.NodeStatusUpdaterImpl$1.run(NodeStatusUpdaterImpl.java:469)
-        at java.lang.Thread.run(Thread.java:695)
-
-TestNodeStatusUpdater.java has invalid asserts.
-
-      } else if (heartBeatID == 3) {
-        // Checks on the RM end
-        Assert.assertEquals("Number of applications should only be one!", 1,
-            appToContainers.size());
-        Assert.assertEquals("Number of container for the app should be two!",
-            2, appToContainers.get(appId2).size());
-
-
-We should fix the assert and add more check to the test.
-
-
-</blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1701">YARN-1701</a>.
-     Major sub-task reported by Gera Shegalov and fixed by Tsuyoshi OZAWA <br>
-     <b>Improve default paths of timeline store and generic history store</b><br>
-     <blockquote>When I enable AHS via yarn.ahs.enabled, the app history is still not visible in AHS webUI. This is due to NullApplicationHistoryStore as yarn.resourcemanager.history-writer.class. It would be good to have just one key to enable basic functionality.
-
-yarn.ahs.fs-history-store.uri uses {code}${hadoop.log.dir}{code}, which is local file system location. However, FileSystemApplicationHistoryStore uses DFS by default.  </blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1696">YARN-1696</a>.
-     Blocker sub-task reported by Karthik Kambatla and fixed by Tsuyoshi OZAWA (resourcemanager)<br>
-     <b>Document RM HA</b><br>
-     <blockquote>Add documentation for RM HA. Marking this a blocker for 2.4 as this is required to call RM HA Stable and ready for public consumption. </blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1281">YARN-1281</a>.
-     Major test reported by Karthik Kambatla and fixed by Tsuyoshi OZAWA (resourcemanager)<br>
-     <b>TestZKRMStateStoreZKClientConnections fails intermittently</b><br>
-     <blockquote>The test fails intermittently - haven't been able to reproduce the failure deterministically. </blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1201">YARN-1201</a>.
-     Minor bug reported by Nemon Lou and fixed by Wangda Tan (resourcemanager)<br>
-     <b>TestAMAuthorization fails with local hostname cannot be resolved</b><br>
-     <blockquote>When hostname is 158-1-131-10, TestAMAuthorization fails.
-{code}
-Running org.apache.hadoop.yarn.server.resourcemanager.TestAMAuthorization
-Tests run: 4, Failures: 0, Errors: 2, Skipped: 0, Time elapsed: 14.034 sec &lt;&lt;&lt; FAILURE! - in org.apache.hadoop.yarn.server.resourcemanager.TestAMAuthorization
-testUnauthorizedAccess[0](org.apache.hadoop.yarn.server.resourcemanager.TestAMAuthorization)  Time elapsed: 3.952 sec  &lt;&lt;&lt; ERROR!
-java.lang.NullPointerException: null
-        at org.apache.hadoop.yarn.server.resourcemanager.TestAMAuthorization.testUnauthorizedAccess(TestAMAuthorization.java:284)
-
-testUnauthorizedAccess[1](org.apache.hadoop.yarn.server.resourcemanager.TestAMAuthorization)  Time elapsed: 3.116 sec  &lt;&lt;&lt; ERROR!
-java.lang.NullPointerException: null
-        at org.apache.hadoop.yarn.server.resourcemanager.TestAMAuthorization.testUnauthorizedAccess(TestAMAuthorization.java:284)
-
-
-Results :
-
-Tests in error:
-  TestAMAuthorization.testUnauthorizedAccess:284 NullPointer
-  TestAMAuthorization.testUnauthorizedAccess:284 NullPointer
-
-Tests run: 4, Failures: 0, Errors: 2, Skipped: 0
-
-{code}</blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5843">MAPREDUCE-5843</a>.
-     Major test reported by Varun Vasudev and fixed by Varun Vasudev <br>
-     <b>TestMRKeyValueTextInputFormat failing on Windows</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5841">MAPREDUCE-5841</a>.
-     Major bug reported by Sangjin Lee and fixed by Sangjin Lee (mrv2)<br>
-     <b>uber job doesn't terminate on getting mapred job kill</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5835">MAPREDUCE-5835</a>.
-     Critical bug reported by Ming Ma and fixed by Ming Ma <br>
-     <b>Killing Task might cause the job to go to ERROR state</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5833">MAPREDUCE-5833</a>.
-     Major test reported by Zhijie Shen and fixed by Zhijie Shen <br>
-     <b>TestRMContainerAllocator fails ocassionally</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5832">MAPREDUCE-5832</a>.
-     Major bug reported by Jian He and fixed by Vinod Kumar Vavilapalli <br>
-     <b>Few tests in TestJobClient fail on Windows</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5830">MAPREDUCE-5830</a>.
-     Blocker bug reported by Jason Lowe and fixed by Akira AJISAKA <br>
-     <b>HostUtil.getTaskLogUrl is not backwards binary compatible with 2.3</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5828">MAPREDUCE-5828</a>.
-     Major bug reported by Vinod Kumar Vavilapalli and fixed by Vinod Kumar Vavilapalli <br>
-     <b>TestMapReduceJobControl fails on JDK 7 + Windows</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5827">MAPREDUCE-5827</a>.
-     Major bug reported by Zhijie Shen and fixed by Zhijie Shen <br>
-     <b>TestSpeculativeExecutionWithMRApp fails</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5826">MAPREDUCE-5826</a>.
-     Major bug reported by Varun Vasudev and fixed by Varun Vasudev <br>
-     <b>TestHistoryServerFileSystemStateStoreService.testTokenStore fails in windows</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5824">MAPREDUCE-5824</a>.
-     Major bug reported by Xuan Gong and fixed by Xuan Gong <br>
-     <b>TestPipesNonJavaInputFormat.testFormat fails in windows</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5821">MAPREDUCE-5821</a>.
-     Major bug reported by Todd Lipcon and fixed by Todd Lipcon (performance , task)<br>
-     <b>IFile merge allocates new byte array for every value</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5818">MAPREDUCE-5818</a>.
-     Major bug reported by Jian He and fixed by Jian He <br>
-     <b>hsadmin cmd is missing in mapred.cmd</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5815">MAPREDUCE-5815</a>.
-     Blocker bug reported by Gera Shegalov and fixed by Akira AJISAKA (client , mrv2)<br>
-     <b>Fix NPE in TestMRAppMaster</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5714">MAPREDUCE-5714</a>.
-     Major bug reported by Jinghui Wang and fixed by Jinghui Wang (test)<br>
-     <b>TestMRAppComponentDependencies causes surefire to exit without saying proper goodbye</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3191">MAPREDUCE-3191</a>.
-     Trivial bug reported by Todd Lipcon and fixed by Chen He <br>
-     <b>docs for map output compression incorrectly reference SequenceFile</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6527">HDFS-6527</a>.
-     Blocker bug reported by Kihwal Lee and fixed by Kihwal Lee <br>
-     <b>Edit log corruption due to defered INode removal</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6411">HDFS-6411</a>.
-     Major bug reported by Zhongyi Xie and fixed by Brandon Li (nfs)<br>
-     <b>nfs-hdfs-gateway mount raises I/O error and hangs when a unauthorized user attempts to access it</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6402">HDFS-6402</a>.
-     Trivial bug reported by Chris Nauroth and fixed by Chris Nauroth (namenode)<br>
-     <b>Suppress findbugs warning for failure to override equals and hashCode in FsAclPermission.</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6397">HDFS-6397</a>.
-     Critical bug reported by Mohammad Kamrul Islam and fixed by Mohammad Kamrul Islam <br>
-     <b>NN shows inconsistent value in deadnode count </b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6362">HDFS-6362</a>.
-     Blocker bug reported by Arpit Agarwal and fixed by Arpit Agarwal (namenode)<br>
-     <b>InvalidateBlocks is inconsistent in usage of DatanodeUuid and StorageID</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6361">HDFS-6361</a>.
-     Major bug reported by Yongjun Zhang and fixed by Yongjun Zhang (nfs)<br>
-     <b>TestIdUserGroup.testUserUpdateSetting failed due to out of range nfsnobody Id</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6340">HDFS-6340</a>.
-     Blocker bug reported by Rahul Singhal and fixed by Rahul Singhal (datanode)<br>
-     <b>DN can't finalize upgrade</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6329">HDFS-6329</a>.
-     Blocker bug reported by Kihwal Lee and fixed by Kihwal Lee <br>
-     <b>WebHdfs does not work if HA is enabled on NN but logical URI is not configured.</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6326">HDFS-6326</a>.
-     Blocker bug reported by Daryn Sharp and fixed by Chris Nauroth (webhdfs)<br>
-     <b>WebHdfs ACL compatibility is broken</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6325">HDFS-6325</a>.
-     Major bug reported by Konstantin Shvachko and fixed by Keith Pak (namenode)<br>
-     <b>Append should fail if the last block has insufficient number of replicas</b><br>
-     <blockquote>I have committed the fix to the trunk, branch-2, and branch-2.4 respectively. Thanks Keith!</blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6313">HDFS-6313</a>.
-     Blocker bug reported by Daryn Sharp and fixed by Kihwal Lee (webhdfs)<br>
-     <b>WebHdfs may use the wrong NN when configured for multiple HA NNs</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6245">HDFS-6245</a>.
-     Major bug reported by Arpit Gupta and fixed by Arpit Agarwal <br>
-     <b>datanode fails to start with a bad disk even when failed volumes is set</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6236">HDFS-6236</a>.
-     Minor bug reported by Chris Nauroth and fixed by Chris Nauroth (namenode)<br>
-     <b>ImageServlet should use Time#monotonicNow to measure latency.</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6235">HDFS-6235</a>.
-     Trivial bug reported by Chris Nauroth and fixed by Chris Nauroth (namenode , test)<br>
-     <b>TestFileJournalManager can fail on Windows due to file locking if tests run out of order.</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6234">HDFS-6234</a>.
-     Trivial bug reported by Chris Nauroth and fixed by Chris Nauroth (datanode , test)<br>
-     <b>TestDatanodeConfig#testMemlockLimit fails on Windows due to invalid file path.</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6232">HDFS-6232</a>.
-     Major bug reported by Stephen Chu and fixed by Akira AJISAKA (tools)<br>
-     <b>OfflineEditsViewer throws a NPE on edits containing ACL modifications</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6231">HDFS-6231</a>.
-     Major bug reported by Chris Nauroth and fixed by Chris Nauroth (hdfs-client)<br>
-     <b>DFSClient hangs infinitely if using hedged reads and all eligible datanodes die.</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6229">HDFS-6229</a>.
-     Major bug reported by Jing Zhao and fixed by Jing Zhao (ha)<br>
-     <b>Race condition in failover can cause RetryCache fail to work</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6215">HDFS-6215</a>.
-     Minor bug reported by Kihwal Lee and fixed by Kihwal Lee <br>
-     <b>Wrong error message for upgrade</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6209">HDFS-6209</a>.
-     Minor bug reported by Arpit Agarwal and fixed by Arpit Agarwal (test)<br>
-     <b>Fix flaky test TestValidateConfigurationSettings.testThatDifferentRPCandHttpPortsAreOK</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6208">HDFS-6208</a>.
-     Major bug reported by Chris Nauroth and fixed by Chris Nauroth (datanode)<br>
-     <b>DataNode caching can leak file descriptors.</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6206">HDFS-6206</a>.
-     Major bug reported by Tsz Wo Nicholas Sze and fixed by Tsz Wo Nicholas Sze <br>
-     <b>DFSUtil.substituteForWildcardAddress may throw NPE</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6204">HDFS-6204</a>.
-     Minor bug reported by Tsz Wo Nicholas Sze and fixed by Tsz Wo Nicholas Sze (test)<br>
-     <b>TestRBWBlockInvalidation may fail</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6198">HDFS-6198</a>.
-     Major bug reported by Chris Nauroth and fixed by Chris Nauroth (datanode)<br>
-     <b>DataNode rolling upgrade does not correctly identify current block pool directory and replace with trash on Windows.</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6197">HDFS-6197</a>.
-     Minor bug reported by Chris Nauroth and fixed by Chris Nauroth (namenode)<br>
-     <b>Rolling upgrade rollback on Windows can fail attempting to rename edit log segment files to a destination that already exists.</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6189">HDFS-6189</a>.
-     Major test reported by Chris Nauroth and fixed by Chris Nauroth (test)<br>
-     <b>Multiple HDFS tests fail on Windows attempting to use a test root path containing a colon.</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-4052">HDFS-4052</a>.
-     Minor improvement reported by Jing Zhao and fixed by Jing Zhao <br>
-     <b>BlockManager#invalidateWork should print logs outside the lock</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-2882">HDFS-2882</a>.
-     Major bug reported by Todd Lipcon and fixed by Vinayakumar B (datanode)<br>
-     <b>DN continues to start up, even if block pool fails to initialize</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10612">HADOOP-10612</a>.
-     Major bug reported by Brandon Li and fixed by Brandon Li (nfs)<br>
-     <b>NFS failed to refresh the user group id mapping table</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10562">HADOOP-10562</a>.
-     Critical bug reported by Suresh Srinivas and fixed by Suresh Srinivas <br>
-     <b>Namenode exits on exception without printing stack trace in AbstractDelegationTokenSecretManager</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10527">HADOOP-10527</a>.
-     Major bug reported by Kihwal Lee and fixed by Kihwal Lee <br>
-     <b>Fix incorrect return code and allow more retries on EINTR</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10522">HADOOP-10522</a>.
-     Critical bug reported by Kihwal Lee and fixed by Kihwal Lee <br>
-     <b>JniBasedUnixGroupMapping mishandles errors</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10490">HADOOP-10490</a>.
-     Minor bug reported by Chris Nauroth and fixed by Chris Nauroth (test)<br>
-     <b>TestMapFile and TestBloomMapFile leak file descriptors.</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10473">HADOOP-10473</a>.
-     Minor bug reported by Tsz Wo Nicholas Sze and fixed by Tsz Wo Nicholas Sze (test)<br>
-     <b>TestCallQueueManager is still flaky</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10466">HADOOP-10466</a>.
-     Minor improvement reported by Nicolas Liochon and fixed by Nicolas Liochon (security)<br>
-     <b>Lower the log level in UserGroupInformation</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10456">HADOOP-10456</a>.
-     Major bug reported by Nishkam Ravi and fixed by Nishkam Ravi (conf)<br>
-     <b>Bug in Configuration.java exposed by Spark (ConcurrentModificationException)</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10455">HADOOP-10455</a>.
-     Major bug reported by Tsz Wo Nicholas Sze and fixed by Tsz Wo Nicholas Sze (ipc)<br>
-     <b>When there is an exception, ipc.Server should first check whether it is an terse exception</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8826">HADOOP-8826</a>.
-     Minor bug reported by Robert Joseph Evans and fixed by Mit Desai <br>
-     <b>Docs still refer to 0.20.205 as stable line</b><br>
-     <blockquote></blockquote></li>
-</ul>
-</body></html>
-<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Hadoop  2.4.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.4.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.3.0</h2>
-<ul>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1893">YARN-1893</a>.
-     Blocker sub-task reported by Xuan Gong and fixed by Xuan Gong (resourcemanager)<br>
-     <b>Make ApplicationMasterProtocol#allocate AtMostOnce</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1891">YARN-1891</a>.
-     Minor task reported by Varun Vasudev and fixed by Varun Vasudev <br>
-     <b>Document NodeManager health-monitoring</b><br>
-     <blockquote>Start documenting node manager starting with the health monitoring.</blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1873">YARN-1873</a>.
-     Major bug reported by Mit Desai and fixed by Mit Desai <br>
-     <b>TestDistributedShell#testDSShell fails when the test cases are out of order</b><br>
-     <blockquote>testDSShell fails when the tests are run in random order. I see a cleanup issue here.
-
-{noformat}
-Tests run: 1, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 72.222 sec &lt;&lt;&lt; FAILURE! - in org.apache.hadoop.yarn.applications.distributedshell.TestDistributedShell
-testOrder(org.apache.hadoop.yarn.applications.distributedshell.TestDistributedShell)  Time elapsed: 44.127 sec  &lt;&lt;&lt; FAILURE!
-java.lang.AssertionError: expected:&lt;1&gt; but was:&lt;6&gt;
-	at org.junit.Assert.fail(Assert.java:93)
-	at org.junit.Assert.failNotEquals(Assert.java:647)
-	at org.junit.Assert.assertEquals(Assert.java:128)
-	at org.junit.Assert.assertEquals(Assert.java:472)
-	at org.junit.Assert.assertEquals(Assert.java:456)
-	at org.apache.hadoop.yarn.applications.distributedshell.TestDistributedShell.testDSShell(TestDistributedShell.java:204)
-	at org.apache.hadoop.yarn.applications.distributedshell.TestDistributedShell.testOrder(TestDistributedShell.java:134)
-
-
-Results :
-
-Failed tests: 
-  TestDistributedShell.testOrder:134-&gt;testDSShell:204 expected:&lt;1&gt; but was:&lt;6&gt;
-{noformat}
-
-The Line numbers will be little deviated because I was trying to reproduce the error by running the tests in specific order. But the Line that causes the assert fail is {{Assert.assertEquals(1, entitiesAttempts.getEntities().size());}}</blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1867">YARN-1867</a>.
-     Blocker bug reported by Karthik Kambatla and fixed by Vinod Kumar Vavilapalli (resourcemanager)<br>
-     <b>NPE while fetching apps via the REST API</b><br>
-     <blockquote>We ran into the following NPE when fetching applications using the REST API:
-
-{noformat}
-INTERNAL_SERVER_ERROR
-java.lang.NullPointerException
-at org.apache.hadoop.yarn.server.security.ApplicationACLsManager.checkAccess(ApplicationACLsManager.java:104)
-at org.apache.hadoop.yarn.server.resourcemanager.webapp.RMWebServices.hasAccess(RMWebServices.java:123)
-at org.apache.hadoop.yarn.server.resourcemanager.webapp.RMWebServices.getApps(RMWebServices.java:418)
-{noformat}</blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1866">YARN-1866</a>.
-     Blocker bug reported by Arpit Gupta and fixed by Jian He <br>
-     <b>YARN RM fails to load state store with delegation token parsing error</b><br>
-     <blockquote>In our secure Nightlies we saw exceptions in the RM log where it failed to parse the deletegation token.</blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1863">YARN-1863</a>.
-     Blocker test reported by Ted Yu and fixed by Xuan Gong <br>
-     <b>TestRMFailover fails with 'AssertionError: null' </b><br>
-     <blockquote>This happened in Hadoop-Yarn-trunk - Build # 516 and can be reproduced:
-{code}
-testWebAppProxyInStandAloneMode(org.apache.hadoop.yarn.client.TestRMFailover)  Time elapsed: 5.834 sec  &lt;&lt;&lt; FAILURE!
-java.lang.AssertionError: null
-	at org.junit.Assert.fail(Assert.java:92)
-	at org.junit.Assert.assertTrue(Assert.java:43)
-	at org.junit.Assert.assertTrue(Assert.java:54)
-	at org.apache.hadoop.yarn.client.TestRMFailover.verifyExpectedException(TestRMFailover.java:250)
-	at org.apache.hadoop.yarn.client.TestRMFailover.testWebAppProxyInStandAloneMode(TestRMFailover.java:216)
-
-testEmbeddedWebAppProxy(org.apache.hadoop.yarn.client.TestRMFailover)  Time elapsed: 5.341 sec  &lt;&lt;&lt; FAILURE!
-java.lang.AssertionError: null
-	at org.junit.Assert.fail(Assert.java:92)
-	at org.junit.Assert.assertTrue(Assert.java:43)
-	at org.junit.Assert.assertTrue(Assert.java:54)
-	at org.apache.hadoop.yarn.client.TestRMFailover.verifyExpectedException(TestRMFailover.java:250)
-	at org.apache.hadoop.yarn.client.TestRMFailover.testEmbeddedWebAppProxy(TestRMFailover.java:241)
-{code}</blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1859">YARN-1859</a>.
-     Major bug reported by Zhijie Shen and fixed by Zhijie Shen <br>
-     <b>WebAppProxyServlet will throw ApplicationNotFoundException if the app is no longer cached in RM</b><br>
-     <blockquote>WebAppProxyServlet checks null to determine whether the application is not found or not.
-{code}
- ApplicationReport applicationReport = getApplicationReport(id);
-      if(applicationReport == null) {
-        LOG.warn(req.getRemoteUser()+" Attempting to access "+id+
-            " that was not found");
-{code}
-However, WebAppProxyServlet calls AppReportFetcher, which consequently calls ClientRMService. When application is not found, ClientRMService throws ApplicationNotFoundException. Therefore, in WebAppProxyServlet, the following logic to create the tracking url for a non-cached app will no longer be in use.</blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1855">YARN-1855</a>.
-     Critical test reported by Ted Yu and fixed by Zhijie Shen <br>
-     <b>TestRMFailover#testRMWebAppRedirect fails in trunk</b><br>
-     <blockquote>From https://builds.apache.org/job/Hadoop-Yarn-trunk/514/console :
-{code}
-testRMWebAppRedirect(org.apache.hadoop.yarn.client.TestRMFailover)  Time elapsed: 5.39 sec  &lt;&lt;&lt; ERROR!
-java.lang.NullPointerException: null
-	at org.apache.hadoop.yarn.client.TestRMFailover.testRMWebAppRedirect(TestRMFailover.java:269)
-{code}</blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1854">YARN-1854</a>.
-     Blocker test reported by Mit Desai and fixed by Rohith <br>
-     <b>Race condition in TestRMHA#testStartAndTransitions</b><br>
-     <blockquote>There is race in test.
-TestRMHA#testStartAndTransitions calls verifyClusterMetrics() immediately after application is submitted, but QueueMetrics are updated after app attempt is sheduled. Calling verifyClusterMetrics() without verifying app attempt is in Scheduled state cause random test failures.
- MockRM.submitApp() return when application is in ACCEPTED, but QueueMetrics updated at APP_ATTEMPT_ADDED event. There is high chance of getting queue metrics before app attempt is Scheduled.
-
-
-
-
-{noformat}
-testStartAndTransitions(org.apache.hadoop.yarn.server.resourcemanager.TestRMHA)  Time elapsed: 5.883 sec  &lt;&lt;&lt; FAILURE!
-java.lang.AssertionError: Incorrect value for metric availableMB expected:&lt;2048&gt; but was:&lt;4096&gt;
-	at org.junit.Assert.fail(Assert.java:93)
-	at org.junit.Assert.failNotEquals(Assert.java:647)
-	at org.junit.Assert.assertEquals(Assert.java:128)
-	at org.junit.Assert.assertEquals(Assert.java:472)
-	at org.apache.hadoop.yarn.server.resourcemanager.TestRMHA.assertMetric(TestRMHA.java:396)
-	at org.apache.hadoop.yarn.server.resourcemanager.TestRMHA.verifyClusterMetrics(TestRMHA.java:387)
-	at org.apache.hadoop.yarn.server.resourcemanager.TestRMHA.testStartAndTransitions(TestRMHA.java:160)
-
-
-Results :
-
-Failed tests: 
-  TestRMHA.testStartAndTransitions:160-&gt;verifyClusterMetrics:387-&gt;assertMetric:396 Incorrect value for metric availableMB expected:&lt;2048&gt; but was:&lt;4096&gt;
-{noformat}</blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1852">YARN-1852</a>.
-     Major bug reported by Rohith and fixed by Rohith (resourcemanager)<br>
-     <b>Application recovery throws InvalidStateTransitonException for FAILED and KILLED jobs</b><br>
-     <blockquote>Recovering for failed/killed application throw InvalidStateTransitonException.
-
-These are logged during recovery of applications.</blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1850">YARN-1850</a>.
-     Major sub-task reported by Zhijie Shen and fixed by Zhijie Shen <br>
-     <b>Make enabling timeline service configurable </b><br>
-     <blockquote>Like generic history service, we'd better to make enabling timeline service configurable, in case the timeline server is not up</blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1849">YARN-1849</a>.
-     Blocker bug reported by Karthik Kambatla and fixed by Karthik Kambatla (resourcemanager)<br>
-     <b>NPE in ResourceTrackerService#registerNodeManager for UAM</b><br>
-     <blockquote>While running an UnmanagedAM on secure cluster, ran into an NPE on failover/restart. This is similar to YARN-1821. </blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1846">YARN-1846</a>.
-     Major bug reported by Robert Kanter and fixed by Robert Kanter <br>
-     <b>TestRM#testNMTokenSentForNormalContainer assumes CapacityScheduler</b><br>
-     <blockquote>TestRM.testNMTokenSentForNormalContainer assumes the CapacityScheduler is being used and tries to do:
-{code:java}
-CapacityScheduler cs = (CapacityScheduler) rm.getResourceScheduler();
-{code}
-
-This throws a {{ClassCastException}} if you're not using the CapacityScheduler.</blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1839">YARN-1839</a>.
-     Critical bug reported by Tassapol Athiapinya and fixed by Jian He (applications , capacityscheduler)<br>
-     <b>Capacity scheduler preempts an AM out. AM attempt 2 fails to launch task container with SecretManager$InvalidToken: No NMToken sent</b><br>
-     <blockquote>Use single-node cluster. Turn on capacity scheduler preemption. Run MR sleep job as app 1. Take entire cluster. Run MR sleep job as app 2. Preempt app1 out. Wait till app 2 finishes. App 1 AM attempt 2 will start. It won't be able to launch a task container with this error stack trace in AM logs:
-
-{code}
-2014-03-13 20:13:50,254 INFO [AsyncDispatcher event handler] org.apache.hadoop.mapreduce.v2.app.job.impl.TaskAttemptImpl: Diagnostics report from attempt_1394741557066_0001_m_000000_1009: Container launch failed for container_1394741557066_0001_02_000021 : org.apache.hadoop.security.token.SecretManager$InvalidToken: No NMToken sent for &lt;host&gt;:45454
-	at org.apache.hadoop.yarn.client.api.impl.ContainerManagementProtocolProxy$ContainerManagementProtocolProxyData.newProxy(ContainerManagementProtocolProxy.java:206)
-	at org.apache.hadoop.yarn.client.api.impl.ContainerManagementProtocolProxy$ContainerManagementProtocolProxyData.&lt;init&gt;(ContainerManagementProtocolProxy.java:196)
-	at org.apache.hadoop.yarn.client.api.impl.ContainerManagementProtocolProxy.getProxy(ContainerManagementProtocolProxy.java:117)
-	at org.apache.hadoop.mapreduce.v2.app.launcher.ContainerLauncherImpl.getCMProxy(ContainerLauncherImpl.java:403)
-	at org.apache.hadoop.mapreduce.v2.app.launcher.ContainerLauncherImpl$Container.launch(ContainerLauncherImpl.java:138)
-	at org.apache.hadoop.mapreduce.v2.app.launcher.ContainerLauncherImpl$EventProcessor.run(ContainerLauncherImpl.java:369)
-	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
-	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
-	at java.lang.Thread.run(Thread.java:722)
-{code}
-
-</blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1838">YARN-1838</a>.
-     Major sub-task reported by Srimanth Gunturi and fixed by Billie Rinaldi <br>
-     <b>Timeline service getEntities API should provide ability to get entities from given id</b><br>
-     <blockquote>To support pagination, we need ability to get entities from a certain ID by providing a new param called {{fromid}}.
-
-For example on a page of 10 jobs, our first call will be like
-[http://server:8188/ws/v1/timeline/HIVE_QUERY_ID?fields=events,primaryfilters,otherinfo&amp;limit=11]
-When user hits next, we would like to call
-[http://server:8188/ws/v1/timeline/HIVE_QUERY_ID?fields=events,primaryfilters,otherinfo&amp;fromid=JID11&amp;limit=11]
-and continue on for further _Next_ clicks
-
-On hitting back, we will make similar calls for previous items
-[http://server:8188/ws/v1/timeline/HIVE_QUERY_ID?fields=events,primaryfilters,otherinfo&amp;fromid=JID1&amp;limit=11]
-
-{{fromid}} should be inclusive of the id given.</blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1833">YARN-1833</a>.
-     Major bug reported by Mit Desai and fixed by Mit Desai <br>
-     <b>TestRMAdminService Fails in trunk and branch-2 : Assert Fails due to different count of UserGroups for currentUser()</b><br>
-     <blockquote>In the test testRefreshUserToGroupsMappingsWithFileSystemBasedConfigurationProvider, the following assert is not needed.
-
-{code}
-Assert.assertTrue(groupWithInit.size() != groupBefore.size());
-{code}
-
-As the assert takes the default groups for groupWithInit (which in my case are users, sshusers and wheel), it fails as the size of both groupWithInit and groupBefore are same.
-
-I do not think we need to have this assert here. Moreover we are also checking that the groupInit does not have the userGroups that are in the groupBefore so removing the assert may not be harmful.</blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1830">YARN-1830</a>.
-     Major bug reported by Karthik Kambatla and fixed by Zhijie Shen (resourcemanager)<br>
-     <b>TestRMRestart.testQueueMetricsOnRMRestart failure</b><br>
-     <blockquote>TestRMRestart.testQueueMetricsOnRMRestart fails intermittently as follows (reported on YARN-1815):
-
-{noformat}
-java.lang.AssertionError: expected:&lt;37&gt; but was:&lt;38&gt;
-...
-	at org.apache.hadoop.yarn.server.resourcemanager.TestRMRestart.assertQueueMetrics(TestRMRestart.java:1728)
-	at org.apache.hadoop.yarn.server.resourcemanager.TestRMRestart.testQueueMetricsOnRMRestart(TestRMRestart.java:1682)
-{noformat}</blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1824">YARN-1824</a>.
-     Major bug reported by Jian He and fixed by Jian He <br>
-     <b>Make Windows client work with Linux/Unix cluster</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1821">YARN-1821</a>.
-     Blocker sub-task reported by Karthik Kambatla and fixed by Karthik Kambatla (resourcemanager)<br>
-     <b>NPE on registerNodeManager if the request has containers for UnmanagedAMs</b><br>
-     <blockquote>On RM restart (or failover), NM re-registers with the RM. If it was running containers for Unmanaged AMs, it runs into the following NPE:
-
-{noformat}
-Caused by: org.apache.hadoop.ipc.RemoteException(java.lang.NullPointerException): java.lang.NullPointerException
-        at org.apache.hadoop.yarn.server.resourcemanager.ResourceTrackerService.registerNodeManager(ResourceTrackerService.java:213)
-        at org.apache.hadoop.yarn.server.api.impl.pb.service.ResourceTrackerPBServiceImpl.registerNodeManager(ResourceTrackerPBServiceImpl.java:54)
-{noformat}</blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1816">YARN-1816</a>.
-     Major sub-task reported by Arpit Gupta and fixed by Jian He <br>
-     <b>Succeeded application remains in accepted after RM restart</b><br>
-     <blockquote>{code}
-2014-03-10 18:07:31,944|beaver.machine|INFO|Application-Id	    Application-Name	    Application-Type	      User	     Queue	             State	       Final-State	       Progress	                       Tracking-URL
-2014-03-10 18:07:31,945|beaver.machine|INFO|application_1394449508064_0008	test_mapred_ha_multiple_job_nn-rm-1-min-5-jobs_1394449960-4	           MAPREDUCE	    hrt_qa	   default	          ACCEPTED	         SUCCEEDED	           100%	http://hostname:19888/jobhistory/job/job_1394449508064_0008
-2014-03-10 18:08:02,125|beaver.machine|INFO|RUNNING: /usr/bin/yarn application -list -appStates NEW,NEW_SAVING,SUBMITTED,ACCEPTED,RUNNING
-2014-03-10 18:08:03,198|beaver.machine|INFO|14/03/10 18:08:03 INFO client.ConfiguredRMFailoverProxyProvider: Failing over to rm2
-2014-03-10 18:08:03,238|beaver.machine|INFO|Total number of applications (application-types: [] and states: [NEW, NEW_SAVING, SUBMITTED, ACCEPTED, RUNNING]):1
-2014-03-10 18:08:03,239|beaver.machine|INFO|Application-Id	    Application-Name	    Application-Type	      User	     Queue	             State	       Final-State	       Progress	                       Tracking-URL
-2014-03-10 18:08:03,239|beaver.machine|INFO|application_1394449508064_0008	test_mapred_ha_multiple_job_nn-rm-1-min-5-jobs_1394449960-4	           MAPREDUCE	    hrt_qa	   default	          ACCEPTED	         SUCCEEDED	           100%	http://hostname:19888/jobhistory/job/job_1394449508064_0008
-2014-03-10 18:08:33,390|beaver.machine|INFO|RUNNING: /usr/bin/yarn application -list -appStates NEW,NEW_SAVING,SUBMITTED,ACCEPTED,RUNNING
-2014-03-10 18:08:34,437|beaver.machine|INFO|14/03/10 18:08:34 INFO client.ConfiguredRMFailoverProxyProvider: Failing over to rm2
-2014-03-10 18:08:34,477|beaver.machine|INFO|Total number of applications (application-types: [] and states: [NEW, NEW_SAVING, SUBMITTED, ACCEPTED, RUNNING]):1
-2014-03-10 18:08:34,477|beaver.machine|INFO|Application-Id	    Application-Name	    Application-Type	      User	     Queue	             State	       Final-State	       Progress	                       Tracking-URL
-2014-03-10 18:08:34,478|beaver.machine|INFO|application_1394449508064_0008	test_mapred_ha_multiple_job_nn-rm-1-min-5-jobs_1394449960-4	           MAPREDUCE	    hrt_qa	   default	          ACCEPTED	         SUCCEEDED	           100%	http://hostname:19888/jobhistory/job/job_1394449508064_0008
-2014-03-10 18:09:04,628|beaver.machine|INFO|RUNNING: /usr/bin/yarn application -list -appStates NEW,NEW_SAVING,SUBMITTED,ACCEPTED,RUNNING
-2014-03-10 18:09:05,688|beaver.machine|INFO|14/03/10 18:09:05 INFO client.ConfiguredRMFailoverProxyProvider: Failing over to rm2
-2014-03-10 18:09:05,728|beaver.machine|INFO|Total number of applications (application-types: [] and states: [NEW, NEW_SAVING, SUBMITTED, ACCEPTED, RUNNING]):1
-2014-03-10 18:09:05,728|beaver.machine|INFO|Application-Id	    Application-Name	    Application-Type	      User	     Queue	             State	       Final-State	       Progress	                       Tracking-URL
-2014-03-10 18:09:05,729|beaver.machine|INFO|application_1394449508064_0008	test_mapred_ha_multiple_job_nn-rm-1-min-5-jobs_1394449960-4	           MAPREDUCE	    hrt_qa	   default	          ACCEPTED	         SUCCEEDED	           100%	http://hostname:19888/jobhistory/job/job_1394449508064_0008
-2014-03-10 18:09:35,879|beaver.machine|INFO|RUNNING: /usr/bin/yarn application -list -appStates NEW,NEW_SAVING,SUBMITTED,ACCEPTED,RUNNING
-2014-03-10 18:09:36,951|beaver.machine|INFO|14/03/10 18:09:36 INFO client.ConfiguredRMFailoverProxyProvider: Failing over to rm2
-2014-03-10 18:09:36,992|beaver.machine|INFO|Total number of applications (application-types: [] and states: [NEW, NEW_SAVING, SUBMITTED, ACCEPTED, RUNNING]):1
-2014-03-10 18:09:36,993|beaver.machine|INFO|Application-Id	    Application-Name	    Application-Type	      User	     Queue	             State	       Final-State	       Progress	                       Tracking-URL
-2014-03-10 18:09:36,993|beaver.machine|INFO|application_1394449508064_0008	test_mapred_ha_multiple_job_nn-rm-1-min-5-jobs_1394449960-4	           MAPREDUCE	    hrt_qa	   default	          ACCEPTED	         SUCCEEDED	           100%	http://hostname:19888/jobhistory/job/job_1394449508064_0008
-2014-03-10 18:10:07,142|beaver.machine|INFO|RUNNING: /usr/bin/yarn application -list -appStates NEW,NEW_SAVING,SUBMITTED,ACCEPTED,RUNNING
-2014-03-10 18:10:08,201|beaver.machine|INFO|14/03/10 18:10:08 INFO client.ConfiguredRMFailoverProxyProvider: Failing over to rm2
-2014-03-10 18:10:08,242|beaver.machine|INFO|Total number of applications (application-types: [] and states: [NEW, NEW_SAVING, SUBMITTED, ACCEPTED, RUNNING]):1
-2014-03-10 18:10:08,242|beaver.machine|INFO|Application-Id	    Application-Name	    Application-Type	      User	     Queue	             State	       Final-State	       Progress	                       Tracking-URL
-2014-03-10 18:10:08,242|beaver.machine|INFO|application_1394449508064_0008	test_mapred_ha_multiple_job_nn-rm-1-min-5-jobs_1394449960-4	           MAPREDUCE	    hrt_qa	   default	          ACCEPTED	         SUCCEEDED	           100%	http://hostname:19888/jobhistory/job/job_1394449508064_0008
-2014-03-10 18:10:38,392|beaver.machine|INFO|RUNNING: /usr/bin/yarn application -list -appStates NEW,NEW_SAVING,SUBMITTED,ACCEPTED,RUNNING
-2014-03-10 18:10:39,443|beaver.machine|INFO|14/03/10 18:10:39 INFO client.ConfiguredRMFailoverProxyProvider: Failing over to rm2
-2014-03-10 18:10:39,484|beaver.machine|INFO|Total number of applications (application-types: [] and states: [NEW, NEW_SAVING, SUBMITTED, ACCEPTED, RUNNING]):1
-2014-03-10 18:10:39,484|beaver.machine|INFO|Application-Id	    Application-Name	    Application-Type	      User	     Queue	             State	       Final-State	       Progress	                       Tracking-URL
-2014-03-10 18:10:39,485|beaver.machine|INFO|application_1394449508064_0008	test_mapred_ha_multiple_job_nn-rm-1-min-5-jobs_1394449960-4	           MAPREDUCE	    hrt_qa	   default	          ACCEPTED	         SUCCEEDED	           100%	http://hostname:19888/jobhistory/job/job_1394449508064_0008
-{code}</blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1812">YARN-1812</a>.
-     Major sub-task reported by Yesha Vora and fixed by Jian He <br>
-     <b>Job stays in PREP state for long time after RM Restarts</b><br>
-     <blockquote>Steps followed:
-
-1) start a sort job with 80 maps and 5 reducers
-2) restart Resource manager when 60 maps and 0 reducers are finished
-3) Wait for job to come out of PREP state.
-
-The job does not come out of PREP state after 7-8 mins.
-After waiting for 7-8 mins, test kills the job.
-
-However, Sort job should not take this long time to come out of PREP state</blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1811">YARN-1811</a>.
-     Major sub-task reported by Robert Kanter and fixed by Robert Kanter (resourcemanager)<br>
-     <b>RM HA: AM link broken if the AM is on nodes other than RM</b><br>
-     <blockquote>When using RM HA, if you click on the "Application Master" link in the RM web UI while the job is running, you get an Error 500:
-</blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1800">YARN-1800</a>.
-     Critical sub-task reported by Paul Isaychuk and fixed by Varun Vasudev (nodemanager)<br>
-     <b>YARN NodeManager with java.util.concurrent.RejectedExecutionException</b><br>
-     <blockquote>Noticed this on tests running on Apache Hadoop 2.2 cluster
-
-{code}
-2014-01-23 01:30:28,575 INFO  localizer.LocalizedResource (LocalizedResource.java:handle(196)) - Resource hdfs://colo-2:8020/user/fertrist/oozie-oozi/0000605-140114233013619-oozie-oozi-W/aggregator--map-reduce/map-reduce-launcher.jar transitioned from INIT to DOWNLOADING
-2014-01-23 01:30:28,575 INFO  localizer.LocalizedResource (LocalizedResource.java:handle(196)) - Resource hdfs://colo-2:8020/user/fertrist/.staging/job_1389742077466_0396/job.splitmetainfo transitioned from INIT to DOWNLOADING
-2014-01-23 01:30:28,575 INFO  localizer.LocalizedResource (LocalizedResource.java:handle(196)) - Resource hdfs://colo-2:8020/user/fertrist/.staging/job_1389742077466_0396/job.split transitioned from INIT to DOWNLOADING
-2014-01-23 01:30:28,575 INFO  localizer.LocalizedResource (LocalizedResource.java:handle(196)) - Resource hdfs://colo-2:8020/user/fertrist/.staging/job_1389742077466_0396/job.xml transitioned from INIT to DOWNLOADING
-2014-01-23 01:30:28,576 INFO  localizer.ResourceLocalizationService (ResourceLocalizationService.java:addResource(651)) - Downloading public rsrc:{ hdfs://colo-2:8020/user/fertrist/oozie-oozi/0000605-140114233013619-oozie-oozi-W/aggregator--map-reduce/map-reduce-launcher.jar, 1390440627435, FILE, null }
-2014-01-23 01:30:28,576 FATAL event.AsyncDispatcher (AsyncDispatcher.java:dispatch(141)) - Error in dispatcher thread
-java.util.concurrent.RejectedExecutionException
-        at java.util.concurrent.ThreadPoolExecutor$AbortPolicy.rejectedExecution(ThreadPoolExecutor.java:1768)
-        at java.util.concurrent.ThreadPoolExecutor.reject(ThreadPoolExecutor.java:767)
-        at java.util.concurrent.ThreadPoolExecutor.execute(ThreadPoolExecutor.java:658)
-        at java.util.concurrent.ExecutorCompletionService.submit(ExecutorCompletionService.java:152)
-        at org.apache.hadoop.yarn.server.nodemanager.containermanager.localizer.ResourceLocalizationService$PublicLocalizer.addResource(ResourceLocalizationService.java:678)
-        at org.apache.hadoop.yarn.server.nodemanager.containermanager.localizer.ResourceLocalizationService$LocalizerTracker.handle(ResourceLocalizationService.java:583)
-        at org.apache.hadoop.yarn.server.nodemanager.containermanager.localizer.ResourceLocalizationService$LocalizerTracker.handle(ResourceLocalizationService.java:525)
-        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)
-2014-01-23 01:30:28,577 INFO  event.AsyncDispatcher (AsyncDispatcher.java:dispatch(144)) - Exiting, bbye..
-2014-01-23 01:30:28,596 INFO  mortbay.log (Slf4jLog.java:info(67)) - Stopped SelectChannelConnector@0.0.0.0:50060
-2014-01-23 01:30:28,597 INFO  containermanager.ContainerManagerImpl (ContainerManagerImpl.java:cleanUpApplicationsOnNMShutDown(328)) - Applications still running : [application_1389742077466_0396]
-2014-01-23 01:30:28,597 INFO  containermanager.ContainerManagerImpl (ContainerManagerImpl.java:cleanUpApplicationsOnNMShutDown(336)) - Wa
-{code}</blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1793">YARN-1793</a>.
-     Critical bug reported by Karthik Kambatla and fixed by Karthik Kambatla (resourcemanager)<br>
-     <b>yarn application -kill doesn't kill UnmanagedAMs</b><br>
-     <blockquote>Trying to kill an Unmanaged AM though CLI (yarn application -kill &lt;id&gt;) logs a success, but doesn't actually kill the AM or reclaim the containers allocated to it.</blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1789">YARN-1789</a>.
-     Minor improvement reported by Akira AJISAKA and fixed by Tsuyoshi OZAWA (resourcemanager)<br>
-     <b>ApplicationSummary does not escape newlines in the app name</b><br>
-     <blockquote>YARN-side of MAPREDUCE-5778.
-ApplicationSummary is not escaping newlines in the app name. This can result in an application summary log entry that spans multiple lines when users are expecting one-app-per-line output.</blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1788">YARN-1788</a>.
-     Critical bug reported by Tassapol Athiapinya and fixed by Varun Vasudev (resourcemanager)<br>
-     <b>AppsCompleted/AppsKilled metric is incorrect when MR job is killed with yarn application -kill</b><br>
-     <blockquote>Run MR sleep job. Kill the application in RUNNING state. Observe RM metrics.
-Expecting AppsCompleted = 0/AppsKilled = 1
-Actual is AppsCompleted = 1/AppsKilled = 0</blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1787">YARN-1787</a>.
-     Major sub-task reported by Zhijie Shen and fixed by Zhijie Shen <br>
-     <b>yarn applicationattempt/container print wrong usage information</b><br>
-     <blockquote>yarn applicationattempt prints:
-{code}
-Invalid Command Usage : 
-usage: application
- -appStates &lt;States&gt;             Works with -list to filter applications
-                                 based on input comma-separated list of
-                                 application states. The valid application
-                                 state can be one of the following:
-                                 ALL,NEW,NEW_SAVING,SUBMITTED,ACCEPTED,RUN
-                                 NING,FINISHED,FAILED,KILLED
- -appTypes &lt;Types&gt;               Works with -list to filter applications
-                                 based on input comma-separated list of
-                                 application types.
- -help                           Displays help for all commands.
- -kill &lt;Application ID&gt;          Kills the application.
- -list &lt;arg&gt;                     List application attempts for aplication
-                                 from AHS.
- -movetoqueue &lt;Application ID&gt;   Moves the application to a different
-                                 queue.
- -queue &lt;Queue Name&gt;             Works with the movetoqueue command to
-                                 specify which queue to move an
-                                 application to.
- -status &lt;Application ID&gt;        Prints the status of the application.
-{code}
-
-yarn container prints:
-{code}
-Invalid Command Usage : 
-usage: application
- -appStates &lt;States&gt;             Works with -list to filter applications
-                                 based on input comma-separated list of
-                                 application states. The valid application
-                                 state can be one of the following:
-                                 ALL,NEW,NEW_SAVING,SUBMITTED,ACCEPTED,RUN
-                                 NING,FINISHED,FAILED,KILLED
- -appTypes &lt;Types&gt;               Works with -list to filter applications
-                                 based on input comma-separated list of
-                                 application types.
- -help                           Displays help for all commands.
- -kill &lt;Application ID&gt;          Kills the application.
- -list &lt;arg&gt;                     List application attempts for aplication
-                                 from AHS.
- -movetoqueue &lt;Application ID&gt;   Moves the application to a different
-                                 queue.
- -queue &lt;Queue Name&gt;             Works with the movetoqueue command to
-                                 specify which queue to move an
-                                 application to.
- -status &lt;Application ID&gt;        Prints the status of the application.
-{code}
-
-Both commands print irrelevant yarn application usage information.</blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1785">YARN-1785</a>.
-     Major bug reported by bc Wong and fixed by bc Wong <br>
-     <b>FairScheduler treats app lookup failures as ERRORs</b><br>
-     <blockquote>When invoking the /ws/v1/cluster/apps endpoint, RM will eventually get to RMAppImpl#createAndGetApplicationReport, which calls RMAppAttemptImpl#getApplicationResourceUsageReport, which looks up the app in the scheduler, which may or may not exist. So FairScheduler shouldn't log an error for every lookup failure:
-
-{noformat}
-2014-02-17 08:23:21,240 ERROR org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.FairScheduler: Request for appInfo of unknown attemptappattempt_1392419715319_0135_000001
-
-{noformat}</blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1783">YARN-1783</a>.
-     Critical bug reported by Arpit Gupta and fixed by Jian He <br>
-     <b>yarn application does not make any progress even when no other application is running when RM is being restarted in the background</b><br>
-     <blockquote>Noticed that during HA tests some tests took over 3 hours to run when the test failed.
-Looking at the logs i see the application made no progress for a very long time. However if i look at application log from yarn it actually ran in 5 mins
-I am seeing same behavior when RM was being restarted in the background and when both RM and AM were being restarted. This does not happen for all applications but a few will hit this in the nightly run.</blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1781">YARN-1781</a>.
-     Major sub-task reported by Varun Vasudev and fixed by Varun Vasudev (nodemanager)<br>
-     <b>NM should allow users to specify max disk utilization for local disks</b><br>
-     <blockquote>This is related to YARN-257(it's probably a sub task?). Currently, the NM does not detect full disks and allows full disks to be used by containers leading to repeated failures. YARN-257 deals with graceful handling of full disks. This ticket is only about detection of full disks by the disk health checkers.
-
-The NM should allow users to set a maximum disk utilization for local disks and mark disks as bad once they exceed that utilization. At the very least, the NM should at least detect full disks.
-
-</blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1780">YARN-1780</a>.
-     Major sub-task reported by Zhijie Shen and fixed by Zhijie Shen <br>
-     <b>Improve logging in timeline service</b><br>
-     <blockquote>It's difficult to trace whether the client has successfully posted the entity to the timeline service or not.</blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1776">YARN-1776</a>.
-     Major sub-task reported by Zhijie Shen and fixed by Zhijie Shen <br>
-     <b>renewDelegationToken should survive RM failover</b><br>
-     <blockquote>When a delegation token is renewed, two RMStateStore operations: 1) removing the old DT, and 2) storing the new DT will happen. If RM fails in between. There would be problem.</blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1775">YARN-1775</a>.
-     Major sub-task reported by Rajesh Balamohan and fixed by Rajesh Balamohan (nodemanager)<br>
-     <b>Create SMAPBasedProcessTree to get PSS information</b><br>
-     <blockquote>Create SMAPBasedProcessTree (by extending ProcfsBasedProcessTree), which will make use of PSS for computing the memory usage. </blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1774">YARN-1774</a>.
-     Blocker bug reported by Anubhav Dhoot and fixed by Anubhav Dhoot (resourcemanager)<br>
-     <b>FS: Submitting to non-leaf queue throws NPE</b><br>
-     <blockquote>If you create a hierarchy of queues and assign a job to parent queue, FairScheduler quits with a NPE.
-
-
-
-</blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1771">YARN-1771</a>.
-     Critical improvement reported by Sangjin Lee and fixed by Sangjin Lee (nodemanager)<br>
-     <b>many getFileStatus calls made from node manager for localizing a public distributed cache resource</b><br>
-     <blockquote>We're observing that the getFileStatus calls are putting a fair amount of load on the name node as part of checking the public-ness for localizing a resource that belong in the public cache.
-
-We see 7 getFileStatus calls made for each of these resource. We should look into reducing the number of calls to the name node. One example:
-
-{noformat}
-2014-02-27 18:07:27,351 INFO audit: ... cmd=getfileinfo	src=/tmp/temp-887708724/tmp883330348/foo-0.0.44.jar ...
-2014-02-27 18:07:27,352 INFO audit: ... cmd=getfileinfo	src=/tmp/temp-887708724/tmp883330348/foo-0.0.44.jar ...
-2014-02-27 18:07:27,352 INFO audit: ... cmd=getfileinfo	src=/tmp/temp-887708724/tmp883330348 ...
-2014-02-27 18:07:27,353 INFO audit: ... cmd=getfileinfo	src=/tmp/temp-887708724 ...
-2014-02-27 18:07:27,353 INFO audit: ... cmd=getfileinfo	src=/tmp ...
-2014-02-27 18:07:27,354 INFO audit: ... cmd=getfileinfo	src=/	 ...
-2014-02-27 18:07:27,354 INFO audit: ... cmd=getfileinfo	src=/tmp/temp-887708724/tmp883330348/foo-0.0.44.jar ...
-2014-02-27 18:07:27,355 INFO audit: ... cmd=open	src=/tmp/temp-887708724/tmp883330348/foo-0.0.44.jar ...
-{noformat}</blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1768">YARN-1768</a>.
-     Minor bug reported by Hitesh Shah and fixed by Tsuyoshi OZAWA (client)<br>
-     <b>yarn kill non-existent application is too verbose</b><br>
-     <blockquote>Instead of catching ApplicationNotFound and logging a simple app not found message, the whole stack trace is logged.</blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1766">YARN-1766</a>.
-     Major sub-task reported by Xuan Gong and fixed by Xuan Gong <br>
-     <b>When RM does the initiation, it should use loaded Configuration instead of bootstrap configuration.</b><br>
-     <blockquote>Right now, we have FileSystemBasedConfigurationProvider to let Users upload the configurations into remote File System, and let different RMs share the same configurations.  During the initiation, RM will load the configurations from Remote File System. So when RM initiates the services, it should use the loaded Configurations instead of using the bootstrap configurations.</blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1765">YARN-1765</a>.
-     Major sub-task reported by Xuan Gong and fixed by Xuan Gong <br>
-     <b>Write test cases to verify that killApplication API works in RM HA</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1764">YARN-1764</a>.
-     Major sub-task reported by Xuan Gong and fixed by Xuan Gong <br>
-     <b>Handle RM fail overs after the submitApplication call.</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1761">YARN-1761</a>.
-     Major sub-task reported by Xuan Gong and fixed by Xuan Gong <br>
-     <b>RMAdminCLI should check whether HA is enabled before executes transitionToActive/transitionToStandby</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1760">YARN-1760</a>.
-     Trivial bug reported by Karthik Kambatla and fixed by Karthik Kambatla <br>
-     <b>TestRMAdminService assumes CapacityScheduler</b><br>
-     <blockquote>YARN-1611 adds TestRMAdminService which assumes the use of CapacityScheduler. 
-
-{noformat}
-java.lang.ClassCastException: org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.FairScheduler cannot be cast to org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacityScheduler
-	at org.apache.hadoop.yarn.server.resourcemanager.TestRMAdminService.testAdminRefreshQueuesWithFileSystemBasedConfigurationProvider(TestRMAdminService.java:115)
-{noformat}</blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1758">YARN-1758</a>.
-     Blocker bug reported by Hitesh Shah and fixed by Xuan Gong <br>
-     <b>MiniYARNCluster broken post YARN-1666</b><br>
-     <blockquote>NPE seen when trying to use MiniYARNCluster</blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1752">YARN-1752</a>.
-     Major bug reported by Jian He and fixed by Rohith <br>
-     <b>Unexpected Unregistered event at Attempt Launched state</b><br>
-     <blockquote>{code}
-2014-02-21 14:56:03,453 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: UNREGISTERED at LAUNCHED
-  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.resourcemanager.rmapp.attempt.RMAppAttemptImpl.handle(RMAppAttemptImpl.java:647)
-  at org.apache.hadoop.yarn.server.resourcemanager.rmapp.attempt.RMAppAttemptImpl.handle(RMAppAttemptImpl.java:103)
-  at org.apache.hadoop.yarn.server.resourcemanager.ResourceManager$ApplicationAttemptEventDispatcher.handle(ResourceManager.java:733)
-  at org.apache.hadoop.yarn.server.resourcemanager.ResourceManager$ApplicationAttemptEventDispatcher.handle(ResourceManager.java:714)
-  at org.apache.hadoop.yarn.event.AsyncDispatcher.dispatch(AsyncDispatcher.java:173)
-  at org.apache.hadoop.yarn.event.AsyncDispatcher$1.run(AsyncDispatcher.java:106)
-  at java.lang.Thread.run(Thread.java:695)
-{code}
-
-</blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1749">YARN-1749</a>.
-     Major sub-task reported by Zhijie Shen and fixed by Zhijie Shen <br>
-     <b>Review AHS configs and sync them up with the timeline-service configs</b><br>
-     <blockquote>We need to:
-1. Review the configuration names and default values
-2. Combine the two store class configurations
-
-Some other thoughts:
-1. Maybe we don't need null implementation of ApplicationHistoryStore any more
-2. Maybe if yarn.ahs.enabled = false, we should stop AHS web server returning historic information</blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1748">YARN-1748</a>.
-     Blocker bug reported by Sravya Tirukkovalur and fixed by Sravya Tirukkovalur <br>
-     <b>hadoop-yarn-server-tests packages core-site.xml breaking downstream tests</b><br>
-     <blockquote>Jars should not package config files, as this might come into the classpaths of clients causing the clients to break.</blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1742">YARN-1742</a>.
-     Trivial bug reported by Akira AJISAKA and fixed by Akira AJISAKA (documentation)<br>
-     <b>Fix javadoc of parameter DEFAULT_NM_MIN_HEALTHY_DISKS_FRACTION</b><br>
-     <blockquote>In YarnConfiguration.java, 
-{code}
-  /**
-   * By default, at least 5% of disks are to be healthy to say that the node
-   * is healthy in terms of disks.
-   */
-  public static final float DEFAULT_NM_MIN_HEALTHY_DISKS_FRACTION
-    = 0.25F;
-{code}
-25% is the correct.</blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1734">YARN-1734</a>.
-     Critical sub-task reported by Xuan Gong and fixed by Xuan Gong <br>
-     <b>RM should get the updated Configurations when it transits from Standby to Active</b><br>
-     <blockquote>Currently, we have ConfigurationProvider which can support LocalConfiguration, and FileSystemBasedConfiguration. When HA is enabled, and FileSystemBasedConfiguration is enabled, RM can not get the updated Configurations when it transits from Standby to Active</blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1732">YARN-1732</a>.
-     Major sub-task reported by Billie Rinaldi and fixed by Billie Rinaldi <br>
-     <b>Change types of related entities and primary filters in ATSEntity</b><br>
-     <blockquote>The current types Map&lt;String, List&lt;String&gt;&gt; relatedEntities and Map&lt;String, Object&gt; primaryFilters have issues.  The List&lt;String&gt; value of the related entities map could have multiple identical strings in it, which doesn't make sense. A more major issue is that we cannot allow primary filter values to be overwritten, because otherwise we will be unable to find those primary filter entries when we want to delete an entity (without doing a nearly full scan).
-
-I propose changing related entities to Map&lt;String, Set&lt;String&gt;&gt; and primary filters to Map&lt;String, Set&lt;Object&gt;&gt;.  The basic methods to add primary filters and related entities are of the form add(key, value) and will not need to change.</blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1730">YARN-1730</a>.
-     Major sub-task reported by Billie Rinaldi and fixed by Billie Rinaldi <br>
-     <b>Leveldb timeline store needs simple write locking</b><br>
-     <blockquote>Although the leveldb writes are performed atomically in a batch, a start time for the entity needs to identified before each write.  Thus a per-entity write lock should be acquired.</blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1729">YARN-1729</a>.
-     Major sub-task reported by Billie Rinaldi and fixed by Billie Rinaldi <br>
-     <b>TimelineWebServices always passes primary and secondary filters as strings</b><br>
-     <blockquote>Primary filters and secondary filter values can be arbitrary json-compatible Object.  The web services should determine if the filters specified as query parameters are objects or strings before passing them to the store.</blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1724">YARN-1724</a>.
-     Critical bug reported by Sandy Ryza and fixed by Sandy Ryza (scheduler)<br>
-     <b>Race condition in Fair Scheduler when continuous scheduling is turned on </b><br>
-     <blockquote>If nodes resource allocations change during
-        Collections.sort(nodeIdList, nodeAvailableResourceComparator);
-we'll hit:
-java.lang.IllegalArgumentException: Comparison method violates its general contract!</blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1721">YARN-1721</a>.
-     Critical bug reported by Sandy Ryza and fixed by Sandy Ryza (scheduler)<br>
-     <b>When moving app between queues in Fair Scheduler, grab lock on FSSchedulerApp</b><br>
-     <blockquote>FairScheduler.moveApplication should grab lock on FSSchedulerApp, so that allocate() can't be modifying it at the same time.</blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1719">YARN-1719</a>.
-     Major sub-task reported by Billie Rinaldi and fixed by Billie Rinaldi <br>
-     <b>ATSWebServices produces jersey warnings</b><br>
-     <blockquote>These don't appear to affect how the web services work, but the following warnings are logged:
-{noformat}
-WARNING: The following warnings have been detected with resource and/or provider
- classes:
-  WARNING: A sub-resource method, public org.apache.hadoop.yarn.server.applicati
-onhistoryservice.webapp.ATSWebServices$AboutInfo org.apache.hadoop.yarn.server.a
-pplicationhistoryservice.webapp.ATSWebServices.about(javax.servlet.http.HttpServ
-letRequest,javax.servlet.http.HttpServletResponse), with URI template, "/", is t
-reated as a resource method
-  WARNING: A sub-resource method, public org.apache.hadoop.yarn.api.records.appt
-imeline.ATSPutErrors org.apache.hadoop.yarn.server.applicationhistoryservice.web
-app.ATSWebServices.postEntities(javax.servlet.http.HttpServletRequest,javax.serv
-let.http.HttpServletResponse,org.apache.hadoop.yarn.api.records.apptimeline.ATSE
-ntities), with URI template, "/", is treated as a resource method
-{noformat}</blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1717">YARN-1717</a>.
-     Major sub-task reported by Billie Rinaldi and fixed by Billie Rinaldi <br>
-     <b>Enable offline deletion of entries in leveldb timeline store</b><br>
-     <blockquote>The leveldb timeline store implementation needs the following:
-* better documentation of its internal structures
-* internal changes to enable deleting entities
-** never overwrite existing primary filter entries
-** add hidden reverse pointers to related entities</blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1706">YARN-1706</a>.
-     Major sub-task reported by Zhijie Shen and fixed by Zhijie Shen <br>
-     <b>Create an utility function to dump timeline records to json </b><br>
-     <blockquote>For verification and log purpose</blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1704">YARN-1704</a>.
-     Blocker sub-task reported by Billie Rinaldi and fixed by Billie Rinaldi <br>
-     <b>Review LICENSE and NOTICE to reflect new levelDB releated libraries being used</b><br>
-     <blockquote>Make any changes necessary in LICENSE and NOTICE related to dependencies introduced by the application timeline store.</blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1698">YARN-1698</a>.
-     Major sub-task reported by Zhijie Shen and fixed by Zhijie Shen <br>
-     <b>Replace MemoryApplicationTimelineStore with LeveldbApplicationTimelineStore as default</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1697">YARN-1697</a>.
-     Major bug reported by Sandy Ryza and fixed by Sandy Ryza (nodemanager)<br>
-     <b>NodeManager reports negative running containers</b><br>
-     <blockquote>We're seeing the NodeManager metrics report a negative number of running containers.</blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1692">YARN-1692</a>.
-     Major bug reported by Sangjin Lee and fixed by Sangjin Lee (scheduler)<br>
-     <b>ConcurrentModificationException in fair scheduler AppSchedulable</b><br>
-     <blockquote>We saw a ConcurrentModificationException thrown in the fair scheduler:
-
-{noformat}
-2014-02-07 01:40:01,978 ERROR org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.FairScheduler: Exception in fair scheduler UpdateThread
-java.util.ConcurrentModificationException
-        at java.util.HashMap$HashIterator.nextEntry(HashMap.java:926)
-        at java.util.HashMap$ValueIterator.next(HashMap.java:954)
-        at org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.AppSchedulable.updateDemand(AppSchedulable.java:85)
-        at org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.FSLeafQueue.updateDemand(FSLeafQueue.java:125)
-        at org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.FSParentQueue.updateDemand(FSParentQueue.java:82)
-        at org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.FairScheduler.update(FairScheduler.java:217)
-        at org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.FairScheduler$UpdateThread.run(FairScheduler.java:195)
-        at java.lang.Thread.run(Thread.java:724)
-{noformat}
-
-The map that  gets returned by FSSchedulerApp.getResourceRequests() are iterated on without proper synchronization.</blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1690">YARN-1690</a>.
-     Major sub-task reported by Mayank Bansal and fixed by Mayank Bansal <br>
-     <b>Sending timeline entities+events from Distributed shell </b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1689">YARN-1689</a>.
-     Critical bug reported by Deepesh Khandelwal and fixed by Vinod Kumar Vavilapalli (resourcemanager)<br>
-     <b>RMAppAttempt is not killed when RMApp is at ACCEPTED</b><br>
-     <blockquote>When running some Hive on Tez jobs, the RM after a while gets into an unusable state where no jobs run. In the RM log I see the following exception:
-{code}
-2014-02-04 20:28:08,553 WARN  ipc.Server (Server.java:run(1978)) - IPC Server handler 0 on 8030, call org.apache.hadoop.yarn.api.ApplicationMasterProtocolPB.registerApplicationMaster from 172.18.145.156:40474 Call#0 Retry#0: error: java.lang.NullPointerException
-java.lang.NullPointerException
-        at org.apache.hadoop.yarn.server.resourcemanager.scheduler.AbstractYarnScheduler.getTransferredContainers(AbstractYarnScheduler.java:48)
-        at org.apache.hadoop.yarn.server.resourcemanager.ApplicationMasterService.registerApplicationMaster(ApplicationMasterService.java:278)
-        at org.apache.hadoop.yarn.api.impl.pb.service.ApplicationMasterProtocolPBServiceImpl.registerApplicationMaster(ApplicationMasterProtocolPBServiceImpl.java:90)
-        at org.apache.hadoop.yarn.proto.ApplicationMasterProtocol$ApplicationMasterProtocolService$2.callBlockingMethod(ApplicationMasterProtocol.java:95)
-        at org.apache.hadoop.ipc.ProtobufRpcEngine$Server$ProtoBufRpcInvoker.call(ProtobufRpcEngine.java:585)
-        at org.apache.hadoop.ipc.RPC$Server.call(RPC.java:928)
-        at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:1962)
-        at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:1958)
-        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:1548)
-        at org.apache.hadoop.ipc.Server$Handler.run(Server.java:1956)
-......
-2014-02-04 20:28:08,544 ERROR rmapp.RMAppImpl (RMAppImpl.java:handle(626)) - Can't handle this event at current state
-org.apache.hadoop.yarn.state.InvalidStateTransitonException: Invalid event: ATTEMPT_REGISTERED at KILLED
-        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.resourcemanager.rmapp.RMAppImpl.handle(RMAppImpl.java:624)
-        at org.apache.hadoop.yarn.server.resourcemanager.rmapp.RMAppImpl.handle(RMAppImpl.java:81)
-        at org.apache.hadoop.yarn.server.resourcemanager.ResourceManager$ApplicationEventDispatcher.handle(ResourceManager.java:656)
-        at org.apache.hadoop.yarn.server.resourcemanager.ResourceManager$ApplicationEventDispatcher.handle(ResourceManager.java:640)
-        at org.apache.hadoop.yarn.event.AsyncDispatcher.dispatch(AsyncDispatcher.java:173)
-        at org.apache.hadoop.yarn.event.AsyncDispatcher$1.run(AsyncDispatcher.java:106)
-        at java.lang.Thread.run(Thread.java:662)
-2014-02-04 20:28:08,549 INFO  resourcemanager.RMAuditLogger (RMAuditLogger.java:logSuccess(140)) - USER=hrt_qa  IP=172.18.145.156       OPERATION=Kill Application Request      TARGET=ClientRMService  RESULT=SUCCESS  APPID=application_1391543307203_0001
-2014-02-04 20:28:08,553 WARN  ipc.Server (Server.java:run(1978)) - IPC Server handler 0 on 8030, call org.apache.hadoop.yarn.api.ApplicationMasterProtocolPB.registerApplicationMaster from 172.18.145.156:40474 Call#0 Retry#0: error: java.lang.NullPointerException
-java.lang.NullPointerException
-        at org.apache.hadoop.yarn.server.resourcemanager.scheduler.AbstractYarnScheduler.getTransferredContainers(AbstractYarnScheduler.java:48)
-        at org.apache.hadoop.yarn.server.resourcemanager.ApplicationMasterService.registerApplicationMaster(ApplicationMasterService.java:278)
-        at org.apache.hadoop.yarn.api.impl.pb.service.ApplicationMasterProtocolPBServiceImpl.registerApplicationMaster(ApplicationMasterProtocolPBServiceImpl.java:90)
-        at org.apache.hadoop.yarn.proto.ApplicationMasterProtocol$ApplicationMasterProtocolService$2.callBlockingMethod(ApplicationMasterProtocol.java:95)
-        at org.apache.hadoop.ipc.ProtobufRpcEngine$Server$ProtoBufRpcInvoker.call(ProtobufRpcEngine.java:585)
-        at org.apache.hadoop.ipc.RPC$Server.call(RPC.java:928)
-        at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:1962)
-        at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:1958)
-        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:1548)
-        at org.apache.hadoop.ipc.Server$Handler.run(Server.java:1956)
-{code}</blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1687">YARN-1687</a>.
-     Major sub-task reported by Zhijie Shen and fixed by Zhijie Shen <br>
-     <b>Refactoring timeline classes to remove "app" related words</b><br>
-     <blockquote>Remove ATS prefix, change package name, fix javadoc and so on</blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1686">YARN-1686</a>.
-     Major bug reported by Rohith and fixed by Rohith (nodemanager)<br>
-     <b>NodeManager.resyncWithRM() does not handle exception which cause NodeManger to Hang.</b><br>
-     <blockquote>During start of NodeManager,if registration with resourcemanager throw exception then nodemager shutdown happens. 
-
-Consider case where NM-1 is registered with RM. RM issued Resync to NM. If any exception thrown in "resyncWithRM" (starts new thread which does not handle exception) during RESYNC evet, then this thread is lost. NodeManger enters hanged state. </blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1685">YARN-1685</a>.
-     Major sub-task reported by Mayank Bansal and fixed by Zhijie Shen <br>
-     <b>Bugs around log URL</b><br>
-     <blockquote>1. Log URL should be different when the container is running and finished
-
-2. Null case needs to be handled
-
-3. The way of constructing log URL should be corrected</blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1684">YARN-1684</a>.
-     Major sub-task reported by Billie Rinaldi and fixed by Billie Rinaldi <br>
-     <b>Fix history server heap size in yarn script</b><br>
-     <blockquote>The yarn script currently has the following:
-{noformat}
-  if [ "$YARN_RESOURCEMANAGER_HEAPSIZE" != "" ]; then
-    JAVA_HEAP_MAX="-Xmx""$YARN_HISTORYSERVER_HEAPSIZE""m"
-  fi
-{noformat}</blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1676">YARN-1676</a>.
-     Major sub-task reported by Xuan Gong and fixed by Xuan Gong <br>
-     <b>Make admin refreshUserToGroupsMappings of configuration work across RM failover</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1673">YARN-1673</a>.
-     Blocker bug reported by Tassapol Athiapinya and fixed by Mayank Bansal (client)<br>
-     <b>Valid yarn kill application prints out help message.</b><br>
-     <blockquote>yarn application -kill &lt;application ID&gt; 
-used to work previously. In 2.4.0 it prints out help message and does not kill the application.</blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1672">YARN-1672</a>.
-     Trivial bug reported by Karthik Kambatla and fixed by Naren Koneru (nodemanager)<br>
-     <b>YarnConfiguration is missing a default for yarn.nodemanager.log.retain-seconds</b><br>
-     <blockquote>YarnConfiguration is missing a default for yarn.nodemanager.log.retain-seconds</blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1670">YARN-1670</a>.
-     Critical bug reported by Thomas Graves and fixed by Mit Desai <br>
-     <b>aggregated log writer can write more log data then it says is the log length</b><br>
-     <blockquote>We have seen exceptions when using 'yarn logs' to read log files. 
-at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
-       at java.lang.Long.parseLong(Long.java:441)
-       at java.lang.Long.parseLong(Long.java:483)
-       at org.apache.hadoop.yarn.logaggregation.AggregatedLogFormat$LogReader.readAContainerLogsForALogType(AggregatedLogFormat.java:518)
-       at org.apache.hadoop.yarn.logaggregation.LogDumper.dumpAContainerLogs(LogDumper.java:178)
-       at org.apache.hadoop.yarn.logaggregation.LogDumper.run(LogDumper.java:130)
-       at org.apache.hadoop.yarn.logaggregation.LogDumper.main(LogDumper.java:246)
-
-
-We traced it down to the reader trying to read the file type of the next file but where it reads is still log data from the previous file.  What happened was the Log Length was written as a certain size but the log data was actually longer then that.  
-
-Inside of the write() routine in LogValue it first writes what the logfile length is, but then when it goes to write the log itself it just goes to the end of the file.  There is a race condition here where if someone is still writing to the file when it goes to be aggregated the length written could be to small.
-
-We should have the write() routine stop when it writes whatever it said was the length.  It would be nice if we could somehow tell the user it might be truncated but I'm not sure of a good way to do this.
-
-We also noticed that a bug in readAContainerLogsForALogType where it is using an int for curRead whereas it should be using a long. 
-
-      while (len != -1 &amp;&amp; curRead &lt; fileLength) {
-
-This isn't actually a problem right now as it looks like the underlying decoder is doing the right thing and the len condition exits.</blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1669">YARN-1669</a>.
-     Major sub-task reported by Xuan Gong and fixed by Xuan Gong <br>
-     <b>Make admin refreshServiceAcls work across RM failover</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1668">YARN-1668</a>.
-     Major sub-task reported by Xuan Gong and fixed by Xuan Gong <br>
-     <b>Make admin refreshAdminAcls work across RM failover</b><br>
-     <blockquote>Change the handling of admin-acls to be available across RM failover by making using of a remote configuration-provider
-</blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1667">YARN-1667</a>.
-     Major sub-task reported by Xuan Gong and fixed by Xuan Gong <br>
-     <b>Make admin refreshSuperUserGroupsConfiguration work across RM failover</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1666">YARN-1666</a>.
-     Major sub-task reported by Xuan Gong and fixed by Xuan Gong <br>
-     <b>Make admin refreshNodes work across RM failover</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1665">YARN-1665</a>.
-     Major sub-task reported by Arpit Gupta and fixed by Xuan Gong (resourcemanager)<br>
-     <b>Set better defaults for HA configs for automatic failover</b><br>
-     <blockquote>In order to enable HA (automatic failover) i had to set the following configs
-
-
-{code}
-&lt;property&gt;
-    &lt;name&gt;yarn.resourcemanager.ha.enabled&lt;/name&gt;
-    &lt;value&gt;true&lt;/value&gt;
-  &lt;/property&gt;
-  
-  &lt;property&gt;
-    &lt;name&gt;yarn.resourcemanager.ha.automatic-failover.enabled&lt;/name&gt;
-    &lt;value&gt;true&lt;/value&gt;
-  &lt;/property&gt;
-
-  &lt;property&gt;
-    &lt;name&gt;yarn.resourcemanager.ha.automatic-failover.embedded&lt;/name&gt;
-    &lt;value&gt;true&lt;/value&gt;
-  &lt;/property&gt;
-
-{code}
-
-
-I believe the user should just have to set yarn.resourcemanager.ha.enabled=true and the rest should be set as defaults. Basically automatic failover should be the default.</blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1661">YARN-1661</a>.
-     Major bug reported by Tassapol Athiapinya and fixed by Vinod Kumar Vavilapalli (applications/distributed-shell)<br>
-     <b>AppMaster logs says failing even if an application does succeed.</b><br>
-     <blockquote>Run:
-/usr/bin/yarn  org.apache.hadoop.yarn.applications.distributedshell.Client -jar &lt;distributed shell jar&gt; -shell_command ls
-
-Open AM logs. Last line would indicate AM failure even though container logs print good ls result.
-
-{code}
-2014-01-24 21:45:29,592 INFO  [main] distributedshell.ApplicationMaster (ApplicationMaster.java:finish(599)) - Application completed. Signalling finish to RM
-2014-01-24 21:45:29,612 INFO  [main] impl.AMRMClientImpl (AMRMClientImpl.java:unregisterApplicationMaster(315)) - Waiting for application to be successfully unregistered.
-2014-01-24 21:45:29,816 INFO  [main] distributedshell.ApplicationMaster (ApplicationMaster.java:main(267)) - Application Master failed. exiting
-{code}</blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1660">YARN-1660</a>.
-     Major sub-task reported by Arpit Gupta and fixed by Xuan Gong (resourcemanager)<br>
-     <b>add the ability to set yarn.resourcemanager.hostname.rm-id instead of setting all the various host:port properties for RM</b><br>
-     <blockquote>Currently the user has to specify all the various host:port properties for RM. We should follow the pattern that we do for non HA setup where we can specify yarn.resourcemanager.hostname.rm-id and the defaults are used for all other affected properties.</blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1659">YARN-1659</a>.
-     Major sub-task reported by Billie Rinaldi and fixed by Billie Rinaldi <br>
-     <b>Define the ApplicationTimelineStore store as an abstraction for implementing different storage impls for storing timeline information</b><br>
-     <blockquote>These will be used by ApplicationTimelineStore interface.  The web services will convert the store-facing obects to the user-facing objects.</blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1658">YARN-1658</a>.
-     Major sub-task reported by Cindy Li and fixed by Cindy Li <br>
-     <b>Webservice should redirect to active RM when HA is enabled.</b><br>
-     <blockquote>When HA is enabled, web service to standby RM should be redirected to the active RM. This is a related Jira to YARN-1525.</blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1641">YARN-1641</a>.
-     Major sub-task reported by Karthik Kambatla and fixed by Karthik Kambatla (resourcemanager)<br>
-     <b>ZK store should attempt a write periodically to ensure it is still Active</b><br>
-     <blockquote>Fencing in ZK store kicks in when the RM tries to write something to the store. If the RM doesn't write anything to the store, it doesn't get fenced and can continue to assume being the Active. 
-
-By periodically writing a file (say, every RM_ZK_TIMEOUT_MS seconds), we can ensure it gets fenced.</blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1640">YARN-1640</a>.
-     Blocker sub-task reported by Xuan Gong and fixed by Xuan Gong <br>
-     <b>Manual Failover does not work in secure clusters</b><br>
-     <blockquote>NodeManager gets rejected after manually making one RM as active.</blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1639">YARN-1639</a>.
-     Major sub-task reported by Arpit Gupta and fixed by Xuan Gong (resourcemanager)<br>
-     <b>YARM RM HA requires different configs on different RM hosts</b><br>
-     <blockquote>We need to set yarn.resourcemanager.ha.id to rm1 or rm2 based on which rm you want to first or second.
-This means we have different configs on different RM nodes. This is unlike HDFS HA where the same configs are pushed to both NN's and it would be better to have the same setup for RM as this would make installation and managing easier.
-</blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1637">YARN-1637</a>.
-     Major sub-task reported by Vinod Kumar Vavilapalli and fixed by Zhijie Shen <br>
-     <b>Implement a client library for java users to post entities+events</b><br>
-     <blockquote>This is a wrapper around the web-service to facilitate easy posting of entity+event data to the time-line server.</blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1636">YARN-1636</a>.
-     Major sub-task reported by Vinod Kumar Vavilapalli and fixed by Zhijie Shen <br>
-     <b>Implement timeline related web-services inside AHS for storing and retrieving entities+events</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1635">YARN-1635</a>.
-     Major sub-task reported by Vinod Kumar Vavilapalli and fixed by Billie Rinaldi <br>
-     <b>Implement a Leveldb based ApplicationTimelineStore</b><br>
-     <blockquote>As per the design doc, we need a levelDB + local-filesystem based implementation to start with and for small deployments.</blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1634">YARN-1634</a>.
-     Major sub-task reported by Vinod Kumar Vavilapalli and fixed by Zhijie Shen <br>
-     <b>Define an in-memory implementation of ApplicationTimelineStore</b><br>
-     <blockquote>As per the design doc, the store needs to pluggable. We need a base interface, and an in-memory implementation for testing.</blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1633">YARN-1633</a>.
-     Major sub-task reported by Vinod Kumar Vavilapalli and fixed by Zhijie Shen <br>
-     <b>Define user-faced entity, entity-info and event objects</b><br>
-     <blockquote>Define the core objects of the application-timeline effort.</blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1632">YARN-1632</a>.
-     Minor bug reported by Chen He and fixed by Chen He <br>
-     <b>TestApplicationMasterServices should be under org.apache.hadoop.yarn.server.resourcemanager package</b><br>
-     <blockquote>ApplicationMasterService is under org.apache.hadoop.yarn.server.resourcemanager package. However, its unit test file TestApplicationMasterService is placed under org.apache.hadoop.yarn.server.resourcemanager.applicationmasterservice package which only contains one file (TestApplicationMasterService). </blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1625">YARN-1625</a>.
-     Trivial sub-task reported by Shinichi Yamashita and fixed by Shinichi Yamashita <br>
-     <b>mvn apache-rat:check outputs warning message in YARN-321 branch</b><br>
-     <blockquote>When I ran dev-support/test-patch.sh, following message output.
-
-{code}
-mvn apache-rat:check -DHadoopPatchProcess &gt; /tmp/patchReleaseAuditOutput.txt 2&gt;&amp;1
-There appear to be 1 release audit warnings after applying the patch.
-{code}
-
-{code}
- !????? /home/sinchii/git/YARN-321-test/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/resources/webapps/applicationhistory/.keep
-Lines that start with ????? in the release audit report indicate files that do not have an Apache license header.
-{code}
-
-To avoid release audit warning, it should fix pom.xml.</blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1617">YARN-1617</a>.
-     Major bug reported by Sandy Ryza and fixed by Sandy Ryza (scheduler)<br>
-     <b>Remove ancient comment and surround LOG.debug in AppSchedulingInfo.allocate</b><br>
-     <blockquote>{code}
-  synchronized private void allocate(Container container) {
-    // Update consumption and track allocations
-    //TODO: fixme sharad
-    /* try {
-        store.storeContainer(container);
-      } catch (IOException ie) {
-        // TODO fix this. we shouldnt ignore
-      }*/
-    
-    LOG.debug("allocate: applicationId=" + applicationId + " container="
-        + container.getId() + " host="
-        + container.getNodeId().toString());
-  }
-{code}
-</blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1613">YARN-1613</a>.
-     Major sub-task reported by Zhijie Shen and fixed by Akira AJISAKA <br>
-     <b>Fix config name YARN_HISTORY_SERVICE_ENABLED</b><br>
-     <blockquote>YARN_HISTORY_SERVICE_ENABLED property name is "yarn.ahs..enabled", which is wrong.</blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1611">YARN-1611</a>.
-     Major sub-task reported by Xuan Gong and fixed by Xuan Gong <br>
-     <b>Make admin refresh of capacity scheduler configuration work across RM failover</b><br>
-     <blockquote>Currently, If we do refresh* for a standby RM, it will failover to the current active RM, and do the refresh* based on the local configuration file of the active RM. </blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1605">YARN-1605</a>.
-     Major sub-task reported by Vinod Kumar Vavilapalli and fixed by Vinod Kumar Vavilapalli <br>
-     <b>Fix formatting issues with new module in YARN-321 branch</b><br>
-     <blockquote>There are a bunch of formatting issues. I'm restricting myself for a sweep of all the files in the new module.</blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1597">YARN-1597</a>.
-     Major sub-task reported by Vinod Kumar Vavilapalli and fixed by Vinod Kumar Vavilapalli <br>
-     <b>FindBugs warnings on YARN-321 branch</b><br>
-     <blockquote>There are a bunch of findBugs warnings on YARN-321 branch.</blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1596">YARN-1596</a>.
-     Major sub-task reported by Vinod Kumar Vavilapalli and fixed by Vinod Kumar Vavilapalli <br>
-     <b>Javadoc failures on YARN-321 branch</b><br>
-     <blockquote>There are some javadoc issues on YARN-321 branch.</blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1595">YARN-1595</a>.
-     Major sub-task reported by Vinod Kumar Vavilapalli and fixed by Vinod Kumar Vavilapalli <br>
-     <b>Test failures on YARN-321 branch</b><br>
-     <blockquote>mvn test doesn't pass on YARN-321 branch anymore.</blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1594">YARN-1594</a>.
-     Major sub-task reported by Vinod Kumar Vavilapalli and fixed by Vinod Kumar Vavilapalli <br>
-     <b>YARN-321 branch needs to be updated after YARN-888 pom changes</b><br>
-     <blockquote>YARN-888 changed the pom structure. And so latest merge to trunk breaks YARN-321 branch.</blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1591">YARN-1591</a>.
-     Major bug reported by Vinod Kumar Vavilapalli and fixed by Tsuyoshi OZAWA <br>
-     <b>TestResourceTrackerService fails randomly on trunk</b><br>
-     <blockquote>As evidenced by Jenkins at https://issues.apache.org/jira/browse/YARN-1041?focusedCommentId=13868621&amp;page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-13868621.
-
-It's failing randomly on trunk on my local box too </blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1590">YARN-1590</a>.
-     Major bug reported by Mohammad Kamrul Islam and fixed by Mohammad Kamrul Islam (resourcemanager)<br>
-     <b>_HOST doesn't expand properly for RM, NM, ProxyServer and JHS</b><br>
-     <blockquote>_HOST is not properly substituted when we use VIP address. Currently it always used the host name of the machine and disregard the VIP address. It is true mainly for RM, NM, WebProxy, and JHS rpc service. Looks like it is working fine for webservice authentication.
-
-On the other hand, the same thing is working fine for NN and SNN in RPC as well as webservice.
- </blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1588">YARN-1588</a>.
-     Major sub-task reported by Jian He and fixed by Jian He <br>
-     <b>Rebind NM tokens for previous attempt's running containers to the new attempt</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1587">YARN-1587</a>.
-     Major sub-task reported by Mayank Bansal and fixed by Vinod Kumar Vavilapalli <br>
-     <b>[YARN-321] Merge Patch for YARN-321</b><br>
-     <blockquote>Merge Patch</blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1578">YARN-1578</a>.
-     Major sub-task reported by Shinichi Yamashita and fixed by Shinichi Yamashita <br>
-     <b>Fix how to read history file in FileSystemApplicationHistoryStore</b><br>
-     <blockquote>I carried out PiEstimator job at Hadoop cluster which applied YARN-321.
-After the job end and when I accessed Web UI of HistoryServer, it displayed "500". And HistoryServer daemon log was output as follows.
-
-{code}
-2014-01-09 13:31:12,227 ERROR org.apache.hadoop.yarn.webapp.Dispatcher: error handling URI: /applicationhistory/appattempt/appattempt_1389146249925_0008_000001
-java.lang.reflect.InvocationTargetException
-        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.yarn.webapp.Dispatcher.service(Dispatcher.java:153)
-        at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
-(snip...)
-Caused by: java.lang.NullPointerException
-        at org.apache.hadoop.yarn.server.applicationhistoryservice.FileSystemApplicationHistoryStore.mergeContainerHistoryData(FileSystemApplicationHistoryStore.java:696)
-        at org.apache.hadoop.yarn.server.applicationhistoryservice.FileSystemApplicationHistoryStore.getContainers(FileSystemApplicationHistoryStore.java:429)
-        at org.apache.hadoop.yarn.server.applicationhistoryservice.ApplicationHistoryManagerImpl.getContainers(ApplicationHistoryManagerImpl.java:201)
-        at org.apache.hadoop.yarn.server.webapp.AppAttemptBlock.render(AppAttemptBlock.java:110)
-(snip...)
-{code}
-
-I confirmed that there was container which was not finished from ApplicationHistory file.
-In ResourceManager daemon log, ResourceManager reserved this container, but did not allocate it.
-
-When FileSystemApplicationHistoryStore reads container information without finish data in history file, this problem occurs.
-In consideration of the case which there is not finish data, we should fix how to read history file in FileSystemApplicationHistoryStore.</blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1577">YARN-1577</a>.
-     Blocker sub-task reported by Jian He and fixed by Jian He <br>
-     <b>Unmanaged AM is broken because of YARN-1493</b><br>
-     <blockquote>Today unmanaged AM client is waiting for app state to be Accepted to launch the AM. This is broken since we changed in YARN-1493 to start the attempt after the application is Accepted. We may need to introduce an attempt state report that client can rely on to query the attempt state and choose to launch the unmanaged AM.</blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1570">YARN-1570</a>.
-     Minor improvement reported by Akira AJISAKA and fixed by Akira AJISAKA (documentation)<br>
-     <b>Formatting the lines within 80 chars in YarnCommands.apt.vm</b><br>
-     <blockquote>In YarnCommands.apt.vm, there are some lines longer than 80 characters.
-For example:
-{code}
-  Yarn commands are invoked by the bin/yarn script. Running the yarn script without any arguments prints the description for all commands.
-{code}</blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1566">YARN-1566</a>.
-     Major sub-task reported by Jian He and fixed by Jian He <br>
-     <b>Change distributed-shell to retain containers from previous AppAttempt</b><br>
-     <blockquote>Change distributed-shell to reuse previous AM's running containers when AM is restarting.  It can also be made configurable whether to enable this feature or not.</blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1555">YARN-1555</a>.
-     Major sub-task reported by Vinod Kumar Vavilapalli and fixed by Vinod Kumar Vavilapalli <br>
-     <b>[YARN-321] Failing tests in org.apache.hadoop.yarn.server.applicationhistoryservice.*</b><br>
-     <blockquote>Several tests are failing on the latest YARN-321 branch.</blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1553">YARN-1553</a>.
-     Major bug reported by Haohui Mai and fixed by Haohui Mai <br>
-     <b>Do not use HttpConfig.isSecure() in YARN</b><br>
-     <blockquote>HDFS-5305 and related jira decide that each individual project will have their own configuration on http policy. {{HttpConfig.isSecure}} is a global static method which does not fit the design anymore. The same functionality should be moved into the YARN code base.
-</blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1536">YARN-1536</a>.
-     Minor improvement reported by Karthik Kambatla and fixed by Anubhav Dhoot (resourcemanager)<br>
-     <b>Cleanup: Get rid of ResourceManager#get*SecretManager() methods and use the RMContext methods instead</b><br>
-     <blockquote>Both ResourceManager and RMContext have methods to access the secret managers, and it should be safe (cleaner) to get rid of the ResourceManager methods.</blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1534">YARN-1534</a>.
-     Major sub-task reported by Shinichi Yamashita and fixed by Shinichi Yamashita <br>
-     <b>TestAHSWebApp failed in YARN-321 branch</b><br>
-     <blockquote>I ran the following commands. And I confirmed failure of TestAHSWebApp.
-
-{code}
-[sinchii@hdX YARN-321-test]$ mvn clean test -Dtest=org.apache.hadoop.yarn.server.applicationhistoryservice.webapp.*
-{code}
-
-{code}
-Running org.apache.hadoop.yarn.server.applicationhistoryservice.webapp.TestAHSWebServices
-Tests run: 9, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 7.492 sec - in org.apache.hadoop.yarn.server.applicationhistoryservice.webapp.TestAHSWebServices
-Running org.apache.hadoop.yarn.server.applicationhistoryservice.webapp.TestAHSWebApp
-Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 0.193 sec &lt;&lt;&lt; FAILURE! - in org.apache.hadoop.yarn.server.applicationhistoryservice.webapp.TestAHSWebApp
-initializationError(org.apache.hadoop.yarn.server.applicationhistoryservice.webapp.TestAHSWebApp)  Time elapsed: 0.016 sec  &lt;&lt;&lt; ERROR!
-java.lang.Exception: Test class should have exactly one public zero-argument constructor
-        at org.junit.runners.BlockJUnit4ClassRunner.validateZeroArgConstructor(BlockJUnit4ClassRunner.java:144)
-        at org.junit.runners.BlockJUnit4ClassRunner.validateConstructor(BlockJUnit4ClassRunner.java:121)
-        at org.junit.runners.BlockJUnit4ClassRunner.collectInitializationErrors(BlockJUnit4ClassRunner.java:101)
-        at org.junit.runners.ParentRunner.validate(ParentRunner.java:344)
-(*snip*)
-{code}</blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1531">YARN-1531</a>.
-     Major bug reported by Akira AJISAKA and fixed by Akira AJISAKA (documentation)<br>
-     <b>True up yarn command documentation</b><br>
-     <blockquote>There are some options which are not written to Yarn Command document.
-For example, "yarn rmadmin" command options are as follows:
-{code}
- Usage: yarn 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}
-But some of the new options such as "-getGroups", "-transitionToActive", and "-transitionToStandby" are not documented.</blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1528">YARN-1528</a>.
-     Blocker bug reported by Karthik Kambatla and fixed by Karthik Kambatla (resourcemanager)<br>
-     <b>Allow setting auth for ZK connections</b><br>
-     <blockquote>ZK store and embedded election allow setting ZK-acls but not auth information</blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1525">YARN-1525</a>.
-     Major sub-task reported by Xuan Gong and fixed by Cindy Li <br>
-     <b>Web UI should redirect to active RM when HA is enabled.</b><br>
-     <blockquote>When failover happens, web UI should redirect to the current active rm.</blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1521">YARN-1521</a>.
-     Blocker sub-task reported by Xuan Gong and fixed by Xuan Gong <br>
-     <b>Mark appropriate protocol methods with the idempotent annotation or AtMostOnce annotation</b><br>
-     <blockquote>After YARN-1028, we add the automatically failover into RMProxy. This JIRA is to identify whether we need to add idempotent annotation and which methods can be marked as idempotent.</blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1512">YARN-1512</a>.
-     Major improvement reported by Arun C Murthy and fixed by Arun C Murthy <br>
-     <b>Enhance CS to decouple scheduling from node heartbeats</b><br>
-     <blockquote>Enhance CS to decouple scheduling from node heartbeats; a prototype has improved latency significantly.</blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1493">YARN-1493</a>.
-     Major sub-task reported by Jian He and fixed by Jian He <br>
-     <b>Schedulers don't recognize apps separately from app-attempts</b><br>
-     <blockquote>Today, scheduler is tied to attempt only.
-
-We need to separate app-level handling logic in scheduler. We can add new app-level events to the scheduler and separate the app-level logic out. This is good for work-preserving AM restart, RM restart, and also needed for differentiating app-level metrics and attempt-level metrics.</blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1490">YARN-1490</a>.
-     Major sub-task reported by Vinod Kumar Vavilapalli and fixed by Jian He <br>
-     <b>RM should optionally not kill all containers when an ApplicationMaster exits</b><br>
-     <blockquote>This is needed to enable work-preserving AM restart. Some apps can chose to reconnect with old running containers, some may not want to. This should be an option.</blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1470">YARN-1470</a>.
-     Major bug reported by Sandy Ryza and fixed by Anubhav Dhoot <br>
-     <b>Add audience annotation to MiniYARNCluster</b><br>
-     <blockquote>We should make it clear whether this is a public interface.</blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1461">YARN-1461</a>.
-     Major sub-task reported by Karthik Kambatla and fixed by Karthik Kambatla (resourcemanager)<br>
-     <b>RM API and RM changes to handle tags for running jobs</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1459">YARN-1459</a>.
-     Major sub-task reported by Karthik Kambatla and fixed by Xuan Gong (resourcemanager)<br>
-     <b>RM services should depend on ConfigurationProvider during startup too</b><br>
-     <blockquote>YARN-1667, YARN-1668, YARN-1669 already changed RM to depend on a configuration provider so as to be able to refresh many configuration files across RM fail-over. The dependency on the configuration-provider by the RM should happen at its boot up time too.</blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1452">YARN-1452</a>.
-     Major task reported by Zhijie Shen and fixed by Zhijie Shen <br>
-     <b>Document the usage of the generic application history and the timeline data service</b><br>
-     <blockquote>We need to write a bunch of documents to guide users. such as command line tools, configurations and REST APIs</blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1444">YARN-1444</a>.
-     Blocker bug reported by Robert Grandl and fixed by Wangda Tan (client , resourcemanager)<br>
-     <b>RM crashes when node resource request sent without corresponding off-switch request</b><br>
-     <blockquote>I have tried to force reducers to execute on certain nodes. What I did is I changed for reduce tasks, the RMContainerRequestor#addResourceRequest(req.priority, ResourceRequest.ANY, req.capability) to RMContainerRequestor#addResourceRequest(req.priority, HOST_NAME, req.capability). 
-
-However, this change lead to RM crashes when reducers needs to be assigned with the following exception:
-FATAL org.apache.hadoop.yarn.server.resourcemanager.ResourceManager: Error in handling event type NODE_UPDATE to the scheduler
-java.lang.NullPointerException
-    at org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.LeafQueue.assignContainers(LeafQueue.java:841)
-    at org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.ParentQueue.assignContainersToChildQueues(ParentQueue.java:640)
-    at org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.ParentQueue.assignContainers(ParentQueue.java:554)
-    at org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacityScheduler.nodeUpdate(CapacityScheduler.java:695)
-    at org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacityScheduler.handle(CapacityScheduler.java:739)
-    at org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacityScheduler.handle(CapacityScheduler.java:86)
-    at org.apache.hadoop.yarn.server.resourcemanager.ResourceManager$SchedulerEventDispatcher$EventProcessor.run(ResourceManager.java:549)
-    at java.lang.Thread.run(Thread.java:722)
-
-</blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1428">YARN-1428</a>.
-     Major sub-task reported by Zhijie Shen and fixed by Zhijie Shen <br>
-     <b>RM cannot write the final state of RMApp/RMAppAttempt to the application history store in the transition to the final state</b><br>
-     <blockquote>ApplicationFinishData and ApplicationAttemptFinishData are written in the final transitions of RMApp/RMAppAttempt respectively. However, in the transitions, getState() is not getting the state that RMApp/RMAppAttempt is going to enter, but prior one.</blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1417">YARN-1417</a>.
-     Blocker bug reported by Omkar Vinit Joshi and fixed by Jian He <br>
-     <b>RM may issue expired container tokens to AM while issuing new containers.</b><br>
-     <blockquote>Today we create new container token when we create container in RM as a part of schedule cycle. However that container may get reserved or assigned. If the container gets reserved and remains like that (in reserved state) for more than container token expiry interval then RM will end up issuing container with expired token.</blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1410">YARN-1410</a>.
-     Major sub-task reported by Bikas Saha and fixed by Xuan Gong <br>
-     <b>Handle RM fails over after getApplicationID() and before submitApplication().</b><br>
-     <blockquote>App submission involves
-1) creating appId
-2) using that appId to submit an ApplicationSubmissionContext to the user.
-The client may have obtained an appId from an RM, the RM may have failed over, and the client may submit the app to the new RM.
-Since the new RM has a different notion of cluster timestamp (used to create app id) the new RM may reject the app submission resulting in unexpected failure on the client side.
-
-The same may happen for other 2 step client API operations.</blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1398">YARN-1398</a>.
-     Blocker bug reported by Sunil G and fixed by Vinod Kumar Vavilapalli (resourcemanager)<br>
-     <b>Deadlock in capacity scheduler leaf queue and parent queue for getQueueInfo and completedContainer call</b><br>
-     <blockquote>getQueueInfo in parentQueue will call  child.getQueueInfo().
-This will try acquire the leaf queue lock over parent queue lock.
-
-Now at same time if a completedContainer call comes and acquired LeafQueue lock and it will wait for ParentQueue's completedConatiner call.
-
-This lock usage is not in synchronous and can lead to deadlock.
-
-With JCarder, this is showing as a potential deadlock scenario.
-
-</blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1389">YARN-1389</a>.
-     Major sub-task reported by Mayank Bansal and fixed by Mayank Bansal <br>
-     <b>ApplicationClientProtocol and ApplicationHistoryProtocol should expose analogous APIs</b><br>
-     <blockquote>As we plan to have the APIs in ApplicationHistoryProtocol to expose the reports of *finished* application attempts and containers, we should do the same for ApplicationClientProtocol, which will return the reports of *running* attempts and containers.
-
-Later on, we can improve YarnClient to direct the query of running instance to ApplicationClientProtocol, while that of finished instance to ApplicationHistoryProtocol, making it transparent to the users.</blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1379">YARN-1379</a>.
-     Major sub-task reported by Vinod Kumar Vavilapalli and fixed by Vinod Kumar Vavilapalli <br>
-     <b>[YARN-321] AHS protocols need to be in yarn proto package name after YARN-1170</b><br>
-     <blockquote>Found this while merging YARN-321 to the latest branch-2. Without this, compilation fails.</blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1345">YARN-1345</a>.
-     Major sub-task reported by Zhijie Shen and fixed by Zhijie Shen <br>
-     <b>Removing FINAL_SAVING from YarnApplicationAttemptState</b><br>
-     <blockquote>Whenever YARN-891 is done, we need to add the mapping of RMAppAttemptState.FINAL_SAVING -&gt; YarnApplicationAttemptState.FINAL_SAVING in RMServerUtils#createApplicationAttemptState</blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1301">YARN-1301</a>.
-     Minor bug reported by Zhijie Shen and fixed by Tsuyoshi OZAWA <br>
-     <b>Need to log the blacklist additions/removals when YarnSchedule#allocate</b><br>
-     <blockquote>Now without the log, it's hard to debug whether blacklist is updated on the scheduler side or not</blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1285">YARN-1285</a>.
-     Major bug reported by Zhijie Shen and fixed by Kenji Kikushima <br>
-     <b>Inconsistency of default "yarn.acl.enable" value</b><br>
-     <blockquote>In yarn-default.xml, "yarn.acl.enable" is true while in YarnConfiguration, DEFAULT_YARN_ACL_ENABLE is false.</blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1266">YARN-1266</a>.
-     Major sub-task reported by Mayank Bansal and fixed by Mayank Bansal <br>
-     <b>Implement PB service and client wrappers for ApplicationHistoryProtocol</b><br>
-     <blockquote>Adding ApplicationHistoryProtocolPBService to make web apps to work and changing yarn to run AHS as a seprate process</blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1242">YARN-1242</a>.
-     Major sub-task reported by Zhijie Shen and fixed by Mayank Bansal <br>
-     <b>Script changes to start AHS as an individual process</b><br>
-     <blockquote>Add the command in yarn and yarn.cmd to start and stop AHS</blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1206">YARN-1206</a>.
-     Blocker bug reported by Jian He and fixed by Rohith <br>
-     <b>AM container log link broken on NM web page even though local container logs are available</b><br>
-     <blockquote>With log aggregation disabled, when container is running, its logs link works properly, but after the application is finished, the link shows 'Container does not exist.'</blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1191">YARN-1191</a>.
-     Major sub-task reported by Mayank Bansal and fixed by Mayank Bansal <br>
-     <b>[YARN-321] Update artifact versions for application history service</b><br>
-     <blockquote>Compilation is failing for YARN-321 branch
-</blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1171">YARN-1171</a>.
-     Major improvement reported by Sandy Ryza and fixed by Naren Koneru (documentation , scheduler)<br>
-     <b>Add default queue properties to Fair Scheduler documentation </b><br>
-     <blockquote>The Fair Scheduler doc is missing the following properties.
-- defaultMinSharePreemptionTimeout
-- queueMaxAppsDefault</blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1166">YARN-1166</a>.
-     Blocker bug reported by Srimanth Gunturi and fixed by Zhijie Shen (resourcemanager)<br>
-     <b>YARN 'appsFailed' metric should be of type 'counter'</b><br>
-     <blockquote>Currently in YARN's queue metrics, the cumulative metric 'appsFailed' is of type 'guage' - which means the exact value will be reported. 
-
-All other cumulative queue metrics (AppsSubmitted, AppsCompleted, AppsKilled) are all of type 'counter' - meaning Ganglia will use slope to provide deltas between time-points.
-
-To be consistent, AppsFailed metric should also be of type 'counter'. </blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1123">YARN-1123</a>.
-     Major sub-task reported by Zhijie Shen and fixed by Mayank Bansal <br>
-     <b>[YARN-321] Adding ContainerReport and Protobuf implementation</b><br>
-     <blockquote>Like YARN-978, we need some client-oriented class to expose the container history info. Neither Container nor RMContainer is the right one.</blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1071">YARN-1071</a>.
-     Major bug reported by Srimanth Gunturi and fixed by Jian He (resourcemanager)<br>
-     <b>ResourceManager's decommissioned and lost node count is 0 after restart</b><br>
-     <blockquote>I had 6 nodes in a cluster with 2 NMs stopped. Then I put a host into YARN's {{yarn.resourcemanager.nodes.exclude-path}}. After running {{yarn rmadmin -refreshNodes}}, RM's JMX correctly showed decommissioned node count:
-{noformat}
-"NumActiveNMs" : 3,
-"NumDecommissionedNMs" : 1,
-"NumLostNMs" : 2,
-"NumUnhealthyNMs" : 0,
-"NumRebootedNMs" : 0
-{noformat}
-
-After restarting RM, the counts were shown as below in JMX.
-{noformat}
-"NumActiveNMs" : 3,
-"NumDecommissionedNMs" : 0,
-"NumLostNMs" : 0,
-"NumUnhealthyNMs" : 0,
-"NumRebootedNMs" : 0
-{noformat}
-
-Notice that the lost and decommissioned NM counts are both 0.</blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1041">YARN-1041</a>.
-     Major sub-task reported by Steve Loughran and fixed by Jian He (resourcemanager)<br>
-     <b>Protocol changes for RM to bind and notify a restarted AM of existing containers</b><br>
-     <blockquote>For long lived containers we don't want the AM to be a SPOF.
-
-When the RM restarts a (failed) AM, it should be given the list of containers it had already been allocated. the AM should then be able to contact the NMs to get details on them. NMs would also need to do any binding of the containers needed to handle a moved/restarted AM.</blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1023">YARN-1023</a>.
-     Major sub-task reported by Devaraj K and fixed by Zhijie Shen <br>
-     <b>[YARN-321] Webservices REST API's support for Application History</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1017">YARN-1017</a>.
-     Blocker sub-task reported by Jian He and fixed by Jian He (resourcemanager)<br>
-     <b>Document RM Restart feature</b><br>
-     <blockquote>This should give users a general idea about how RM Restart works and how to use RM Restart</blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-1007">YARN-1007</a>.
-     Major sub-task reported by Devaraj K and fixed by Mayank Bansal <br>
-     <b>[YARN-321] Enhance History Reader interface for Containers</b><br>
-     <blockquote>If we want to show the containers used by application/app attempt, We need to have two more API's which returns collection of ContainerHistoryData for application id and applcation attempt id something like below. 
-
-{code:xml}
-  Collection&lt;ContainerHistoryData&gt; getContainers(
-      ApplicationAttemptId appAttemptId);
-
-  Collection&lt;ContainerHistoryData&gt; getContainers(ApplicationId appId);
-{code}
-
-
-{code:xml}
-  /**
-   * This method returns {@link Container} for specified {@link ContainerId}.
-   * 
-   * @param {@link ContainerId}
-   * @return {@link Container} for ContainerId
-   */
-  ContainerHistoryData getAMContainer(ContainerId containerId);
-{code}
-In the above API, we need to change the argument to application attempt id or we can remove this API because every attempt history data has master container id field, using master container id, history data can get using this below API if it takes argument as container id.
-
-
-{code:xml}
-  /**
-   * This method returns {@link ContainerHistoryData} for specified
-   * {@link ApplicationAttemptId}.
-   * 
-   * @param {@link ApplicationAttemptId}
-   * @return {@link ContainerHistoryData} for ApplicationAttemptId
-   */
-  ContainerHistoryData getContainer(ApplicationAttemptId appAttemptId);
-{code}
-Here application attempt can use numbers of containers but we cannot choose which container history data to return. This API argument also need to be changed to take container id instead of app attempt id. 
-</blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-987">YARN-987</a>.
-     Major sub-task reported by Mayank Bansal and fixed by Mayank Bansal <br>
-     <b>Adding ApplicationHistoryManager responsible for exposing reports to all clients</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-986">YARN-986</a>.
-     Blocker sub-task reported by Vinod Kumar Vavilapalli and fixed by Karthik Kambatla <br>
-     <b>RM DT token service should have service addresses of both RMs</b><br>
-     <blockquote>Previously: YARN should use cluster-id as token service address
-
-This needs to be done to support non-ip based fail over of RM. Once the server sets the token service address to be this generic ClusterId/ServiceId, clients can translate it to appropriate final IP and then be able to select tokens via TokenSelectors.
-
-Some workarounds for other related issues were put in place at YARN-945.</blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-984">YARN-984</a>.
-     Major sub-task reported by Devaraj K and fixed by Devaraj K <br>
-     <b>[YARN-321] Move classes from applicationhistoryservice.records.pb.impl package to applicationhistoryservice.records.impl.pb</b><br>
-     <blockquote>While creating instance for applicationhistoryservice.records.* pb records, It is throwing the ClassNotFoundException. 
-
-{code:xml}
-Caused by: java.lang.ClassNotFoundException: Class org.apache.hadoop.yarn.server.applicationhistoryservice.records.impl.pb.ApplicationHistoryDataPBImpl not found
-	at org.apache.hadoop.conf.Configuration.getClassByName(Configuration.java:1619)
-	at org.apache.hadoop.yarn.factories.impl.pb.RecordFactoryPBImpl.newRecordInstance(RecordFactoryPBImpl.java:56)
-	... 49 more
-{code}</blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-979">YARN-979</a>.
-     Major sub-task reported by Mayank Bansal and fixed by Mayank Bansal <br>
-     <b>[YARN-321] Add more APIs related to ApplicationAttempt and Container in ApplicationHistoryProtocol</b><br>
-     <blockquote>ApplicationHistoryProtocol should have the following APIs as well:
-
-* getApplicationAttemptReport
-* getApplicationAttempts
-* getContainerReport
-* getContainers
-
-The corresponding request and response classes need to be added as well.</blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-978">YARN-978</a>.
-     Major sub-task reported by Mayank Bansal and fixed by Mayank Bansal <br>
-     <b>[YARN-321] Adding ApplicationAttemptReport and Protobuf implementation</b><br>
-     <blockquote>We dont have ApplicationAttemptReport and Protobuf implementation.
-
-Adding that.
-
-Thanks,
-Mayank</blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-975">YARN-975</a>.
-     Major sub-task reported by Zhijie Shen and fixed by Zhijie Shen <br>
-     <b>Add a file-system implementation for history-storage</b><br>
-     <blockquote>HDFS implementation should be a standard persistence strategy of history storage</blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-974">YARN-974</a>.
-     Major sub-task reported by Zhijie Shen and fixed by Zhijie Shen <br>
-     <b>RMContainer should collect more useful information to be recorded in Application-History</b><br>
-     <blockquote>To record the history of a container, users may be also interested in the following information:
-
-1. Start Time
-2. Stop Time
-3. Diagnostic Information
-4. URL to the Log File
-5. Actually Allocated Resource
-6. Actually Assigned Node
-
-These should be remembered during the RMContainer's life cycle.</blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-967">YARN-967</a>.
-     Major sub-task reported by Devaraj K and fixed by Mayank Bansal <br>
-     <b>[YARN-321] Command Line Interface(CLI) for Reading Application History Storage Data</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-962">YARN-962</a>.
-     Major sub-task reported by Zhijie Shen and fixed by Zhijie Shen <br>
-     <b>Update application_history_service.proto</b><br>
-     <blockquote>1. Change it's name to application_history_client.proto
-2. Fix the incorrect proto reference.
-3. Correct the dir in pom.xml</blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-956">YARN-956</a>.
-     Major sub-task reported by Vinod Kumar Vavilapalli and fixed by Zhijie Shen <br>
-     <b>[YARN-321] Add a testable in-memory HistoryStorage </b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-955">YARN-955</a>.
-     Major sub-task reported by Vinod Kumar Vavilapalli and fixed by Mayank Bansal <br>
-     <b>[YARN-321] Implementation of ApplicationHistoryProtocol</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-954">YARN-954</a>.
-     Major sub-task reported by Vinod Kumar Vavilapalli and fixed by Zhijie Shen <br>
-     <b>[YARN-321] History Service should create the webUI and wire it to HistoryStorage</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-953">YARN-953</a>.
-     Major sub-task reported by Vinod Kumar Vavilapalli and fixed by Zhijie Shen <br>
-     <b>[YARN-321] Enable ResourceManager to write history data</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-947">YARN-947</a>.
-     Major sub-task reported by Zhijie Shen and fixed by Zhijie Shen <br>
-     <b>Defining the history data classes for the implementation of the reading/writing interface</b><br>
-     <blockquote>We need to define the history data classes have the exact fields to be stored. Therefore, all the implementations don't need to have the duplicate logic to exact the required information from RMApp, RMAppAttempt and RMContainer.
-
-We use protobuf to define these classes, such that they can be ser/des to/from bytes, which are easier for persistence.</blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-935">YARN-935</a>.
-     Major sub-task reported by Zhijie Shen and fixed by Zhijie Shen <br>
-     <b>YARN-321 branch is broken due to applicationhistoryserver module's pom.xml</b><br>
-     <blockquote>The branch was created from branch-2, hadoop-yarn-server-applicationhistoryserver/pom.xml should use 2.2.0-SNAPSHOT, not 3.0.0-SNAPSHOT. Otherwise, the sub-project cannot be built correctly because of wrong dependency.</blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-934">YARN-934</a>.
-     Major sub-task reported by Zhijie Shen and fixed by Zhijie Shen <br>
-     <b>HistoryStorage writer interface for Application History Server</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-930">YARN-930</a>.
-     Major sub-task reported by Vinod Kumar Vavilapalli and fixed by Vinod Kumar Vavilapalli <br>
-     <b>Bootstrap ApplicationHistoryService module</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/YARN-713">YARN-713</a>.
-     Critical bug reported by Jason Lowe and fixed by Jian He (resourcemanager)<br>
-     <b>ResourceManager can exit unexpectedly if DNS is unavailable</b><br>
-     <blockquote>As discussed in MAPREDUCE-5261, there's a possibility that a DNS outage could lead to an unhandled exception in the ResourceManager's AsyncDispatcher, and that ultimately would cause the RM to exit.  The RM should not exit during DNS hiccups.</blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5813">MAPREDUCE-5813</a>.
-     Blocker bug reported by Gera Shegalov and fixed by Gera Shegalov (mrv2 , task)<br>
-     <b>YarnChild does not load job.xml with mapreduce.job.classloader=true </b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5810">MAPREDUCE-5810</a>.
-     Major bug reported by Mit Desai and fixed by Akira AJISAKA (contrib/streaming)<br>
-     <b>TestStreamingTaskLog#testStreamingTaskLogWithHadoopCmd is failing</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5806">MAPREDUCE-5806</a>.
-     Major bug reported by Eugene Koifman and fixed by Varun Vasudev <br>
-     <b>Log4j settings in container-log4j.properties cannot be overridden </b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5805">MAPREDUCE-5805</a>.
-     Major bug reported by Fengdong Yu and fixed by Akira AJISAKA (jobhistoryserver)<br>
-     <b>Unable to parse launch time from job history file</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5795">MAPREDUCE-5795</a>.
-     Major bug reported by Yesha Vora and fixed by Xuan Gong <br>
-     <b>Job should be marked as Failed if it is recovered from commit.</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5794">MAPREDUCE-5794</a>.
-     Minor bug reported by Tsz Wo Nicholas Sze and fixed by Tsz Wo Nicholas Sze (test)<br>
-     <b>SliveMapper always uses default FileSystem.</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5791">MAPREDUCE-5791</a>.
-     Major bug reported by Nikola Vujic and fixed by Nikola Vujic (client)<br>
-     <b>Shuffle phase is slow in Windows - FadviseFileRegion::transferTo does not read disks efficiently</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5789">MAPREDUCE-5789</a>.
-     Major bug reported by Rushabh S Shah and fixed by Rushabh S Shah (jobhistoryserver , webapps)<br>
-     <b>Average Reduce time is incorrect on Job Overview page</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5787">MAPREDUCE-5787</a>.
-     Critical sub-task reported by Rajesh Balamohan and fixed by Rajesh Balamohan (nodemanager)<br>
-     <b>Modify ShuffleHandler to support Keep-Alive</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5780">MAPREDUCE-5780</a>.
-     Minor bug reported by Tsz Wo Nicholas Sze and fixed by Tsz Wo Nicholas Sze (test)<br>
-     <b>SliveTest always uses default FileSystem</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5778">MAPREDUCE-5778</a>.
-     Major bug reported by Jason Lowe and fixed by Akira AJISAKA (jobhistoryserver)<br>
-     <b>JobSummary does not escape newlines in the job name</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5773">MAPREDUCE-5773</a>.
-     Blocker improvement reported by Gera Shegalov and fixed by Gera Shegalov (mr-am)<br>
-     <b>Provide dedicated MRAppMaster syslog length limit</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5770">MAPREDUCE-5770</a>.
-     Major bug reported by Yesha Vora and fixed by Jian He <br>
-     <b>Redirection from AM-URL is broken with HTTPS_ONLY policy</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5769">MAPREDUCE-5769</a>.
-     Major bug reported by Rohith and fixed by Rohith <br>
-     <b>Unregistration to RM should not be called if AM is crashed before registering with RM</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5768">MAPREDUCE-5768</a>.
-     Major bug reported by Zhijie Shen and fixed by Gera Shegalov <br>
-     <b>TestMRJobs.testContainerRollingLog fails on trunk</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5766">MAPREDUCE-5766</a>.
-     Minor bug reported by Ramya Sunil and fixed by Jian He (applicationmaster)<br>
-     <b>Ping messages from attempts should be moved to DEBUG</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5761">MAPREDUCE-5761</a>.
-     Trivial improvement reported by Yesha Vora and fixed by Jian He <br>
-     <b>Add a log message like "encrypted shuffle is ON" in nodemanager logs</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5757">MAPREDUCE-5757</a>.
-     Major bug reported by Jason Lowe and fixed by Jason Lowe (client)<br>
-     <b>ConcurrentModificationException in JobControl.toList</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5754">MAPREDUCE-5754</a>.
-     Major improvement reported by Gera Shegalov and fixed by Gera Shegalov (jobhistoryserver , mr-am)<br>
-     <b>Preserve Job diagnostics in history</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5751">MAPREDUCE-5751</a>.
-     Major bug reported by Sangjin Lee and fixed by Sangjin Lee <br>
-     <b>MR app master fails to start in some cases if mapreduce.job.classloader is true</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5746">MAPREDUCE-5746</a>.
-     Major bug reported by Jason Lowe and fixed by Jason Lowe (jobhistoryserver)<br>
-     <b>Job diagnostics can implicate wrong task for a failed job</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5732">MAPREDUCE-5732</a>.
-     Major improvement reported by Sandy Ryza and fixed by Sandy Ryza <br>
-     <b>Report proper queue when job has been automatically placed</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5699">MAPREDUCE-5699</a>.
-     Major bug reported by Karthik Kambatla and fixed by Karthik Kambatla (applicationmaster)<br>
-     <b>Allow setting tags on MR jobs</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5688">MAPREDUCE-5688</a>.
-     Major bug reported by Mit Desai and fixed by Mit Desai <br>
-     <b>TestStagingCleanup fails intermittently with JDK7</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5670">MAPREDUCE-5670</a>.
-     Minor bug reported by Jason Lowe and fixed by Chen He (mrv2)<br>
-     <b>CombineFileRecordReader should report progress when moving to the next file</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5570">MAPREDUCE-5570</a>.
-     Major bug reported by Jason Lowe and fixed by Rushabh S Shah (mr-am , mrv2)<br>
-     <b>Map task attempt with fetch failure has incorrect attempt finish time</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5553">MAPREDUCE-5553</a>.
-     Minor improvement reported by Paul Han and fixed by Paul Han (applicationmaster)<br>
-     <b>Add task state filters on Application/MRJob page for MR Application master </b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5028">MAPREDUCE-5028</a>.
-     Critical bug reported by Karthik Kambatla and fixed by Karthik Kambatla <br>
-     <b>Maps fail when io.sort.mb is set to high value</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4052">MAPREDUCE-4052</a>.
-     Major bug reported by xieguiming and fixed by Jian He (job submission)<br>
-     <b>Windows eclipse cannot submit job from Windows client to Linux/Unix Hadoop cluster.</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2349">MAPREDUCE-2349</a>.
-     Major improvement reported by Joydeep Sen Sarma and fixed by Siddharth Seth (task)<br>
-     <b>speed up list[located]status calls from input formats</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6166">HDFS-6166</a>.
-     Blocker bug reported by Nathan Roberts and fixed by Nathan Roberts (balancer)<br>
-     <b>revisit balancer so_timeout </b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6163">HDFS-6163</a>.
-     Minor bug reported by Fengdong Yu and fixed by Fengdong Yu (documentation)<br>
-     <b>Fix a minor bug in the HA upgrade document</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6157">HDFS-6157</a>.
-     Major bug reported by Haohui Mai and fixed by Haohui Mai <br>
-     <b>Fix the entry point of OfflineImageViewer for hdfs.cmd</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6150">HDFS-6150</a>.
-     Minor improvement reported by Suresh Srinivas and fixed by Suresh Srinivas (namenode)<br>
-     <b>Add inode id information in the logs to make debugging easier</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6140">HDFS-6140</a>.
-     Major bug reported by Chris Nauroth and fixed by Chris Nauroth (webhdfs)<br>
-     <b>WebHDFS cannot create a file with spaces in the name after HA failover changes.</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6138">HDFS-6138</a>.
-     Minor improvement reported by Sanjay Radia and fixed by Sanjay Radia (documentation)<br>
-     <b>User Guide for how to use viewfs with federation</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6135">HDFS-6135</a>.
-     Blocker bug reported by Jing Zhao and fixed by Jing Zhao (journal-node)<br>
-     <b>In HDFS upgrade with HA setup, JournalNode cannot handle layout version bump when rolling back</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6131">HDFS-6131</a>.
-     Major bug reported by Jing Zhao and fixed by Jing Zhao (documentation)<br>
-     <b>Move HDFSHighAvailabilityWithNFS.apt.vm and HDFSHighAvailabilityWithQJM.apt.vm from Yarn to HDFS</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6130">HDFS-6130</a>.
-     Blocker bug reported by Fengdong Yu and fixed by Haohui Mai (namenode)<br>
-     <b>NPE when upgrading namenode from fsimages older than -32</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6129">HDFS-6129</a>.
-     Minor bug reported by Tsz Wo Nicholas Sze and fixed by Tsz Wo Nicholas Sze (datanode)<br>
-     <b>When a replica is not found for deletion, do not throw exception.</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6127">HDFS-6127</a>.
-     Major bug reported by Arpit Gupta and fixed by Haohui Mai (ha)<br>
-     <b>WebHDFS tokens cannot be renewed in HA setup</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6124">HDFS-6124</a>.
-     Major sub-task reported by Suresh Srinivas and fixed by Suresh Srinivas <br>
-     <b>Add final modifier to class members</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6123">HDFS-6123</a>.
-     Minor improvement reported by Tsz Wo Nicholas Sze and fixed by Tsz Wo Nicholas Sze (datanode)<br>
-     <b>Improve datanode error messages</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6120">HDFS-6120</a>.
-     Major improvement reported by Arpit Agarwal and fixed by Arpit Agarwal (namenode)<br>
-     <b>Fix and improve safe mode log messages</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6117">HDFS-6117</a>.
-     Minor bug reported by Suresh Srinivas and fixed by Suresh Srinivas (namenode)<br>
-     <b>Print file path information in FileNotFoundException</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6115">HDFS-6115</a>.
-     Minor bug reported by Vinayakumar B and fixed by Vinayakumar B (datanode)<br>
-     <b>flush() should be called for every append on block scan verification log</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6107">HDFS-6107</a>.
-     Major bug reported by Colin Patrick McCabe and fixed by Colin Patrick McCabe (datanode)<br>
-     <b>When a block can't be cached due to limited space on the DataNode, that block becomes uncacheable</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6106">HDFS-6106</a>.
-     Major bug reported by Colin Patrick McCabe and fixed by Colin Patrick McCabe <br>
-     <b>Reduce default for dfs.namenode.path.based.cache.refresh.interval.ms</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6105">HDFS-6105</a>.
-     Major bug reported by Kihwal Lee and fixed by Haohui Mai <br>
-     <b>NN web UI for DN list loads the same jmx page multiple times.</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6102">HDFS-6102</a>.
-     Blocker bug reported by Andrew Wang and fixed by Andrew Wang (namenode)<br>
-     <b>Lower the default maximum items per directory to fix PB fsimage loading</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6100">HDFS-6100</a>.
-     Major bug reported by Arpit Gupta and fixed by Haohui Mai (ha)<br>
-     <b>DataNodeWebHdfsMethods does not failover in HA mode</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6099">HDFS-6099</a>.
-     Major bug reported by Chris Nauroth and fixed by Chris Nauroth (namenode)<br>
-     <b>HDFS file system limits not enforced on renames.</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6097">HDFS-6097</a>.
-     Major bug reported by Colin Patrick McCabe and fixed by Colin Patrick McCabe (hdfs-client)<br>
-     <b>zero-copy reads are incorrectly disabled on file offsets above 2GB</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6096">HDFS-6096</a>.
-     Minor bug reported by Tsz Wo Nicholas Sze and fixed by Tsz Wo Nicholas Sze (test)<br>
-     <b>TestWebHdfsTokens may timeout</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6094">HDFS-6094</a>.
-     Major bug reported by Arpit Agarwal and fixed by Arpit Agarwal (namenode)<br>
-     <b>The same block can be counted twice towards safe mode threshold</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6090">HDFS-6090</a>.
+<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-6292">MAPREDUCE-6292</a>.
      Minor improvement reported by Akira AJISAKA and fixed by Akira AJISAKA (test)<br>
-     <b>Use MiniDFSCluster.Builder instead of deprecated constructors</b><br>
+     <b>Use org.junit package instead of junit.framework in TestCombineFileInputFormat</b><br>
      <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6089">HDFS-6089</a>.
-     Major bug reported by Arpit Gupta and fixed by Jing Zhao (ha)<br>
-     <b>Standby NN while transitioning to active throws a connection refused error when the prior active NN process is suspended</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6086">HDFS-6086</a>.
-     Major sub-task reported by Colin Patrick McCabe and fixed by Colin Patrick McCabe (datanode)<br>
-     <b>Fix a case where zero-copy or no-checksum reads were not allowed even when the block was cached</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6085">HDFS-6085</a>.
-     Major improvement reported by Colin Patrick McCabe and fixed by Colin Patrick McCabe (namenode)<br>
-     <b>Improve CacheReplicationMonitor log messages a bit</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6084">HDFS-6084</a>.
-     Minor improvement reported by Travis Thompson and fixed by Travis Thompson (namenode)<br>
-     <b>Namenode UI - "Hadoop" logo link shouldn't go to hadoop homepage</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6080">HDFS-6080</a>.
-     Major improvement reported by Abin Shahab and fixed by Abin Shahab (nfs , performance)<br>
-     <b>Improve NFS gateway performance by making rtmax and wtmax configurable</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6079">HDFS-6079</a>.
-     Major bug reported by Andrew Wang and fixed by Andrew Wang (hdfs-client)<br>
-     <b>Timeout for getFileBlockStorageLocations does not work</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6078">HDFS-6078</a>.
-     Minor bug reported by Arpit Agarwal and fixed by Arpit Agarwal (test)<br>
-     <b>TestIncrementalBlockReports is flaky</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6077">HDFS-6077</a>.
-     Major bug reported by Arpit Gupta and fixed by Jing Zhao <br>
-     <b>running slive with webhdfs on secure HA cluster fails with unkown host exception</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6076">HDFS-6076</a>.
-     Minor sub-task reported by Tsz Wo Nicholas Sze and fixed by Tsz Wo Nicholas Sze (datanode , test)<br>
-     <b>SimulatedDataSet should not create DatanodeRegistration with namenode layout version and type</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6072">HDFS-6072</a>.
-     Major improvement reported by Haohui Mai and fixed by Haohui Mai <br>
-     <b>Clean up dead code of FSImage</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6071">HDFS-6071</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 a zero-length read on a short file</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6070">HDFS-6070</a>.
-     Trivial improvement reported by Andrew Wang and fixed by Andrew Wang <br>
-     <b>Cleanup use of ReadStatistics in DFSInputStream</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6069">HDFS-6069</a>.
-     Trivial improvement reported by Andrew Wang and fixed by Chris Nauroth (namenode)<br>
-     <b>Quash stack traces when ACLs are disabled</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6068">HDFS-6068</a>.
-     Major bug reported by Andrew Wang and fixed by sathish (snapshots)<br>
-     <b>Disallow snapshot names that are also invalid directory names</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6067">HDFS-6067</a>.
-     Major bug reported by Colin Patrick McCabe and fixed by Colin Patrick McCabe (hdfs-client)<br>
-     <b>TestPread.testMaxOutHedgedReadPool is flaky</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6065">HDFS-6065</a>.
-     Major bug reported by Colin Patrick McCabe and fixed by Colin Patrick McCabe (hdfs-client)<br>
-     <b>HDFS zero-copy reads should return null on EOF when doing ZCR</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6064">HDFS-6064</a>.
-     Minor bug reported by Vinayakumar B and fixed by Vinayakumar B (datanode)<br>
-     <b>DFSConfigKeys.DFS_BLOCKREPORT_INTERVAL_MSEC_DEFAULT is not updated with latest block report interval of 6 hrs</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6063">HDFS-6063</a>.
-     Minor bug reported by Colin Patrick McCabe and fixed by Chris Nauroth (test , tools)<br>
-     <b>TestAclCLI fails intermittently when running test 24: copyFromLocal</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6062">HDFS-6062</a>.
-     Minor bug reported by Jing Zhao and fixed by Jing Zhao <br>
-     <b>TestRetryCacheWithHA#testConcat is flaky</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6061">HDFS-6061</a>.
-     Major sub-task reported by Colin Patrick McCabe and fixed by Colin Patrick McCabe (datanode)<br>
-     <b>Allow dfs.datanode.shared.file.descriptor.path to contain multiple entries and fall back when needed</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6060">HDFS-6060</a>.
-     Major sub-task reported by Brandon Li and fixed by Brandon Li (namenode)<br>
-     <b>NameNode should not check DataNode layout version</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6059">HDFS-6059</a>.
-     Major bug reported by Akira AJISAKA and fixed by Akira AJISAKA <br>
-     <b>TestBlockReaderLocal fails if native library is not available</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6058">HDFS-6058</a>.
-     Major bug reported by Vinayakumar B and fixed by Haohui Mai <br>
-     <b>Fix TestHDFSCLI failures after HADOOP-8691 change</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6057">HDFS-6057</a>.
-     Blocker bug reported by Eric Sirianni and fixed by Colin Patrick McCabe (hdfs-client)<br>
-     <b>DomainSocketWatcher.watcherThread should be marked as daemon thread</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6055">HDFS-6055</a>.
-     Major improvement reported by Suresh Srinivas and fixed by Chris Nauroth (namenode)<br>
-     <b>Change default configuration to limit file name length in HDFS</b><br>
-     <blockquote>The default configuration of HDFS now sets dfs.namenode.fs-limits.max-component-length to 255 for improved interoperability with other file system implementations.  This limits each component of a file system path to a maximum of 255 bytes in UTF-8 encoding.  Attempts to create new files that violate this rule will fail with an error.  Existing files that violate the rule are not effected.  Previously, dfs.namenode.fs-limits.max-component-length was set to 0 (ignored).  If necessary, it is possible to set the value back to 0 in the cluster's configuration to restore the old behavior.</blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6053">HDFS-6053</a>.
-     Major bug reported by Jing Zhao and fixed by Jing Zhao (namenode)<br>
-     <b>Fix TestDecommissioningStatus and TestDecommission in branch-2</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6051">HDFS-6051</a>.
-     Blocker bug reported by Chris Nauroth and fixed by Colin Patrick McCabe (hdfs-client)<br>
-     <b>HDFS cannot run on Windows since short-circuit shared memory segment changes.</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6047">HDFS-6047</a>.
-     Major bug reported by stack and fixed by stack <br>
-     <b>TestPread NPE inside in DFSInputStream hedgedFetchBlockByteRange</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6046">HDFS-6046</a>.
-     Major sub-task reported by Colin Patrick McCabe and fixed by Colin Patrick McCabe (hdfs-client)<br>
-     <b>add dfs.client.mmap.enabled</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6044">HDFS-6044</a>.
-     Minor improvement reported by Brandon Li and fixed by Brandon Li (nfs)<br>
-     <b>Add property for setting the NFS look up time for users</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6043">HDFS-6043</a>.
-     Major improvement reported by Brandon Li and fixed by Brandon Li (nfs)<br>
-     <b>Give HDFS daemons NFS3 and Portmap their own OPTS</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6040">HDFS-6040</a>.
-     Blocker sub-task reported by Colin Patrick McCabe and fixed by Colin Patrick McCabe (hdfs-client)<br>
-     <b>fix DFSClient issue without libhadoop.so and some other ShortCircuitShm cleanups</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6039">HDFS-6039</a>.
-     Major bug reported by Yesha Vora and fixed by Chris Nauroth (namenode)<br>
-     <b>Uploading a File under a Dir with default acls throws "Duplicated ACLFeature"</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6038">HDFS-6038</a>.
-     Major sub-task reported by Haohui Mai and fixed by Jing Zhao (journal-node , namenode)<br>
-     <b>Allow JournalNode to handle editlog produced by new release with future layoutversion</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6033">HDFS-6033</a>.
-     Major bug reported by Aaron T. Myers and fixed by Aaron T. Myers (caching)<br>
-     <b>PBImageXmlWriter incorrectly handles processing cache directives</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6030">HDFS-6030</a>.
-     Trivial task reported by Yongjun Zhang and fixed by Yongjun Zhang <br>
-     <b>Remove an unused constructor in INode.java</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6028">HDFS-6028</a>.
-     Trivial bug reported by Chris Nauroth and fixed by Chris Nauroth (namenode)<br>
-     <b>Print clearer error message when user attempts to delete required mask entry from ACL.</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6025">HDFS-6025</a>.
-     Minor task reported by Tsz Wo Nicholas Sze and fixed by Tsz Wo Nicholas Sze (build)<br>
-     <b>Update findbugsExcludeFile.xml</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6018">HDFS-6018</a>.
-     Trivial improvement reported by Jing Zhao and fixed by Jing Zhao <br>
-     <b>Exception recorded in LOG when IPCLoggerChannel#close is called</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6008">HDFS-6008</a>.
-     Minor bug reported by Benoy Antony and fixed by Benoy Antony (namenode)<br>
-     <b>Namenode dead node link is giving HTTP error 500</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-6006">HDFS-6006</a>.
-     Trivial improvement reported by Akira AJISAKA and fixed by Akira AJISAKA (namenode)<br>
-     <b>Remove duplicate code in FSNameSystem#getFileInfo</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-5988">HDFS-5988</a>.
-     Blocker bug reported by Andrew Wang and fixed by Andrew Wang (namenode)<br>
-     <b>Bad fsimage always generated after upgrade</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-5986">HDFS-5986</a>.
-     Major improvement reported by Suresh Srinivas and fixed by Chris Nauroth (namenode)<br>
-     <b>Capture the number of blocks pending deletion on namenode webUI</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-5982">HDFS-5982</a>.
-     Critical bug reported by Tassapol Athiapinya and fixed by Jing Zhao (namenode)<br>
-     <b>Need to update snapshot manager when applying editlog for deleting a snapshottable directory</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-5981">HDFS-5981</a>.
-     Minor bug reported by Haohui Mai and fixed by Haohui Mai (tools)<br>
-     <b>PBImageXmlWriter generates malformed XML</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-5979">HDFS-5979</a>.
-     Minor improvement reported by Andrew Wang and fixed by Andrew Wang <br>
-     <b>Typo and logger fix for fsimage PB code</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-5973">HDFS-5973</a>.
-     Major sub-task reported by Colin Patrick McCabe and fixed by Colin Patrick McCabe (hdfs-client)<br>
-     <b>add DomainSocket#shutdown method</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-5962">HDFS-5962</a>.
-     Critical bug reported by Kihwal Lee and fixed by Akira AJISAKA <br>
-     <b>Mtime and atime are not persisted for symbolic links</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-5961">HDFS-5961</a>.
-     Critical bug reported by Kihwal Lee and fixed by Kihwal Lee <br>
-     <b>OIV cannot load fsimages containing a symbolic link</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-5959">HDFS-5959</a>.
-     Minor bug reported by Akira AJISAKA and fixed by Akira AJISAKA <br>
-     <b>Fix typo at section name in FSImageFormatProtobuf.java</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-5956">HDFS-5956</a>.
-     Major sub-task reported by Akira AJISAKA and fixed by Akira AJISAKA (tools)<br>
-     <b>A file size is multiplied by the replication factor in 'hdfs oiv -p FileDistribution' option</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-5953">HDFS-5953</a>.
-     Major test reported by Ted Yu and fixed by Akira AJISAKA <br>
-     <b>TestBlockReaderFactory fails if libhadoop.so has not been built</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-5950">HDFS-5950</a>.
-     Major sub-task reported by Colin Patrick McCabe and fixed by Colin Patrick McCabe (datanode , hdfs-client)<br>
-     <b>The DFSClient and DataNode should use shared memory segments to communicate short-circuit information</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-5949">HDFS-5949</a>.
-     Minor bug reported by Travis Thompson and fixed by Travis Thompson (namenode)<br>
-     <b>New Namenode UI when trying to download a file, the browser doesn't know the file name</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-5948">HDFS-5948</a>.
-     Major bug reported by Andrew Wang and fixed by Haohui Mai <br>
-     <b>TestBackupNode flakes with port in use error</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-5944">HDFS-5944</a>.
-     Major bug reported by zhaoyunjiong and fixed by zhaoyunjiong (namenode)<br>
-     <b>LeaseManager:findLeaseWithPrefixPath can't handle path like /a/b/ right and cause SecondaryNameNode failed do checkpoint</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-5943">HDFS-5943</a>.
-     Major bug reported by Yesha Vora and fixed by Suresh Srinivas <br>
-     <b>'dfs.namenode.https-address.ns1' property is not used in federation setup</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-5942">HDFS-5942</a>.
-     Minor sub-task reported by Akira AJISAKA and fixed by Akira AJISAKA (documentation , tools)<br>
-     <b>Fix javadoc in OfflineImageViewer</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-5941">HDFS-5941</a>.
-     Major bug reported by Haohui Mai and fixed by Haohui Mai (documentation , namenode)<br>
-     <b>add dfs.namenode.secondary.https-address and dfs.namenode.secondary.https-address in hdfs-default.xml</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-5940">HDFS-5940</a>.
-     Major sub-task reported by Colin Patrick McCabe and fixed by Colin Patrick McCabe (hdfs-client)<br>
-     <b>Minor cleanups to ShortCircuitReplica, FsDatasetCache, and DomainSocketWatcher</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-5939">HDFS-5939</a>.
-     Major improvement reported by Yongjun Zhang and fixed by Yongjun Zhang (hdfs-client)<br>
-     <b>WebHdfs returns misleading error code and logs nothing if trying to create a file with no DNs in cluster</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-5938">HDFS-5938</a>.
-     Trivial sub-task reported by Colin Patrick McCabe and fixed by Colin Patrick McCabe (hdfs-client)<br>
-     <b>Make BlockReaderFactory#BlockReaderPeer a static class</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-5936">HDFS-5936</a>.
-     Major test reported by Andrew Wang and fixed by Binglin Chang (namenode , test)<br>
-     <b>MiniDFSCluster does not clean data left behind by SecondaryNameNode.</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-5935">HDFS-5935</a>.
-     Minor improvement reported by Travis Thompson and fixed by Travis Thompson (namenode)<br>
-     <b>New Namenode UI FS browser should throw smarter error messages</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-5934">HDFS-5934</a>.
-     Minor bug reported by Travis Thompson and fixed by Travis Thompson (namenode)<br>
-     <b>New Namenode UI back button doesn't work as expected</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-5929">HDFS-5929</a>.
-     Major improvement reported by Siqi Li and fixed by Siqi Li (federation)<br>
-     <b>Add Block pool % usage to HDFS federated nn page</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-5922">HDFS-5922</a>.
-     Major bug reported by Aaron T. Myers and fixed by Arpit Agarwal (datanode)<br>
-     <b>DN heartbeat thread can get stuck in tight loop</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-5915">HDFS-5915</a>.
-     Major bug reported by Haohui Mai and fixed by Haohui Mai (namenode)<br>
-     <b>Refactor FSImageFormatProtobuf to simplify cross section reads</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-5913">HDFS-5913</a>.
-     Minor bug reported by Ted Yu and fixed by Brandon Li (nfs)<br>
-     <b>Nfs3Utils#getWccAttr() should check attr parameter against null</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-5910">HDFS-5910</a>.
-     Major improvement reported by Benoy Antony and fixed by Benoy Antony (security)<br>
-     <b>Enhance DataTransferProtocol to allow per-connection choice of encryption/plain-text</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-5904">HDFS-5904</a>.
-     Major bug reported by Mit Desai and fixed by Mit Desai <br>
-     <b>TestFileStatus fails intermittently on trunk and branch2</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-5901">HDFS-5901</a>.
-     Major bug reported by Vinayakumar B and fixed by Vinayakumar B (namenode)<br>
-     <b>NameNode new UI doesn't support IE8 and IE9 on windows 7</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-5900">HDFS-5900</a>.
-     Major bug reported by Tassapol Athiapinya and fixed by Andrew Wang (caching)<br>
-     <b>Cannot set cache pool limit of "unlimited" via CacheAdmin</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-5898">HDFS-5898</a>.
-     Major sub-task reported by Jing Zhao and fixed by Abin Shahab (nfs)<br>
-     <b>Allow NFS gateway to login/relogin from its kerberos keytab</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-5895">HDFS-5895</a>.
-     Major bug reported by Tassapol Athiapinya and fixed by Tassapol Athiapinya (tools)<br>
-     <b>HDFS cacheadmin -listPools has exit_code of 1 when the command returns 0 result.</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-5893">HDFS-5893</a>.
-     Major bug reported by Yesha Vora and fixed by Haohui Mai <br>
-     <b>HftpFileSystem.RangeHeaderUrlOpener uses the default URLConnectionFactory which does not import SSL certificates</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-5892">HDFS-5892</a>.
-     Minor test reported by Ted Yu and fixed by  <br>
-     <b>TestDeleteBlockPool fails in branch-2</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-5891">HDFS-5891</a>.
-     Major bug reported by Haohui Mai and fixed by Haohui Mai (namenode , webhdfs)<br>
-     <b>webhdfs should not try connecting the DN during redirection</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-5886">HDFS-5886</a>.
-     Major bug reported by Ted Yu and fixed by Brandon Li (nfs)<br>
-     <b>Potential null pointer deference in RpcProgramNfs3#readlink()</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-5882">HDFS-5882</a>.
-     Minor test reported by Jimmy Xiang and fixed by Jimmy Xiang <br>
-     <b>TestAuditLogs is flaky</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-5881">HDFS-5881</a>.
-     Critical bug reported by Kihwal Lee and fixed by Kihwal Lee <br>
-     <b>Fix skip() of the short-circuit local reader (legacy).</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-5879">HDFS-5879</a>.
-     Major bug reported by Gera Shegalov and fixed by Gera Shegalov (test)<br>
-     <b>Some TestHftpFileSystem tests do not close streams</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-5868">HDFS-5868</a>.
-     Major sub-task reported by Taylor, Buddy and fixed by  (datanode)<br>
-     <b>Make hsync implementation pluggable</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-5866">HDFS-5866</a>.
-     Major sub-task reported by Akira AJISAKA and fixed by Akira AJISAKA (tools)<br>
-     <b>'-maxSize' and '-step' option fail in OfflineImageViewer</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-5859">HDFS-5859</a>.
-     Major bug reported by Colin Patrick McCabe and fixed by Colin Patrick McCabe (datanode)<br>
-     <b>DataNode#checkBlockToken should check block tokens even if security is not enabled</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-5857">HDFS-5857</a>.
-     Major bug reported by Mit Desai and fixed by Mit Desai <br>
-     <b>TestWebHDFS#testNamenodeRestart fails intermittently with NPE</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-5856">HDFS-5856</a>.
-     Minor bug reported by Josh Elser and fixed by Josh Elser (datanode)<br>
-     <b>DataNode.checkDiskError might throw NPE</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-5847">HDFS-5847</a>.
-     Major sub-task reported by Haohui Mai and fixed by Jing Zhao <br>
-     <b>Consolidate INodeReference into a separate section</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-5846">HDFS-5846</a>.
-     Major bug reported by Nikola Vujic and fixed by Nikola Vujic (namenode)<br>
-     <b>Assigning DEFAULT_RACK in resolveNetworkLocation method can break data resiliency</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-5843">HDFS-5843</a>.
-     Major bug reported by Laurent Goujon and fixed by Laurent Goujon (datanode)<br>
-     <b>DFSClient.getFileChecksum() throws IOException if checksum is disabled</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-5840">HDFS-5840</a>.
-     Blocker bug reported by Aaron T. Myers and fixed by Jing Zhao (ha , journal-node , namenode)<br>
-     <b>Follow-up to HDFS-5138 to improve error handling during partial upgrade failures</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-5828">HDFS-5828</a>.
-     Major bug reported by Taylor, Buddy and fixed by Taylor, Buddy (namenode)<br>
-     <b>BlockPlacementPolicyWithNodeGroup can place multiple replicas on the same node group when dfs.namenode.avoid.write.stale.datanode is true</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-5821">HDFS-5821</a>.
-     Major bug reported by Gera Shegalov and fixed by Gera Shegalov (test)<br>
-     <b>TestHDFSCLI fails for user names with the dash character</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-5810">HDFS-5810</a>.
-     Major sub-task reported by Colin Patrick McCabe and fixed by Colin Patrick McCabe (hdfs-client)<br>
-     <b>Unify mmap cache and short-circuit file descriptor cache</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-5807">HDFS-5807</a>.
-     Major bug reported by Mit Desai and fixed by Chen He (test)<br>
-     <b>TestBalancerWithNodeGroup.testBalancerWithNodeGroup fails intermittently on Branch-2</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-5804">HDFS-5804</a>.
-     Major sub-task reported by Abin Shahab and fixed by Abin Shahab (nfs)<br>
-     <b>HDFS NFS Gateway fails to mount and proxy when using Kerberos</b><br>
-     <blockquote>Fixes NFS on Kerberized cluster.</blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-5803">HDFS-5803</a>.
-     Major bug reported by Mit Desai and fixed by Chen He <br>
-     <b>TestBalancer.testBalancer0 fails</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-5791">HDFS-5791</a>.
-     Major bug reported by Brandon Li and fixed by Haohui Mai (test)<br>
-     <b>TestHttpsFileSystem should use a random port to avoid binding error during testing</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-5790">HDFS-5790</a>.
-     Major bug reported by Todd Lipcon and fixed by Todd Lipcon (namenode , performance)<br>
-     <b>LeaseManager.findPath is very slow when many leases need recovery</b><br>
-     <blockquote>Committed to branch-2 and trunk.</blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-5781">HDFS-5781</a>.
-     Minor improvement reported by Jing Zhao and fixed by Jing Zhao (namenode)<br>
-     <b>Use an array to record the mapping between FSEditLogOpCode and the corresponding byte value</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-5780">HDFS-5780</a>.
-     Major bug reported by Mit Desai and fixed by Mit Desai <br>
-     <b>TestRBWBlockInvalidation times out intemittently on branch-2</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-5776">HDFS-5776</a>.
-     Major improvement reported by Liang Xie and fixed by Liang Xie (hdfs-client)<br>
-     <b>Support 'hedged' reads in DFSClient</b><br>
-     <blockquote>If a read from a block is slow, start up another parallel, 'hedged' read against a different block replica.  We then take the result of which ever read returns first (the outstanding read is cancelled).  This 'hedged' read feature will help rein in the outliers, the odd read that takes a long time because it hit a bad patch on the disc, etc.
-
-This feature is off by default.  To enable this feature, set &lt;code&gt;dfs.client.hedged.read.threadpool.size&lt;/code&gt; to a positive number.  The threadpool size is how many threads to dedicate to the running of these 'hedged', concurrent reads in your client.
-
-Then set &lt;code&gt;dfs.client.hedged.read.threshold.millis&lt;/code&gt; to the number of milliseconds to wait before starting up a 'hedged' read.  For example, if you set this property to 10, then if a read has not returned within 10 milliseconds, we will start up a new read against a different block replica.
-
-This feature emits new metrics:
-
-+ hedgedReadOps
-+ hedgeReadOpsWin -- how many times the hedged read 'beat' the original read
-+ hedgedReadOpsInCurThread -- how many times we went to do a hedged read but we had to run it in the current thread because dfs.client.hedged.read.threadpool.size was at a maximum.</blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-5775">HDFS-5775</a>.
-     Major improvement reported by Haohui Mai and fixed by Haohui Mai (namenode)<br>
-     <b>Consolidate the code for serialization in CacheManager</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-5768">HDFS-5768</a>.
-     Major improvement reported by Haohui Mai and fixed by Haohui Mai (namenode)<br>
-     <b>Consolidate the serialization code in DelegationTokenSecretManager</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-5767">HDFS-5767</a>.
-     Blocker bug reported by Yongjun Zhang and fixed by Yongjun Zhang (nfs)<br>
-     <b>NFS implementation assumes userName userId mapping to be unique, which is not true sometimes</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-5759">HDFS-5759</a>.
-     Major bug reported by Haohui Mai and fixed by Haohui Mai <br>
-     <b>Web UI does not show up during the period of loading FSImage</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-5746">HDFS-5746</a>.
-     Major sub-task reported by Colin Patrick McCabe and fixed by Colin Patrick McCabe (datanode , hdfs-client)<br>
-     <b>add ShortCircuitSharedMemorySegment</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-5742">HDFS-5742</a>.
-     Minor bug reported by Arpit Agarwal and fixed by Arpit Agarwal (test)<br>
-     <b>DatanodeCluster (mini cluster of DNs) fails to start</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-5726">HDFS-5726</a>.
-     Minor sub-task reported by Jing Zhao and fixed by Jing Zhao (namenode)<br>
-     <b>Fix compilation error in AbstractINodeDiff for JDK7</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-5716">HDFS-5716</a>.
-     Major bug reported by Haohui Mai and fixed by Haohui Mai (webhdfs)<br>
-     <b>Allow WebHDFS to use pluggable authentication filter</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-5715">HDFS-5715</a>.
-     Major sub-task reported by Jing Zhao and fixed by Jing Zhao (namenode)<br>
-     <b>Use Snapshot ID to indicate the corresponding Snapshot for a FileDiff/DirectoryDiff</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-5709">HDFS-5709</a>.
-     Major improvement reported by Andrew Wang and fixed by Andrew Wang (namenode)<br>
-     <b>Improve NameNode upgrade with existing reserved paths and path components</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-5705">HDFS-5705</a>.
-     Major bug reported by Ted Yu and fixed by Ted Yu (datanode)<br>
-     <b>TestSecondaryNameNodeUpgrade#testChangeNsIDFails may fail due to ConcurrentModificationException</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-5698">HDFS-5698</a>.
-     Major improvement reported by Haohui Mai and fixed by Haohui Mai (namenode)<br>
-     <b>Use protobuf to serialize / deserialize FSImage</b><br>
-     <blockquote>Use protobuf to serialize/deserialize the FSImage.</blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-5672">HDFS-5672</a>.
-     Major test reported by Ted Yu and fixed by Jing Zhao (namenode)<br>
-     <b>TestHASafeMode#testSafeBlockTracking fails in trunk</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-5647">HDFS-5647</a>.
-     Major sub-task reported by Haohui Mai and fixed by Haohui Mai (namenode)<br>
-     <b>Merge INodeDirectory.Feature and INodeFile.Feature</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-5638">HDFS-5638</a>.
-     Major sub-task reported by Chris Nauroth and fixed by Vinayakumar B (hdfs-client)<br>
-     <b>HDFS implementation of FileContext API for ACLs.</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-5632">HDFS-5632</a>.
-     Major sub-task reported by Jing Zhao and fixed by Jing Zhao (namenode)<br>
-     <b>Add Snapshot feature to INodeDirectory</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-5626">HDFS-5626</a>.
-     Major bug reported by Stephen Chu and fixed by Colin Patrick McCabe (caching)<br>
-     <b>dfsadmin -report shows incorrect cache values</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-5554">HDFS-5554</a>.
-     Major sub-task reported by Jing Zhao and fixed by Jing Zhao (namenode)<br>
-     <b>Add Snapshot Feature to INodeFile</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-5537">HDFS-5537</a>.
-     Major sub-task reported by Jing Zhao and fixed by Jing Zhao (namenode , snapshots)<br>
-     <b>Remove FileWithSnapshot interface</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-5535">HDFS-5535</a>.
-     Major new feature reported by Nathan Roberts and fixed by Tsz Wo Nicholas Sze (datanode , ha , hdfs-client , namenode)<br>
-     <b>Umbrella jira for improved HDFS rolling upgrades</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-5531">HDFS-5531</a>.
-     Minor sub-task reported by Tsz Wo Nicholas Sze and fixed by Tsz Wo Nicholas Sze (namenode)<br>
-     <b>Combine the getNsQuota() and getDsQuota() methods in INode</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-5516">HDFS-5516</a>.
-     Major bug reported by Chris Nauroth and fixed by Miodrag Radulovic (webhdfs)<br>
-     <b>WebHDFS does not require user name when anonymous http requests are disallowed.</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-5492">HDFS-5492</a>.
-     Minor bug reported by Akira AJISAKA and fixed by Akira AJISAKA (documentation)<br>
-     <b>Port HDFS-2069 (Incorrect default trash interval in the docs) to trunk</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-5483">HDFS-5483</a>.
-     Major sub-task reported by Arpit Agarwal and fixed by Arpit Agarwal (namenode)<br>
-     <b>NN should gracefully handle multiple block replicas on same DN</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-5339">HDFS-5339</a>.
-     Major bug reported by Stephen Chu and fixed by Haohui Mai (webhdfs)<br>
-     <b>WebHDFS URI does not accept logical nameservices when security is enabled</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-5321">HDFS-5321</a>.
-     Major sub-task reported by Haohui Mai and fixed by Haohui Mai <br>
-     <b>Clean up the HTTP-related configuration in HDFS</b><br>
-     <blockquote>dfs.http.port and dfs.https.port are removed. Filesystem clients, such as WebHdfsFileSystem, now have fixed instead of configurable default ports (i.e., 50070 for http and 50470 for https).
-
-Users can explicitly specify the port in the URI to access the file system which runs on non-default ports.</blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-5318">HDFS-5318</a>.
-     Major improvement reported by Eric Sirianni and fixed by  (namenode)<br>
-     <b>Support read-only and read-write paths to shared replicas</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-5286">HDFS-5286</a>.
-     Major sub-task reported by Tsz Wo Nicholas Sze and fixed by Tsz Wo Nicholas Sze (namenode)<br>
-     <b>Flatten INodeDirectory hierarchy: add DirectoryWithQuotaFeature</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-5285">HDFS-5285</a>.
-     Major sub-task reported by Tsz Wo Nicholas Sze and fixed by Jing Zhao (namenode)<br>
-     <b>Flatten INodeFile hierarchy: Add UnderContruction Feature</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-5244">HDFS-5244</a>.
-     Major bug reported by Jinghui Wang and fixed by Jinghui Wang (test)<br>
-     <b>TestNNStorageRetentionManager#testPurgeMultipleDirs fails</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-5167">HDFS-5167</a>.
-     Minor sub-task reported by Jing Zhao and fixed by Tsuyoshi OZAWA (ha , namenode)<br>
-     <b>Add metrics about the NameNode retry cache</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-5153">HDFS-5153</a>.
-     Major improvement reported by Arpit Agarwal and fixed by Arpit Agarwal (datanode)<br>
-     <b>Datanode should send block reports for each storage in a separate message</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-5138">HDFS-5138</a>.
-     Blocker bug reported by Kihwal Lee and fixed by Aaron T. Myers <br>
-     <b>Support HDFS upgrade in HA</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-5064">HDFS-5064</a>.
-     Major bug reported by Aaron T. Myers and fixed by Aaron T. Myers (ha , namenode)<br>
-     <b>Standby checkpoints should not block concurrent readers</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-4911">HDFS-4911</a>.
-     Minor improvement reported by Colin Patrick McCabe and fixed by Colin Patrick McCabe <br>
-     <b>Reduce PeerCache timeout to be commensurate with dfs.datanode.socket.reuse.keepalive</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-4858">HDFS-4858</a>.
-     Minor bug reported by Jagane Sundar and fixed by Henry Wang (datanode)<br>
-     <b>HDFS DataNode to NameNode RPC should timeout</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-4685">HDFS-4685</a>.
-     Major new feature reported by Sachin Jose and fixed by Chris Nauroth (hdfs-client , namenode , security)<br>
-     <b>Implementation of ACLs in HDFS</b><br>
-     <blockquote>HDFS now supports ACLs (Access Control Lists).  ACLs can specify fine-grained file permissions for specific named users or named groups.</blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-4564">HDFS-4564</a>.
-     Blocker sub-task reported by Daryn Sharp and fixed by Daryn Sharp (webhdfs)<br>
-     <b>Webhdfs returns incorrect http response codes for denied operations</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-4370">HDFS-4370</a>.
-     Major improvement reported by Konstantin Shvachko and fixed by Chu Tong (datanode)<br>
-     <b>Fix typo Blanacer in DataNode</b><br>
-     <blockquote>I just committed this. Thank you Chu.</blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-4200">HDFS-4200</a>.
-     Major improvement reported by Suresh Srinivas and fixed by Andrew Wang (datanode)<br>
-     <b>Reduce the size of synchronized sections in PacketResponder </b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-3969">HDFS-3969</a>.
-     Major bug reported by Todd Lipcon and fixed by Todd Lipcon (hdfs-client)<br>
-     <b>Small bug fixes and improvements for disk locations API</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-3405">HDFS-3405</a>.
-     Major improvement reported by Aaron T. Myers and fixed by Vinayakumar B <br>
-     <b>Checkpointing should use HTTP POST or PUT instead of GET-GET to send merged fsimages</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-3128">HDFS-3128</a>.
-     Minor bug reported by Eli Collins and fixed by Andrew Wang (test)<br>
-     <b>Unit tests should not use a test root in /tmp</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10450">HADOOP-10450</a>.
-     Major bug reported by Chris Nauroth and fixed by Chris Nauroth (io , native)<br>
-     <b>Build zlib native code bindings in hadoop.dll for Windows.</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10449">HADOOP-10449</a>.
-     Minor sub-task reported by Tsz Wo Nicholas Sze and fixed by Tsz Wo Nicholas Sze (security)<br>
-     <b>Fix the javac warnings in the security packages.</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10442">HADOOP-10442</a>.
-     Blocker bug reported by Kihwal Lee and fixed by Kihwal Lee <br>
-     <b>Group look-up can cause segmentation fault when certain JNI-based mapping module is used.</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10441">HADOOP-10441</a>.
-     Blocker bug reported by Jing Zhao and fixed by Jing Zhao (metrics)<br>
-     <b>Namenode metric "rpc.RetryCache/NameNodeRetryCache.CacheHit" can't be correctly processed by Ganglia</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10440">HADOOP-10440</a>.
-     Major bug reported by guodongdong and fixed by guodongdong (fs)<br>
-     <b>HarFsInputStream of HarFileSystem, when reading data, computing the position has bug</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10437">HADOOP-10437</a>.
-     Minor sub-task reported by Tsz Wo Nicholas Sze and fixed by Tsz Wo Nicholas Sze (conf , util)<br>
-     <b>Fix the javac warnings in the conf and the util package</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10425">HADOOP-10425</a>.
-     Critical bug reported by Brandon Li and fixed by Tsz Wo Nicholas Sze (fs)<br>
-     <b>Incompatible behavior of LocalFileSystem:getContentSummary</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10423">HADOOP-10423</a>.
-     Minor improvement reported by Chris Nauroth and fixed by Chris Nauroth (documentation)<br>
-     <b>Clarify compatibility policy document for combination of new client and old server.</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10422">HADOOP-10422</a>.
-     Minor bug reported by Chris Nauroth and fixed by Chris Nauroth (ipc)<br>
-     <b>Remove redundant logging of RPC retry attempts.</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10407">HADOOP-10407</a>.
-     Minor sub-task reported by Tsz Wo Nicholas Sze and fixed by Tsz Wo Nicholas Sze (ipc)<br>
-     <b>Fix the javac warnings in the ipc package.</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10399">HADOOP-10399</a>.
-     Major sub-task reported by Chris Nauroth and fixed by Vinayakumar B (fs)<br>
-     <b>FileContext API for ACLs.</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10395">HADOOP-10395</a>.
-     Minor bug reported by Arpit Agarwal and fixed by Arpit Agarwal (test)<br>
-     <b>TestCallQueueManager is flaky</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10394">HADOOP-10394</a>.
-     Major bug reported by Arpit Agarwal and fixed by Arpit Agarwal (test)<br>
-     <b>TestAuthenticationFilter is flaky</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10393">HADOOP-10393</a>.
-     Minor sub-task reported by Tsz Wo Nicholas Sze and fixed by Tsz Wo Nicholas Sze (security)<br>
-     <b>Fix hadoop-auth javac warnings</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10386">HADOOP-10386</a>.
-     Minor improvement reported by Arpit Gupta and fixed by Haohui Mai (ha)<br>
-     <b>Log proxy hostname in various exceptions being thrown in a HA setup</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10383">HADOOP-10383</a>.
-     Major improvement reported by Enis Soztutar and fixed by Enis Soztutar <br>
-     <b>InterfaceStability annotations should have RetentionPolicy.RUNTIME</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10379">HADOOP-10379</a>.
-     Major improvement reported by Haohui Mai and fixed by Haohui Mai <br>
-     <b>Protect authentication cookies with the HttpOnly and Secure flags</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10374">HADOOP-10374</a>.
-     Major improvement reported by Enis Soztutar and fixed by Enis Soztutar <br>
-     <b>InterfaceAudience annotations should have RetentionPolicy.RUNTIME</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10368">HADOOP-10368</a>.
-     Minor bug reported by Ted Yu and fixed by Tsuyoshi OZAWA (util)<br>
-     <b>InputStream is not closed in VersionInfo ctor</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10355">HADOOP-10355</a>.
-     Major bug reported by Akira AJISAKA and fixed by Haohui Mai <br>
-     <b>TestLoadGenerator#testLoadGenerator fails</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10353">HADOOP-10353</a>.
-     Major bug reported by Tudor Scurtu and fixed by Tudor Scurtu (fs)<br>
-     <b>FsUrlStreamHandlerFactory is not thread safe</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10348">HADOOP-10348</a>.
-     Major improvement reported by Haohui Mai and fixed by Haohui Mai <br>
-     <b>Deprecate hadoop.ssl.configuration in branch-2, and remove it in trunk</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10346">HADOOP-10346</a>.
-     Blocker bug reported by Jason Lowe and fixed by Jason Lowe (security)<br>
-     <b>Deadlock while logging tokens</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10343">HADOOP-10343</a>.
-     Minor improvement reported by Arpit Gupta and fixed by Arpit Gupta <br>
-     <b>Change info to debug log in LossyRetryInvocationHandler</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10338">HADOOP-10338</a>.
-     Major bug reported by Andrew Wang and fixed by Colin Patrick McCabe <br>
-     <b>Cannot get the FileStatus of the root inode from the new Globber</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10337">HADOOP-10337</a>.
-     Major bug reported by Liang Xie and fixed by Liang Xie (metrics)<br>
-     <b>ConcurrentModificationException from MetricsDynamicMBeanBase.createMBeanInfo()</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10333">HADOOP-10333</a>.
-     Trivial improvement reported by Ren&#233; Nyffenegger and fixed by Ren&#233; Nyffenegger <br>
-     <b>Fix grammatical error in overview.html document</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10330">HADOOP-10330</a>.
-     Major bug reported by Arpit Agarwal and fixed by Arpit Agarwal (test)<br>
-     <b>TestFrameDecoder fails if it cannot bind port 12345</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10328">HADOOP-10328</a>.
-     Major bug reported by Arpit Gupta and fixed by Haohui Mai (tools)<br>
-     <b>loadGenerator exit code is not reliable</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10327">HADOOP-10327</a>.
-     Blocker bug reported by Vinayakumar B and fixed by Vinayakumar B (native)<br>
-     <b>Trunk windows build broken after HDFS-5746</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10326">HADOOP-10326</a>.
-     Major bug reported by Manuel DE FERRAN and fixed by bc Wong (security)<br>
-     <b>M/R jobs can not access S3 if Kerberos is enabled</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10320">HADOOP-10320</a>.
-     Trivial bug reported by Ren&#233; Nyffenegger and fixed by Ren&#233; Nyffenegger (documentation)<br>
-     <b>Javadoc in InterfaceStability.java lacks final &lt;/ul&gt;</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10314">HADOOP-10314</a>.
-     Major bug reported by Kihwal Lee and fixed by Rushabh S Shah <br>
-     <b>The ls command help still shows outdated 0.16 format.</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10301">HADOOP-10301</a>.
-     Blocker bug reported by Daryn Sharp and fixed by Daryn Sharp (security)<br>
-     <b>AuthenticationFilter should return Forbidden for failed authentication</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10295">HADOOP-10295</a>.
-     Major improvement reported by Jing Zhao and fixed by Jing Zhao (tools/distcp)<br>
-     <b>Allow distcp to automatically identify the checksum type of source files and use it for the target</b><br>
-     <blockquote>Add option for distcp to preserve the checksum type of the source files. Users can use "-pc" as distcp command option to preserve the checksum type.</blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10285">HADOOP-10285</a>.
-     Major sub-task reported by Chris Li and fixed by  <br>
-     <b>Admin interface to swap callqueue at runtime</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10280">HADOOP-10280</a>.
-     Major sub-task reported by Chris Li and fixed by Chris Li <br>
-     <b>Make Schedulables return a configurable identity of user or group</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10278">HADOOP-10278</a>.
-     Major sub-task reported by Chris Li and fixed by Chris Li (ipc)<br>
-     <b>Refactor to make CallQueue pluggable</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10249">HADOOP-10249</a>.
-     Major bug reported by Dilli Arumugam and fixed by Dilli Arumugam <br>
-     <b>LdapGroupsMapping should trim ldap password read from file</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10221">HADOOP-10221</a>.
-     Major improvement reported by Benoy Antony and fixed by Benoy Antony (security)<br>
-     <b>Add a plugin to specify SaslProperties for RPC protocol based on connection properties</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10211">HADOOP-10211</a>.
-     Major improvement reported by Benoy Antony and fixed by Benoy Antony (security)<br>
-     <b>Enable RPC protocol to negotiate SASL-QOP values between clients and servers</b><br>
-     <blockquote>The hadoop.rpc.protection configuration property previously supported specifying a single value: one of authentication, integrity or privacy.  An unrecognized value was silently assumed to mean authentication.  This configuration property now accepts a comma-separated list of any of the 3 values, and unrecognized values are rejected with an error. Existing configurations containing an invalid value must be corrected. If the property is empty or not specified, authentication is assumed. </blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10191">HADOOP-10191</a>.
-     Blocker bug reported by Gera Shegalov and fixed by Gera Shegalov (viewfs)<br>
-     <b>Missing executable permission on viewfs internal dirs</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10184">HADOOP-10184</a>.
-     Major new feature reported by Chris Nauroth and fixed by Chris Nauroth (fs , security)<br>
-     <b>Hadoop Common changes required to support HDFS ACLs.</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10139">HADOOP-10139</a>.
-     Major improvement reported by Akira AJISAKA and fixed by Akira AJISAKA (documentation)<br>
-     <b>Update and improve the Single Cluster Setup document</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10085">HADOOP-10085</a>.
-     Blocker bug reported by Karthik Kambatla and fixed by Steve Loughran <br>
-     <b>CompositeService should allow adding services while being inited</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10070">HADOOP-10070</a>.
-     Major bug reported by Aaron T. Myers and fixed by Aaron T. Myers (security)<br>
-     <b>RPC client doesn't use per-connection conf to determine server's expected Kerberos principal name</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10015">HADOOP-10015</a>.
-     Minor bug reported by Haohui Mai and fixed by Nicolas Liochon (security)<br>
-     <b>UserGroupInformation prints out excessive ERROR warnings</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9525">HADOOP-9525</a>.
-     Major test reported by Ivan Mitic and fixed by Ivan Mitic (test , util)<br>
-     <b>Add tests that validate winutils chmod behavior on folders</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9454">HADOOP-9454</a>.
-     Major improvement reported by Jordan Mendelson and fixed by Akira AJISAKA (fs/s3)<br>
-     <b>Support multipart uploads for s3native</b><br>
-     <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8691">HADOOP-8691</a>.
-     Minor improvement reported by Jason Lowe and fixed by Daryn Sharp (fs)<br>
-     <b>FsShell can print "Found xxx items" unnecessarily often</b><br>
-     <blockquote>The `ls` command only prints "Found foo items" once when listing the directories recursively.</blockquote></li>
-</ul>
-</body></html>
-<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>.
+<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-6285">MAPREDUCE-6285</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>
+     <b>ClientServiceDelegate should not retry upon AuthenticationException</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>
+<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-6277">MAPREDUCE-6277</a>.
+     Major bug reported by Chang Li and fixed by Chang Li (mr-am)<br>
+     <b>Job can post multiple history files if attempt loses connection to the RM</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>
+<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-6275">MAPREDUCE-6275</a>.
+     Critical bug reported by Siqi Li and fixed by Gera Shegalov <br>
+     <b>Race condition in FileOutputCommitter v2 for user-specified task output subdirs</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>
+<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-6268">MAPREDUCE-6268</a>.
+     Minor bug reported by Ryu Kobayashi and fixed by Ryu Kobayashi <br>
+     <b>Fix typo in Task Attempt API's URL</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>
+<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-6267">MAPREDUCE-6267</a>.
+     Minor improvement reported by Chris Trezzo and fixed by Chris Trezzo <br>
+     <b>Refactor JobSubmitter#copyAndConfigureFiles into it's own class</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>
+<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-6265">MAPREDUCE-6265</a>.
+     Major improvement reported by zhihai xu and fixed by zhihai xu (mrv2)<br>
+     <b>Make ContainerLauncherImpl.INITIAL_POOL_SIZE configurable to better control to launch/kill containers</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>
+<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-6264">MAPREDUCE-6264</a>.
+     Major task reported by Akira AJISAKA and fixed by Brahma Reddy Battula <br>
+     <b>Remove httpclient dependency from hadoop-mapreduce-client</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>
+<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-6263">MAPREDUCE-6263</a>.
+     Major bug reported by Jason Lowe and fixed by Eric Payne (client)<br>
+     <b>Configurable timeout between YARNRunner terminate the application and forcefully kill.</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>
+<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-6261">MAPREDUCE-6261</a>.
+     Major bug reported by Jason Lowe and fixed by Tsuyoshi Ozawa (mrv2)<br>
+     <b>NullPointerException if MapOutputBuffer.flush invoked twice</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>
+<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-6256">MAPREDUCE-6256</a>.
+     Minor improvement reported by Devaraj K and fixed by Naganarasimha G R <br>
+     <b>Removed unused private methods in o.a.h.mapreduce.Job.java</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>
+<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-6255">MAPREDUCE-6255</a>.
+     Minor improvement reported by Ryu Kobayashi and fixed by Ryu Kobayashi (client)<br>
+     <b>Fix JobCounter's format to use grouping separator</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>
+<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-6253">MAPREDUCE-6253</a>.
+     Minor improvement reported by Ray Chiang and fixed by Ray Chiang <br>
+     <b>Update use of Iterator to Iterable</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>
+<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-6248">MAPREDUCE-6248</a>.
+     Major improvement reported by Jing Zhao and fixed by Jing Zhao (distcp)<br>
+     <b>Allow users to get the MR job information for distcp</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>
+<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-6243">MAPREDUCE-6243</a>.
+     Minor bug reported by Akira AJISAKA and fixed by Masatake Iwasaki (tools/rumen)<br>
+     <b>Fix findbugs warnings in hadoop-rumen</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>
+<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-6233">MAPREDUCE-6233</a>.
+     Major bug reported by Yongjun Zhang and fixed by zhihai xu (test)<br>
+     <b>org.apache.hadoop.mapreduce.TestLargeSort.testLargeSort failed in 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>
+<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-6231">MAPREDUCE-6231</a>.
+     Major bug reported by Akira AJISAKA and fixed by Akira AJISAKA (examples)<br>
+     <b>Grep example job is not working on a fully-distributed cluster</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>.
+<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-6230">MAPREDUCE-6230</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>
+     <b>MR AM does not survive RM restart if RM activated a new AMRM secret key</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>
+<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-6228">MAPREDUCE-6228</a>.
+     Major new feature reported by Konstantin Shvachko and fixed by Plamen Jeliazkov (benchmarks , test)<br>
+     <b>Add truncate operation to SLive</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>
+<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-6227">MAPREDUCE-6227</a>.
+     Major new feature reported by Konstantin Shvachko and fixed by Konstantin Shvachko (benchmarks , test)<br>
+     <b>DFSIO for truncate</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>
+<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-6225">MAPREDUCE-6225</a>.
+     Major bug reported by Jason Lowe and fixed by Varun Saxena <br>
+     <b>Fix new findbug warnings in hadoop-mapreduce-client-core</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>.
+<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-6221">MAPREDUCE-6221</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>
+     <b>Stringifier is left unclosed in Chain#getChainElementConf()</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>
+<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-6210">MAPREDUCE-6210</a>.
+     Minor bug reported by Leitao Guo and fixed by Leitao Guo (applicationmaster)<br>
+     <b>Use getApplicationAttemptId() instead of getApplicationID() for logging AttemptId in RMContainerAllocator.java</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>
+<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-6206">MAPREDUCE-6206</a>.
+     Critical bug reported by Jens Rabe and fixed by Jens Rabe <br>
+     <b>TestAggregatedTransferRate fails on non-US systems</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>
+<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-6194">MAPREDUCE-6194</a>.
+     Minor improvement reported by Harsh J and fixed by Varun Saxena (task)<br>
+     <b>Bubble up final exception in failures during creation of output collectors</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>
+<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-6186">MAPREDUCE-6186</a>.
+     Minor bug reported by Rohit Agarwal and fixed by Rohit Agarwal (jobhistoryserver)<br>
+     <b>Redundant call to requireJob() while displaying the conf page</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>
+<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-6177">MAPREDUCE-6177</a>.
+     Trivial bug reported by yangping wu and fixed by yangping wu (documentation)<br>
+     <b>Minor typo in the EncryptedShuffle document about ssl-client.xml</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>
+<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-6173">MAPREDUCE-6173</a>.
+     Major improvement reported by Junping Du and fixed by Junping Du (distributed-cache , documentation)<br>
+     <b>Document the configuration of deploying MR over distributed cache with enabling wired encryption at the same time</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>
+<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-6172">MAPREDUCE-6172</a>.
+     Minor bug reported by Jason Lowe and fixed by Varun Saxena (test)<br>
+     <b>TestDbClasses timeouts are too aggressive</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>
+<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-6169">MAPREDUCE-6169</a>.
+     Major improvement reported by zhihai xu and fixed by zhihai xu (mrv2)<br>
+     <b>MergeQueue should release reference to the current item from key and value at the end of the iteration to save memory.</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>
+<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-6166">MAPREDUCE-6166</a>.
+     Major bug reported by Eric Payne and fixed by Eric Payne (mrv2)<br>
+     <b>Reducers do not validate checksum of map outputs when fetching directly to disk</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>
+<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-6162">MAPREDUCE-6162</a>.
+     Blocker bug reported by Jason Lowe and fixed by Jason Lowe (jobhistoryserver)<br>
+     <b>mapred hsadmin fails on a secure cluster</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>
+<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-6160">MAPREDUCE-6160</a>.
+     Major bug reported by Rohith and fixed by Rohith <br>
+     <b>Potential NullPointerException in MRClientProtocol interface implementation.</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>
+<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-6151">MAPREDUCE-6151</a>.
+     Minor improvement reported by Masatake Iwasaki and fixed by Masatake Iwasaki (documentation)<br>
+     <b>Update document of GridMix</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>
+<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-6150">MAPREDUCE-6150</a>.
+     Minor improvement reported by Masatake Iwasaki and fixed by Masatake Iwasaki (documentation)<br>
+     <b>Update document of Rumen</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>
+<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-6149">MAPREDUCE-6149</a>.
+     Major improvement reported by Junping Du and fixed by Junping Du (documentation)<br>
+     <b>Document override log4j.properties in MR job</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>
+<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-6143">MAPREDUCE-6143</a>.
+     Major improvement reported by zhihai xu and fixed by zhihai xu (mrv2)<br>
+     <b>add configuration for  mapreduce speculative execution in MR2</b><br>
      <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-4954">HDFS-4954</a>.
+<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-6141">MAPREDUCE-6141</a>.
+     Major improvement reported by Jason Lowe and fixed by Jason Lowe (jobhistoryserver)<br>
+     <b>History server leveldb recovery store</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-6136">MAPREDUCE-6136</a>.
+     Major bug reported by Noah Watkins and fixed by Brahma Reddy Battula (applicationmaster)<br>
+     <b>MRAppMaster doesn't shutdown file systems</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-6059">MAPREDUCE-6059</a>.
+     Major improvement reported by Siqi Li and fixed by Siqi Li <br>
+     <b>Speed up history server startup time</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-6049">MAPREDUCE-6049</a>.
+     Major bug reported by Nishan Shetty and fixed by Rohith (applicationmaster , resourcemanager)<br>
+     <b>AM JVM does not exit if MRClientService gracefull shutdown fails</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-6046">MAPREDUCE-6046</a>.
+     Minor improvement reported by Devaraj K and fixed by Sahil Takiar (mr-am)<br>
+     <b>Change the class name for logs in RMCommunicator.java</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-6045">MAPREDUCE-6045</a>.
+     Minor bug reported by zhihai xu and fixed by zhihai xu (test)<br>
+     <b>need close the DataInputStream after open it in TestMapReduce.java</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5988">MAPREDUCE-5988</a>.
+     Minor bug reported by Akira AJISAKA and fixed by Akira AJISAKA (documentation)<br>
+     <b>Fix dead links to the javadocs in mapreduce project</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5932">MAPREDUCE-5932</a>.
+     Major improvement reported by Gera Shegalov and fixed by Gera Shegalov (mrv2)<br>
+     <b>Provide an option to use a dedicated reduce-side shuffle log</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5918">MAPREDUCE-5918</a>.
+     Major bug reported by Sergey Murylev and fixed by Sergey Murylev <br>
+     <b>LineRecordReader can return the same decompressor to CodecPool multiple times</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5800">MAPREDUCE-5800</a>.
+     Minor improvement reported by Akira AJISAKA and fixed by Akira AJISAKA <br>
+     <b>Use Job#getInstance instead of deprecated constructors</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5657">MAPREDUCE-5657</a>.
+     Minor bug reported by Andrew Purtell and fixed by Akira AJISAKA (documentation)<br>
+     <b>[JDK8] Fix Javadoc errors caused by incorrect or illegal tags in doc comments</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5612">MAPREDUCE-5612</a>.
+     Minor improvement reported by Sandy Ryza and fixed by Chris Palmer (documentation)<br>
+     <b>Add javadoc for TaskCompletionEvent.Status</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5583">MAPREDUCE-5583</a>.
+     Major improvement reported by Jason Lowe and fixed by Jason Lowe (mr-am , mrv2)<br>
+     <b>Ability to limit running map and reduce tasks</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5568">MAPREDUCE-5568</a>.
+     Major bug reported by Jian He and fixed by MinJi Kim <br>
+     <b>JHS returns invalid string for reducer completion percentage if AM restarts with 0 reducer.</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5420">MAPREDUCE-5420</a>.
+     Major task reported by Sandy Ryza and fixed by James Carman <br>
+     <b>Remove mapreduce.task.tmp.dir from mapred-default.xml</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-5335">MAPREDUCE-5335</a>.
+     Major improvement reported by Devaraj K and fixed by Devaraj K (applicationmaster)<br>
+     <b>Rename Job Tracker terminology in ShuffleSchedulerImpl</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4879">MAPREDUCE-4879</a>.
+     Major bug reported by Gera Shegalov and fixed by Gera Shegalov (examples)<br>
+     <b>TeraOutputFormat may overwrite an existing output directory</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4815">MAPREDUCE-4815</a>.
+     Major improvement reported by Jason Lowe and fixed by Siqi Li (mrv2)<br>
+     <b>Speed up FileOutputCommitter#commitJob for many output files</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4742">MAPREDUCE-4742</a>.
+     Trivial bug reported by Liang Xie and fixed by Liang Xie (test)<br>
+     <b>Fix typo in nnbench#displayUsage</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4431">MAPREDUCE-4431</a>.
+     Minor improvement reported by Nishan Shetty and fixed by Devaraj K (mrv2)<br>
+     <b>mapred command should print the reason on killing already completed jobs</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-4286">MAPREDUCE-4286</a>.
+     Major bug reported by Devaraj K and fixed by Devaraj K <br>
+     <b>TestClientProtocolProviderImpls passes on failure conditions</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-3283">MAPREDUCE-3283</a>.
+     Minor bug reported by Ramya Sunil and fixed by Varun Saxena (scripts)<br>
+     <b>mapred classpath CLI does not display the complete classpath</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/MAPREDUCE-2815">MAPREDUCE-2815</a>.
+     Minor bug reported by Shane Butler and fixed by Chris Palmer (documentation)<br>
+     <b>JavaDoc does not generate correctly for MultithreadedMapRunner</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-8072">HDFS-8072</a>.
+     Major bug reported by Arpit Agarwal and fixed by Arpit Agarwal (datanode)<br>
+     <b>Reserved RBW space is not released if client terminates while writing block</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-8071">HDFS-8071</a>.
+     Major improvement reported by Konstantin Shvachko and fixed by Konstantin Shvachko <br>
+     <b>Redundant checkFileProgress() in PART II of getAdditionalBlock()</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-8063">HDFS-8063</a>.
+     Minor bug reported by Masatake Iwasaki and fixed by Masatake Iwasaki (test)<br>
+     <b>Fix intermittent test failures in TestTracing</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-8051">HDFS-8051</a>.
+     Major bug reported by Lei (Eddy) Xu and fixed by Lei (Eddy) Xu (datanode)<br>
+     <b>FsVolumeList#addVolume should release volume reference if not put it into BlockScanner.</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-8039">HDFS-8039</a>.
+     Minor sub-task reported by Xiaoyu Yao and fixed by Xiaoyu Yao (test)<br>
+     <b>Fix TestDebugAdmin#testRecoverLease and testVerfiyBlockChecksumCommand on Windows</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-8038">HDFS-8038</a>.
+     Minor sub-task reported by Xiaoyu Yao and fixed by Xiaoyu Yao (tools)<br>
+     <b>PBImageDelimitedTextWriter#getEntry output HDFS path in platform-specific format.</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-8036">HDFS-8036</a>.
+     Major bug reported by Jing Zhao and fixed by Jing Zhao (distcp)<br>
+     <b>Use snapshot path as source when using snapshot diff report in DistCp</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-8025">HDFS-8025</a>.
+     Major bug reported by Ming Ma and fixed by Ming Ma <br>
+     <b>Addendum fix for HDFS-3087 Decomissioning on NN restart can complete without blocks being replicated</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-8001">HDFS-8001</a>.
+     Trivial bug reported by Remi Catherinot and fixed by Remi Catherinot (nfs)<br>
+     <b>RpcProgramNfs3 : wrong parsing of dfs.blocksize</b><br>
+     <blockquote>patch is fully backward compatible.</blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7999">HDFS-7999</a>.
+     Major bug reported by zhouyingchao and fixed by zhouyingchao <br>
+     <b>FsDatasetImpl#createTemporary sometimes holds the FSDatasetImpl lock for a very long time</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7996">HDFS-7996</a>.
+     Critical bug reported by Lei (Eddy) Xu and fixed by Lei (Eddy) Xu (datanode)<br>
+     <b>After swapping a volume, BlockReceiver reports ReplicaNotFoundException</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7977">HDFS-7977</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>
+     <b>NFS couldn't take percentile intervals</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>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7976">HDFS-7976</a>.
+     Major improvement reported by Brandon Li and fixed by Brandon Li (documentation , nfs)<br>
+     <b>Update NFS user guide for mount option "sync" to minimize or avoid reordered writes</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>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7963">HDFS-7963</a>.
+     Critical bug reported by Masatake Iwasaki and fixed by Masatake Iwasaki (test)<br>
+     <b>Fix expected tracing spans in TestTracing along with HDFS-7054</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>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7962">HDFS-7962</a>.
+     Minor improvement reported by Yi Liu and fixed by Yi Liu <br>
+     <b>Remove duplicated logs in BlockManager</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>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7961">HDFS-7961</a>.
+     Major bug reported by Lei (Eddy) Xu and fixed by Lei (Eddy) Xu <br>
+     <b>Trigger full block report after hot swapping disk</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>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7960">HDFS-7960</a>.
+     Critical bug reported by Lei (Eddy) Xu and fixed by Colin Patrick McCabe <br>
+     <b>The full block report should prune zombie storages even if they're not empty</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>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7957">HDFS-7957</a>.
+     Critical bug reported by Jing Zhao and fixed by Jing Zhao (namenode)<br>
+     <b>Truncate should verify quota before making changes</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>.
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7956">HDFS-7956</a>.
      Major bug reported by Konstantin Shvachko and fixed by Plamen Jeliazkov (namenode)<br>
-     <b>startFileInternal() should not increment generation stamp</b><br>
+     <b>Improve logging for DatanodeRegistration.</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>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7954">HDFS-7954</a>.
+     Minor sub-task reported by Xiaoyu Yao and fixed by Xiaoyu Yao (test)<br>
+     <b>TestBalancer#testBalancerWithPinnedBlocks failed on Windows</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>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7953">HDFS-7953</a>.
+     Minor bug reported by kanaka kumar avvaru and fixed by kanaka kumar avvaru (namenode)<br>
+     <b>NN Web UI fails to navigate to paths that contain #</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>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7951">HDFS-7951</a>.
+     Major sub-task reported by Xiaoyu Yao and fixed by Xiaoyu Yao (test)<br>
+     <b>Fix NPE for TestFsDatasetImpl#testAddVolumeFailureReleasesInUseLock on Linux</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>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7950">HDFS-7950</a>.
+     Major sub-task reported by Xiaoyu Yao and fixed by Xiaoyu Yao (test)<br>
+     <b>Fix TestFsDatasetImpl#testAddVolumes failure on Windows</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>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7948">HDFS-7948</a>.
+     Major sub-task reported by Xiaoyu Yao and fixed by Xiaoyu Yao (test)<br>
+     <b>TestDataNodeHotSwapVolumes#testAddVolumeFailures failed on Windows</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>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7946">HDFS-7946</a>.
+     Major sub-task reported by Xiaoyu Yao and fixed by Xiaoyu Yao (test)<br>
+     <b>TestDataNodeVolumeFailureReporting NPE 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>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7945">HDFS-7945</a>.
+     Blocker bug reported by Haohui Mai and fixed by Haohui Mai <br>
+     <b>The WebHdfs system on DN does not honor the length parameter</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>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7943">HDFS-7943</a>.
+     Blocker bug reported by Jing Zhao and fixed by Jing Zhao <br>
+     <b>Append cannot handle the last block with length greater than the preferred block size</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>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7942">HDFS-7942</a>.
+     Major bug reported by Brandon Li and fixed by Brandon Li (nfs)<br>
+     <b>NFS: support regexp grouping in nfs.exports.allowed.hosts</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>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7940">HDFS-7940</a>.
+     Major sub-task reported by Rakesh R and fixed by Rakesh R (hdfs-client)<br>
+     <b>Add tracing to DFSClient#setQuotaByStorageType</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>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7932">HDFS-7932</a>.
+     Major bug reported by Kihwal Lee and fixed by Kihwal Lee <br>
+     <b>Speed up the shutdown of datanode during rolling upgrade</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>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7930">HDFS-7930</a>.
+     Blocker bug reported by Konstantin Shvachko and fixed by Yi Liu (namenode)<br>
+     <b>commitBlockSynchronization() does not remove locations</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>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7929">HDFS-7929</a>.
+     Major bug reported by Zhe Zhang and fixed by Zhe Zhang <br>
+     <b>inotify unable fetch pre-upgrade edit log segments once upgrade starts</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>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7926">HDFS-7926</a>.
+     Major bug reported by Tsz Wo Nicholas Sze and fixed by Tsz Wo Nicholas Sze (namenode)<br>
+     <b>NameNode implementation of ClientProtocol.truncate(..) is not idempotent</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>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7917">HDFS-7917</a>.
+     Minor improvement reported by Lei (Eddy) Xu and fixed by Lei (Eddy) Xu (test)<br>
+     <b>Use file to replace data dirs in test to simulate a disk failure. </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>.
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7915">HDFS-7915</a>.
      Major bug reported by Colin Patrick McCabe and fixed by Colin Patrick McCabe <br>
-     <b>Improve FSEditLog pre-allocation</b><br>
+     <b>The DataNode can sometimes allocate a ShortCircuitShm slot and fail to tell the DFSClient about it because of a network error</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>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7914">HDFS-7914</a>.
+     Major test reported by Xiaoyu Yao and fixed by Xiaoyu Yao <br>
+     <b>TestJournalNode#testFailToStartWithBadConfig fails when the default dfs.journalnode.http-address port 8480 is in use</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>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7903">HDFS-7903</a>.
+     Blocker sub-task reported by Tsz Wo Nicholas Sze and fixed by Plamen Jeliazkov (datanode , namenode)<br>
+     <b>Cannot recover block after truncate and delete snapshot</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>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7898">HDFS-7898</a>.
+     Minor improvement reported by Tsz Wo Nicholas Sze and fixed by Tsz Wo Nicholas Sze (test)<br>
+     <b>Change TestAppendSnapshotTruncate to fail-fast</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>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7886">HDFS-7886</a>.
+     Minor bug reported by Yi Liu and fixed by Plamen Jeliazkov (test)<br>
+     <b>TestFileTruncate#testTruncateWithDataNodesRestart runs timeout sometimes</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>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7885">HDFS-7885</a>.
+     Critical bug reported by vitthal (Suhas) Gogate and fixed by Tsz Wo Nicholas Sze (datanode)<br>
+     <b>Datanode should not trust the generation stamp provided by client</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>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7884">HDFS-7884</a>.
+     Blocker bug reported by Tsz Wo Nicholas Sze and fixed by Brahma Reddy Battula (datanode)<br>
+     <b>NullPointerException in BlockSender</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>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7881">HDFS-7881</a>.
+     Blocker bug reported by Akira AJISAKA and fixed by Brahma Reddy Battula <br>
+     <b>TestHftpFileSystem#testSeek fails in branch-2</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>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7880">HDFS-7880</a>.
+     Blocker bug reported by Akira AJISAKA and fixed by Brahma Reddy Battula (test)<br>
+     <b>Remove the tests for legacy Web UI in branch-2</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>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7879">HDFS-7879</a>.
+     Major bug reported by Chris Nauroth and fixed by Chris Nauroth (build , libhdfs)<br>
+     <b>hdfs.dll does not export functions of the public libhdfs API</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>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7871">HDFS-7871</a>.
+     Critical bug reported by Jing Zhao and fixed by Jing Zhao <br>
+     <b>NameNodeEditLogRoller can keep printing "Swallowing exception" message</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>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7869">HDFS-7869</a>.
+     Major bug reported by J.Andreina and fixed by J.Andreina <br>
+     <b>Inconsistency in the return information while performing rolling upgrade</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>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7855">HDFS-7855</a>.
+     Major sub-task reported by Li Bo and fixed by Li Bo (hdfs-client)<br>
+     <b>Separate class Packet from DFSOutputStream</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>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7849">HDFS-7849</a>.
+     Minor improvement reported by Tsz Wo Nicholas Sze and fixed by J.Andreina (documentation)<br>
+     <b>Update documentation for enabling a new feature in rolling upgrade</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>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7843">HDFS-7843</a>.
+     Blocker sub-task reported by Tsz Wo Nicholas Sze and fixed by Tsz Wo Nicholas Sze (namenode)<br>
+     <b>A truncated file is corrupted after rollback from a rolling upgrade</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>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7838">HDFS-7838</a>.
+     Major sub-task reported by Yi Liu and fixed by Yi Liu (datanode , namenode)<br>
+     <b>Expose truncate API for libhdfs</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>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7832">HDFS-7832</a>.
+     Major improvement reported by Vinayakumar B and fixed by Vinayakumar B (namenode)<br>
+     <b>Show 'Last Modified' in Namenode's 'Browse Filesystem'</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>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7831">HDFS-7831</a>.
+     Major bug reported by Konstantin Shvachko and fixed by Konstantin Shvachko <br>
+     <b>Fix the starting index and end condition of the loop in FileDiffList.findEarlierSnapshotBlocks()</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>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7830">HDFS-7830</a>.
+     Major bug reported by Lei (Eddy) Xu and fixed by Lei (Eddy) Xu (datanode)<br>
+     <b>DataNode does not release the volume lock when adding a volume fails.</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>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7824">HDFS-7824</a>.
+     Major sub-task reported by Xiaoyu Yao and fixed by Xiaoyu Yao (datanode , namenode)<br>
+     <b>GetContentSummary API and its namenode implementation for Storage Type Quota/Usage</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>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7819">HDFS-7819</a>.
+     Major sub-task reported by Rakesh R and fixed by Rakesh R (datanode)<br>
+     <b>Log WARN message for the blocks which are not in Block ID based layout</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>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7818">HDFS-7818</a>.
+     Blocker bug reported by Eric Payne and fixed by Eric Payne (webhdfs)<br>
+     <b>OffsetParam should return the default value instead of throwing NPE when the value is unspecified</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>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7816">HDFS-7816</a>.
+     Blocker bug reported by Jason Lowe and fixed by Haohui Mai (webhdfs)<br>
+     <b>Unable to open webhdfs paths with "+"</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>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7814">HDFS-7814</a>.
+     Minor sub-task reported by Xiaoyu Yao and fixed by Xiaoyu Yao (datanode , namenode)<br>
+     <b>Fix usage string of storageType parameter for "dfsadmin -setSpaceQuota/clrSpaceQuota"</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>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7813">HDFS-7813</a>.
+     Major bug reported by Rakesh R and fixed by Rakesh R (ha , test)<br>
+     <b>TestDFSHAAdminMiniCluster#testFencer testcase is failing frequently</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>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7811">HDFS-7811</a>.
+     Minor sub-task reported by Xiaoyu Yao and fixed by Xiaoyu Yao (namenode)<br>
+     <b>Avoid recursive call getStoragePolicyID in INodeFile#computeQuotaUsage</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>.
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7807">HDFS-7807</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>
+     <b>libhdfs htable.c: fix htable resizing, add unit test</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>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7806">HDFS-7806</a>.
+     Minor sub-task reported by Xiaoyu Yao and fixed by Xiaoyu Yao (datanode , namenode)<br>
+     <b>Refactor: move StorageType from hadoop-hdfs to hadoop-common</b><br>
+     <blockquote>This fix moves the public class StorageType from the package org.apache.hadoop.hdfs to org.apache.hadoop.fs.</blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7805">HDFS-7805</a>.
+     Major bug reported by surendra singh lilhore and fixed by surendra singh lilhore (namenode)<br>
+     <b>NameNode recovery prompt should be printed on console</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>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7798">HDFS-7798</a>.
+     Critical bug reported by Chengbing Liu and fixed by Chengbing Liu (security)<br>
+     <b>Checkpointing failure caused by shared KerberosAuthenticator</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>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7797">HDFS-7797</a>.
+     Major improvement reported by Rakesh R and fixed by Rakesh R (namenode)<br>
+     <b>Add audit log for setQuota operation</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>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7795">HDFS-7795</a>.
+     Minor improvement reported by Kihwal Lee and fixed by Kihwal Lee <br>
+     <b>Show warning if not all favored nodes were chosen by namenode</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>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7790">HDFS-7790</a>.
+     Minor improvement reported by Colin Patrick McCabe and fixed by Colin Patrick McCabe (hdfs-client)<br>
+     <b>Do not create optional fields in DFSInputStream unless they are needed</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>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7789">HDFS-7789</a>.
+     Major improvement reported by Gera Shegalov and fixed by Gera Shegalov (tools)<br>
+     <b>DFSck should resolve the path to support cross-FS symlinks</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>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7788">HDFS-7788</a>.
+     Blocker bug reported by Kihwal Lee and fixed by Rushabh S Shah <br>
+     <b>Post-2.6 namenode may not start up with an image containing inodes created with an old release.</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>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7785">HDFS-7785</a>.
+     Major bug reported by Chengbing Liu and fixed by Chengbing Liu (namenode)<br>
+     <b>Improve diagnostics information for HttpPutFailedException</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>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7780">HDFS-7780</a>.
+     Minor improvement reported by Ray Chiang and fixed by Ray Chiang <br>
+     <b>Update use of Iterator to Iterable in DataXceiverServer and SnapshotDiffInfo</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>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7778">HDFS-7778</a>.
+     Major bug reported by Lei (Eddy) Xu and fixed by Lei (Eddy) Xu (datanode , test)<br>
+     <b>Rename FsVolumeListTest to TestFsVolumeList and commit it to branch-2</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>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7776">HDFS-7776</a>.
+     Major sub-task reported by Xiaoyu Yao and fixed by Xiaoyu Yao (test)<br>
+     <b>Adding additional unit tests for Quota By Storage Type</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>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7775">HDFS-7775</a>.
+     Minor sub-task reported by Xiaoyu Yao and fixed by Xiaoyu Yao (datanode , namenode)<br>
+     <b>Use consistent naming for NN-internal quota related types and functions</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>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7774">HDFS-7774</a>.
+     Critical bug reported by Venkatasubramaniam Ramakrishnan and fixed by Kiran Kumar M R (build , native)<br>
+     <b>Unresolved symbols error while compiling HDFS on Windows 7/32 bit</b><br>
+     <blockquote>LibHDFS now supports 32-bit build targets on Windows.</blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7773">HDFS-7773</a>.
+     Major improvement reported by Anu Engineer and fixed by Anu Engineer (datanode , namenode)<br>
+     <b>Additional metrics in HDFS to be accessed via jmx.</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>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7772">HDFS-7772</a>.
+     Trivial improvement reported by Xiaoyu Yao and fixed by Xiaoyu Yao (documentation)<br>
+     <b>Document hdfs balancer -exclude/-include option in HDFSCommands.html</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>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7771">HDFS-7771</a>.
+     Major improvement reported by Colin Patrick McCabe and fixed by Colin Patrick McCabe <br>
+     <b>fuse_dfs should permit FILE: on the front of KRB5CCNAME</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>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7769">HDFS-7769</a>.
+     Trivial bug reported by Tsz Wo Nicholas Sze and fixed by  (test)<br>
+     <b>TestHDFSCLI create files in hdfs project root dir</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>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7763">HDFS-7763</a>.
+     Major bug reported by Liang Xie and fixed by Liang Xie (ha)<br>
+     <b>fix zkfc hung issue due to not catching exception in a corner case</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>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7761">HDFS-7761</a>.
+     Minor improvement reported by Yi Liu and fixed by Yi Liu <br>
+     <b>cleanup unnecssary code logic in LocatedBlock</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>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7760">HDFS-7760</a>.
+     Minor sub-task reported by Yi Liu and fixed by Konstantin Shvachko (documentation)<br>
+     <b>Document truncate for WebHDFS.</b><br>
      <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8648">HADOOP-8648</a>.
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7757">HDFS-7757</a>.
+     Major improvement reported by Arpit Agarwal and fixed by Brahma Reddy Battula (namenode)<br>
+     <b>Misleading error messages in FSImage.java</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7756">HDFS-7756</a>.
+     Major bug reported by Ted Yu and fixed by Ted Yu <br>
+     <b>Restore method signature for LocatedBlock#getLocations()</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7753">HDFS-7753</a>.
+     Major bug reported by Rakesh R and fixed by Konstantin Shvachko <br>
+     <b>Fix Multithreaded correctness Warnings in BackupImage.java</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7752">HDFS-7752</a>.
+     Minor improvement reported by Wellington Chevreuil and fixed by Wellington Chevreuil (documentation)<br>
+     <b>Improve description for "dfs.namenode.num.extra.edits.retained" and "dfs.namenode.num.checkpoints.retained" properties on hdfs-default.xml</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7748">HDFS-7748</a>.
+     Blocker bug reported by Haohui Mai and fixed by Anu Engineer <br>
+     <b>Separate ECN flags from the Status in the DataTransferPipelineAck</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7746">HDFS-7746</a>.
+     Minor sub-task reported by Tsz Wo Nicholas Sze and fixed by Tsz Wo Nicholas Sze (test)<br>
+     <b>Add a test randomly mixing append, truncate and snapshot</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7744">HDFS-7744</a>.
+     Major bug reported by Colin Patrick McCabe and fixed by Colin Patrick McCabe (hdfs-client)<br>
+     <b>Fix potential NPE in DFSInputStream after setDropBehind or setReadahead is called</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7743">HDFS-7743</a>.
+     Minor improvement reported by Jing Zhao and fixed by Jing Zhao (namenode)<br>
+     <b>Code cleanup of BlockInfo and rename BlockInfo to BlockInfoContiguous</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7742">HDFS-7742</a>.
+     Major bug reported by Nathan Roberts and fixed by Nathan Roberts (namenode)<br>
+     <b>favoring decommissioning node for replication can cause a block to stay underreplicated for long periods</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7741">HDFS-7741</a>.
+     Minor bug reported by Yi Liu and fixed by Yi Liu <br>
+     <b>Remove unnecessary synchronized in FSDataInputStream and HdfsDataInputStream</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7740">HDFS-7740</a>.
+     Major sub-task reported by Konstantin Shvachko and fixed by Yi Liu (test)<br>
+     <b>Test truncate with DataNodes restarting</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7738">HDFS-7738</a>.
+     Minor sub-task reported by Tsz Wo Nicholas Sze and fixed by Tsz Wo Nicholas Sze (test)<br>
+     <b>Add more tests for truncate</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7734">HDFS-7734</a>.
+     Blocker bug reported by Arpit Agarwal and fixed by Yi Liu (namenode)<br>
+     <b>Class cast exception in NameNode#main</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7732">HDFS-7732</a>.
+     Trivial improvement reported by Akira AJISAKA and fixed by Brahma Reddy Battula <br>
+     <b>Fix the order of the parameters in DFSConfigKeys</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7723">HDFS-7723</a>.
+     Major sub-task reported by Xiaoyu Yao and fixed by Xiaoyu Yao (namenode)<br>
+     <b>Quota By Storage Type namenode implemenation</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7722">HDFS-7722</a>.
+     Major bug reported by Lei (Eddy) Xu and fixed by Lei (Eddy) Xu (datanode)<br>
+     <b>DataNode#checkDiskError should also remove Storage when error is found.</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7721">HDFS-7721</a>.
+     Major bug reported by Tsz Wo Nicholas Sze and fixed by Colin Patrick McCabe (datanode)<br>
+     <b>The HDFS BlockScanner may run fast during the first hour</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7720">HDFS-7720</a>.
+     Major sub-task reported by Xiaoyu Yao and fixed by Xiaoyu Yao (datanode , namenode)<br>
+     <b>Quota by Storage Type API, tools and ClientNameNode Protocol changes</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7719">HDFS-7719</a>.
+     Major bug reported by Lei (Eddy) Xu and fixed by Lei (Eddy) Xu <br>
+     <b>BlockPoolSliceStorage#removeVolumes fails to remove some in-memory state associated with volumes</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7718">HDFS-7718</a>.
+     Major bug reported by Arun Suresh and fixed by Arun Suresh <br>
+     <b>Store KeyProvider in ClientContext to avoid leaking key provider threads when using FileContext</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7714">HDFS-7714</a>.
+     Major bug reported by Chris Nauroth and fixed by Vinayakumar B (datanode)<br>
+     <b>Simultaneous restart of HA NameNodes and DataNode can cause DataNode to register successfully with only one NameNode.</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7710">HDFS-7710</a>.
+     Minor improvement reported by Xiaoyu Yao and fixed by Xiaoyu Yao <br>
+     <b>Remove dead code in BackupImage.java</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7709">HDFS-7709</a>.
+     Major bug reported by Rakesh R and fixed by Rakesh R <br>
+     <b>Fix findbug warnings in httpfs</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7707">HDFS-7707</a>.
+     Major bug reported by Yongjun Zhang and fixed by Yongjun Zhang (namenode)<br>
+     <b>Edit log corruption due to delayed block removal again</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7706">HDFS-7706</a>.
+     Minor improvement reported by Andrew Wang and fixed by Andrew Wang (namenode)<br>
+     <b>Switch BlockManager logging to use slf4j</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7704">HDFS-7704</a>.
+     Major bug reported by Rushabh S Shah and fixed by Rushabh S Shah (datanode , namenode)<br>
+     <b>DN heartbeat to Active NN may be blocked and expire if connection to Standby NN continues to time out. </b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7703">HDFS-7703</a>.
+     Major improvement reported by Vinayakumar B and fixed by Vinayakumar B <br>
+     <b>Support favouredNodes for the append for new blocks</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7700">HDFS-7700</a>.
+     Major sub-task reported by Xiaoyu Yao and fixed by Xiaoyu Yao (documentation)<br>
+     <b>Document quota support for storage types</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7698">HDFS-7698</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>
+     <b>Fix locking on HDFS read statistics and add a method for clearing them.</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>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7697">HDFS-7697</a>.
+     Major bug reported by Haohui Mai and fixed by Lei (Eddy) Xu <br>
+     <b>Mark the PB OIV tool as experimental</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>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7696">HDFS-7696</a>.
+     Minor bug reported by Tsz Wo Nicholas Sze and fixed by Tsz Wo Nicholas Sze (datanode)<br>
+     <b>FsDatasetImpl.getTmpInputStreams(..) may leak file descriptors</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>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7694">HDFS-7694</a>.
+     Major improvement reported by Colin Patrick McCabe and fixed by Colin Patrick McCabe <br>
+     <b>FSDataInputStream should support "unbuffer"</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>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7686">HDFS-7686</a>.
+     Blocker bug reported by Rushabh S Shah and fixed by Colin Patrick McCabe <br>
+     <b>Re-add rapid rescan of possibly corrupt block feature to the block scanner</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>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7685">HDFS-7685</a>.
+     Minor improvement reported by Frank Lanitz and fixed by Kai Sasaki (documentation)<br>
+     <b>Document dfs.namenode.heartbeat.recheck-interval in hdfs-default.xml</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>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7684">HDFS-7684</a>.
+     Major improvement reported by Tianyin Xu and fixed by Anu Engineer <br>
+     <b>The host:port settings of the daemons should be trimmed before use</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>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7683">HDFS-7683</a>.
+     Minor improvement reported by Vinayakumar B and fixed by Vinayakumar B (namenode)<br>
+     <b>Combine usages and percent stats in NameNode UI</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>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7682">HDFS-7682</a>.
+     Major bug reported by Charles Lamb and fixed by Charles Lamb <br>
+     <b>{{DistributedFileSystem#getFileChecksum}} of a snapshotted file includes non-snapshotted content</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>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7681">HDFS-7681</a>.
+     Major sub-task reported by Joe Pallas and fixed by Joe Pallas (datanode)<br>
+     <b>Fix ReplicaInputStream constructor to take InputStreams</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>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7677">HDFS-7677</a>.
+     Major sub-task reported by Yi Liu and fixed by Yi Liu (datanode , namenode)<br>
+     <b>DistributedFileSystem#truncate should resolve symlinks</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>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7676">HDFS-7676</a>.
+     Major sub-task reported by Konstantin Shvachko and fixed by Konstantin Shvachko (test)<br>
+     <b>Fix TestFileTruncate to avoid bug of HDFS-7611</b><br>
      <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8614">HADOOP-8614</a>.
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7675">HDFS-7675</a>.
+     Trivial improvement reported by Konstantin Shvachko and fixed by Colin Patrick McCabe (hdfs-client)<br>
+     <b>Remove unused member DFSClient#spanReceiverHost</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7668">HDFS-7668</a>.
+     Major improvement reported by Allen Wittenauer and fixed by Masatake Iwasaki (documentation)<br>
+     <b>Convert site documentation from apt to markdown</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7660">HDFS-7660</a>.
+     Minor bug reported by Lei (Eddy) Xu and fixed by Lei (Eddy) Xu <br>
+     <b>BlockReceiver#close() might be called multiple times, which causes the fsvolume reference being released incorrectly.</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7659">HDFS-7659</a>.
+     Major sub-task reported by Yi Liu and fixed by Yi Liu (datanode , namenode)<br>
+     <b>We should check the new length of truncate can't be a negative value.</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7656">HDFS-7656</a>.
+     Major sub-task reported by Yi Liu and fixed by Yi Liu (datanode , namenode)<br>
+     <b>Expose truncate API for HDFS httpfs</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7655">HDFS-7655</a>.
+     Major sub-task reported by Yi Liu and fixed by Yi Liu (datanode , namenode)<br>
+     <b>Expose truncate API for Web HDFS</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7647">HDFS-7647</a>.
+     Major bug reported by Milan Desai and fixed by Milan Desai <br>
+     <b>DatanodeManager.sortLocatedBlocks sorts DatanodeInfos but not StorageIDs</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7644">HDFS-7644</a>.
+     Trivial bug reported by Charles Lamb and fixed by Charles Lamb (documentation)<br>
+     <b>minor typo in HttpFS doc</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7643">HDFS-7643</a>.
+     Major sub-task reported by Arpit Agarwal and fixed by Yi Liu (test)<br>
+     <b>Test case to ensure lazy persist files cannot be truncated</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7641">HDFS-7641</a>.
+     Minor bug reported by Yi Liu and fixed by Yi Liu (documentation)<br>
+     <b>Update archival storage user doc for list/set/get block storage policies</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7640">HDFS-7640</a>.
+     Trivial improvement reported by Brandon Li and fixed by Brandon Li (nfs)<br>
+     <b>print NFS Client in the NFS log</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7638">HDFS-7638</a>.
+     Major sub-task reported by Yi Liu and fixed by Yi Liu (datanode , namenode)<br>
+     <b>Small fix and few refinements for FSN#truncate</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7637">HDFS-7637</a>.
+     Minor bug reported by Yi Liu and fixed by Yi Liu <br>
+     <b>Fix the check condition for reserved path</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7635">HDFS-7635</a>.
+     Minor bug reported by Chris Nauroth and fixed by Chris Nauroth (test)<br>
+     <b>Remove TestCorruptFilesJsp from branch-2.</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7634">HDFS-7634</a>.
+     Major sub-task reported by Yi Liu and fixed by Yi Liu (datanode , namenode)<br>
+     <b>Disallow truncation of Lazy persist files</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7632">HDFS-7632</a>.
+     Major bug reported by Chris Nauroth and fixed by Chris Nauroth (test)<br>
+     <b>MiniDFSCluster configures DataNode data directories incorrectly if using more than 1 DataNode and more than 2 storage locations per DataNode.</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7623">HDFS-7623</a>.
+     Major sub-task reported by Yi Liu and fixed by Yi Liu <br>
+     <b>Add htrace configuration properties to core-default.xml and update user doc about how to enable htrace</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7615">HDFS-7615</a>.
+     Major bug reported by Kihwal Lee and fixed by Kihwal Lee <br>
+     <b>Remove longReadLock</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7611">HDFS-7611</a>.
+     Critical bug reported by Konstantin Shvachko and fixed by Jing Zhao (namenode)<br>
+     <b>deleteSnapshot and delete of a file can leave orphaned blocks in the blocksMap on NameNode restart.</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7610">HDFS-7610</a>.
+     Major bug reported by Lei (Eddy) Xu and fixed by Lei (Eddy) Xu (datanode)<br>
+     <b>Fix removal of dynamically added DN volumes</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7606">HDFS-7606</a>.
+     Minor bug reported by Ted Yu and fixed by Byron Wong <br>
+     <b>Missing null check in INodeFile#getBlocks()</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7604">HDFS-7604</a>.
+     Major improvement reported by Chris Nauroth and fixed by Chris Nauroth (datanode , namenode)<br>
+     <b>Track and display failed DataNode storage locations in NameNode.</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7603">HDFS-7603</a>.
+     Critical bug reported by Kihwal Lee and fixed by Kihwal Lee (rolling upgrades)<br>
+     <b>The background replication queue initialization may not let others run</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7600">HDFS-7600</a>.
+     Major improvement reported by Yi Liu and fixed by Jing Zhao (tools)<br>
+     <b>Refine hdfs admin classes to reuse common code</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7598">HDFS-7598</a>.
+     Minor improvement reported by Sangjin Lee and fixed by Sangjin Lee (test)<br>
+     <b>Remove dependency on old version of Guava in TestDFSClientCache#testEviction</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7596">HDFS-7596</a>.
+     Major bug reported by Arpit Agarwal and fixed by Arpit Agarwal (namenode)<br>
+     <b>NameNode should prune dead storages from storageMap</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7591">HDFS-7591</a>.
+     Minor improvement reported by Chris Nauroth and fixed by Varun Saxena (scripts)<br>
+     <b>hdfs classpath command should support same options as hadoop classpath.</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7589">HDFS-7589</a>.
+     Major sub-task reported by Zhanwei Wang and fixed by Zhanwei Wang (libhdfs)<br>
+     <b>Break the dependency between libnative_mini_dfs and libhdfs</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7587">HDFS-7587</a>.
+     Blocker bug reported by Kihwal Lee and fixed by Jing Zhao (namenode)<br>
+     <b>Edit log corruption can happen if append fails with a quota violation</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7585">HDFS-7585</a>.
+     Major test reported by sam liu and fixed by sam liu (test)<br>
+     <b>Get TestEnhancedByteBufferAccess working on CPU architectures with page sizes other than 4096</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7584">HDFS-7584</a>.
+     Major new feature reported by Xiaoyu Yao and fixed by Xiaoyu Yao (datanode , namenode)<br>
+     <b>Enable Quota Support for Storage Types</b><br>
+     <blockquote>1. Introduced quota by storage type as a hard limit on the amount of space usage allowed for different storage types (SSD, DISK, ARCHIVE) under the target directory.
+2. Added {{SetQuotaByStorageType}} API and {{-storagetype}} option for  {{hdfs dfsadmin -setSpaceQuota/-clrSpaceQuota}} commands to allow set/clear quota by storage type under the target directory.
+</blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7583">HDFS-7583</a>.
+     Minor bug reported by Vinayakumar B and fixed by Vinayakumar B (namenode)<br>
+     <b>Fix findbug in TransferFsImage.java</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7579">HDFS-7579</a>.
+     Minor improvement reported by Charles Lamb and fixed by Charles Lamb (datanode)<br>
+     <b>Improve log reporting during block report rpc failure</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7575">HDFS-7575</a>.
+     Critical bug reported by Lars Francke and fixed by Arpit Agarwal <br>
+     <b>Upgrade should generate a unique storage ID for each volume</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7573">HDFS-7573</a>.
+     Major sub-task reported by Haohui Mai and fixed by Haohui Mai <br>
+     <b>Consolidate the implementation of delete() into a single class</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7572">HDFS-7572</a>.
+     Major bug reported by Arpit Agarwal and fixed by Arpit Agarwal (test)<br>
+     <b>TestLazyPersistFiles#testDnRestartWithSavedReplicas is flaky on Windows</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7566">HDFS-7566</a>.
+     Major bug reported by Ray Chiang and fixed by Ray Chiang <br>
+     <b>Remove obsolete entries from hdfs-default.xml</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7564">HDFS-7564</a>.
+     Minor improvement reported by Hari Sekhon and fixed by Yongjun Zhang (nfs)<br>
+     <b>NFS gateway dynamically reload UID/GID mapping file /etc/nfs.map</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7563">HDFS-7563</a>.
+     Major bug reported by Hari Sekhon and fixed by Yongjun Zhang (nfs)<br>
+     <b>NFS gateway parseStaticMap NumberFormatException</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7561">HDFS-7561</a>.
+     Major bug reported by Konstantin Shvachko and fixed by Liang Xie <br>
+     <b>TestFetchImage should write fetched-image-dir under target.</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7560">HDFS-7560</a>.
+     Critical bug reported by Vinayakumar B and fixed by Vinayakumar B (namenode)<br>
+     <b>ACLs removed by removeDefaultAcl() will be back after NameNode restart/failover</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7557">HDFS-7557</a>.
+     Minor improvement reported by Colin Patrick McCabe and fixed by Colin Patrick McCabe <br>
+     <b>Fix spacing for a few keys in DFSConfigKeys.java</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7555">HDFS-7555</a>.
+     Major improvement reported by Haohui Mai and fixed by Haohui Mai <br>
+     <b>Remove the support of unmanaged connectors in HttpServer2</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7552">HDFS-7552</a>.
+     Major bug reported by Liang Xie and fixed by Liang Xie (datanode , test)<br>
+     <b>change FsVolumeList toString() to fix TestDataNodeVolumeFailureToleration </b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7548">HDFS-7548</a>.
+     Major bug reported by Rushabh S Shah and fixed by Rushabh S Shah <br>
+     <b>Corrupt block reporting delayed until datablock scanner thread detects it</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7543">HDFS-7543</a>.
+     Major sub-task reported by Haohui Mai and fixed by Haohui Mai <br>
+     <b>Avoid path resolution when getting FileStatus for audit logs</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7537">HDFS-7537</a>.
+     Major improvement reported by Allen Wittenauer and fixed by GAO Rui (namenode)<br>
+     <b>fsck is confusing when dfs.namenode.replication.min &gt; 1 &amp;&amp; missing replicas &amp;&amp; NN restart</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7536">HDFS-7536</a>.
+     Minor bug reported by Yi Liu and fixed by Yi Liu (security)<br>
+     <b>Remove unused CryptoCodec in org.apache.hadoop.fs.Hdfs</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7535">HDFS-7535</a>.
+     Major improvement reported by Jing Zhao and fixed by Jing Zhao (distcp , snapshots)<br>
+     <b>Utilize Snapshot diff report for distcp</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7533">HDFS-7533</a>.
+     Major bug reported by Kihwal Lee and fixed by Eric Payne <br>
+     <b>Datanode sometimes does not shutdown on receiving upgrade shutdown command</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7531">HDFS-7531</a>.
+     Major improvement reported by Lei (Eddy) Xu and fixed by Lei (Eddy) Xu (datanode)<br>
+     <b>Improve the concurrent access on FsVolumeList</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7530">HDFS-7530</a>.
+     Minor bug reported by Charles Lamb and fixed by Charles Lamb (namenode)<br>
+     <b>Allow renaming of encryption zone roots</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7528">HDFS-7528</a>.
+     Major sub-task reported by Haohui Mai and fixed by Haohui Mai <br>
+     <b>Consolidate symlink-related implementation into a single class</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7517">HDFS-7517</a>.
+     Major bug reported by Haohui Mai and fixed by Haohui Mai <br>
+     <b>Remove redundant non-null checks in FSNamesystem#getBlockLocations</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7516">HDFS-7516</a>.
+     Major bug reported by Brandon Li and fixed by Brandon Li (nfs)<br>
+     <b>Fix findbugs warnings in hadoop-nfs project</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7515">HDFS-7515</a>.
+     Major bug reported by Haohui Mai and fixed by Haohui Mai <br>
+     <b>Fix new findbugs warnings in hadoop-hdfs</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7514">HDFS-7514</a>.
+     Major bug reported by Arpit Agarwal and fixed by Arpit Agarwal (test)<br>
+     <b>TestTextCommand fails on Windows</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7513">HDFS-7513</a>.
+     Major improvement reported by Colin Patrick McCabe and fixed by Colin Patrick McCabe (namenode)<br>
+     <b>HDFS inotify: add defaultBlockSize to CreateEvent</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7509">HDFS-7509</a>.
+     Major sub-task reported by Jing Zhao and fixed by Jing Zhao <br>
+     <b>Avoid resolving path multiple times</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7506">HDFS-7506</a>.
+     Major sub-task reported by Haohui Mai and fixed by Haohui Mai <br>
+     <b>Consolidate implementation of setting inode attributes into a single class</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7502">HDFS-7502</a>.
+     Major bug reported by Brandon Li and fixed by Brandon Li (nfs)<br>
+     <b>Fix findbugs warning in hdfs-nfs project</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7498">HDFS-7498</a>.
+     Major sub-task reported by Jing Zhao and fixed by Jing Zhao (namenode)<br>
+     <b>Simplify the logic in INodesInPath</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7497">HDFS-7497</a>.
+     Major bug reported by Yongjun Zhang and fixed by Yongjun Zhang (datanode , namenode)<br>
+     <b>Inconsistent report of decommissioning DataNodes between dfsadmin and NameNode webui</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7496">HDFS-7496</a>.
+     Major bug reported by Colin Patrick McCabe and fixed by Lei (Eddy) Xu <br>
+     <b>Fix FsVolume removal race conditions on the DataNode by reference-counting the volume instances</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7495">HDFS-7495</a>.
+     Minor bug reported by Ted Yu and fixed by Colin Patrick McCabe <br>
+     <b>Remove updatePosition argument from DFSInputStream#getBlockAt()</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7494">HDFS-7494</a>.
+     Minor bug reported by Ted Yu and fixed by Ted Yu <br>
+     <b>Checking of closed in DFSInputStream#pread() should be protected by synchronization</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7491">HDFS-7491</a>.
+     Minor improvement reported by Ming Ma and fixed by Ming Ma (datanode)<br>
+     <b>Add incremental blockreport latency to DN metrics</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7490">HDFS-7490</a>.
+     Major bug reported by Steve Loughran and fixed by Steve Loughran (build , test)<br>
+     <b>HDFS tests OOM on Java7+</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7486">HDFS-7486</a>.
+     Major sub-task reported by Haohui Mai and fixed by Haohui Mai <br>
+     <b>Consolidate XAttr-related implementation into a single class</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7484">HDFS-7484</a>.
+     Major improvement reported by Haohui Mai and fixed by Jing Zhao <br>
+     <b>Make FSDirectory#addINode take existing INodes as its parameter</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7481">HDFS-7481</a>.
+     Minor bug reported by Vinayakumar B and fixed by Vinayakumar B (namenode)<br>
+     <b>Add ACL indicator to the "Permission Denied" exception.</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7478">HDFS-7478</a>.
+     Major improvement reported by Li Lu and fixed by Li Lu <br>
+     <b>Move org.apache.hadoop.hdfs.server.namenode.NNConf to FSNamesystem</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7476">HDFS-7476</a>.
+     Major sub-task reported by Haohui Mai and fixed by Haohui Mai (namenode)<br>
+     <b>Consolidate ACL-related operations to a single class</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7475">HDFS-7475</a>.
+     Major test reported by Xiaoyu Yao and fixed by Xiaoyu Yao (test)<br>
+     <b>Make TestLazyPersistFiles#testLazyPersistBlocksAreSaved deterministic </b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7474">HDFS-7474</a>.
+     Major sub-task reported by Jing Zhao and fixed by Jing Zhao (namenode)<br>
+     <b>Avoid resolving path in FSPermissionChecker</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7473">HDFS-7473</a>.
+     Major bug reported by Jason Keller and fixed by Akira AJISAKA (documentation)<br>
+     <b>Document setting dfs.namenode.fs-limits.max-directory-items to 0 is invalid</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7472">HDFS-7472</a>.
+     Trivial bug reported by Masatake Iwasaki and fixed by Masatake Iwasaki <br>
+     <b>Fix typo in message of ReplicaNotFoundException</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7470">HDFS-7470</a>.
+     Major bug reported by zhaoyunjiong and fixed by zhaoyunjiong (namenode)<br>
+     <b>SecondaryNameNode need twice memory when calling reloadFromImageFile</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7468">HDFS-7468</a>.
+     Major sub-task reported by Li Lu and fixed by Li Lu <br>
+     <b>Moving verify* functions to corresponding classes</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7467">HDFS-7467</a>.
+     Major sub-task reported by Benoy Antony and fixed by Benoy Antony (balancer &amp; mover)<br>
+     <b>Provide storage tier information for a directory via fsck</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7463">HDFS-7463</a>.
+     Major improvement reported by Haohui Mai and fixed by Haohui Mai <br>
+     <b>Simplify FSNamesystem#getBlockLocationsUpdateTimes</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7462">HDFS-7462</a>.
+     Major sub-task reported by Haohui Mai and fixed by Haohui Mai <br>
+     <b>Consolidate implementation of mkdirs() into a single class</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7459">HDFS-7459</a>.
+     Major sub-task reported by Haohui Mai and fixed by Haohui Mai <br>
+     <b>Consolidate cache-related implementation in FSNamesystem into a single class</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7458">HDFS-7458</a>.
+     Minor improvement reported by Yongjun Zhang and fixed by Yongjun Zhang (nfs , test)<br>
+     <b>Add description to the nfs ports in core-site.xml used by nfs test to avoid confusion</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7457">HDFS-7457</a>.
+     Major bug reported by Daryn Sharp and fixed by Daryn Sharp (namenode)<br>
+     <b>DatanodeID generates excessive garbage</b><br>
+     <blockquote>Thanks for the reviews, gentlemen. I've committed this to trunk and branch-2. Thanks for identifying and working on the issue, Daryn.</blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7456">HDFS-7456</a>.
+     Major bug reported by Vinayakumar B and fixed by Vinayakumar B (namenode)<br>
+     <b>De-duplicate AclFeature instances with same AclEntries do reduce memory footprint of NameNode</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7454">HDFS-7454</a>.
+     Major improvement reported by Vinayakumar B and fixed by Vinayakumar B (namenode)<br>
+     <b>Reduce memory footprint for AclEntries in NameNode</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7450">HDFS-7450</a>.
+     Major sub-task reported by Haohui Mai and fixed by Haohui Mai <br>
+     <b>Consolidate the implementation of GetFileInfo(), GetListings() and GetContentSummary() into a single class</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7449">HDFS-7449</a>.
+     Major new feature reported by Brandon Li and fixed by Brandon Li (nfs)<br>
+     <b>Add metrics to NFS gateway</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7448">HDFS-7448</a>.
+     Minor test reported by Ted Yu and fixed by Akira AJISAKA <br>
+     <b>TestBookKeeperHACheckpoints fails in trunk build</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7446">HDFS-7446</a>.
+     Major improvement reported by Colin Patrick McCabe and fixed by Colin Patrick McCabe (hdfs-client)<br>
+     <b>HDFS inotify should have the ability to determine what txid it has read up to</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7444">HDFS-7444</a>.
+     Major bug reported by Haohui Mai and fixed by Haohui Mai <br>
+     <b>convertToBlockUnderConstruction should preserve BlockCollection</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7440">HDFS-7440</a>.
+     Major sub-task reported by Haohui Mai and fixed by Haohui Mai <br>
+     <b>Consolidate snapshot related operations in a single class</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7439">HDFS-7439</a>.
+     Minor improvement reported by Ming Ma and fixed by Takanobu Asanuma (balancer &amp; mover , datanode , hdfs-client)<br>
+     <b>Add BlockOpResponseProto's message to DFSClient's exception message</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7438">HDFS-7438</a>.
+     Major sub-task reported by Haohui Mai and fixed by Haohui Mai <br>
+     <b>Consolidate the implementation of rename() into a single class</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7435">HDFS-7435</a>.
+     Critical improvement reported by Daryn Sharp and fixed by Daryn Sharp (datanode , namenode)<br>
+     <b>PB encoding of block reports is very inefficient</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7434">HDFS-7434</a>.
+     Major improvement reported by Daryn Sharp and fixed by Daryn Sharp (namenode)<br>
+     <b>DatanodeID hashCode should not be mutable</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7431">HDFS-7431</a>.
+     Major bug reported by Yi Liu and fixed by Yi Liu (security)<br>
+     <b>log message for InvalidMagicNumberException may be incorrect</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7430">HDFS-7430</a>.
+     Major improvement reported by Colin Patrick McCabe and fixed by Colin Patrick McCabe <br>
+     <b>Rewrite the BlockScanner to use O(1) memory and use multiple threads</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7426">HDFS-7426</a>.
+     Major improvement reported by Andrew Wang and fixed by Andrew Wang (namenode)<br>
+     <b>Change nntop JMX format to be a JSON blob</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7424">HDFS-7424</a>.
+     Major new feature reported by Brandon Li and fixed by Brandon Li (nfs)<br>
+     <b>Add web UI for NFS gateway</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7423">HDFS-7423</a>.
+     Trivial bug reported by Charles Lamb and fixed by Charles Lamb (nfs)<br>
+     <b>various typos and message formatting fixes in nfs daemon and doc</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7420">HDFS-7420</a>.
+     Major sub-task reported by Haohui Mai and fixed by Haohui Mai <br>
+     <b>Delegate permission checks to FSDirectory</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7419">HDFS-7419</a>.
+     Major improvement reported by Lei (Eddy) Xu and fixed by Lei (Eddy) Xu (datanode)<br>
+     <b>Improve error messages for DataNode hot swap drive feature</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7415">HDFS-7415</a>.
+     Major sub-task reported by Haohui Mai and fixed by Haohui Mai <br>
+     <b>Move FSNameSystem.resolvePath() to FSDirectory</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7413">HDFS-7413</a>.
+     Major sub-task reported by Haohui Mai and fixed by Haohui Mai (test)<br>
+     <b>Some unit tests should use NameNodeProtocols instead of FSNameSystem</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7412">HDFS-7412</a>.
+     Major sub-task reported by Haohui Mai and fixed by Haohui Mai <br>
+     <b>Move RetryCache to NameNodeRpcServer</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7411">HDFS-7411</a>.
+     Major improvement reported by Andrew Wang and fixed by Andrew Wang <br>
+     <b>Refactor and improve decommissioning logic into DecommissionManager</b><br>
+     <blockquote>This change introduces a new configuration key used to throttle decommissioning work, "dfs.namenode.decommission.blocks.per.interval". This new key overrides and deprecates the previous related configuration key "dfs.namenode.decommission.nodes.per.interval". The new key is intended to result in more predictable pause times while scanning decommissioning nodes.
+
+</blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7410">HDFS-7410</a>.
+     Major improvement reported by Vinayakumar B and fixed by Vinayakumar B (hdfs-client)<br>
+     <b>Support CreateFlags with append() to support hsync() for appending streams</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7409">HDFS-7409</a>.
+     Minor improvement reported by Andrew Wang and fixed by Andrew Wang <br>
+     <b>Allow dead nodes to finish decommissioning if all files are fully replicated</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7406">HDFS-7406</a>.
+     Major bug reported by Haohui Mai and fixed by Haohui Mai <br>
+     <b>SimpleHttpProxyHandler puts incorrect "Connection: Close" header</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7404">HDFS-7404</a>.
+     Major improvement reported by Haohui Mai and fixed by Li Lu <br>
+     <b>Remove o.a.h.hdfs.server.datanode.web.resources</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7403">HDFS-7403</a>.
+     Trivial bug reported by Yongjun Zhang and fixed by Yongjun Zhang (namenode)<br>
+     <b>Inaccurate javadoc of  BlockUCState#COMPLETE state</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7399">HDFS-7399</a>.
+     Minor bug reported by Ted Yu and fixed by Vinayakumar B <br>
+     <b>Lack of synchronization in DFSOutputStream#Packet#getLastByteOffsetBlock()</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7398">HDFS-7398</a>.
+     Major improvement reported by Gera Shegalov and fixed by Gera Shegalov (namenode)<br>
+     <b>Reset cached thread-local FSEditLogOp's on every FSEditLog#logEdit</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7395">HDFS-7395</a>.
+     Major bug reported by Yongjun Zhang and fixed by Haohui Mai (namenode)<br>
+     <b>BlockIdManager#clear() bails out when resetting the GenerationStampV1Limit</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7394">HDFS-7394</a>.
+     Minor bug reported by Kihwal Lee and fixed by Keith Pak <br>
+     <b>Log at INFO level, not WARN level, when InvalidToken is seen in ShortCircuitCache</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7389">HDFS-7389</a>.
+     Major bug reported by Chunjun Xiao and fixed by Vinayakumar B (namenode)<br>
+     <b>Named user ACL cannot stop the user from accessing the FS entity.</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7386">HDFS-7386</a>.
+     Trivial improvement reported by Yongjun Zhang and fixed by Yongjun Zhang (datanode , security)<br>
+     <b>Replace check "port number &lt; 1024" with shared isPrivilegedPort method </b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7384">HDFS-7384</a>.
+     Major improvement reported by Vinayakumar B and fixed by Vinayakumar B (namenode)<br>
+     <b>'getfacl' command and 'getAclStatus' output should be in sync</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7381">HDFS-7381</a>.
+     Major improvement reported by Haohui Mai and fixed by Haohui Mai <br>
+     <b>Decouple the management of block id and gen stamps from FSNamesystem</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7375">HDFS-7375</a>.
+     Major improvement reported by Haohui Mai and fixed by Haohui Mai <br>
+     <b>Move FSClusterStats to o.a.h.h.hdfs.server.blockmanagement</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7374">HDFS-7374</a>.
+     Major bug reported by Zhe Zhang and fixed by Zhe Zhang <br>
+     <b>Allow decommissioning of dead DataNodes</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7373">HDFS-7373</a>.
+     Major bug reported by Kihwal Lee and fixed by Kihwal Lee <br>
+     <b>Clean up temporary files after fsimage transfer failures</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7366">HDFS-7366</a>.
+     Minor bug reported by Haohui Mai and fixed by Li Lu <br>
+     <b>BlockInfo should take replication as an short in the constructor</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7365">HDFS-7365</a>.
+     Minor improvement reported by Li Lu and fixed by Li Lu <br>
+     <b>Remove hdfs.server.blockmanagement.MutableBlockCollection</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7361">HDFS-7361</a>.
+     Minor bug reported by Chris Nauroth and fixed by Konstantin Shvachko (datanode , namenode , test)<br>
+     <b>TestCheckpoint#testStorageAlreadyLockedErrorMessage fails after change of log message related to locking violation.</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7358">HDFS-7358</a>.
+     Major bug reported by Tsz Wo Nicholas Sze and fixed by Tsz Wo Nicholas Sze (hdfs-client)<br>
+     <b>Clients may get stuck waiting when using ByteArrayManager</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7357">HDFS-7357</a>.
+     Minor improvement reported by Tsz Wo Nicholas Sze and fixed by Tsz Wo Nicholas Sze (namenode)<br>
+     <b>FSNamesystem.checkFileProgress should log file path</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7356">HDFS-7356</a>.
+     Minor improvement reported by Haohui Mai and fixed by Li Lu (nfs)<br>
+     <b>Use DirectoryListing.hasMore() directly in nfs</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7336">HDFS-7336</a>.
+     Major improvement reported by Konstantin Shvachko and fixed by Milan Desai (hdfs-client)<br>
+     <b>Unused member DFSInputStream.buffersize</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7335">HDFS-7335</a>.
+     Major improvement reported by Konstantin Shvachko and fixed by Milan Desai (namenode)<br>
+     <b>Redundant checkOperation() in FSN.analyzeFileState()</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7333">HDFS-7333</a>.
+     Major improvement reported by Konstantin Shvachko and fixed by Konstantin Shvachko (datanode , namenode)<br>
+     <b>Improve log message in Storage.tryLock()</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7331">HDFS-7331</a>.
+     Minor improvement reported by Charles Lamb and fixed by Charles Lamb (datanode)<br>
+     <b>Add Datanode network counts to datanode jmx page</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7329">HDFS-7329</a>.
+     Major improvement reported by Konstantin Shvachko and fixed by Byron Wong (test)<br>
+     <b>MiniDFSCluster should log the exception when createNameNodesAndSetConf() fails.</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7326">HDFS-7326</a>.
+     Minor improvement reported by Colin Patrick McCabe and fixed by Vijay Bhat (documentation)<br>
+     <b>Add documentation for hdfs debug commands</b><br>
+     <blockquote>Added documentation for the hdfs debug commands to the following URL in the documentation website.
+
+hadoop-project-dist/hadoop-hdfs/HDFSCommands.html
+
+In order to view the new documentation, build the website in a staging area:
+$ mvn clean site; mvn site:stage -DstagingDirectory=/tmp/hadoop-site
+
+Point your browser to 
+file:///tmp/hadoop-site/hadoop-project/hadoop-project-dist/hadoop-hdfs/HDFSCommands.html
+</blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7323">HDFS-7323</a>.
+     Major improvement reported by Tsz Wo Nicholas Sze and fixed by Jing Zhao (hdfs-client)<br>
+     <b>Move the get/setStoragePolicy commands out from dfsadmin</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7315">HDFS-7315</a>.
+     Trivial bug reported by Plamen Jeliazkov and fixed by Plamen Jeliazkov <br>
+     <b>DFSTestUtil.readFileBuffer opens extra FSDataInputStream</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7310">HDFS-7310</a>.
+     Major improvement reported by Uma Maheswara Rao G and fixed by Vinayakumar B (balancer &amp; mover)<br>
+     <b>Mover can give first priority to local DN if it has target storage type available in local DN</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7308">HDFS-7308</a>.
+     Minor improvement reported by Tsz Wo Nicholas Sze and fixed by Takuya Fukudome (hdfs-client)<br>
+     <b>DFSClient write packet size may &gt; 64kB</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7303">HDFS-7303</a>.
+     Minor bug reported by Benoy Antony and fixed by Benoy Antony <br>
+     <b>NN UI fails to distinguish datanodes on the same host</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7301">HDFS-7301</a>.
+     Minor bug reported by Zhe Zhang and fixed by Zhe Zhang <br>
+     <b>TestMissingBlocksAlert should use MXBeans instead of old web UI</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7283">HDFS-7283</a>.
+     Trivial improvement reported by Stephen Chu and fixed by Stephen Chu (datanode)<br>
+     <b>Bump DataNode OOM log from WARN to ERROR</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7282">HDFS-7282</a>.
+     Major bug reported by Jinghui Wang and fixed by Jinghui Wang (test)<br>
+     <b>Fix intermittent TestShortCircuitCache and TestBlockReaderFactory failures resulting from TemporarySocketDirectory GC</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7280">HDFS-7280</a>.
+     Major improvement reported by Haohui Mai and fixed by Haohui Mai <br>
+     <b>Use netty 4 in WebImageViewer</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7279">HDFS-7279</a>.
+     Major improvement reported by Haohui Mai and fixed by Haohui Mai (datanode , webhdfs)<br>
+     <b>Use netty to implement DatanodeWebHdfsMethods</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7278">HDFS-7278</a>.
+     Major improvement reported by Colin Patrick McCabe and fixed by Colin Patrick McCabe (datanode)<br>
+     <b>Add a command that allows sysadmins to manually trigger full block reports from a DN</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7277">HDFS-7277</a>.
+     Minor bug reported by Haohui Mai and fixed by Haohui Mai (build)<br>
+     <b>Remove explicit dependency on netty 3.2 in BKJournal</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7270">HDFS-7270</a>.
+     Major improvement reported by Haohui Mai and fixed by Haohui Mai (datanode)<br>
+     <b>Add congestion signaling capability to DataNode write protocol</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7266">HDFS-7266</a>.
+     Minor improvement reported by Gopal V and fixed by Andrew Wang (hdfs-client)<br>
+     <b>HDFS Peercache enabled check should not lock on object</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7263">HDFS-7263</a>.
+     Major bug reported by Konstantin Shvachko and fixed by Tao Luo (hdfs-client)<br>
+     <b>Snapshot read can reveal future bytes for appended files.</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7258">HDFS-7258</a>.
+     Minor bug reported by Xiaoyu Yao and fixed by Xiaoyu Yao (namenode)<br>
+     <b>CacheReplicationMonitor rescan schedule log should use DEBUG level instead of INFO level</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7257">HDFS-7257</a>.
+     Minor improvement reported by Charles Lamb and fixed by Charles Lamb (namenode)<br>
+     <b>Add the time of last HA state transition to NN's /jmx page</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7254">HDFS-7254</a>.
+     Major sub-task reported by Lei (Eddy) Xu and fixed by Lei (Eddy) Xu (datanode)<br>
+     <b>Add documentation for hot swaping DataNode drives</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7252">HDFS-7252</a>.
+     Trivial improvement reported by Yi Liu and fixed by Yi Liu <br>
+     <b>small refinement to the use of isInAnEZ in FSNamesystem</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7242">HDFS-7242</a>.
+     Minor improvement reported by Yi Liu and fixed by Yi Liu (namenode)<br>
+     <b>Code improvement for FSN#checkUnreadableBySuperuser</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7235">HDFS-7235</a>.
+     Major bug reported by Yongjun Zhang and fixed by Yongjun Zhang (datanode , namenode)<br>
+     <b>DataNode#transferBlock should report blocks that don't exist using reportBadBlock</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7232">HDFS-7232</a>.
+     Trivial bug reported by Zoran Dimitrijevic and fixed by Zoran Dimitrijevic <br>
+     <b>Populate hostname in httpfs audit log</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7227">HDFS-7227</a>.
      Minor bug reported by Colin Patrick McCabe and fixed by Colin Patrick McCabe <br>
-     <b>IOUtils#skipFully hangs forever on EOF</b><br>
+     <b>Fix findbugs warning about NP_DEREFERENCE_OF_READLINE_VALUE in SpanReceiverHost</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>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7225">HDFS-7225</a>.
+     Major bug reported by Zhe Zhang and fixed by Zhe Zhang (namenode)<br>
+     <b>Remove stale block invalidation work when DN re-registers with different UUID</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>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7224">HDFS-7224</a>.
+     Major bug reported by Eric Payne and fixed by Eric Payne (webhdfs)<br>
+     <b>Allow reuse of NN connections via webhdfs</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>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7223">HDFS-7223</a>.
+     Minor improvement reported by Masatake Iwasaki and fixed by Masatake Iwasaki <br>
+     <b>Tracing span description of IPC client is too long</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>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7222">HDFS-7222</a>.
+     Minor new feature reported by Charles Lamb and fixed by Charles Lamb (datanode)<br>
+     <b>Expose DataNode network errors as a metric</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>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7213">HDFS-7213</a>.
+     Critical bug reported by Daryn Sharp and fixed by Eric Payne (namenode)<br>
+     <b>processIncrementalBlockReport performance degradation</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>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7210">HDFS-7210</a>.
+     Major improvement reported by Vinayakumar B and fixed by Vinayakumar B (hdfs-client , namenode)<br>
+     <b>Avoid two separate RPC's namenode.append() and namenode.getFileInfo() for an append call from DFSClient</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>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7209">HDFS-7209</a>.
+     Major sub-task reported by Yi Liu and fixed by Yi Liu (encryption , performance)<br>
+     <b>Populate EDEK cache when creating encryption zone</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>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7202">HDFS-7202</a>.
+     Minor bug reported by Masatake Iwasaki and fixed by Masatake Iwasaki <br>
+     <b>Should be able to omit package name of SpanReceiver on "hadoop trace -add"</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>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7201">HDFS-7201</a>.
+     Major bug reported by Konstantin Shvachko and fixed by Dawson Choong <br>
+     <b>Fix typos in hdfs-default.xml</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>.
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7198">HDFS-7198</a>.
      Trivial bug reported by Colin Patrick McCabe and fixed by Colin Patrick McCabe <br>
-     <b>The native build should honor -DskipTests</b><br>
+     <b>Fix findbugs "unchecked conversion" warning in DFSClient#getPathTraceScope</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>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7194">HDFS-7194</a>.
+     Trivial bug reported by Yongjun Zhang and fixed by Yongjun Zhang <br>
+     <b>Fix findbugs "inefficient new String constructor" warning in DFSClient#PATH</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>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7190">HDFS-7190</a>.
+     Major improvement reported by Konstantin Shvachko and fixed by Dawson Choong (namenode)<br>
+     <b>Bad use of Preconditions in startFileInternal()</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>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7189">HDFS-7189</a>.
+     Major sub-task reported by Colin Patrick McCabe and fixed by Colin Patrick McCabe (datanode , namenode)<br>
+     <b>Add trace spans for DFSClient metadata operations</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>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7186">HDFS-7186</a>.
+     Minor improvement reported by Masatake Iwasaki and fixed by Masatake Iwasaki (documentation)<br>
+     <b>Document the "hadoop trace" command.</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>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7182">HDFS-7182</a>.
+     Major improvement reported by Ming Ma and fixed by Ming Ma <br>
+     <b>JMX metrics aren't accessible when NN is busy</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>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7165">HDFS-7165</a>.
+     Major improvement reported by Andrew Wang and fixed by Zhe Zhang (namenode)<br>
+     <b>Separate block metrics for files with replication count 1</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>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7146">HDFS-7146</a>.
+     Major bug reported by Yongjun Zhang and fixed by Yongjun Zhang (nfs)<br>
+     <b>NFS ID/Group lookup requires SSSD enumeration on the server</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>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7097">HDFS-7097</a>.
+     Critical bug reported by Kihwal Lee and fixed by Kihwal Lee <br>
+     <b>Allow block reports to be processed during checkpointing on standby name node</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>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7058">HDFS-7058</a>.
+     Major sub-task reported by Konstantin Shvachko and fixed by Dasha Boudnik (test)<br>
+     <b>Tests for truncate CLI</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>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7056">HDFS-7056</a>.
+     Major sub-task reported by Konstantin Shvachko and fixed by Plamen Jeliazkov (namenode)<br>
+     <b>Snapshot support for truncate</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>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7055">HDFS-7055</a>.
+     Major sub-task reported by Colin Patrick McCabe and fixed by Colin Patrick McCabe (datanode , namenode)<br>
+     <b>Add tracing to DFSInputStream</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>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7054">HDFS-7054</a>.
+     Major sub-task reported by Colin Patrick McCabe and fixed by Colin Patrick McCabe (datanode , namenode)<br>
+     <b>Make DFSOutputStream tracing more fine-grained</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>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7035">HDFS-7035</a>.
+     Major sub-task reported by Lei (Eddy) Xu and fixed by Lei (Eddy) Xu (datanode)<br>
+     <b>Make adding a new data directory to the DataNode an atomic operation and improve error handling</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>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7026">HDFS-7026</a>.
+     Trivial improvement reported by Yongjun Zhang and fixed by Yongjun Zhang <br>
+     <b>Introduce a string constant for "Failed to obtain user group info..."</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>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7009">HDFS-7009</a>.
+     Major bug reported by Ming Ma and fixed by Ming Ma (datanode)<br>
+     <b>Active NN and standby NN have different live nodes</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>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-7008">HDFS-7008</a>.
+     Minor bug reported by Ted Yu and fixed by Tsuyoshi Ozawa <br>
+     <b>xlator should be closed upon exit from DFSAdmin#genericRefresh()</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>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-6982">HDFS-6982</a>.
+     Major new feature reported by Maysam Yabandeh and fixed by Maysam Yabandeh <br>
+     <b>nntop: top&#173;-like tool for name node users</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>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-6938">HDFS-6938</a>.
+     Trivial bug reported by Charles Lamb and fixed by Charles Lamb (namenode)<br>
+     <b>Cleanup javac warnings in FSNamesystem</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>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-6917">HDFS-6917</a>.
+     Major bug reported by Colin Patrick McCabe and fixed by Colin Patrick McCabe (hdfs-client)<br>
+     <b>Add an hdfs debug command to validate blocks, call recoverlease, etc.</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>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-6877">HDFS-6877</a>.
+     Major sub-task reported by Lei (Eddy) Xu and fixed by Lei (Eddy) Xu (datanode)<br>
+     <b>Avoid calling checkDisk when an HDFS volume is removed during a write.</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>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-6841">HDFS-6841</a>.
+     Major bug reported by Vinayakumar B and fixed by Vinayakumar B <br>
+     <b>Use Time.monotonicNow() wherever applicable instead of Time.now()</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>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-6833">HDFS-6833</a>.
+     Critical bug reported by Shinichi Yamashita and fixed by Shinichi Yamashita (datanode)<br>
+     <b>DirectoryScanner should not register a deleting block with memory of DataNode</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>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-6826">HDFS-6826</a>.
+     Major new feature reported by Alejandro Abdelnur and fixed by Arun Suresh (security)<br>
+     <b>Plugin interface to enable delegation of HDFS authorization assertions</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>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-6824">HDFS-6824</a>.
+     Minor sub-task reported by Andrew Wang and fixed by Andrew Wang (documentation)<br>
+     <b>Additional user documentation for HDFS encryption.</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>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-6806">HDFS-6806</a>.
+     Minor improvement reported by Akira AJISAKA and fixed by J.Andreina (documentation)<br>
+     <b>HDFS Rolling upgrade document should mention the versions available</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>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-6803">HDFS-6803</a>.
+     Major sub-task reported by stack and fixed by stack (hdfs-client)<br>
+     <b>Documenting DFSClient#DFSInputStream expectations reading and preading in concurrent context</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>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-6753">HDFS-6753</a>.
+     Major bug reported by J.Andreina and fixed by J.Andreina <br>
+     <b>Initialize checkDisk when DirectoryScanner not able to get files list for scanning</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>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-6741">HDFS-6741</a>.
+     Trivial improvement reported by Stephen Chu and fixed by Harsh J <br>
+     <b>Improve permission denied message when FSPermissionChecker#checkOwner fails</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>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-6735">HDFS-6735</a>.
+     Major improvement reported by Liang Xie and fixed by Lars Hofhansl (hdfs-client)<br>
+     <b>A minor optimization to avoid pread() be blocked by read() inside the same DFSInputStream</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>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-6673">HDFS-6673</a>.
+     Minor sub-task reported by Lei (Eddy) Xu and fixed by Lei (Eddy) Xu <br>
+     <b>Add delimited format support to PB OIV tool</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>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-6663">HDFS-6663</a>.
+     Major new feature reported by Kihwal Lee and fixed by Chen He <br>
+     <b>Admin command to track file and locations from block id</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>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-6662">HDFS-6662</a>.
+     Critical bug reported by Brahma Reddy Battula and fixed by Gerson Carlos (namenode)<br>
+     <b>WebHDFS cannot open a file if its path contains "%"</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>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-6657">HDFS-6657</a>.
+     Minor bug reported by Vinayakumar B and fixed by Vinayakumar B <br>
+     <b>Remove link to 'Legacy UI' in Namenode UI</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>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-6651">HDFS-6651</a>.
+     Critical bug reported by Kihwal Lee and fixed by Jing Zhao <br>
+     <b>Deletion failure can leak inodes permanently</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>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-6565">HDFS-6565</a>.
+     Major improvement reported by Haohui Mai and fixed by Akira AJISAKA <br>
+     <b>Use jackson instead jetty json in hdfs-client</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>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-6538">HDFS-6538</a>.
+     Trivial bug reported by debugging and fixed by David Luo (datanode)<br>
+     <b>Comment format error in ShortCircuitRegistry javadoc</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>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-6488">HDFS-6488</a>.
+     Major new feature reported by Stephen Chu and fixed by Brandon Li (nfs)<br>
+     <b>Support HDFS superuser in NFSv3 gateway</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>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-6425">HDFS-6425</a>.
+     Major bug reported by Ming Ma and fixed by Ming Ma <br>
+     <b>Large postponedMisreplicatedBlocks has impact on blockReport latency</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>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-6252">HDFS-6252</a>.
+     Minor improvement reported by Fengdong Yu and fixed by Haohui Mai (namenode)<br>
+     <b>Phase out the old web UI in HDFS</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>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-6133">HDFS-6133</a>.
+     Major improvement reported by zhaoyunjiong and fixed by zhaoyunjiong (balancer &amp; mover , datanode)<br>
+     <b>Make Balancer support exclude specified path</b><br>
+     <blockquote>Add a feature for replica pinning so that when a replica is pinned in a datanode, it will not be moved by Balancer/Mover.  The replica pinning feature can be enabled/disabled by "dfs.datanode.block-pinning.enabled", where the default is false.</blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-5928">HDFS-5928</a>.
+     Major sub-task reported by Siqi Li and fixed by Siqi Li <br>
+     <b>show namespace and namenode ID on NN dfshealth page</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>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-5853">HDFS-5853</a>.
+     Minor improvement reported by Akira AJISAKA and fixed by Akira AJISAKA (documentation , namenode)<br>
+     <b>Add "hadoop.user.group.metrics.percentiles.intervals" to hdfs-default.xml</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>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-5782">HDFS-5782</a>.
+     Minor sub-task reported by David Powell and fixed by Joe Pallas (datanode)<br>
+     <b>BlockListAsLongs should take lists of Replicas rather than concrete classes</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>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-5631">HDFS-5631</a>.
+     Minor sub-task reported by David Powell and fixed by Joe Pallas (datanode)<br>
+     <b>Expose interfaces required by FsDatasetSpi implementations</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>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-5578">HDFS-5578</a>.
+     Minor bug reported by Andrew Purtell and fixed by Andrew Purtell <br>
+     <b>[JDK8] Fix Javadoc errors caused by incorrect or illegal tags in doc comments</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>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-5445">HDFS-5445</a>.
+     Minor bug reported by Jonathan Mace and fixed by Jonathan Mace (datanode)<br>
+     <b>PacketReceiver populates the packetLen field in PacketHeader incorrectly</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>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-4266">HDFS-4266</a>.
+     Major sub-task reported by Ivan Kelly and fixed by Rakesh R (ha)<br>
+     <b>BKJM: Separate write and ack quorum</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>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-4265">HDFS-4265</a>.
+     Major sub-task reported by Ivan Kelly and fixed by Rakesh R (ha)<br>
+     <b>BKJM doesn't take advantage of speculative reads</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>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-3689">HDFS-3689</a>.
+     Major new feature reported by Suresh Srinivas and fixed by Jing Zhao (datanode , hdfs-client , namenode)<br>
+     <b>Add support for variable length block</b><br>
+     <blockquote>1. HDFS now can choose to append data to a new block instead of end of the last partial block. Users can pass {{CreateFlag.APPEND}} and  {{CreateFlag.NEW_BLOCK}} to the {{append}} API to indicate this requirement.
+2. HDFS now allows users to pass {{SyncFlag.END_BLOCK}} to the {{hsync}} API to finish the current block and write remaining data to a new block.</blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-3519">HDFS-3519</a>.
+     Critical bug reported by Todd Lipcon and fixed by Ming Ma (namenode)<br>
+     <b>Checkpoint upload may interfere with a concurrent saveNamespace</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>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-3342">HDFS-3342</a>.
+     Minor improvement reported by Todd Lipcon and fixed by Yongjun Zhang (datanode)<br>
+     <b>SocketTimeoutException in BlockSender.sendChunks could have a better error message</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>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-3107">HDFS-3107</a>.
+     Major new feature reported by Lei Chang and fixed by Plamen Jeliazkov (datanode , namenode)<br>
+     <b>HDFS truncate</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>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-2605">HDFS-2605</a>.
+     Major bug reported by Konstantin Shvachko and fixed by Allen Wittenauer (documentation)<br>
+     <b>CHANGES.txt has two "Release 0.21.1" sections</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>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-2486">HDFS-2486</a>.
+     Minor task reported by Steve Loughran and fixed by Uma Maheswara Rao G (namenode)<br>
+     <b>Review issues with UnderReplicatedBlocks</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>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-2219">HDFS-2219</a>.
+     Minor improvement reported by Jitendra Nath Pandey and fixed by Tsz Wo Nicholas Sze (tools)<br>
+     <b>Fsck should work with fully qualified file paths.</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>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-1522">HDFS-1522</a>.
+     Major bug reported by Konstantin Shvachko and fixed by Dongming Liang (datanode)<br>
+     <b>Merge Block.BLOCK_FILE_PREFIX and DataStorage.BLOCK_FILE_PREFIX into one constant</b><br>
+     <blockquote>This merges Block.BLOCK_FILE_PREFIX and DataStorage.BLOCK_FILE_PREFIX into one constant. Hard-coded
+literals of "blk_" in various files are also updated to use the same constant. </blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-1362">HDFS-1362</a>.
+     Major new feature reported by Wang Xu and fixed by Wang Xu (datanode)<br>
+     <b>Provide volume management functionality for DataNode</b><br>
+     <blockquote>Based on the reconfiguration framework provided by HADOOP-7001, enable reconfigure the dfs.datanode.data.dir and add new volumes into service.</blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-316">HDFS-316</a>.
+     Minor improvement reported by Brian Bockelman and fixed by Xiaoyu Yao (balancer &amp; mover)<br>
+     <b>Balancer should run for a configurable # of iterations</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>
+<li> <a href="https://issues.apache.org/jira/browse/HDFS-49">HDFS-49</a>.
+     Minor bug reported by Steve Loughran and fixed by Steve Loughran (test)<br>
+     <b>MiniDFSCluster.stopDataNode will always shut down a node in the cluster if a matching name is not found</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>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11815">HADOOP-11815</a>.
+     Blocker bug reported by Rohith and fixed by Rohith <br>
+     <b>HttpServer2 should destroy SignerSecretProvider when it stops</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>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11801">HADOOP-11801</a>.
+     Minor improvement reported by Gabor Liptak and fixed by Gabor Liptak (documentation)<br>
+     <b>Update BUILDING.txt for Ubuntu</b><br>
+     <blockquote>ProtocolBuffer is packaged in Ubuntu</blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11796">HADOOP-11796</a>.
+     Minor sub-task reported by Xiaoyu Yao and fixed by Xiaoyu Yao (test)<br>
+     <b>Skip TestShellBasedIdMapping.testStaticMapUpdate on Windows</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>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11787">HADOOP-11787</a>.
+     Critical bug reported by Colin Patrick McCabe and fixed by Kiran Kumar M R (native)<br>
+     <b>OpensslSecureRandom.c pthread_threadid_np usage signature is wrong on 32-bit Mac</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>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11776">HADOOP-11776</a>.
+     Blocker bug reported by Li Lu and fixed by Li Lu <br>
+     <b>jdiff is broken in Hadoop 2</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>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11761">HADOOP-11761</a>.
+     Minor bug reported by Li Lu and fixed by Li Lu <br>
+     <b>Fix findbugs warnings in org.apache.hadoop.security.authentication</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11757">HADOOP-11757</a>.
+     Major bug reported by Brandon Li and fixed by Brandon Li (nfs)<br>
+     <b>NFS gateway should shutdown when it can't start UDP or TCP server</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11754">HADOOP-11754</a>.
+     Blocker bug reported by Sangjin Lee and fixed by Haohui Mai <br>
+     <b>RM fails to start in non-secure mode due to authentication filter failure</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11748">HADOOP-11748</a>.
+     Critical bug reported by Haohui Mai and fixed by Li Lu <br>
+     <b>The secrets of auth cookies should not be specified in configuration in clear text</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11738">HADOOP-11738</a>.
+     Major bug reported by Tsuyoshi Ozawa and fixed by Tsuyoshi Ozawa <br>
+     <b>Fix a link of Protocol Buffers 2.5 for download in BUILDING.txt </b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11729">HADOOP-11729</a>.
+     Minor bug reported by Masatake Iwasaki and fixed by Masatake Iwasaki (documentation)<br>
+     <b>Fix link to cgroups doc in site.xml</b><br>
+     <blockquote>Committed this to trunk, branch-2, and branch-2.7. Thanks Masatake for your contribution!</blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11722">HADOOP-11722</a>.
+     Major bug reported by Arun Suresh and fixed by Arun Suresh <br>
+     <b>Some Instances of Services using ZKDelegationTokenSecretManager go down when old token cannot be deleted</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11720">HADOOP-11720</a>.
+     Major bug reported by Akira AJISAKA and fixed by Akira AJISAKA (documentation)<br>
+     <b>[JDK8] Fix javadoc errors caused by incorrect or illegal tags in hadoop-tools</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11714">HADOOP-11714</a>.
+     Minor improvement reported by Colin Patrick McCabe and fixed by Colin Patrick McCabe (tracing)<br>
+     <b>Add more trace log4j messages to SpanReceiverHost</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11710">HADOOP-11710</a>.
+     Critical sub-task reported by Sean Busbey and fixed by Sean Busbey (fs)<br>
+     <b>Make CryptoOutputStream behave like DFSOutputStream wrt synchronization</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11693">HADOOP-11693</a>.
+     Major bug reported by Duo Xu and fixed by Duo Xu (tools)<br>
+     <b>Azure Storage FileSystem rename operations are throttled too aggressively to complete HBase WAL archiving.</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11691">HADOOP-11691</a>.
+     Critical bug reported by Remus Rusanu and fixed by Kiran Kumar M R (build , native)<br>
+     <b>X86 build of libwinutils is broken</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11686">HADOOP-11686</a>.
+     Major bug reported by zhangduo and fixed by zhangduo (security , test)<br>
+     <b>MiniKDC cannot change ORG_NAME or ORG_DOMAIN</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11674">HADOOP-11674</a>.
+     Critical bug reported by Sean Busbey and fixed by Sean Busbey (io)<br>
+     <b>oneByteBuf in CryptoInputStream and CryptoOutputStream should be non static</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11670">HADOOP-11670</a>.
+     Blocker sub-task reported by Adam Budde and fixed by Adam Budde (fs/s3)<br>
+     <b>Regression: s3a auth setup broken </b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11666">HADOOP-11666</a>.
+     Major bug reported by Akira AJISAKA and fixed by Byron Wong <br>
+     <b>Revert the format change of du output introduced by HADOOP-6857</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11658">HADOOP-11658</a>.
+     Minor improvement reported by Kai Zheng and fixed by Kai Zheng <br>
+     <b>Externalize io.compression.codecs property</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11648">HADOOP-11648</a>.
+     Major improvement reported by Liang Xie and fixed by Liang Xie (net)<br>
+     <b>Set DomainSocketWatcher thread name explicitly</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11642">HADOOP-11642</a>.
+     Major improvement reported by shashank and fixed by shashank (tools)<br>
+     <b>Upgrade azure sdk version from 0.6.0 to 2.0.0</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11639">HADOOP-11639</a>.
+     Major bug reported by Chris Nauroth and fixed by Remus Rusanu (native)<br>
+     <b>Clean up Windows native code compilation warnings related to Windows Secure Container Executor.</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11638">HADOOP-11638</a>.
+     Major bug reported by Dmitry Sivachenko and fixed by Kiran Kumar M R (native)<br>
+     <b>OpensslSecureRandom.c pthreads_thread_id should support FreeBSD and Solaris in addition to Linux</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11634">HADOOP-11634</a>.
+     Major bug reported by Brahma Reddy Battula and fixed by Brahma Reddy Battula (documentation)<br>
+     <b>Description of webhdfs' principal/keytab should switch places each other</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11633">HADOOP-11633</a>.
+     Major improvement reported by Colin Patrick McCabe and fixed by Masatake Iwasaki (documentation)<br>
+     <b>Convert remaining branch-2 .apt.vm files to markdown</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11632">HADOOP-11632</a>.
+     Minor improvement reported by Akira AJISAKA and fixed by Akira AJISAKA <br>
+     <b>Cleanup Find.java to remove SupressWarnings annotations</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11629">HADOOP-11629</a>.
+     Major bug reported by shanyu zhao and fixed by shanyu zhao (tools)<br>
+     <b>WASB filesystem should not start BandwidthGaugeUpdater if fs.azure.skip.metrics set to true</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11620">HADOOP-11620</a>.
+     Major improvement reported by Arun Suresh and fixed by Arun Suresh (kms)<br>
+     <b>Add support for load balancing across a group of KMS for HA</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11619">HADOOP-11619</a>.
+     Major bug reported by Gera Shegalov and fixed by Brahma Reddy Battula (fs)<br>
+     <b>FTPFileSystem should override getDefaultPort</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11618">HADOOP-11618</a>.
+     Major bug reported by Gera Shegalov and fixed by Brahma Reddy Battula (fs)<br>
+     <b>DelegateToFileSystem erroneously uses default FS's port in constructor  </b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11615">HADOOP-11615</a>.
+     Minor bug reported by Akira AJISAKA and fixed by Brahma Reddy Battula (documentation)<br>
+     <b>Update ServiceLevelAuth.md for YARN</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11612">HADOOP-11612</a>.
+     Major task reported by Robert Kanter and fixed by Robert Kanter <br>
+     <b>Workaround for Curator's ChildReaper requiring Guava 15+</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11609">HADOOP-11609</a>.
+     Major bug reported by Brahma Reddy Battula and fixed by Varun Saxena (documentation , security)<br>
+     <b>Correct credential commands info in CommandsManual.html#credential</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11607">HADOOP-11607</a>.
+     Trivial improvement reported by Lei (Eddy) Xu and fixed by Lei (Eddy) Xu (fs/s3)<br>
+     <b>Reduce log spew in S3AFileSystem</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11605">HADOOP-11605</a>.
+     Minor bug reported by Gera Shegalov and fixed by Gera Shegalov (fs)<br>
+     <b>FilterFileSystem#create with ChecksumOpt should propagate it to wrapped FS</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11604">HADOOP-11604</a>.
+     Critical bug reported by Liang Xie and fixed by Chris Nauroth (net)<br>
+     <b>Prevent ConcurrentModificationException while closing domain sockets during shutdown of DomainSocketWatcher thread.</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11602">HADOOP-11602</a>.
+     Blocker bug reported by Tsuyoshi Ozawa and fixed by Tsuyoshi Ozawa <br>
+     <b>Fix toUpperCase/toLowerCase to use Locale.ENGLISH</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11600">HADOOP-11600</a>.
+     Major sub-task reported by Tsuyoshi Ozawa and fixed by Tsuyoshi Ozawa <br>
+     <b>Fix up source codes to be compiled with Guava 17.0</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11599">HADOOP-11599</a>.
+     Minor improvement reported by zhihai xu and fixed by zhihai xu (ipc)<br>
+     <b>Client#getTimeout should use IPC_CLIENT_PING_DEFAULT when IPC_CLIENT_PING_KEY is not configured.</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11595">HADOOP-11595</a>.
+     Major bug reported by Yi Liu and fixed by Yi Liu (fs)<br>
+     <b>Add default implementation for AbstractFileSystem#truncate</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11589">HADOOP-11589</a>.
+     Minor improvement reported by Akira AJISAKA and fixed by Rakesh R (net)<br>
+     <b>NetUtils.createSocketAddr should trim the input URI</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11587">HADOOP-11587</a>.
+     Trivial bug reported by Xiaoyu Yao and fixed by Xiaoyu Yao (test)<br>
+     <b>TestMapFile#testMainMethodMapFile creates test files in hadoop-common project root</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11586">HADOOP-11586</a>.
+     Minor improvement reported by Ray Chiang and fixed by Ray Chiang (metrics)<br>
+     <b>Update use of Iterator to Iterable in AbstractMetricsContext.java</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11584">HADOOP-11584</a>.
+     Blocker sub-task reported by Dan Hecht and fixed by Brahma Reddy Battula (fs/s3)<br>
+     <b>s3a file block size set to 0 in getFileStatus</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11579">HADOOP-11579</a>.
+     Major improvement reported by Steve Loughran and fixed by Konstantin Shvachko (documentation)<br>
+     <b>Documentation for truncate</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11571">HADOOP-11571</a>.
+     Blocker bug reported by Steve Loughran and fixed by Steve Loughran (fs/s3)<br>
+     <b>&#220;ber-jira: S3a stabilisation phase I</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11570">HADOOP-11570</a>.
+     Major sub-task reported by Dan Hecht and fixed by Dan Hecht (fs/s3)<br>
+     <b>S3AInputStream.close() downloads the remaining bytes of the object from S3</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11569">HADOOP-11569</a>.
+     Major improvement reported by Vinayakumar B and fixed by Vinayakumar B <br>
+     <b>Provide Merge API for MapFile to merge multiple similar MapFiles to one MapFile</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11558">HADOOP-11558</a>.
+     Minor bug reported by Masatake Iwasaki and fixed by Jean-Pierre Matsumoto (documentation)<br>
+     <b>Fix dead links to doc of hadoop-tools</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11549">HADOOP-11549</a>.
+     Major bug reported by Yongjun Zhang and fixed by Yongjun Zhang (tools)<br>
+     <b>flaky test detection tool failed to handle special control characters in test result</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11548">HADOOP-11548</a>.
+     Major bug reported by Colin Patrick McCabe and fixed by Anu Engineer (build , native)<br>
+     <b>checknative should display a nicer error message when openssl support is not compiled in</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11547">HADOOP-11547</a>.
+     Major bug reported by Chris Nauroth and fixed by Chris Nauroth (native)<br>
+     <b>hadoop-common native compilation fails on Windows due to missing support for __attribute__ declaration.</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11546">HADOOP-11546</a>.
+     Major bug reported by Steve Loughran and fixed by Tsuyoshi Ozawa (build)<br>
+     <b>Checkstyle failing: Unable to instantiate DoubleCheckedLockingCheck</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11545">HADOOP-11545</a>.
+     Minor bug reported by Brahma Reddy Battula and fixed by Brahma Reddy Battula (security)<br>
+     <b>ArrayIndexOutOfBoundsException is thrown with "hadoop credential list -provider"</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11544">HADOOP-11544</a>.
+     Trivial improvement reported by Masatake Iwasaki and fixed by Masatake Iwasaki <br>
+     <b>Remove unused configuration keys for tracing</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11543">HADOOP-11543</a>.
+     Trivial improvement reported by Jagadesh Kiran N and fixed by Brahma Reddy Battula (scripts)<br>
+     <b>Improve help message for hadoop/yarn command</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11535">HADOOP-11535</a>.
+     Minor test reported by Kai Zheng and fixed by Kai Zheng <br>
+     <b>TableMapping related tests failed due to 'successful' resolving of invalid test hostname</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11529">HADOOP-11529</a>.
+     Minor bug reported by Masatake Iwasaki and fixed by Masatake Iwasaki (tools)<br>
+     <b>Fix findbugs warnings in hadoop-archives</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11526">HADOOP-11526</a>.
+     Major bug reported by Ian Rogers and fixed by Anu Engineer (io , native)<br>
+     <b>Memory leak in Bzip2Compressor and Bzip2Decompressor</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11523">HADOOP-11523</a>.
+     Major bug reported by Duo Xu and fixed by Duo Xu (tools)<br>
+     <b>StorageException complaining " no lease ID" when updating FolderLastModifiedTime in WASB</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11522">HADOOP-11522</a>.
+     Major sub-task reported by Thomas Demoor and fixed by Thomas Demoor (fs/s3)<br>
+     <b>Update S3A Documentation</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11521">HADOOP-11521</a>.
+     Minor sub-task reported by Thomas Demoor and fixed by Thomas Demoor (fs/s3)<br>
+     <b>Make connection timeout configurable in s3a </b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11520">HADOOP-11520</a>.
+     Minor improvement reported by Thomas Demoor and fixed by Thomas Demoor (fs/s3)<br>
+     <b>Clean incomplete multi-part uploads in S3A tests</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11512">HADOOP-11512</a>.
+     Minor bug reported by Harsh J and fixed by Ryan P (io)<br>
+     <b>Use getTrimmedStrings when reading serialization keys</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11510">HADOOP-11510</a>.
+     Major new feature reported by Yi Liu and fixed by Yi Liu (fs)<br>
+     <b>Expose truncate API via FileContext</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11509">HADOOP-11509</a>.
+     Major bug reported by Xuan Gong and fixed by Xuan Gong <br>
+     <b>change parsing sequence in GenericOptionsParser to parse -D parameters first</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11507">HADOOP-11507</a>.
+     Minor bug reported by Talat UYARER and fixed by Talat UYARER <br>
+     <b>Hadoop RPC Authentication problem with different user locale</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11506">HADOOP-11506</a>.
+     Major improvement reported by Dmitriy V. Ryaboy and fixed by Gera Shegalov (conf)<br>
+     <b>Configuration variable expansion regex expensive for long values</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11500">HADOOP-11500</a>.
+     Major bug reported by Ted Yu and fixed by Ted Yu <br>
+     <b>InputStream is left unclosed in ApplicationClassLoader</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11499">HADOOP-11499</a>.
+     Minor bug reported by Ted Yu and fixed by Ted Yu <br>
+     <b>Check of executorThreadsStarted in ValueQueue#submitRefillTask() evades lock acquisition</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11498">HADOOP-11498</a>.
+     Major improvement reported by Masatake Iwasaki and fixed by Masatake Iwasaki <br>
+     <b>Bump the version of HTrace to 3.1.0-incubating</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11497">HADOOP-11497</a>.
+     Major bug reported by Christian Winkler and fixed by Christian Winkler (documentation)<br>
+     <b>Fix typo in ClusterSetup.html#Hadoop_Startup</b><br>
+     <blockquote>Correct startup command for cluster data nodes</blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11495">HADOOP-11495</a>.
+     Major improvement reported by Allen Wittenauer and fixed by Masatake Iwasaki (documentation)<br>
+     <b>Convert site documentation from apt to markdown</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11494">HADOOP-11494</a>.
+     Minor bug reported by Ted Yu and fixed by Ted Yu <br>
+     <b>Lock acquisition on WrappedInputStream#unwrappedRpcBuffer may race with another thread</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11493">HADOOP-11493</a>.
+     Trivial bug reported by Charles Lamb and fixed by Charles Lamb (kms)<br>
+     <b>Fix some typos in kms-acls.xml description</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11492">HADOOP-11492</a>.
+     Major task reported by Karthik Kambatla and fixed by Arun Suresh <br>
+     <b>Bump up curator version to 2.7.1</b><br>
+     <blockquote>Apache Curator version change: Apache Hadoop has updated the version of Apache Curator used from 2.6.0 to 2.7.1. This change should be binary and source compatible for the majority of downstream users. Notable exceptions:
+# Binary incompatible change: org.apache.curator.utils.PathUtils.validatePath(String) changed return types. Downstream users of this method will need to recompile.
+# Source incompatible change: org.apache.curator.framework.recipes.shared.SharedCountReader added a method to its interface definition. Downstream users with custom implementations of this interface can continue without binary compatibility problems but will need to modify their source code to recompile.
+# Source incompatible change: org.apache.curator.framework.recipes.shared.SharedValueReader added a method to its interface definition. Downstream users with custom implementations of this interface can continue without binary compatibility problems but will need to modify their source code to recompile.
+
+Downstream users are reminded that while the Hadoop community will attempt to avoid egregious incompatible dependency changes, there is currently no policy around when Hadoop's exposed dependencies will change across versions (ref http://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-common/Compatibility.html#Java_Classpath).</blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11490">HADOOP-11490</a>.
+     Major new feature reported by Konstantin Shvachko and fixed by Milan Desai (fs)<br>
+     <b>Expose truncate API via FileSystem and shell command</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11489">HADOOP-11489</a>.
+     Minor task reported by Ted Yu and fixed by Ted Yu (nfs)<br>
+     <b>Dropping dependency on io.netty from hadoop-nfs' pom.xml</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11488">HADOOP-11488</a>.
+     Minor bug reported by Harsh J and fixed by Daisuke Kobayashi (fs/s3)<br>
+     <b>Difference in default connection timeout for S3A FS</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11483">HADOOP-11483</a>.
+     Major improvement reported by Colin Patrick McCabe and fixed by Akira AJISAKA <br>
+     <b>HardLink.java should use the jdk7 createLink method</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11482">HADOOP-11482</a>.
+     Major bug reported by Arun Suresh and fixed by Arun Suresh <br>
+     <b>Use correct UGI when KMSClientProvider is called by a proxy user</b><br>
+     <blockquote></blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11481">HADOOP-11481</a>.
+     Minor improvement reported by Yi Yao and fixed by Charles Lamb <br>
+     <b>ClassCastException while using a key created by keytool to create encryption zone. </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>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11480">HADOOP-11480</a>.
+     Minor bug reported by Ted Yu and fixed by Ted Yu (documentation)<br>
+     <b>Typo in hadoop-aws/index.md uses wrong scheme for test.fs.s3.name</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>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11470">HADOOP-11470</a>.
+     Major bug reported by Sangjin Lee and fixed by Sangjin Lee <br>
+     <b>Remove some uses of obsolete guava APIs from the hadoop codebase</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>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11469">HADOOP-11469</a>.
+     Minor bug reported by Dian Fu and fixed by Dian Fu (kms)<br>
+     <b>KMS should skip default.key.acl and whitelist.key.acl when loading key acl</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>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11467">HADOOP-11467</a>.
+     Critical bug reported by Robert Kanter and fixed by Yongjun Zhang (security)<br>
+     <b>KerberosAuthenticator can connect to a non-secure cluster</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>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11465">HADOOP-11465</a>.
+     Major sub-task reported by Varun Saxena and fixed by Varun Saxena <br>
+     <b>Fix findbugs warnings in hadoop-gridmix</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>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11464">HADOOP-11464</a>.
+     Major improvement reported by Chris Nauroth and fixed by Chris Nauroth (bin)<br>
+     <b>Reinstate support for launching Hadoop processes on Windows using Cygwin.</b><br>
+     <blockquote>We have reinstated support for launching Hadoop processes on Windows by using Cygwin to run the shell scripts.  All processes still must have access to the native components: hadoop.dll and winutils.exe.</blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11463">HADOOP-11463</a>.
+     Major task reported by Ted Yu and fixed by Ted Yu (fs/s3)<br>
+     <b>Replace method-local TransferManager object with S3AFileSystem#transfers</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>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11462">HADOOP-11462</a>.
+     Major bug reported by Ayappan and fixed by Ayappan (test)<br>
+     <b>TestSocketIOWithTimeout needs change for PowerPC platform</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>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11459">HADOOP-11459</a>.
+     Minor bug reported by Vinayakumar B and fixed by Vinayakumar B <br>
+     <b>Fix recent findbugs in ActiveStandbyElector, NetUtils and ShellBasedIdMapping</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>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11455">HADOOP-11455</a>.
+     Minor improvement reported by Charles Lamb and fixed by Charles Lamb (security)<br>
+     <b>KMS and Credential CLI should request confirmation for deletion by default</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>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11450">HADOOP-11450</a>.
+     Minor bug reported by Tsuyoshi Ozawa and fixed by Varun Saxena (tools/distcp)<br>
+     <b>Cleanup DistCpV1 not to use deprecated methods and fix javadocs</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>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11449">HADOOP-11449</a>.
+     Major bug reported by Alec Taylor and fixed by Chris Nauroth (build)<br>
+     <b>[JDK8] Cannot build on Windows: error: unexpected end tag: &lt;/ul&gt;</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>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11448">HADOOP-11448</a>.
+     Minor improvement reported by Akira AJISAKA and fixed by Tsuyoshi Ozawa <br>
+     <b>Fix findbugs warnings in FileBasedIPList</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>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11446">HADOOP-11446</a>.
+     Major bug reported by Ted Yu and fixed by Ted Yu (fs/s3)<br>
+     <b>S3AOutputStream should use shared thread pool to avoid OutOfMemoryError</b><br>
+     <blockquote>The following parameters are introduced in this JIRA:
+fs.s3a.threads.max:    the maximum number of threads to allow in the pool used by TransferManager
+fs.s3a.threads.core:    the number of threads to keep in the pool used by TransferManager
+fs.s3a.threads.keepalivetime:  when the number of threads is greater than the core, this is the maximum time that excess idle threads will wait for new tasks before terminating
+fs.s3a.max.total.tasks:    the maximum number of tasks that the LinkedBlockingQueue can hold</blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11445">HADOOP-11445</a>.
+     Critical bug reported by Ankit Kamboj and fixed by Ankit Kamboj <br>
+     <b>Bzip2Codec: Data block is skipped when position of newly created stream is equal to start of split</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>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11442">HADOOP-11442</a>.
+     Major improvement reported by shashank and fixed by shashank (tools)<br>
+     <b>hadoop-azure: Create test jar</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>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11441">HADOOP-11441</a>.
+     Minor improvement reported by shashank and fixed by shashank (tools)<br>
+     <b>Hadoop-azure: Change few methods scope to public</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>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11440">HADOOP-11440</a>.
+     Minor improvement reported by Akira AJISAKA and fixed by Kengo Seki <br>
+     <b>Use "test.build.data" instead of "build.test.dir" for testing in ClientBaseWithFixes</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>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11432">HADOOP-11432</a>.
+     Major test reported by Liang Xie and fixed by Liang Xie (fs)<br>
+     <b>Fix SymlinkBaseTest#testCreateLinkUsingPartQualPath2</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>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11431">HADOOP-11431</a>.
+     Major bug reported by Herv&#233; Boutemy and fixed by Herv&#233; Boutemy <br>
+     <b>clean up redundant maven-site-plugin configuration</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>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11430">HADOOP-11430</a>.
+     Major improvement reported by Colin Patrick McCabe and fixed by Colin Patrick McCabe <br>
+     <b>Add GenericTestUtils#disableLog, GenericTestUtils#setLogLevel</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>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11429">HADOOP-11429</a>.
+     Major sub-task reported by Varun Saxena and fixed by Varun Saxena <br>
+     <b>Findbugs warnings in hadoop extras</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>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11428">HADOOP-11428</a>.
+     Major bug reported by Arpit Agarwal and fixed by Arpit Agarwal (documentation)<br>
+     <b>Remove obsolete reference to Cygwin in BUILDING.txt</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>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11427">HADOOP-11427</a>.
+     Major improvement reported by Colin Patrick McCabe and fixed by Colin Patrick McCabe <br>
+     <b>ChunkedArrayList: fix removal via iterator and implement get</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>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11422">HADOOP-11422</a>.
+     Minor improvement reported by Yi Liu and fixed by Yi Liu <br>
+     <b>Check CryptoCodec is AES-CTR for Crypto input/output stream</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>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11421">HADOOP-11421</a>.
+     Major improvement reported by Colin Patrick McCabe and fixed by Colin Patrick McCabe <br>
+     <b>Add IOUtils#listDirectory</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>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11420">HADOOP-11420</a>.
+     Trivial bug reported by Herv&#233; Boutemy and fixed by Herv&#233; Boutemy (site)<br>
+     <b>Use latest maven-site-plugin and replace link to svn with link to git</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>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11419">HADOOP-11419</a>.
+     Minor improvement reported by Herv&#233; Boutemy and fixed by Herv&#233; Boutemy (build)<br>
+     <b>improve hadoop-maven-plugins</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>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11416">HADOOP-11416</a>.
+     Major improvement reported by Colin Patrick McCabe and fixed by Colin Patrick McCabe <br>
+     <b>Move ChunkedArrayList into hadoop-common</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>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11414">HADOOP-11414</a>.
+     Minor bug reported by Ted Yu and fixed by Tsuyoshi Ozawa <br>
+     <b>FileBasedIPList#readLines() can leak file descriptors</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>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11412">HADOOP-11412</a>.
+     Trivial bug reported by Herv&#233; Boutemy and fixed by Herv&#233; Boutemy <br>
+     <b>POMs mention "The Apache Software License" rather than "Apache License"</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>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11411">HADOOP-11411</a>.
+     Major bug reported by Jason Dere and fixed by  <br>
+     <b>Hive build failure on hadoop-2.7 due to HADOOP-11356</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>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11410">HADOOP-11410</a>.
+     Major improvement reported by Colin Patrick McCabe and fixed by Colin Patrick McCabe <br>
+     <b>make the rpath of libhadoop.so configurable </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>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11409">HADOOP-11409</a>.
+     Major bug reported by Jason Lowe and fixed by Gera Shegalov <br>
+     <b>FileContext.getFileContext can stack overflow if default fs misconfigured</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>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11403">HADOOP-11403</a>.
+     Major bug reported by Malcolm Kavalsky and fixed by Malcolm Kavalsky <br>
+     <b>Avoid using sys_errlist on Solaris, which lacks support for it</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>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11402">HADOOP-11402</a>.
+     Major bug reported by Colin Patrick McCabe and fixed by Varun Saxena <br>
+     <b>Negative user-to-group cache entries are never cleared for never-again-accessed users</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>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11400">HADOOP-11400</a>.
+     Major bug reported by Kamil Gorlo and fixed by Kamil Gorlo (metrics)<br>
+     <b>GraphiteSink does not reconnect to Graphite after 'broken pipe'</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>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11399">HADOOP-11399</a>.
+     Minor improvement reported by Ray Chiang and fixed by Ray Chiang <br>
+     <b>Java Configuration file and .xml files should be automatically cross-compared</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>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11396">HADOOP-11396</a>.
+     Major improvement reported by Chris Nauroth and fixed by Chris Nauroth (documentation)<br>
+     <b>Provide navigation in the site documentation linking to the Hadoop Compatible File Systems.</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>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11395">HADOOP-11395</a>.
+     Major improvement reported by Chris Nauroth and fixed by Chris Nauroth (documentation)<br>
+     <b>Add site documentation for Azure Storage FileSystem integration.</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>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11394">HADOOP-11394</a>.
+     Major bug reported by Chris Nauroth and fixed by Chris Nauroth (documentation)<br>
+     <b>hadoop-aws documentation missing.</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>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11390">HADOOP-11390</a>.
+     Minor improvement reported by Steve Loughran and fixed by Varun Saxena (metrics)<br>
+     <b>Metrics 2 ganglia provider to include hostname in unresolved address problems</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>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11389">HADOOP-11389</a>.
+     Major sub-task reported by Haohui Mai and fixed by Haohui Mai <br>
+     <b>Clean up byte to string encoding issues in hadoop-common</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>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11388">HADOOP-11388</a>.
+     Minor bug reported by Haohui Mai and fixed by Li Lu <br>
+     <b>Remove deprecated o.a.h.metrics.file.FileContext</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>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11386">HADOOP-11386</a>.
+     Major bug reported by Li Lu and fixed by Li Lu <br>
+     <b>Replace \n by %n in format hadoop-common format strings</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>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11385">HADOOP-11385</a>.
+     Critical bug reported by Haohui Mai and fixed by Haohui Mai <br>
+     <b>Prevent cross site scripting attack on JMXJSONServlet</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>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11381">HADOOP-11381</a>.
+     Major sub-task reported by Li Lu and fixed by Li Lu <br>
+     <b>Fix findbugs warnings in hadoop-distcp, hadoop-aws, hadoop-azure, and hadoop-openstack</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>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11379">HADOOP-11379</a>.
+     Major sub-task reported by Li Lu and fixed by Li Lu <br>
+     <b>Fix new findbugs warnings in hadoop-auth*</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>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11378">HADOOP-11378</a>.
+     Major sub-task reported by Li Lu and fixed by Li Lu <br>
+     <b>Fix new findbugs warnings in hadoop-kms</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>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11377">HADOOP-11377</a>.
+     Major sub-task reported by Steve Loughran and fixed by Tsuyoshi Ozawa (build)<br>
+     <b>jdiff failing on java 7 and java 8, "Null.java" not found</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>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11372">HADOOP-11372</a>.
+     Major sub-task reported by Li Lu and fixed by Li Lu <br>
+     <b>Fix new findbugs warnings in mapreduce-examples</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>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11370">HADOOP-11370</a>.
+     Major sub-task reported by Zhijie Shen and fixed by  <br>
+     <b>Fix new findbug warnings hadoop-yarn</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>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11369">HADOOP-11369</a>.
+     Major sub-task reported by Li Lu and fixed by Li Lu <br>
+     <b>Fix new findbugs warnings in hadoop-mapreduce-client, non-core directories</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>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11368">HADOOP-11368</a>.
+     Major bug reported by Arun Suresh and fixed by Arun Suresh (kms)<br>
+     <b>Fix SSLFactory truststore reloader thread leak in KMSClientProvider</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>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11367">HADOOP-11367</a>.
+     Major sub-task reported by Li Lu and fixed by Li Lu <br>
+     <b>Fix warnings from findbugs 3.0 in hadoop-streaming</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>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11363">HADOOP-11363</a>.
+     Major bug reported by Steve Loughran and fixed by Steve Loughran (build)<br>
+     <b>Hadoop maven surefire-plugin uses must set heap size</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>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11358">HADOOP-11358</a>.
+     Major test reported by Yi Liu and fixed by Yi Liu (security , test)<br>
+     <b>Tests for encryption/decryption with IV calculation overflow</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>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11355">HADOOP-11355</a>.
+     Minor bug reported by Arun Suresh and fixed by Arun Suresh <br>
+     <b>When accessing data in HDFS and the key has been deleted, a Null Pointer Exception is shown.</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>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11354">HADOOP-11354</a>.
+     Major bug reported by Ted Yu and fixed by Ted Yu <br>
+     <b>ThrottledInputStream doesn't perform effective throttling</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>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11350">HADOOP-11350</a>.
+     Major bug reported by Benoy Antony and fixed by Benoy Antony (security)<br>
+     <b>The size of header buffer of HttpServer is too small when HTTPS is enabled</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>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11349">HADOOP-11349</a>.
+     Minor bug reported by Chris Nauroth and fixed by Varun Saxena (fs)<br>
+     <b>RawLocalFileSystem leaks file descriptor while creating a file if creat succeeds but chmod 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>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11348">HADOOP-11348</a>.
+     Minor bug reported by Dian Fu and fixed by Dian Fu <br>
+     <b>Remove unused variable from CMake error message for finding openssl</b><br>
+     <blockquote>Test failure is unrelated.  Committed to 2.7.  Thanks, Dian.</blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11344">HADOOP-11344</a>.
+     Major bug reported by Arun Suresh and fixed by Arun Suresh <br>
+     <b>KMS kms-config.sh sets a default value for the keystore password even in non-ssl setup</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>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11343">HADOOP-11343</a>.
+     Blocker bug reported by Jerry Chen and fixed by Jerry Chen (security)<br>
+     <b>Overflow is not properly handled in caclulating final iv for AES CTR</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>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11342">HADOOP-11342</a>.
+     Major bug reported by Dian Fu and fixed by Dian Fu (kms , security)<br>
+     <b>KMS key ACL should ignore ALL operation for default key ACL and whitelist key ACL</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>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11341">HADOOP-11341</a>.
+     Major new feature reported by Arun Suresh and fixed by Arun Suresh (kms , security)<br>
+     <b>KMS support for whitelist key ACLs</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>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11337">HADOOP-11337</a>.
+     Major bug reported by Dian Fu and fixed by Dian Fu <br>
+     <b>KeyAuthorizationKeyProvider access checks need to be done atomically</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>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11333">HADOOP-11333</a>.
+     Major bug reported by zhaoyunjiong and fixed by zhaoyunjiong <br>
+     <b>Fix deadlock in DomainSocketWatcher when the notification pipe is full</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>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11332">HADOOP-11332</a>.
+     Major bug reported by Dian Fu and fixed by Dian Fu (security)<br>
+     <b>KerberosAuthenticator#doSpnegoSequence should check if kerberos TGT is available in the subject </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>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11329">HADOOP-11329</a>.
+     Major bug reported by Dian Fu and fixed by Arun Suresh (kms , security)<br>
+     <b>Add JAVA_LIBRARY_PATH to KMS startup options</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>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11327">HADOOP-11327</a>.
+     Minor bug reported by Tim Luo and fixed by Eric Payne (util)<br>
+     <b>BloomFilter#not() omits the last bit, resulting in an incorrect filter</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>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11323">HADOOP-11323</a>.
+     Major improvement reported by Wilfred Spiegelenburg and fixed by Wilfred Spiegelenburg (performance)<br>
+     <b>WritableComparator#compare keeps reference to byte array</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>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11322">HADOOP-11322</a>.
+     Major bug reported by Dian Fu and fixed by Dian Fu (security)<br>
+     <b>key based ACL check in KMS always check KeyOpType.MANAGEMENT even actual KeyOpType is not MANAGEMENT </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>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11321">HADOOP-11321</a>.
+     Major bug reported by Chris Nauroth and fixed by Chris Nauroth (fs)<br>
+     <b>copyToLocal cannot save a file to an SMB share unless the user has Full Control permissions.</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>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11318">HADOOP-11318</a>.
+     Major bug reported by Akira AJISAKA and fixed by Akira AJISAKA (documentation)<br>
+     <b>Update the document for hadoop fs -stat</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>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11317">HADOOP-11317</a>.
+     Major sub-task reported by Steve Loughran and fixed by Tim Robertson (build)<br>
+     <b>Increment SLF4J version to 1.7.10</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>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11316">HADOOP-11316</a>.
+     Blocker bug reported by Tsuyoshi Ozawa and fixed by Tsuyoshi Ozawa <br>
+     <b>"mvn package -Pdist,docs -DskipTests -Dtar" fails because of non-ascii characters</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>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11313">HADOOP-11313</a>.
+     Major improvement reported by Tsuyoshi Ozawa and fixed by Tsuyoshi Ozawa (documentation)<br>
+     <b>Adding a document about NativeLibraryChecker</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>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11312">HADOOP-11312</a>.
+     Major bug reported by Andrew Wang and fixed by Andrew Wang (security)<br>
+     <b>Fix unit tests to not use uppercase key names</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>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11311">HADOOP-11311</a>.
+     Major bug reported by Andrew Wang and fixed by Andrew Wang (security)<br>
+     <b>Restrict uppercase key names from being created with JCEKS</b><br>
+     <blockquote>Keys with uppercase names can no longer be created when using the JavaKeyStoreProvider to resolve ambiguity about case-sensitivity in the KeyStore spec.</blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11309">HADOOP-11309</a>.
+     Blocker bug reported by Gera Shegalov and fixed by Gera Shegalov <br>
+     <b>System class pattern package.Foo should match package.Foo$Bar, too</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>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11301">HADOOP-11301</a>.
+     Major improvement reported by Maysam Yabandeh and fixed by Maysam Yabandeh <br>
+     <b>[optionally] update jmx cache to drop old metrics</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>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11300">HADOOP-11300</a>.
+     Major bug reported by Arun Suresh and fixed by Arun Suresh (kms)<br>
+     <b>KMS startup scripts must not display the keystore / truststore passwords</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>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11295">HADOOP-11295</a>.
+     Major bug reported by Ming Ma and fixed by Ming Ma <br>
+     <b>RPC Server Reader thread can't shutdown if RPCCallQueue is full</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>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11294">HADOOP-11294</a>.
+     Minor bug reported by Brandon Li and fixed by Brandon Li (nfs)<br>
+     <b>Nfs3FileAttributes should not change the values of rdev, nlink and size in the constructor </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>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11291">HADOOP-11291</a>.
+     Minor improvement reported by Stephen Chu and fixed by Stephen Chu (security)<br>
+     <b>Log the cause of SASL connection failures</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>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11289">HADOOP-11289</a>.
+     Trivial bug reported by Charles Lamb and fixed by Charles Lamb (net)<br>
+     <b>Fix typo in RpcUtil log message</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>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11287">HADOOP-11287</a>.
+     Major bug reported by Haohui Mai and fixed by Li Lu <br>
+     <b>Simplify UGI#reloginFromKeytab for Java 7+</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>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11283">HADOOP-11283</a>.
+     Minor bug reported by Ted Yu and fixed by Varun Saxena <br>
+     <b>Potentially unclosed SequenceFile.Writer in DistCpV1#setup()</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>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11273">HADOOP-11273</a>.
+     Major bug reported by Gao Zhong Liang and fixed by Gao Zhong Liang (test)<br>
+     <b>TestMiniKdc failure: login options not compatible with IBM JDK</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>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11272">HADOOP-11272</a>.
+     Major bug reported by Arun Suresh and fixed by Arun Suresh <br>
+     <b>Allow ZKSignerSecretProvider and ZKDelegationTokenSecretManager to use the same curator client</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>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11271">HADOOP-11271</a>.
+     Minor bug reported by Vinayakumar B and fixed by Vinayakumar B <br>
+     <b>Use Time.monotonicNow() in Shell.java instead of Time.now()</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>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11269">HADOOP-11269</a>.
+     Major bug reported by Haohui Mai and fixed by Li Lu <br>
+     <b>Add java 8 profile for hadoop-annotations</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>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11268">HADOOP-11268</a>.
+     Minor bug reported by Haohui Mai and fixed by Li Lu <br>
+     <b>Update BUILDING.txt to remove the workaround for tools.jar</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>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11267">HADOOP-11267</a>.
+     Minor bug reported by Stephen Chu and fixed by Stephen Chu (security , test)<br>
+     <b>TestSecurityUtil fails when run with JDK8 because of empty principal names</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>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11266">HADOOP-11266</a>.
+     Trivial bug reported by Masatake Iwasaki and fixed by Masatake Iwasaki (build)<br>
+     <b>Remove no longer supported activation properties for packaging from pom</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>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11261">HADOOP-11261</a>.
+     Major improvement reported by Thomas Demoor and fixed by Thomas Demoor (fs/s3)<br>
+     <b>Set custom endpoint for S3A</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>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11257">HADOOP-11257</a>.
+     Blocker improvement reported by Allen Wittenauer and fixed by Masatake Iwasaki <br>
+     <b>Update "hadoop jar" documentation to warn against using it for launching yarn jars</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>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11256">HADOOP-11256</a>.
+     Minor bug reported by Masatake Iwasaki and fixed by Masatake Iwasaki (documentation)<br>
+     <b>Some site docs have inconsistent appearance</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>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11248">HADOOP-11248</a>.
+     Major bug reported by shanyu zhao and fixed by shanyu zhao (fs)<br>
+     <b>Add hadoop configuration to disable Azure Filesystem metrics collection</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>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11246">HADOOP-11246</a>.
+     Major bug reported by Haohui Mai and fixed by Steve Loughran <br>
+     <b>Move jenkins to Java 7</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>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11238">HADOOP-11238</a>.
+     Minor bug reported by Chris Li and fixed by Chris Li <br>
+     <b>Update the NameNode's Group Cache in the background when possible</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>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11236">HADOOP-11236</a>.
+     Trivial bug reported by Abhiraj Butala and fixed by Abhiraj Butala (documentation)<br>
+     <b>NFS: Fix javadoc warning in RpcProgram.java</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>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11231">HADOOP-11231</a>.
+     Minor improvement reported by Haohui Mai and fixed by Li Lu <br>
+     <b>Remove dead code in ServletUtil</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>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11230">HADOOP-11230</a>.
+     Major bug reported by Robert Kanter and fixed by Robert Kanter (test)<br>
+     <b>Add missing dependency of bouncycastle for kms, httpfs, hdfs, MR and YARN</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>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11213">HADOOP-11213</a>.
+     Minor bug reported by Wei Yan and fixed by Wei Yan <br>
+     <b>Typos in html pages: SecureMode and EncryptedShuffle</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>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11211">HADOOP-11211</a>.
+     Major bug reported by Yitong Zhou and fixed by Yitong Zhou <br>
+     <b>mapreduce.job.classloader.system.classes semantics should be order-independent</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>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11209">HADOOP-11209</a>.
+     Major bug reported by Josh Rosen and fixed by Varun Saxena (conf)<br>
+     <b>Configuration#updatingResource/finalParameters are not thread-safe</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>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11201">HADOOP-11201</a>.
+     Blocker bug reported by Gera Shegalov and fixed by Gera Shegalov (tools)<br>
+     <b>Hadoop Archives should support globs resolving to files</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>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11188">HADOOP-11188</a>.
+     Major improvement reported by Eric Hanson and fixed by Eric Hanson (fs)<br>
+     <b>hadoop-azure: automatically expand page blobs when they become full</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>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11187">HADOOP-11187</a>.
+     Major bug reported by Arun Suresh and fixed by Arun Suresh <br>
+     <b>NameNode - KMS communication fails after a long period of inactivity</b><br>
      <blockquote></blockquote></li>
-<li> <a href="https://issues.apache.org/jira/browse/HDFS-3248">HDFS-3248</a>.
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11186">HADOOP-11186</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>
+     <b>documentation should talk about hadoop.htrace.spanreceiver.classes, not hadoop.trace.spanreceiver.classes</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>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11183">HADOOP-11183</a>.
+     Major sub-task reported by Thomas Demoor and fixed by Thomas Demoor (fs/s3)<br>
+     <b>Memory-based S3AOutputstream</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>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11173">HADOOP-11173</a>.
+     Minor improvement reported by Andrew Wang and fixed by Andrew Wang <br>
+     <b>Improve error messages for some KeyShell commands</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>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11172">HADOOP-11172</a>.
+     Major improvement reported by Yongjun Zhang and fixed by Yongjun Zhang <br>
+     <b>Improve error message in Shell#runCommand on OutOfMemoryError</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>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11171">HADOOP-11171</a>.
+     Major improvement reported by Thomas Demoor and fixed by Thomas Demoor (fs/s3)<br>
+     <b>Enable using a proxy server to connect to S3a.</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>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11166">HADOOP-11166</a>.
+     Major bug reported by Andrew Wang and fixed by Andrew Wang <br>
+     <b>Remove ulimit from test-patch.sh</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>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11165">HADOOP-11165</a>.
+     Minor test reported by Ted Yu and fixed by Stephen Chu (test)<br>
+     <b>TestUTF8 fails when run against java 8</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>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11157">HADOOP-11157</a>.
+     Major bug reported by Gregory Chanan and fixed by Arun Suresh (security)<br>
+     <b>ZKDelegationTokenSecretManager never shuts down listenerThreadPool</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>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11156">HADOOP-11156</a>.
+     Major bug reported by zhihai xu and fixed by zhihai xu (fs)<br>
+     <b>DelegateToFileSystem should implement getFsStatus(final Path f).</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>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11125">HADOOP-11125</a>.
+     Major test reported by Ted Yu and fixed by Masanori Oyama <br>
+     <b>Remove redundant tests in TestOsSecureRandom</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>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11045">HADOOP-11045</a>.
+     Major improvement reported by Yongjun Zhang and fixed by Yongjun Zhang (build , tools)<br>
+     <b>Introducing a tool to detect flaky tests of hadoop jenkins test job</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>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11039">HADOOP-11039</a>.
+     Minor bug reported by Yi Liu and fixed by Yi Liu (documentation)<br>
+     <b>ByteBufferReadable API doc is inconsistent with the implementations.</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>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11032">HADOOP-11032</a>.
+     Major improvement reported by Gary Steelman and fixed by Tsuyoshi Ozawa <br>
+     <b>Replace use of Guava's Stopwatch with Hadoop's StopWatch</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>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11014">HADOOP-11014</a>.
+     Minor bug reported by Ted Yu and fixed by Tsuyoshi Ozawa (security)<br>
+     <b>Potential resource leak in JavaKeyStoreProvider due to unclosed stream</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>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11008">HADOOP-11008</a>.
+     Minor bug reported by Masatake Iwasaki and fixed by Masatake Iwasaki (documentation)<br>
+     <b>Remove duplicated description about proxy-user in site documents</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>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-11000">HADOOP-11000</a>.
+     Major bug reported by Ming Ma and fixed by Ming Ma <br>
+     <b>HAServiceProtocol's health state is incorrectly transitioned to SERVICE_NOT_RESPONDING</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>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10987">HADOOP-10987</a>.
+     Major improvement reported by Kihwal Lee and fixed by Kihwal Lee <br>
+     <b>Provide an iterator-based listing API for FileSystem</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>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10976">HADOOP-10976</a>.
+     Minor improvement reported by Masatake Iwasaki and fixed by Masatake Iwasaki (documentation)<br>
+     <b>moving the source code of hadoop-tools docs to the directory under hadoop-tools</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>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10953">HADOOP-10953</a>.
+     Minor bug reported by Liang Xie and fixed by Liang Xie (net)<br>
+     <b>NetworkTopology#add calls NetworkTopology#toString without holding the netlock</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>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10852">HADOOP-10852</a>.
+     Major bug reported by Benoy Antony and fixed by Benoy Antony (security)<br>
+     <b>NetgroupCache is not thread-safe</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>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10847">HADOOP-10847</a>.
+     Minor improvement reported by Kai Zheng and fixed by pascal oliva (security)<br>
+     <b>Remove the usage of sun.security.x509.* in testing code</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>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10840">HADOOP-10840</a>.
+     Major bug reported by shanyu zhao and fixed by shanyu zhao (metrics)<br>
+     <b>Fix OutOfMemoryError caused by metrics system in Azure File System</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>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10809">HADOOP-10809</a>.
+     Major improvement reported by Mike Liddell and fixed by Eric Hanson (tools)<br>
+     <b>hadoop-azure: page blob support</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>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10786">HADOOP-10786</a>.
+     Major improvement reported by Tobi Vollebregt and fixed by Stephen Chu (security)<br>
+     <b>Fix UGI#reloginFromKeytab on Java 8</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>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10748">HADOOP-10748</a>.
+     Major bug reported by Haohui Mai and fixed by Haohui Mai <br>
+     <b>HttpServer2 should not load JspServlet</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>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10728">HADOOP-10728</a>.
+     Major new feature reported by Mike Liddell and fixed by Mike Liddell (tools)<br>
+     <b>Metrics system for Windows Azure Storage Filesystem</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>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10717">HADOOP-10717</a>.
+     Blocker bug reported by Dapeng Sun and fixed by Dapeng Sun <br>
+     <b>HttpServer2 should load jsp DTD from local jars instead of going remote</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>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10714">HADOOP-10714</a>.
+     Critical bug reported by David S. Wang and fixed by Juan Yu (fs/s3)<br>
+     <b>AmazonS3Client.deleteObjects() need to be limited to 1000 entries per call</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>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10703">HADOOP-10703</a>.
+     Major bug reported by Benoy Antony and fixed by Benoy Antony (security)<br>
+     <b>HttpServer2 creates multiple authentication filters</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>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10690">HADOOP-10690</a>.
+     Minor bug reported by Ted Yu and fixed by Chen He (tools)<br>
+     <b>Lack of synchronization on access to InputStream in NativeAzureFileSystem#NativeAzureFsInputStream#close()</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>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10689">HADOOP-10689</a>.
+     Minor bug reported by Ted Yu and fixed by Chen He (tools)<br>
+     <b>InputStream is not closed in AzureNativeFileSystemStore#retrieve()</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>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10670">HADOOP-10670</a>.
+     Minor improvement reported by Kai Zheng and fixed by Kai Zheng (security)<br>
+     <b>Allow AuthenticationFilters to load secret from signature secret files</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>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10668">HADOOP-10668</a>.
+     Major test reported by Ted Yu and fixed by Ming Ma (test)<br>
+     <b>TestZKFailoverControllerStress#testExpireBackAndForth occasionally fails</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>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10651">HADOOP-10651</a>.
+     Major sub-task reported by Benoy Antony and fixed by Benoy Antony (security)<br>
+     <b>Add ability to restrict service access using IP addresses and hostnames</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>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10626">HADOOP-10626</a>.
+     Major improvement reported by Jason Hubbard and fixed by Jason Hubbard (security)<br>
+     <b>Limit Returning Attributes for LDAP search</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>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10574">HADOOP-10574</a>.
+     Major sub-task reported by Steve Loughran and fixed by Akira AJISAKA (build)<br>
+     <b>Bump the maven plugin versions too -moving the numbers into properties</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>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10563">HADOOP-10563</a>.
+     Major improvement reported by Haohui Mai and fixed by Haohui Mai <br>
+     <b>Remove the dependency of jsp in trunk</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>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10542">HADOOP-10542</a>.
+     Minor bug reported by Ted Yu and fixed by Ted Yu (fs/s3)<br>
+     <b>Potential null pointer dereference in Jets3tFileSystemStore#retrieveBlock()</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>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10530">HADOOP-10530</a>.
+     Blocker improvement reported by Steve Loughran and fixed by Steve Loughran (build)<br>
+     <b>Make hadoop trunk build on Java7+ only</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>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10525">HADOOP-10525</a>.
+     Minor improvement reported by Akira AJISAKA and fixed by Akira AJISAKA <br>
+     <b>Remove DRFA.MaxBackupIndex config from log4j.properties</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>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10482">HADOOP-10482</a>.
+     Major sub-task reported by Haohui Mai and fixed by Haohui Mai <br>
+     <b>Fix various findbugs warnings in hadoop-common</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>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10478">HADOOP-10478</a>.
+     Major sub-task reported by Haohui Mai and fixed by Li Lu <br>
+     <b>Fix new findbugs warnings in hadoop-maven-plugins</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>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10476">HADOOP-10476</a>.
+     Major sub-task reported by Haohui Mai and fixed by Haohui Mai (build)<br>
+     <b>Bumping the findbugs version to 3.0.0</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>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10181">HADOOP-10181</a>.
+     Minor bug reported by Andrew Otto and fixed by Andrew Johnson (metrics)<br>
+     <b>GangliaContext does not work with multicast ganglia setup</b><br>
+     <blockquote>Hadoop metrics sent to Ganglia over multicast now support optional configuration of socket TTL.  The default TTL is 1, which preserves the behavior of prior Hadoop versions.  Clusters that span multiple subnets/VLANs will likely want to increase this.</blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10140">HADOOP-10140</a>.
+     Minor improvement reported by Ian Jackson and fixed by Kiran Kumar M R (scripts)<br>
+     <b>Specification of HADOOP_CONF_DIR via the environment in hadoop_config.cmd</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>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10134">HADOOP-10134</a>.
+     Minor bug reported by Andrew Purtell and fixed by Andrew Purtell <br>
+     <b>[JDK8] Fix Javadoc errors caused by incorrect or illegal tags in doc comments </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>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-10062">HADOOP-10062</a>.
+     Major bug reported by Shinichi Yamashita and fixed by Sangjin Lee (metrics)<br>
+     <b>race condition in MetricsSystemImpl#publishMetricsNow that causes incorrect results</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>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9992">HADOOP-9992</a>.
+     Major improvement reported by Akshay Radia and fixed by Akshay Radia (test)<br>
+     <b>Modify the NN loadGenerator to optionally run as a MapReduce job</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>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9922">HADOOP-9922</a>.
+     Major bug reported by Vinayakumar B and fixed by Kiran Kumar M R (build , native)<br>
+     <b>hadoop windows native build will fail in 32 bit machine</b><br>
+     <blockquote>The Hadoop Common native components now support 32-bit build targets on Windows.</blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9907">HADOOP-9907</a>.
+     Critical bug reported by Jian He and fixed by Akira AJISAKA <br>
+     <b>Webapp http://hostname:port/metrics  link is not working </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>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9869">HADOOP-9869</a>.
+     Minor improvement reported by Steve Loughran and fixed by Tsuyoshi Ozawa (conf)<br>
+     <b> Configuration.getSocketAddr()/getEnum() should use getTrimmed()</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.
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9629">HADOOP-9629</a>.
+     Major new feature reported by Mostafa Elhemali and fixed by Chris Nauroth (tools)<br>
+     <b>Support Windows Azure Storage - Blob as a file system in Hadoop</b><br>
+     <blockquote>Hadoop now supports integration with Azure Storage as an alternative Hadoop Compatible File System.</blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9329">HADOOP-9329</a>.
+     Trivial task reported by Colin Patrick McCabe and fixed by Vijay Bhat (documentation)<br>
+     <b>document native build dependencies in BUILDING.txt</b><br>
+     <blockquote>Added a section to BUILDING.txt on how to install required / optional packages on a clean install of Ubuntu 14.04 LTS Desktop.
 
-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:
+Went through the CMakeLists.txt files in the repo and added the following optional library dependencies - Snappy, Bzip2, Linux FUSE and Jansson.
 
-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.
+Updated the required packages / version numbers from the trunk branch version of BUILDING.txt.
 </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>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9137">HADOOP-9137</a>.
+     Major bug reported by Sanjay Radia and fixed by Kihwal Lee <br>
+     <b>Support connection limiting in IPC server</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>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-9087">HADOOP-9087</a>.
+     Minor bug reported by Mostafa Elhemali and fixed by Akira AJISAKA (metrics)<br>
+     <b>Queue size metric for metric sinks isn't actually maintained</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>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8989">HADOOP-8989</a>.
+     Major new feature reported by Marco Nicosia and fixed by Jonathan Allen <br>
+     <b>hadoop fs -find feature</b><br>
+     <blockquote>New fs -find command</blockquote></li>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8757">HADOOP-8757</a>.
+     Minor improvement reported by Todd Lipcon and fixed by Ray Chiang (metrics)<br>
+     <b>Metrics should disallow names with invalid characters</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>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8642">HADOOP-8642</a>.
+     Major bug reported by Eli Collins and fixed by Akira AJISAKA (documentation , native)<br>
+     <b>Document that io.native.lib.available only controls native bz2 and zlib compression codecs</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>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-8059">HADOOP-8059</a>.
+     Major improvement reported by Suresh Srinivas and fixed by Brandon Li (documentation)<br>
+     <b>Add javadoc to InterfaceAudience and InterfaceStability</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>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-7984">HADOOP-7984</a>.
+     Minor new feature reported by Eli Collins and fixed by Akira AJISAKA (scripts)<br>
+     <b>Add hadoop --loglevel option to change log level</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>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-6221">HADOOP-6221</a>.
+     Minor bug reported by Steve Loughran and fixed by Steve Loughran (ipc)<br>
+     <b>RPC Client operations cannot be interrupted</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>
+<li> <a href="https://issues.apache.org/jira/browse/HADOOP-4297">HADOOP-4297</a>.
+     Major improvement reported by Yoram Kulbak and fixed by Tsz Wo Nicholas Sze (build)<br>
+     <b>Enable Java assertions when running tests</b><br>
      <blockquote></blockquote></li>
 </ul>
 </body></html>
