Commit Graph

4071 Commits

Author SHA1 Message Date
Zhe Zhang 06e38c835d HDFS-10458. getFileEncryptionInfo should return quickly for non-encrypted cluster.
(cherry picked from commit 6de9213df1)
2016-06-06 15:53:12 -07:00
Tsz-Wo Nicholas Sze 074588d78b Revert "Revert "HADOOP-13226 Support async call retry and failover.""
This reverts commit 5bfadb8e6b.
2016-06-06 16:52:24 +08:00
Tsz-Wo Nicholas Sze 48323b6636 Revert "Revert "HDFS-10430. Reuse FileSystem#access in TestAsyncDFS. Contributed by Xiaobing Zhou.""
This reverts commit 6f8f40b2a5.
2016-06-06 16:52:19 +08:00
Tsz-Wo Nicholas Sze 6762855f67 Revert "Revert "HDFS-10431 Refactor and speedup TestAsyncDFSRename. Contributed by Xiaobing Zhou""
This reverts commit 8e2245d0a4.
2016-06-06 16:52:14 +08:00
Tsz-Wo Nicholas Sze 136d3b6414 Revert "Revert "HDFS-10390. Implement asynchronous setAcl/getAclStatus for DistributedFileSystem. Contributed by Xiaobing Zhou""
This reverts commit 87ea0784eb.
2016-06-06 16:52:09 +08:00
Tsz-Wo Nicholas Sze 09a543fc86 Revert "Revert "HADOOP-13168. Support Future.get with timeout in ipc async calls.""
This reverts commit 071aeab585.
2016-06-06 16:52:02 +08:00
Tsz-Wo Nicholas Sze 428dc52e56 Revert "Revert "HDFS-10346. Implement asynchronous setPermission/setOwner for DistributedFileSystem. Contributed by Xiaobing Zhou""
This reverts commit 2529cabf12.
2016-06-06 16:51:54 +08:00
Tsz-Wo Nicholas Sze 7b9062f405 Revert "Revert "HADOOP-12957. Limit the number of outstanding async calls. Contributed by Xiaobing Zhou""
This reverts commit 7d4c16bae9.
2016-06-06 16:51:48 +08:00
Tsz-Wo Nicholas Sze c1947a71ff Revert "Revert "HDFS-10224. Implement asynchronous rename for DistributedFileSystem. Contributed by Xiaobing Zhou""
This reverts commit c11c2ee649.
2016-06-06 16:51:41 +08:00
Andrew Wang c11c2ee649 Revert "HDFS-10224. Implement asynchronous rename for DistributedFileSystem. Contributed by Xiaobing Zhou"
This reverts commit d316f44059.
2016-06-03 18:11:12 -07:00
Andrew Wang 7d4c16bae9 Revert "HADOOP-12957. Limit the number of outstanding async calls. Contributed by Xiaobing Zhou"
This reverts commit 7e0824faa9.
2016-06-03 18:10:49 -07:00
Andrew Wang 2529cabf12 Revert "HDFS-10346. Implement asynchronous setPermission/setOwner for DistributedFileSystem. Contributed by Xiaobing Zhou"
This reverts commit 69768bf9e0.
2016-06-03 18:10:49 -07:00
Andrew Wang 071aeab585 Revert "HADOOP-13168. Support Future.get with timeout in ipc async calls."
This reverts commit 658072d62e.
2016-06-03 18:10:49 -07:00
Andrew Wang 87ea0784eb Revert "HDFS-10390. Implement asynchronous setAcl/getAclStatus for DistributedFileSystem. Contributed by Xiaobing Zhou"
This reverts commit 56745a0cf4.
2016-06-03 18:10:48 -07:00
Andrew Wang 8e2245d0a4 Revert "HDFS-10431 Refactor and speedup TestAsyncDFSRename. Contributed by Xiaobing Zhou"
This reverts commit 72773f8ea8.
2016-06-03 18:10:48 -07:00
Andrew Wang 6f8f40b2a5 Revert "HDFS-10430. Reuse FileSystem#access in TestAsyncDFS. Contributed by Xiaobing Zhou."
This reverts commit 193f822b9a.
2016-06-03 18:10:48 -07:00
Andrew Wang 5bfadb8e6b Revert "HADOOP-13226 Support async call retry and failover."
This reverts commit f7189d6a1c.
2016-06-03 18:10:47 -07:00
Andrew Wang d5609e3499 HDFS-10481. HTTPFS server should correctly impersonate as end user to open file. Contributed by Xiao Chen.
(cherry picked from commit 47e0321ee9)
2016-06-03 17:21:27 -07:00
Andrew Wang 03c4724c88 HADOOP-13155. Implement TokenRenewer to renew and cancel delegation tokens in KMS. Contributed by Xiao Chen.
(cherry picked from commit 713cb71820)

 Conflicts:
	hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/crypto/key/KeyProviderDelegationTokenExtension.java
	hadoop-hdfs-project/hadoop-hdfs-client/src/main/java/org/apache/hadoop/hdfs/DFSUtilClient.java
2016-06-03 17:01:11 -07:00
Akira Ajisaka b6d5546e24 HDFS-10341. Add a metric to expose the timeout number of pending replication blocks. (aajisaka) 2016-06-03 16:04:11 +09:00
Akira Ajisaka cddf6b4fc7 HDFS-10471. DFSAdmin#SetQuotaCommand's help msg is not correct. Contributed by Yiqun Lin.
(cherry picked from commit 1df6f5735c)
2016-06-03 04:11:03 +09:00
Akira Ajisaka cbf6cacf64 HDFS-10449. TestRollingFileSystemSinkWithHdfs#testFailedClose() fails on branch-2. Contributed by Takanobu Asanuma. 2016-06-03 03:08:22 +09:00
Masatake Iwasaki 3740974413 HDFS-10367. TestDFSShell.testMoveWithTargetPortEmpty fails with Address bind exception. Contributed by Brahma Reddy Battula.
(cherry picked from commit aadb77e412)

 Conflicts:
	hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestDFSShell.java
2016-06-02 20:59:40 +09:00
Akira Ajisaka 3dd557e4b6 HDFS-9476. TestDFSUpgradeFromImage#testUpgradeFromRel1BBWImage occasionally fail. Contributed by Masatake Iwasaki.
(cherry picked from commit 69555fca06)
2016-06-02 18:53:27 +09:00
Colin Patrick Mccabe a64e1425ed HADOOP-13137. TraceAdmin should support Kerberized cluster (Wei-Chiu Chuang via cmccabe)
(cherry picked from commit 8ceb06e239)
2016-05-31 18:05:28 -07:00
Colin Patrick Mccabe 14907d9b8c HDFS-10415. TestDistributedFileSystem#MyDistributedFileSystem attempts to set up statistics before initialize() is called (Mingliang Liu via cmccabe) 2016-05-31 17:19:25 -07:00
Tsz-Wo Nicholas Sze f7189d6a1c HADOOP-13226 Support async call retry and failover. 2016-05-31 17:01:43 -07:00
Chris Nauroth 193f822b9a HDFS-10430. Reuse FileSystem#access in TestAsyncDFS. Contributed by Xiaobing Zhou.
(cherry picked from commit 21890c4239)
2016-05-27 14:20:30 -07:00
Yongjun Zhang 2dfaedeb43 HDFS-10276. HDFS should not expose path info that user has no permission to see. (Yuanbo Liu via Yongjun Zhang)
(cherry picked from commit 5ea6fd85c7)
2016-05-27 10:14:30 -07:00
Karthik Kambatla b4c8729cf9 HDFS-10463. TestRollingFileSystemSinkWithHdfs needs some cleanup. (Daniel Templeton via kasha) 2016-05-26 14:39:07 -07:00
Tsz-Wo Nicholas Sze 72773f8ea8 HDFS-10431 Refactor and speedup TestAsyncDFSRename. Contributed by Xiaobing Zhou 2016-05-26 12:16:40 -07:00
Tsz-Wo Nicholas Sze e5dab68066 HDFS-8057 Move BlockReader implementation to the client implementation package. Contributed by Takanobu Asanuma 2016-05-25 12:12:27 -07:00
Vinayakumar B e28a51e988 HDFS-10217. show 'blockScheduled' tooltip in datanodes table.
(cherry picked from commit 2dab64da2f)
2016-05-25 12:35:15 +05:30
Karthik Kambatla afe603d973 HDFS-9782. RollingFileSystemSink should have configurable roll interval. (Daniel Templeton via kasha)
(cherry picked from commit 57c31a3fef)
2016-05-24 16:34:45 -07:00
Tsz-Wo Nicholas Sze 56745a0cf4 HDFS-10390. Implement asynchronous setAcl/getAclStatus for DistributedFileSystem. Contributed by Xiaobing Zhou 2016-05-24 14:52:50 -07:00
Tsz-Wo Nicholas Sze 076a73f207 HDFS-9365. Balaner does not work with the HDFS-6376 HA setup. 2016-05-24 13:08:04 -07:00
Masatake Iwasaki 094bc727c5 HDFS-10439. Update setOwner doc in HdfsPermissionsGuide. Contributed by John Zhuge.
(cherry picked from commit 12eb5a7b11)
2016-05-22 19:15:28 +09:00
Chris Nauroth e7b56cf93c HDFS-10438. When NameNode HA is configured to use the lifeline RPC server, it should log the address of that server. Contributed by Chris Nauroth.
(cherry picked from commit 500e946729)
2016-05-20 13:01:59 -07:00
Chris Nauroth d38f2090fa HDFS-10424. DatanodeLifelineProtocol not able to use under security cluster. Contributed by Chris Nauroth.
(cherry picked from commit bcde1562d2)
2016-05-20 12:47:52 -07:00
Tsz-Wo Nicholas Sze 658072d62e HADOOP-13168. Support Future.get with timeout in ipc async calls. 2016-05-19 15:58:15 -07:00
Kihwal Lee bae151801d HDFS-10417. Improve error message from checkBlockLocalPathAccess. Contributed by Tianyin Xu.
(cherry picked from commit 204de430bf)
2016-05-19 15:53:41 -05:00
Andrew Wang a44c87c2d0 HDFS-2173. saveNamespace should not throw IOE when only one storage directory fails to write VERSION file. Contributed by Andras Bokor.
(cherry picked from commit 010e6ac328)
2016-05-18 14:13:47 -07:00
Xiaoyu Yao 1470af8c95 HDFS-10383. Safely close resources in DFSTestUtil. Contributed by Mingliang Liu.
(cherry picked from commit ccb1cade5b)
2016-05-18 11:02:31 -07:00
Arpit Agarwal 24bed7768d HDFS-9926. MiniDFSCluster leaks dependency Mockito via DataNodeTestUtils. (Contributed by Josh Elser) 2016-05-18 09:21:41 -07:00
Lei Xu 2d1d2dde17 HDFS-10360. DataNode may format directory and lose blocks if current/VERSION is missing. (Wei-Chiu Chuang via lei)
(cherry picked from commit bae11b95d492e0be7c5576097424879c2539b474)
2016-05-17 16:37:36 -07:00
Yongjun Zhang 456fe08a6d HDFS-10381, DataStreamer DataNode exclusion log message should be warning. (John Zhuge via Yongjun Zhang)
(cherry picked from commit 16c07cc68a)

Conflicts:
	hadoop-hdfs-project/hadoop-hdfs-client/src/main/java/org/apache/hadoop/hdfs/StripedDataStreamer.java
2016-05-17 15:59:00 -07:00
Junping Du 7e36b9159e MAPREDUCE-6657. Job history server can fail on startup when NameNode is in start phase. Contributed by Haibo Chen.
(cherry picked from commit f6ef876fe1)
2016-05-17 14:42:11 -07:00
Kihwal Lee 1e7eb2d2ac Revert "HDFS-10417. Improve error message from checkBlockLocalPathAccess. Contributed by Tianyin Xu."
This reverts commit 70ee477e5f.
2016-05-17 15:20:59 -05:00
Kihwal Lee 70ee477e5f HDFS-10417. Improve error message from checkBlockLocalPathAccess. Contributed by Tianyin Xu.
(cherry picked from commit 0942954e8a)
2016-05-17 15:10:47 -05:00
Colin Patrick Mccabe 6ebb92c9c1 HDFS-10404. Fix formatting of CacheAdmin command usage help text (Yiqun Lin via cmccabe)
(cherry picked from commit 7cd5ae62f6)
2016-05-17 11:59:10 -07:00
Kihwal Lee 48be0ff67a HDFS-10303. DataStreamer#ResponseProcessor calculates packet ack latency incorrectly. Contributed by Surendra Singh Lilhore.
(cherry picked from commit 4a5819dae2)
2016-05-17 08:58:53 -05:00
Akira Ajisaka 7f03c1c90e HDFS-10242. Cannot create space quota of zero. Contributed by Takashi Ohnishi.
(cherry picked from commit 9fe5828f05)
2016-05-17 15:56:21 +09:00
Sangjin Lee 9330a7b4de HDFS-10208. Addendum for HDFS-9579: to handle the case when client machine can't resolve network path (Ming Ma via sjlee)
(cherry picked from commit 61f46be071)
2016-05-16 18:59:19 -07:00
Lei Xu 09a613b023 HDFS-10410. RedundantEditLogInputStream.LOG is set to wrong class. (John Zhuge via lei)
(cherry picked from commit 6a6e74acf5)
2016-05-16 17:07:03 -07:00
Andrew Wang 413f3dabbd HDFS-10333. Intermittent org.apache.hadoop.hdfs.TestFileAppend failure in trunk. Contributed by Yiqun Lin.
(cherry picked from commit 45788204ae)
2016-05-15 22:15:10 -07:00
Lei Xu 782441d47e HDFS-9389. Add maintenance states to AdminStates. (Ming Ma via lei)
(cherry picked from commit a2774debf7)
2016-05-12 15:44:07 -07:00
Tsz-Wo Nicholas Sze 69768bf9e0 HDFS-10346. Implement asynchronous setPermission/setOwner for DistributedFileSystem. Contributed by Xiaobing Zhou 2016-05-11 17:57:20 -07:00
Colin Patrick Mccabe 15bfcde238 HADOOP-13065. Add a new interface for retrieving FS and FC Statistics (Mingliang Liu via cmccabe)
(cherry picked from commit 687233f20d)

Conflicts:
	hadoop-hdfs-project/hadoop-hdfs-client/src/main/java/org/apache/hadoop/hdfs/web/WebHdfsFileSystem.java
	hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestDistributedFileSystem.java
2016-05-11 14:02:03 -07:00
Colin Patrick Mccabe 43f32d3f4a HDFS-10377. CacheReplicationMonitor shutdown log message should use INFO level (Yiqun Lin via cmccabe)
(cherry picked from commit f0252ad252)
2016-05-10 11:20:46 -07:00
Akira Ajisaka 901588542b HDFS-6187. Update the document of hftp/hsftp in branch-2 to mention that they are deprecated. Contributed by Gergely Novák. 2016-05-10 09:32:33 -07:00
Akira Ajisaka a5bfb2dd25 Revert "HDFS-6187. Update the document of hftp/hsftp in branch-2 to mention that they are deprecated."
This reverts commit c297df5995.
2016-05-10 09:32:20 -07:00
Akira Ajisaka c297df5995 HDFS-6187. Update the document of hftp/hsftp in branch-2 to mention that they are deprecated. 2016-05-10 09:29:30 -07:00
Kihwal Lee 2c782fdb17 HDFS-10372. Fix for failing TestFsDatasetImpl#testCleanShutdownOfVolume. Contributed by Rushabh Shah.
(cherry picked from commit b9e5a32fa1)
2016-05-09 15:51:42 -05:00
Masatake Iwasaki 4ecbe2e9bf HDFS-2043. TestHFlush failing intermittently. Contributed by Lin Yiqun.
(cherry picked from commit 2835f146b5)
2016-05-06 15:47:51 +09:00
Xiaoyu Yao 35859872b7 HDFS-10324. Trash directory in an encryption zone should be pre-created with correct permissions. Contributed by Wei-Chiu Chuang.
(cherry picked from commit dacd1f50fe)
2016-05-05 18:15:32 -07:00
Ming Ma 5b53833171 HDFS-10320. Rack failures may result in NN terminate. (Xiao Chen via mingma)
(cherry picked from commit 1268cf5fbe)
2016-05-04 17:04:44 -07:00
Arpit Agarwal 313b4dbf28 HDFS-9902. Support different values of dfs.datanode.du.reserved per storage type. (Contributed by Brahma Reddy Battula) 2016-05-03 16:52:56 -07:00
Xiaoyu Yao ceb9a49d03 HDFS-10344. DistributedFileSystem#getTrashRoots should skip encryption zone that does not have .Trash. Contributed by Xiaoyu Yao.
(cherry picked from commit 45a753ccf7)
2016-05-02 19:37:48 -07:00
Harsh J 89c00da611 HDFS-2580. NameNode#main(...) can make use of GenericOptionsParser. Contributed by harsh. (harsh)
(cherry picked from commit 54e612bfb9)
2016-05-02 17:54:31 -07:00
Tsz-Wo Nicholas Sze 7e0824faa9 HADOOP-12957. Limit the number of outstanding async calls. Contributed by Xiaobing Zhou 2016-05-02 11:20:10 -07:00
Kihwal Lee 74938b537d HDFS-10347. Namenode report bad block method doesn't log the bad block or datanode. Contributed by Rushabh Shah.
(cherry picked from commit 7da540d03e)
2016-04-29 15:58:07 -05:00
Tsz-Wo Nicholas Sze fe3c2886be HDFS-10335 Mover$Processor#chooseTarget() always chooses the first matching target storage group. Contributed by Mingliang Liu 2016-04-29 11:24:32 -07:00
Kihwal Lee 0b9057e1d3 HDFS-10260. TestFsDatasetImpl#testCleanShutdownOfVolume often fails. Contributed by Rushabh Shah.
(cherry picked from commit af9b000535)
2016-04-29 09:59:58 -05:00
Kihwal Lee f715f14185 HDFS-9958. BlockManager#createLocatedBlocks can throw NPE for corruptBlocks on failed storages. Contributed by Kuhu Shukla. 2016-04-28 16:39:48 -05:00
Lei Xu 4289cb8b36 HDFS-3702. Add an option for NOT writing the blocks locally if there is a datanode on the same box as the client. (Contributed by Lei (Eddy) Xu)
(cherry picked from commit 0a152103f1)
2016-04-27 15:06:35 -07:00
Kihwal Lee e181092b86 HDFS-10330. Add Corrupt Blocks Information in Metasave output. Contributed by Kuhu Shukla.
(cherry picked from commit 919a1d824a)

Conflicts:
	hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/blockmanagement/TestBlockManager.java
2016-04-27 08:29:30 -05:00
Tsz-Wo Nicholas Sze d316f44059 HDFS-10224. Implement asynchronous rename for DistributedFileSystem. Contributed by Xiaobing Zhou 2016-04-26 17:21:20 -07:00
Andrew Wang 088a78241b HDFS-10297. Increase default balance bandwidth and concurrent moves. Contributed by John Zhuge.
(cherry picked from commit 6be22ddbf1)
2016-04-26 13:04:21 -07:00
Kihwal Lee c991beac64 HDFS-10329. Bad initialisation of StringBuffer in RequestHedgingProxyProvider. Contributed by Lin Yiqun.
(cherry picked from commit c6a2430b47)
2016-04-26 11:46:46 -05:00
Kihwal Lee f6bd9e07d2 HDFS-10318. TestJMXGet hides the real error in case of test failure. Contributed by Andras Bokor.
(cherry picked from commit 10f0f7851a)
2016-04-25 11:41:40 -05:00
Ravi Prakash 88e1427a03 HDFS-9525. hadoop utilities need to support provided delegation tokens. Contributed by HeeSoo Kim 2016-04-23 20:50:56 -07:00
Masatake Iwasaki 96111caca9 HDFS-9905. WebHdfsFileSystem#runWithRetry should display original stack trace on error. (Wei-Chiu Chuang via iwasakims)
(cherry picked from commit 6fcde2e38d)
2016-04-23 23:50:01 +09:00
Kihwal Lee 43cfe5943b HDFS-9555. LazyPersistFileScrubber should still sleep if there are errors in the clear progress. Contributed by Phil Yang.
(cherry picked from commit 5d4255a801)
2016-04-22 11:10:06 -05:00
Jing Zhao 5353289c8c HDFS-9894. Add unsetStoragePolicy API to FileContext/AbstractFileSystem and derivatives. Contributed by Xiaobing Zhou.
(cherry picked from commit 7149cdb3c2d9dd390cd8668883cbe5db94090e0a)
2016-04-21 20:16:02 -07:00
Tsz-Wo Nicholas Sze a96ea528cc HDFS-10309 Balancer doesn't honor dfs.blocksize value defined with suffix k(kilo), m(mega), g(giga). Contributed by Amit Anand 2016-04-21 15:44:01 -07:00
Tsz-Wo Nicholas Sze 5245254a46 HDFS-10319. Balancer should not try to pair storages with different types. 2016-04-21 15:21:45 -07:00
Xiaoyu Yao 432531dcf7 HDFS-10207. Support enable Hadoop IPC backoff without namenode restart. Contributed by Xiaobing Zhou.
(cherry picked from commit b4be288c5d)
2016-04-21 10:19:35 -07:00
Xiaoyu Yao a2a65922dd HADOOP-12985. Support MetricsSource interface for DecayRpcScheduler Metrics. Contributed by Xiaoyu Yao.
(cherry picked from commit 5bd7b592e5)
2016-04-20 23:11:42 -07:00
Chris Nauroth cc56bed686 HDFS-10312. Large block reports may fail to decode at NameNode due to 64 MB protobuf maximum length restriction. Contributed by Chris Nauroth.
(cherry picked from commit 63ac2db59a)
2016-04-20 13:55:03 -07:00
Colin Patrick Mccabe 76d963acb4 HDFS-10308. TestRetryCacheWithHA#testRetryCacheOnStandbyNN failing (Rakesh R via cmccabe)
(cherry picked from commit ad36fa6f42)
2016-04-20 11:52:26 -07:00
Arpit Agarwal b776db36f7 HDFS-10264. Logging improvements in FSImageFormatProtobuf.Saver. (Contributed by Xiaobing Zhou) 2016-04-19 11:27:36 -07:00
Walter Su 09a508beee HDFS-9744. TestDirectoryScanner#testThrottling occasionally time out after 300 seconds. Contributed by Lin Yiqun.
(cherry picked from commit 90d1af1416)
2016-04-19 18:56:08 +08:00
Walter Su d31a0d7443 HDFS-10284. o.a.h.hdfs.server.blockmanagement.TestBlockManagerSafeMode.testCheckSafeMode fails intermittently. Contributed by Mingliang Liu.
(cherry picked from commit 4b4df2cd48)
2016-04-19 18:08:52 +08:00
Jing Zhao bf4403e034 HDFS-10306. SafeModeMonitor should not leave safe mode if name system is starting active service. Contributed by Mingliang Liu.
(cherry picked from commit be0bce1b71)
2016-04-18 18:06:10 -07:00
Colin Patrick Mccabe a69b6b1e8b HDFS-10265. OEV tool fails to read edit xml file if OP_UPDATE_BLOCKS has no BLOCK tag (Wan Chang via cmccabe)
(cherry picked from commit cb3ca460ef)
2016-04-18 13:48:24 -07:00
Kihwal Lee aa846bd492 HDFS-10302. BlockPlacementPolicyDefault should use default replication considerload value. Contributed by Lin Yiqun.
(cherry picked from commit d8b729e16f)
2016-04-18 08:00:44 -05:00
Walter Su a06ee5a71d HDFS-10275. TestDataNodeMetrics failing intermittently due to TotalWriteTime counted incorrectly. Contributed by Lin Yiqun.
(cherry picked from commit ab903029a9)
2016-04-18 20:31:55 +08:00
Steve Loughran dd64769699 HDFS-10291 TestShortCircuitLocalRead failing (stevel) 2016-04-18 10:26:58 +01:00
Walter Su a6d0e9e56a HDFS-9412. getBlocks occupies FSLock and takes too long to complete. Contributed by He Tianyi.
(cherry picked from commit 67523ffcf4)

 Conflicts:
	hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestGetBlocks.java
2016-04-18 09:34:01 +08:00
Jing Zhao eba7ecc993 HDFS-10283. o.a.h.hdfs.server.namenode.TestFSImageWithSnapshot#testSaveLoadImageWithAppending fails intermittently. Contributed by Mingliang Liu.
(cherry picked from commit 89a838769f)
2016-04-15 10:50:58 -07:00