Skip to content

Commit 39a5701

Browse files
authored
Merge pull request Wei-Shaw#1182 from DaydreamCoding/fix/ops-alert-wg-race-and-context-leak
fix(ops_alert): wg.Add 竞态修复 + leader lock release context 泄漏
2 parents a225a24 + 5c39e6f commit 39a5701

1 file changed

Lines changed: 4 additions & 2 deletions

File tree

backend/internal/service/ops_alert_evaluator_service.go

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,7 @@ func (s *OpsAlertEvaluatorService) Start() {
8888
if s.stopCh == nil {
8989
s.stopCh = make(chan struct{})
9090
}
91+
s.wg.Add(1)
9192
go s.run()
9293
})
9394
}
@@ -105,7 +106,6 @@ func (s *OpsAlertEvaluatorService) Stop() {
105106
}
106107

107108
func (s *OpsAlertEvaluatorService) run() {
108-
s.wg.Add(1)
109109
defer s.wg.Done()
110110

111111
// Start immediately to produce early feedback in ops dashboard.
@@ -848,7 +848,9 @@ func (s *OpsAlertEvaluatorService) tryAcquireLeaderLock(ctx context.Context, loc
848848
return nil, false
849849
}
850850
return func() {
851-
_, _ = opsAlertEvaluatorReleaseScript.Run(ctx, s.redisClient, []string{key}, s.instanceID).Result()
851+
releaseCtx, releaseCancel := context.WithTimeout(context.Background(), 5*time.Second)
852+
defer releaseCancel()
853+
_, _ = opsAlertEvaluatorReleaseScript.Run(releaseCtx, s.redisClient, []string{key}, s.instanceID).Result()
852854
}, true
853855
}
854856

0 commit comments

Comments
 (0)