code: func asyncNotifyEvent(d *ddlCtx, e *util.Event) {
  	if d.ddlEventCh != nil {
  		if d.lease == 0 {
  			// If lease is 0, it's always used in test.
  			select {
  			case d.ddlEventCh <- e:
  			default:
  			}
  			return
  		}
  		for i := 0; i < 10; i++ {
  			select {
  			case d.ddlEventCh <- e:
  				return
  			default:
  				logutil.Logger(ddlLogCtx).Warn("[ddl] fail to notify DDL event", zap.String("event", e.String()))
  				time.Sleep(time.Microsecond * 10)
  			}
  		}
  	}
  }
docs: // asyncNotifyEvent will notify the ddl event to outside world, say statistic handle. When the channel is full, we may
  // give up notify and log it.