Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ttl: fix data race in TTL manager and test #40976

Merged
merged 9 commits into from
Feb 2, 2023
6 changes: 3 additions & 3 deletions domain/domain.go
Original file line number Diff line number Diff line change
Expand Up @@ -133,7 +133,7 @@ type Domain struct {
expiredTimeStamp4PC types.Time
logBackupAdvancer *daemon.OwnerDaemon
historicalStatsWorker *HistoricalStatsWorker
ttlJobManager *ttlworker.JobManager
ttlJobManager atomic.Pointer[ttlworker.JobManager]

serverID uint64
serverIDSession *concurrency.Session
Expand Down Expand Up @@ -2513,7 +2513,7 @@ func (do *Domain) StartTTLJobManager() {
}()

ttlJobManager := ttlworker.NewJobManager(do.ddl.GetID(), do.sysSessionPool, do.store, do.etcdClient)
do.ttlJobManager = ttlJobManager
do.ttlJobManager.Store(ttlJobManager)
ttlJobManager.Start()

<-do.exit
Expand All @@ -2528,7 +2528,7 @@ func (do *Domain) StartTTLJobManager() {

// TTLJobManager returns the ttl job manager on this domain
func (do *Domain) TTLJobManager() *ttlworker.JobManager {
return do.ttlJobManager
return do.ttlJobManager.Load()
}

func init() {
Expand Down