Arun C. Murthy
cff08dab5e
Updated CHANGES.txt to reflect hadoop-2.6.0 release dates.
...
(cherry picked from commit 770cc14442
)
2014-11-09 18:48:01 -08:00
Arun C. Murthy
175d222bfc
YARN-2830. Add backwords compatible ContainerId.newInstance constructor. Contributed by Jonathan Eagles.
...
(cherry picked from commit 43cd07b408
)
2014-11-09 15:03:59 -08:00
Vinod Kumar Vavilapalli
0a5d95f705
YARN-2607. Fixed issues in TestDistributedShell. Contributed by Wangda Tan.
...
(cherry picked from commit 737d9284c1
)
2014-11-08 11:02:17 -08:00
Zhijie Shen
1880a5a7c3
YARN-2505. Supported get/add/remove/change labels in RM REST API. Contributed by Craig Welch.
...
(cherry picked from commit 9a4e0d343e
)
2014-11-07 20:39:53 -08:00
Vinod Kumar Vavilapalli
b865a95f06
YARN-2826. Fixed user-groups mappings' refresh bug caused by YARN-2826. Contributed by Wangda Tan.
...
(cherry picked from commit df36edf751
)
2014-11-07 19:44:52 -08:00
Xuan
7d26cffb0c
YARN-2819. NPE in ATS Timeline Domains when upgrading from 2.4 to 2.6. Contributed by Zhijie Shen
...
(cherry picked from commit 4a114dd67a
)
2014-11-07 16:12:45 -08:00
Jason Lowe
9447235527
YARN-2632. Document NM Restart feature. Contributed by Junping Du and Vinod Kumar Vavilapalli
...
(cherry picked from commit 1e215e8ba2
)
2014-11-07 23:41:29 +00:00
Jason Lowe
a5764cb783
YARN-2825. Container leak on NM. Contributed by Jian He
...
(cherry picked from commit c3d475070a
)
2014-11-07 23:17:34 +00:00
Vinod Kumar Vavilapalli
a50345f654
YARN-2753. Fixed a bunch of bugs in the NodeLabelsManager classes. Contributed by Zhihai xu.
...
(cherry picked from commit 4cfd5bc7c1
)
2014-11-07 14:16:54 -08:00
cnauroth
c16f718293
YARN-2803. MR distributed cache not working correctly on Windows after NodeManager privileged account changes. Contributed by Craig Welch.
...
(cherry picked from commit 06b797947c
)
2014-11-07 12:36:42 -08:00
Vinod Kumar Vavilapalli
7b19079657
YARN-2827. Fixed bugs in "yarn queue" CLI. Contributed by Wangda Tan.
2014-11-07 12:00:49 -08:00
Vinod Kumar Vavilapalli
d5d2905262
YARN-2824. Fixed Capacity Scheduler to not crash when some node-labels are not mapped to queues by making default capacities per label to be zero. Contributed by Wangda Tan.
...
(cherry picked from commit 2ac1be7dec
)
2014-11-07 10:44:25 -08:00
Xuan
bf79541868
YARN-2810. TestRMProxyUsersConf fails on Windows VMs. Contributed by Varun Vasudev
...
(cherry picked from commit 1e97f2f094
)
2014-11-07 09:46:04 -08:00
Vinod Kumar Vavilapalli
eb01c602ed
YARN-2823. Fixed ResourceManager app-attempt state machine to inform schedulers about previous finished attempts of a running appliation to avoid expectation mismatch w.r.t transferred containers. Contributed by Jian He.
...
(cherry picked from commit a5657182a7
)
2014-11-07 09:30:04 -08:00
Vinod Kumar Vavilapalli
b1521c7c3c
YARN-2647. Added a queue CLI for getting queue information. Contributed by Sunil Govind.
...
(cherry picked from commit 61effcbebc
)
Conflicts:
hadoop-yarn-project/hadoop-yarn/bin/yarn
2014-11-06 20:57:55 -08:00
Vinod Kumar Vavilapalli
52e57a95d9
YARN-2744. Fixed CapacityScheduler to validate node-labels correctly against queues. Contributed by Wangda Tan.
...
(cherry picked from commit a3839a9fbf
)
2014-11-06 17:29:12 -08:00
Steve Loughran
5924e74d55
YARN-2768 Improved Yarn Registry service record structure (stevel)
2014-11-06 20:21:25 +00:00
Vinod Kumar Vavilapalli
0f9199fb07
YARN-2818. Removed the now unnecessary user entity injection from Timeline service given we now have domains. Contributed by Zhijie Shen.
...
(cherry picked from commit f5b19bed7d
)
2014-11-06 11:49:44 -08:00
Xuan
4aa98d5991
YARN-2812. TestApplicationHistoryServer is likely to fail on less powerful machine. Contributed by Zhijie Shen
...
(cherry picked from commit b0b52c4e11
)
2014-11-05 20:44:07 -08:00
Xuan
e26be1d85c
YARN-2813. Fixed NPE from MemoryTimelineStore.getDomains. Contributed by Zhijie Shen
2014-11-05 18:26:07 -08:00
Jian He
f92ff24f5e
YARN-2579. Fixed a deadlock issue when EmbeddedElectorService and FatalEventDispatcher try to transition RM to StandBy at the same time. Contributed by Rohith Sharmaks
...
(cherry picked from commit 395275af86
)
2014-11-05 17:03:01 -08:00
Vinod Kumar Vavilapalli
3bc31e35a6
YARN-2805. Fixed ResourceManager to load HA configs correctly before kerberos login. Contributed by Wangda Tan.
...
(cherry picked from commit 834e931d8e
)
2014-11-05 15:31:41 -08:00
Zhijie Shen
f3ed97de3a
YARN-2767. Added a test case to verify that http static user cannot kill or submit apps in the secure mode. Contributed by Varun Vasudev.
...
(cherry picked from commit 7a4c92a9d55fcecef066053ac30dff0fcd4ec90c)
2014-11-05 10:59:05 -08:00
Vinod Kumar Vavilapalli
56ab333161
YARN-2804. Fixed Timeline service to not fill the logs with JAXB bindings exceptions. Contributed by Zhijie Shen.
...
(cherry picked from commit b76179895d
)
Conflicts:
hadoop-yarn-project/CHANGES.txt
2014-11-04 18:03:17 -08:00
Haohui Mai
fa92b40f09
HADOOP-11230. Add missing dependency of bouncycastle for kms, httpfs, hdfs, MR and YARN. Contributed by Robert Kanter.
2014-11-04 17:53:00 -08:00
Karthik Kambatla
3e4b280de7
YARN-2010. Handle app-recovery failures gracefully. (Jian He and Karthik Kambatla via kasha)
...
(cherry picked from commit b2cd269802
)
2014-11-04 17:48:49 -08:00
Karthik Kambatla
6f9484221e
Adding release 2.5.2 to CHANGES.txt
...
(cherry picked from commit 4de56d27fb
)
Conflicts:
hadoop-yarn-project/CHANGES.txt
2014-11-04 16:51:54 -08:00
Zhijie Shen
e06c23a6c9
YARN-2752. Made ContainerExecutor append "nice -n" arg only when priority adjustment flag is set. Contributed by Xuan Gong.
2014-11-04 15:50:10 -08:00
Haohui Mai
aa09c4c342
HADOOP-10563. Remove the dependency of jsp in trunk. Contributed by Haohui Mai.
2014-11-04 14:52:51 -08:00
Vinod Kumar Vavilapalli
9c76dcadaf
YARN-1922. Fixed NodeManager to kill process-trees correctly in the presence of races between the launch and the stop-container call and when root processes crash. Contributed by Billie Rinaldi.
...
(cherry picked from commit c5a46d4c8c
)
2014-11-03 16:40:37 -08:00
Vinod Kumar Vavilapalli
277141b82d
YARN-2795. Fixed ResourceManager to not crash loading node-label data from HDFS in secure mode. Contributed by Wangda Tan.
...
(cherry picked from commit ec6cbece8e
)
2014-11-03 13:45:31 -08:00
Vinod Kumar Vavilapalli
715c81ef6d
YARN-2788. Fixed backwards compatiblity issues with log-aggregation feature that were caused when adding log-upload-time via YARN-2703. Contributed by Xuan Gong.
...
(cherry picked from commit 58e9f24e0f
)
2014-11-03 13:19:34 -08:00
Vinod Kumar Vavilapalli
52c58115d2
YARN-2798. Fixed YarnClient to populate the renewer correctly for Timeline delegation tokens. Contributed by Zhijie Shen.
...
(cherry picked from commit 71fbb474f5
)
2014-11-03 12:50:39 -08:00
Jason Lowe
8091ea54d5
YARN-2730. DefaultContainerExecutor runs only one localizer at a time. Contributed by Siqi Li
...
(cherry picked from commit 6157ace547
)
2014-11-03 20:39:14 +00:00
Zhijie Shen
caae0a0a08
YARN-2785. Fixed intermittent TestContainerResourceUsage failure. Contributed by Varun Vasudev.
...
(cherry picked from commit 27715ec63b
)
2014-11-02 15:22:54 -08:00
Vinod Kumar Vavilapalli
6627f67bf5
YARN-2790. Fixed a NodeManager bug that was causing log-aggregation to fail beyond HFDS delegation-token expiry even when RM is a proxy-user (YARN-2704). Contributed by Jian He.
...
(cherry picked from commit 5c0381c96a
)
2014-11-01 16:33:35 -07:00
Zhijie Shen
d9ac25454c
YARN-2711. Fixed TestDefaultContainerExecutor#testContainerLaunchError failure on Windows. Contributed by Varun Vasudev.
...
(cherry picked from commit 1cd088fd9d
)
2014-10-31 17:45:05 -07:00
Jason Lowe
ada40aa933
YARN-2707. Potential null dereference in FSDownload. Contributed by Gera Shegalov
...
(cherry picked from commit 7bc179f9f5
)
2014-10-31 22:54:49 +00:00
Vinod Kumar Vavilapalli
6d4a04a033
YARN-2789. Re-instated the NodeReport.newInstance private unstable API modified in YARN-2698 so that tests in YARN frameworks don't break. Contributed by Wangda Tan.
...
(cherry picked from commit 6ce32f593b
)
2014-10-31 15:33:41 -07:00
Xuan
902566741e
YARN-2701. Addendum patch. Potential race condition in startLocalizer when using LinuxContainerExecutor. Contributed by Xuan Gong
2014-10-31 14:39:06 -07:00
Jian He
a87f827ae4
YARN-2770. Added functionality to renew/cancel TimeLineDelegationToken. Contributed by Zhijie Shen
...
(cherry picked from commit 1b4be91866
)
2014-10-31 13:17:19 -07:00
Karthik Kambatla
268af259b5
YARN-2186. [YARN-1492] Node Manager uploader service for cache manager. (Chris Trezzo and Sangjin Lee via kasha)
...
(cherry picked from commit 256697acd5
)
2014-10-31 13:01:25 -07:00
Vinod Kumar Vavilapalli
9b879d713a
YARN-2778. Moved node-lables' reports to the yarn nodes CLI from the admin CLI. Contributed by Wangda Tan.
...
(cherry picked from commit b6c1188b85
)
2014-10-31 10:19:14 -07:00
Vinod Kumar Vavilapalli
97694e78ad
YARN-2779. Fixed ResourceManager to not require delegation tokens for communicating with Timeline Service. Contributed by Zhijie Shen.
...
(cherry picked from commit d1828d9443
)
2014-10-30 23:17:16 -07:00
Vinod Kumar Vavilapalli
0ba8d8c19c
YARN-2698. Moved some node label APIs to be correctly placed in client protocol. Contributed by Wangda Tan.
...
(cherry picked from commit e0233c16eb
)
2014-10-30 23:02:06 -07:00
Steve Loughran
cd24075343
YARN-2677 registry punycoding of usernames doesn't fix all usernames to be DNS-valid (stevel)
2014-10-30 22:32:20 +00:00
Jason Lowe
3e8544c5f2
YARN-2755. NM fails to clean up usercache_DEL_<timestamp> dirs after YARN-661. Contributed by Siqi Li
...
(cherry picked from commit 73e626ad91
)
2014-10-30 15:11:57 +00:00
Karthik Kambatla
d2ba115f06
YARN-2712. TestWorkPreservingRMRestart: Augment FS tests with queue and headroom checks. (Tsuyoshi Ozawa via kasha)
...
(cherry picked from commit 179cab81e0
)
2014-10-30 00:39:34 -07:00
Zhijie Shen
d2a5c386c1
YARN-2769. Fixed the problem that timeline domain is not set in distributed shell AM when using shell_command on Windows. Contributed by Varun Vasudev.
...
(cherry picked from commit 72496311def320987c31822776e8fbb73dfcc726)
2014-10-29 12:14:48 -07:00
Karthik Kambatla
e88832dfb3
YARN-2742. FairSchedulerConfiguration should allow extra spaces between value and unit. (Wei Yan via kasha)
...
(cherry picked from commit 782971ae7a
)
2014-10-29 10:25:29 -07:00
Zhijie Shen
734cbe7de2
YARN-2747. Fixed the test failure of TestAggregatedLogFormat when native I/O is enabled. Contributed by Xuan Gong.
...
(cherry picked from commit ec63a3ffbd
)
2014-10-28 22:45:20 -07:00
Jian He
720de7eb4c
YARN-2503. Added node lablels in web UI. Contributed by Wangda Tan
...
(cherry picked from commit d5e0a09721
)
2014-10-28 18:00:59 -07:00
Zhijie Shen
f40389ae08
YARN-2741. Made NM web UI serve logs on the drive other than C: on Windows. Contributed by Craig Welch.
...
(cherry picked from commit 8984e9b177
)
2014-10-28 14:12:09 -07:00
Xuan
43b1878f86
YARN-2758. Update TestApplicationHistoryClientService to use the new generic history store. Contributed by Zhijie Shen
2014-10-28 13:30:55 -07:00
Xuan
43a53f2b65
YARN-2279. Add UTs to cover timeline server authentication. Contributed by Zhijie Shen
2014-10-28 11:18:35 -07:00
Karthik Kambatla
3f7edeb055
YARN-2760. Remove 'experimental' from FairScheduler docs. (Harsh J via kasha)
...
(cherry picked from commit ade3727ecb
)
2014-10-28 08:49:34 -07:00
Jian He
a1c7a707ca
YARN-2502. Changed DistributedShell to support node labels. Contributed by Wangda Tan
...
(cherry picked from commit f6b963fdfc
)
2014-10-27 20:13:53 -07:00
Vinod Kumar Vavilapalli
0ad33e1483
YARN-2704. Changed ResourceManager to optionally obtain tokens itself for the sake of localization and log-aggregation for long-running services. Contributed by Jian He.
...
(cherry picked from commit a16d022ca4
)
2014-10-27 15:50:51 -07:00
Jian He
2d3c64943d
YARN-2591. Fixed AHSWebServices to return FORBIDDEN(403) if the request user doesn't have access to the history data. Contributed by Zhijie Shen
...
(cherry picked from commit c05b581a55
)
2014-10-27 10:46:37 -07:00
Xuan
3a77838535
YARN-2726. CapacityScheduler should explicitly log when an accessible label has no capacity. Contributed by Wangda Tan
2014-10-27 10:28:45 -07:00
Zhijie Shen
cb3974524c
YARN-2734. Skipped sub-folders in the local log dir when aggregating logs. Contributed by Xuan Gong.
...
(cherry picked from commit caecd9fffe
)
2014-10-26 12:59:29 -07:00
Vinod Kumar Vavilapalli
36d3f1fcca
YARN-2743. Fixed a bug in ResourceManager that was causing RMDelegationToken identifiers to be tampered and thus causing app submission failures in secure mode. Contributed by Jian He.
...
(cherry picked from commit 0186645505
)
2014-10-26 11:15:45 -07:00
Xuan
f862999a7e
YARN-2723. Fix rmadmin -replaceLabelsOnNode does not correctly parse
...
port. Contributed by Naganarasimha G R
2014-10-25 12:47:09 -07:00
Karthik Kambatla
acc6f622e0
YARN-2183. [YARN-1492] Cleaner service for cache manager. (Chris Trezzo and Sangjin Lee via kasha)
...
(cherry picked from commit c51e53d7aa
)
2014-10-25 11:50:06 -07:00
Jian He
9bd149978d
YARN-2314. Disable ContainerManagementProtocolProxy cache by default to prevent creating thousands of threads in a large cluster. Contributed by Jason Lowe
...
(cherry picked from commit f44cf99599
)
2014-10-24 23:06:00 -07:00
Jian He
96a6e02d16
YARN-1915. Fixed a race condition that client could use the ClientToAMToken to contact with AM before AM actually receives the ClientToAMTokenMasterKey. Contributed by Jason Lowe
...
(cherry picked from commit 5864dd99a4
)
2014-10-24 22:48:48 -07:00
Karthik Kambatla
9af3cfc7eb
YARN-2713. "RM Home" link in NM should point to one of the RMs in an HA setup. (kasha)
...
(cherry picked from commit 683897fd02
)
2014-10-24 15:00:37 -07:00
Zhijie Shen
1b81105143
YARN-2703. Added logUploadedTime into LogValue for better display. Contributed by Xuan Gong.
...
(cherry picked from commit f81dc3f995
)
2014-10-24 14:12:17 -07:00
Zhijie Shen
13c60bac57
YARN-2724. Skipped uploading a local log file to HDFS if exception is raised when opening it. Contributed by Xuan Gong.
...
(cherry picked from commit e31f0a6558
)
2014-10-24 11:15:19 -07:00
Jian He
d57f2b9dea
Updated CHANGES.txt to move YARN-2682 to branch-2.6
...
(cherry picked from commit 071c925c7d
)
2014-10-23 22:28:23 -07:00
Zhijie Shen
3b03ea6b50
YARN-2209. Replaced AM resync/shutdown command with corresponding exceptions and made related MR changes. Contributed by Jian He.
...
(cherry picked from commit 0f3b6900be
)
2014-10-23 22:03:30 -07:00
Zhijie Shen
36515435ff
YARN-2732. Fixed syntax error in SecureContainer.apt.vm. Contributed by Jian He.
...
(cherry picked from commit b94b8b30f2
)
2014-10-22 18:41:05 -07:00
Jian He
1c235a4448
YARN-2198. Remove the need to run NodeManager as privileged account for Windows Secure Container Executor. Contributed by Remus Rusanu
...
(cherry picked from commit 3b12fd6cfb
)
2014-10-22 15:58:26 -07:00
Steve Loughran
5e6494ea95
YARN-2700 TestSecureRMRegistryOperations failing on windows: auth problems
2014-10-22 21:13:32 +01:00
Steve Loughran
a64ac5501c
YARN-2692 ktutil test hanging on some machines/ktutil versions (stevel)
2014-10-22 14:35:13 +01:00
Zhijie Shen
4b9de2cdfe
YARN-2721. Suppress NodeExist exception thrown by ZKRMStateStore when it retries creating znode. Contributed by Jian He.
...
(cherry picked from commit 7e3b5e6f5c
)
2014-10-21 21:52:01 -07:00
Vinod Kumar Vavilapalli
77dc9afe86
YARN-2715. Fixed ResourceManager to respect common configurations for proxy users/groups beyond just the YARN level config. Contributed by Zhijie Shen.
...
(cherry picked from commit c0e034336c
)
2014-10-21 20:10:45 -07:00
Zhijie Shen
296bbd8971
YARN-2709. Made timeline client getDelegationToken API retry if ConnectException happens. Contributed by Li Lu.
...
(cherry picked from commit b2942762d7
)
2014-10-21 16:08:18 -07:00
cnauroth
a066134277
YARN-2720. Windows: Wildcard classpath variables not expanded against resources contained in archives. Contributed by Craig Welch.
...
(cherry picked from commit 6637e3cf95
)
2014-10-21 12:34:58 -07:00
Jason Lowe
3820bf055e
YARN-90. NodeManager should identify failed disks becoming good again. Contributed by Varun Vasudev
...
(cherry picked from commit 6f2028bd15
)
2014-10-21 17:33:34 +00:00
Zhijie Shen
fd7ba56f6a
YARN-2717. Avoided duplicate logging when container logs are not found. Contributed by Xuan Gong.
...
(cherry picked from commit 171f2376d2
)
2014-10-20 22:23:12 -07:00
Jian He
b52928a6ea
Missing file for YARN-1879
...
(cherry picked from commit 4a78a75228
)
2014-10-20 21:14:57 -07:00
Jian He
e9564e729f
Missing file for YARN-2701
...
(cherry picked from commit 4fa1fb3193
)
2014-10-20 19:58:21 -07:00
Jian He
3c8ae89050
YARN-2701. Potential race condition in startLocalizer when using LinuxContainerExecutor. Contributed by Xuan Gong
...
(cherry picked from commit 2839365f23
)
2014-10-20 19:54:10 -07:00
Zhijie Shen
f75570734b
YARN-2582. Fixed Log CLI and Web UI for showing aggregated logs of LRS. Contributed Xuan Gong.
...
(cherry picked from commit e90718fa5a
)
2014-10-20 13:42:22 -07:00
Zhijie Shen
42ceed8f20
YARN-2673. Made timeline client put APIs retry if ConnectException happens. Contributed by Li Lu.
...
(cherry picked from commit 89427419a3
)
2014-10-20 12:23:10 -07:00
Vinod Kumar Vavilapalli
9915d52185
YARN-2504. Enhanced RM Admin CLI to support management of node-labels. Contribyted by Wangda Tan.
...
(cherry picked from commit 8256766498
)
2014-10-18 12:08:28 -07:00
Vinod Kumar Vavilapalli
ea841eb25d
YARN-2676. Enhanced Timeline auth-filter to support proxy users. Contributed by Zhijie Shen.
...
(cherry picked from commit 39063cd36f
)
2014-10-17 22:03:43 -07:00
Vinod Kumar Vavilapalli
1c52b6551b
YARN-2705. Fixed bugs in ResourceManager node-label manager that were causing test-failures: added a dummy in-memory labels-manager. Contributed by Wangda Tan.
...
(cherry picked from commit e9c66e8fd2
)
2014-10-17 18:27:04 -07:00
Jian He
78a57087bf
YARN-1879. Marked Idempotent/AtMostOnce annotations to ApplicationMasterProtocol for RM fail over. Contributed by Tsuyoshi OZAWA
...
(cherry picked from commit c3de2412eb
)
2014-10-17 16:36:15 -07:00
Jian He
79428e021f
YARN-2588. Standby RM fails to transitionToActive if previous transitionToActive failed with ZK exception. Contributed by Rohith Sharmaks
...
(cherry picked from commit a6aa6e42ca
)
2014-10-17 10:55:04 -07:00
Vinod Kumar Vavilapalli
99ce4277a8
YARN-2699. Fixed a bug in CommonNodeLabelsManager that caused tests to fail when using ephemeral ports on NodeIDs. Contributed by Wangda Tan.
...
(cherry picked from commit abae63caf9
)
2014-10-17 08:59:22 -07:00
Jian He
10110b6eae
Moved YARN-2682 from 2.6 to 2.7 in CHANGES.txt
...
(cherry picked from commit 72093fd8cb
)
2014-10-16 19:03:29 -07:00
Jian He
a78f1f8da8
YARN-2682. Updated WindowsSecureContainerExecutor to not use DefaultContainerExecutor#getFirstApplicationDir and use getWorkingDir() instead. Contributed by Zhihai Xu
...
(cherry picked from commit 0fd0ebae64
)
2014-10-16 18:15:43 -07:00
Jian He
caba212f12
YARN-2621. Simplify the output when the user doesn't have the access for getDomain(s). Contributed by Zhijie Shen
...
(cherry picked from commit 233d446be1
)
2014-10-16 16:38:00 -07:00
Steve Loughran
fddbf52caa
YARN-2689 TestSecureRMRegistryOperations failing on windows: secure ZK won't start
2014-10-16 14:21:49 -07:00
Vinod Kumar Vavilapalli
76cf2250de
YARN-2685. Fixed a bug in CommonNodeLabelsManager that caused wrong resource tracking per label when a host runs multiple node-managers. Contributed by Wangda Tan.
...
(cherry picked from commit b3056c266a
)
2014-10-15 18:48:36 -07:00
Vinod Kumar Vavilapalli
e8e3a36213
YARN-2496. Enhanced Capacity Scheduler to have basic support for allocating resources based on node-labels. Contributed by Wangda Tan.
...
YARN-2500. Ehnaced ResourceManager to support schedulers allocating resources based on node-labels. Contributed by Wangda Tan.
(cherry picked from commit f2ea555ac6
)
2014-10-15 18:34:19 -07:00
Jian He
f93d2ea27e
YARN-2312. Deprecated old ContainerId#getId API and updated MapReduce to use ContainerId#getContainerId instead. Contributed by Tsuyoshi OZAWA
2014-10-15 15:28:26 -07:00
Zhijie Shen
bec165e163
YARN-2656. Made RM web services authentication filter support proxy user. Contributed by Varun Vasudev and Zhijie Shen.
...
(cherry picked from commit 1220bb72d4
)
2014-10-14 21:56:44 -07:00