fix(core): Ensure init before checking leader or follower in multi-main scenario (#7621)

This PR ensures `MultiMainInstancePublisher` is initialized before
checking if the instance is leader or follower. Followers skip license
init, license check, and pruning start and stop.
This commit is contained in:
Iván Ovejero
2023-11-06 12:03:35 +01:00
committed by GitHub
parent 52f655f3d2
commit a994ba5e8d
5 changed files with 36 additions and 9 deletions

View File

@@ -28,6 +28,8 @@ export class MultiMainInstancePublisher extends SingleMainInstancePublisher {
private leaderCheckInterval: NodeJS.Timer | undefined;
async init() {
if (this.initialized) return;
await this.initPublisher();
this.initialized = true;

View File

@@ -46,7 +46,11 @@ export class PruningService {
'@/services/orchestration/main/MultiMainInstance.publisher.ee'
);
return Container.get(MultiMainInstancePublisher).isLeader;
const multiMainInstancePublisher = Container.get(MultiMainInstancePublisher);
await multiMainInstancePublisher.init();
return multiMainInstancePublisher.isLeader;
}
return true;
@@ -63,7 +67,11 @@ export class PruningService {
'@/services/orchestration/main/MultiMainInstance.publisher.ee'
);
if (Container.get(MultiMainInstancePublisher).isFollower) return;
const multiMainInstancePublisher = Container.get(MultiMainInstancePublisher);
await multiMainInstancePublisher.init();
if (multiMainInstancePublisher.isFollower) return;
}
this.logger.debug('Clearing soft-deletion interval and hard-deletion timeout (pruning cycle)');