diff --git a/pkg/domain/domain.go b/pkg/domain/domain.go index d10e1c8fc35bc..c4e62c4e0304b 100644 --- a/pkg/domain/domain.go +++ b/pkg/domain/domain.go @@ -2691,12 +2691,19 @@ func (do *Domain) releaseServerID(context.Context) { if do.etcdClient == nil { return } - key := fmt.Sprintf("%s/%v", serverIDEtcdPath, serverID) - err := etcd.DeleteKeyFromEtcd(key, do.etcdClient, refreshServerIDRetryCnt, acquireServerIDTimeout) - if err != nil { - logutil.BgLogger().Error("releaseServerID fail", zap.Uint64("serverID", serverID), zap.Error(err)) + + // closing session releases attached server id and etcd lease. + leaseID := int64(do.serverIDSession.Lease()) + if err := do.serverIDSession.Close(); err != nil { + logutil.BgLogger().Error("releaseServerID fail", + zap.Uint64("serverID", serverID), + zap.Int64("leaseID", leaseID), + zap.Error(err)) } else { - logutil.BgLogger().Info("releaseServerID succeed", zap.Uint64("serverID", serverID)) + logutil.BgLogger().Info("releaseServerID succeed", + zap.Uint64("serverID", serverID), + zap.Int64("leaseID", leaseID), + ) } }