code: func (m *ownerManager) ResignOwner(ctx context.Context) error {
  	elec := (*concurrency.Election)(atomic.LoadPointer(&m.elec))
  	if elec == nil {
  		return errors.Errorf("This node is not a ddl owner, can't be resigned.")
  	}
  
  	childCtx, cancel := context.WithTimeout(ctx, keyOpDefaultTimeout)
  	err := elec.Resign(childCtx)
  	cancel()
  	if err != nil {
  		return errors.Trace(err)
  	}
  
  	logutil.Logger(m.logCtx).Warn("resign ddl owner success")
  	return nil
  }
docs: // ResignOwner lets the owner start a new election.