code: func convertNotStartAddIdxJob2RollbackJob(t *meta.Meta, job *model.Job, occuredErr error) (ver int64, err error) {
  	schemaID := job.SchemaID
  	tblInfo, err := getTableInfoAndCancelFaultJob(t, job, schemaID)
  	if err != nil {
  		return ver, errors.Trace(err)
  	}
  
  	var (
  		unique      bool
  		indexName   model.CIStr
  		idxColNames []*ast.IndexColName
  		indexOption *ast.IndexOption
  	)
  	err = job.DecodeArgs(&unique, &indexName, &idxColNames, &indexOption)
  	if err != nil {
  		job.State = model.JobStateCancelled
  		return ver, errors.Trace(err)
  	}
  
  	indexInfo := tblInfo.FindIndexByName(indexName.L)
  	if indexInfo == nil {
  		job.State = model.JobStateCancelled
  		return ver, errCancelledDDLJob
  	}
  	return convertAddIdxJob2RollbackJob(t, job, tblInfo, indexInfo, occuredErr)
  }
docs: // convertNotStartAddIdxJob2RollbackJob converts the add index job that are not started workers to rollingbackJob,
  // to rollback add index operations. job.SnapshotVer == 0 indicates the workers are not started.