You are viewing a plain text version of this content. The canonical link for it is here.
Posted to common-commits@hadoop.apache.org by su...@apache.org on 2020/04/18 14:55:04 UTC
[hadoop] branch branch-3.3 updated: HDFS-15218. RBF:
MountTableRefresherService failed to refresh other router MountTableEntries
in secure mode. Contributed by Surendra Singh Lilhore.
This is an automated email from the ASF dual-hosted git repository.
surendralilhore pushed a commit to branch branch-3.3
in repository https://gitbox.apache.org/repos/asf/hadoop.git
The following commit(s) were added to refs/heads/branch-3.3 by this push:
new a6c718f HDFS-15218. RBF: MountTableRefresherService failed to refresh other router MountTableEntries in secure mode. Contributed by Surendra Singh Lilhore.
a6c718f is described below
commit a6c718fd0fabe734b06c8712833039f0b11a4cf6
Author: Surendra Singh Lilhore <su...@apache.org>
AuthorDate: Sat Apr 18 20:07:21 2020 +0530
HDFS-15218. RBF: MountTableRefresherService failed to refresh other router MountTableEntries in secure mode. Contributed by Surendra Singh Lilhore.
(cherry picked from commit 8e6227441ab31f3ad37998f76faa131e11b0cfe9)
---
.../federation/router/MountTableRefresherService.java | 9 ++++++++-
.../federation/router/MountTableRefresherThread.java | 16 ++++++++++++----
2 files changed, 20 insertions(+), 5 deletions(-)
diff --git a/hadoop-hdfs-project/hadoop-hdfs-rbf/src/main/java/org/apache/hadoop/hdfs/server/federation/router/MountTableRefresherService.java b/hadoop-hdfs-project/hadoop-hdfs-rbf/src/main/java/org/apache/hadoop/hdfs/server/federation/router/MountTableRefresherService.java
index e3ecd26..e998ab0 100644
--- a/hadoop-hdfs-project/hadoop-hdfs-rbf/src/main/java/org/apache/hadoop/hdfs/server/federation/router/MountTableRefresherService.java
+++ b/hadoop-hdfs-project/hadoop-hdfs-rbf/src/main/java/org/apache/hadoop/hdfs/server/federation/router/MountTableRefresherService.java
@@ -34,6 +34,8 @@ import org.apache.hadoop.hdfs.server.federation.store.StateStoreUnavailableExcep
import org.apache.hadoop.hdfs.server.federation.store.StateStoreUtils;
import org.apache.hadoop.hdfs.server.federation.store.records.RouterState;
import org.apache.hadoop.net.NetUtils;
+import org.apache.hadoop.security.SecurityUtil;
+import org.apache.hadoop.security.UserGroupInformation;
import org.apache.hadoop.service.AbstractService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -170,7 +172,12 @@ public class MountTableRefresherService extends AbstractService {
@VisibleForTesting
protected RouterClient createRouterClient(InetSocketAddress routerSocket,
Configuration config) throws IOException {
- return new RouterClient(routerSocket, config);
+ return SecurityUtil.doAsLoginUser(() -> {
+ if (UserGroupInformation.isSecurityEnabled()) {
+ UserGroupInformation.getLoginUser().checkTGTAndReloginFromKeytab();
+ }
+ return new RouterClient(routerSocket, config);
+ });
}
@Override
diff --git a/hadoop-hdfs-project/hadoop-hdfs-rbf/src/main/java/org/apache/hadoop/hdfs/server/federation/router/MountTableRefresherThread.java b/hadoop-hdfs-project/hadoop-hdfs-rbf/src/main/java/org/apache/hadoop/hdfs/server/federation/router/MountTableRefresherThread.java
index c9967a2..a077c4b 100644
--- a/hadoop-hdfs-project/hadoop-hdfs-rbf/src/main/java/org/apache/hadoop/hdfs/server/federation/router/MountTableRefresherThread.java
+++ b/hadoop-hdfs-project/hadoop-hdfs-rbf/src/main/java/org/apache/hadoop/hdfs/server/federation/router/MountTableRefresherThread.java
@@ -23,6 +23,8 @@ import java.util.concurrent.CountDownLatch;
import org.apache.hadoop.hdfs.server.federation.resolver.MountTableManager;
import org.apache.hadoop.hdfs.server.federation.store.protocol.RefreshMountTableEntriesRequest;
import org.apache.hadoop.hdfs.server.federation.store.protocol.RefreshMountTableEntriesResponse;
+import org.apache.hadoop.security.SecurityUtil;
+import org.apache.hadoop.security.UserGroupInformation;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -61,10 +63,16 @@ public class MountTableRefresherThread extends Thread {
@Override
public void run() {
try {
- RefreshMountTableEntriesResponse refreshMountTableEntries =
- manager.refreshMountTableEntries(
- RefreshMountTableEntriesRequest.newInstance());
- success = refreshMountTableEntries.getResult();
+ SecurityUtil.doAsLoginUser(() -> {
+ if (UserGroupInformation.isSecurityEnabled()) {
+ UserGroupInformation.getLoginUser().checkTGTAndReloginFromKeytab();
+ }
+ RefreshMountTableEntriesResponse refreshMountTableEntries = manager
+ .refreshMountTableEntries(
+ RefreshMountTableEntriesRequest.newInstance());
+ success = refreshMountTableEntries.getResult();
+ return true;
+ });
} catch (IOException e) {
LOG.error("Failed to refresh mount table entries cache at router {}",
adminAddress, e);
---------------------------------------------------------------------
To unsubscribe, e-mail: common-commits-unsubscribe@hadoop.apache.org
For additional commands, e-mail: common-commits-help@hadoop.apache.org