This is an automated email from the ASF dual-hosted git repository.

rexxiong pushed a commit to branch branch-0.5
in repository https://gitbox.apache.org/repos/asf/celeborn.git


The following commit(s) were added to refs/heads/branch-0.5 by this push:
     new 9db2a088d [CELEBORN-1664][0.5] Fix secret fetch failures after LEADER 
master failover
9db2a088d is described below

commit 9db2a088d221d1503321b7b0958060ba4bdcec46
Author: YutingWang98 <[email protected]>
AuthorDate: Thu Oct 24 11:05:18 2024 +0800

    [CELEBORN-1664][0.5] Fix secret fetch failures after LEADER master failover
    
    ### What changes were proposed in this pull request?
    Same change as https://github.com/apache/celeborn/pull/2826. Merging to 
branch-0.5
    
    ### Why are the changes needed?
    Resolve fix's conflicts with branch-0.5
    
    ### Does this PR introduce _any_ user-facing change?
    no
    
    ### How was this patch tested?
    tested on dev
    
    Closes #2845 from YutingWang98/fix_auth_master_HA.
    
    Authored-by: YutingWang98 <[email protected]>
    Signed-off-by: Shuang <[email protected]>
---
 .../deploy/master/MasterSecretRegistryImpl.java    | 45 +++++++++++++++-------
 .../master/clustermeta/AbstractMetaManager.java    |  4 ++
 2 files changed, 36 insertions(+), 13 deletions(-)

diff --git 
a/master/src/main/java/org/apache/celeborn/service/deploy/master/MasterSecretRegistryImpl.java
 
b/master/src/main/java/org/apache/celeborn/service/deploy/master/MasterSecretRegistryImpl.java
index d78cf6628..0b9544c5c 100644
--- 
a/master/src/main/java/org/apache/celeborn/service/deploy/master/MasterSecretRegistryImpl.java
+++ 
b/master/src/main/java/org/apache/celeborn/service/deploy/master/MasterSecretRegistryImpl.java
@@ -22,29 +22,48 @@ import org.slf4j.LoggerFactory;
 
 import org.apache.celeborn.common.meta.ApplicationMeta;
 import org.apache.celeborn.common.network.sasl.SecretRegistry;
-import org.apache.celeborn.common.network.sasl.SecretRegistryImpl;
-import org.apache.celeborn.service.deploy.master.clustermeta.IMetadataHandler;
+import 
org.apache.celeborn.service.deploy.master.clustermeta.AbstractMetaManager;
 
 /**
- * A simple implementation of {@link SecretRegistry} that stores secrets in 
memory and Ratis. This
- * persists an application secret in Ratis but the deletion of that secret 
happens when
- * ApplicationLost is triggered.
+ * A simple implementation of {@link SecretRegistry} that stores secrets in 
Ratis. This persists an
+ * application secret in Ratis but the deletion of that secret happens when 
ApplicationLost is
+ * triggered.
  */
-public class MasterSecretRegistryImpl extends SecretRegistryImpl {
+public class MasterSecretRegistryImpl implements SecretRegistry {
 
   private static final Logger LOG = 
LoggerFactory.getLogger(MasterSecretRegistryImpl.class);
-  private IMetadataHandler metadataHandler;
+  private AbstractMetaManager statusSystem;
 
   @Override
   public void register(String appId, String secret) {
-    super.register(appId, secret);
-    if (metadataHandler != null) {
-      LOG.info("Persisting metadata for appId: {}", appId);
-      metadataHandler.handleApplicationMeta(new ApplicationMeta(appId, 
secret));
+    LOG.info("Persisting metadata for appId: {}", appId);
+    statusSystem.handleApplicationMeta(new ApplicationMeta(appId, secret));
+  }
+
+  @Override
+  public void unregister(String appId) {
+    LOG.info("Removing metadata for appId: {}", appId);
+    statusSystem.removeApplicationMeta(appId);
+  }
+
+  @Override
+  public String getSecretKey(String appId) {
+    String secret = null;
+    LOG.debug("Fetching secret from metadata manager for appId: {}", appId);
+    ApplicationMeta applicationMeta = statusSystem.applicationMetas.get(appId);
+    if (applicationMeta != null) {
+      secret = applicationMeta.secret();
     }
+    return secret;
+  }
+
+  @Override
+  public boolean isRegistered(String appId) {
+    LOG.info("Fetching registration status from metadata manager for appId: 
{}", appId);
+    return statusSystem.applicationMetas.containsKey(appId);
   }
 
-  void setMetadataHandler(IMetadataHandler metadataHandler) {
-    this.metadataHandler = metadataHandler;
+  void setMetadataHandler(AbstractMetaManager statusSystem) {
+    this.statusSystem = statusSystem;
   }
 }
diff --git 
a/master/src/main/java/org/apache/celeborn/service/deploy/master/clustermeta/AbstractMetaManager.java
 
b/master/src/main/java/org/apache/celeborn/service/deploy/master/clustermeta/AbstractMetaManager.java
index 6a34654ed..b55ede748 100644
--- 
a/master/src/main/java/org/apache/celeborn/service/deploy/master/clustermeta/AbstractMetaManager.java
+++ 
b/master/src/main/java/org/apache/celeborn/service/deploy/master/clustermeta/AbstractMetaManager.java
@@ -474,4 +474,8 @@ public abstract class AbstractMetaManager implements 
IMetadataHandler {
   public void updateApplicationMeta(ApplicationMeta applicationMeta) {
     applicationMetas.putIfAbsent(applicationMeta.appId(), applicationMeta);
   }
+
+  public void removeApplicationMeta(String appId) {
+    applicationMetas.remove(appId);
+  }
 }

Reply via email to