Skip to content

Commit

Permalink
[fix](schema-change) Fix potential data race when a schema change job…
Browse files Browse the repository at this point in the history
…s is set to cancelled but the table state is still SCHEMA_CHANGE (#39164)

## Proposed changes

Set job cancel state after table state changed to normal.
  • Loading branch information
TangSiyang2001 authored and dataroaring committed Aug 16, 2024
1 parent 0d7d2c5 commit 5df1077
Showing 1 changed file with 3 additions and 5 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -755,11 +755,11 @@ protected synchronized boolean cancelImpl(String errMsg) {
pruneMeta();
this.errMsg = errMsg;
this.finishedTimeMs = System.currentTimeMillis();
LOG.info("cancel {} job {}, err: {}", this.type, jobId, errMsg);
Env.getCurrentEnv().getEditLog().logAlterJob(this);

changeTableState(dbId, tableId, OlapTableState.NORMAL);
LOG.info("set table's state to NORMAL when cancel, table id: {}, job id: {}", tableId, jobId);
jobState = JobState.CANCELLED;
Env.getCurrentEnv().getEditLog().logAlterJob(this);
LOG.info("cancel {} job {}, err: {}", this.type, jobId, errMsg);
postProcessShadowIndex();

return true;
Expand Down Expand Up @@ -797,8 +797,6 @@ private void cancelInternal() {
}
}
}

jobState = JobState.CANCELLED;
}

// Check whether transactions of the given database which txnId is less than 'watershedTxnId' are finished
Expand Down

0 comments on commit 5df1077

Please sign in to comment.