This is an automated email from the ASF dual-hosted git repository.
caiconghui pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-doris.git
The following commit(s) were added to refs/heads/master by this push:
new ad365b3 [Bug] Fix bug that cannot cancel alter table operation when
table is unstable (#5998)
ad365b3 is described below
commit ad365b3b64ec4be6fb72f04b0b7df6c6a8ab5989
Author: caiconghui <[email protected]>
AuthorDate: Wed Jun 9 15:00:17 2021 +0800
[Bug] Fix bug that cannot cancel alter table operation when table is
unstable (#5998)
Co-authored-by: caiconghui <[email protected]>
---
.../main/java/org/apache/doris/alter/MaterializedViewHandler.java | 6 +++---
.../src/main/java/org/apache/doris/alter/SchemaChangeHandler.java | 5 +++--
2 files changed, 6 insertions(+), 5 deletions(-)
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/alter/MaterializedViewHandler.java
b/fe/fe-core/src/main/java/org/apache/doris/alter/MaterializedViewHandler.java
index 6afe586..87c9c70 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/alter/MaterializedViewHandler.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/alter/MaterializedViewHandler.java
@@ -1214,7 +1214,7 @@ public class MaterializedViewHandler extends AlterHandler
{
}
olapTable.writeLock();
try {
- if (olapTable.getState() != OlapTableState.ROLLUP) {
+ if (olapTable.getState() != OlapTableState.ROLLUP &&
olapTable.getState() != OlapTableState.WAITING_STABLE) {
throw new DdlException("Table[" + tableName + "] is not under
ROLLUP. "
+ "Use 'ALTER TABLE DROP ROLLUP' if you want to.");
}
@@ -1232,7 +1232,7 @@ public class MaterializedViewHandler extends AlterHandler
{
}
if (rollupJobV2List.size() == 0) {
rollupJob = getAlterJob(olapTable.getId());
- Preconditions.checkNotNull(rollupJob, olapTable.getId());
+ Preconditions.checkNotNull(rollupJob, "Table[" + tableName +
"] is not under ROLLUP. ");
if (rollupJob.getState() == JobState.FINISHED
|| rollupJob.getState() == JobState.FINISHING
|| rollupJob.getState() == JobState.CANCELLED) {
@@ -1244,7 +1244,7 @@ public class MaterializedViewHandler extends AlterHandler
{
olapTable.writeUnlock();
}
- // alter job v2's cancel must be called outside the database lock
+ // alter job v2's cancel must be called outside the table lock
if (rollupJobV2List.size() != 0) {
for (AlterJobV2 alterJobV2 : rollupJobV2List) {
alterJobV2.cancel("user cancelled");
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/alter/SchemaChangeHandler.java
b/fe/fe-core/src/main/java/org/apache/doris/alter/SchemaChangeHandler.java
index 3a00b62..a109192 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/alter/SchemaChangeHandler.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/alter/SchemaChangeHandler.java
@@ -1905,7 +1905,8 @@ public class SchemaChangeHandler extends AlterHandler {
}
olapTable.writeLock();
try {
- if (olapTable.getState() != OlapTableState.SCHEMA_CHANGE) {
+ if (olapTable.getState() != OlapTableState.SCHEMA_CHANGE &&
+ olapTable.getState() != OlapTableState.WAITING_STABLE) {
throw new DdlException("Table[" + tableName + "] is not under
SCHEMA_CHANGE.");
}
@@ -1915,7 +1916,7 @@ public class SchemaChangeHandler extends AlterHandler {
schemaChangeJobV2 = schemaChangeJobV2List.size() == 0 ? null :
Iterables.getOnlyElement(schemaChangeJobV2List);
if (schemaChangeJobV2 == null) {
schemaChangeJob = getAlterJob(olapTable.getId());
- Preconditions.checkNotNull(schemaChangeJob, olapTable.getId());
+ Preconditions.checkNotNull(schemaChangeJob, "Table[" +
tableName + "] is not under SCHEMA_CHANGE.");
if (schemaChangeJob.getState() == JobState.FINISHING
|| schemaChangeJob.getState() == JobState.FINISHED
|| schemaChangeJob.getState() == JobState.CANCELLED) {
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]