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);
+ }
}