-
Notifications
You must be signed in to change notification settings - Fork 3.7k
Description
Discussed in #26865
Originally posted by bingwill November 13, 2023
1、problem:I ran into an 'Unexpected exception: null' error when submitting an update sql to dorisDB.
2、env:Deployed the latest doris version(2.0.2) .Using the upsert feature by setting up parameters like enable_unique_key_merge_on_write = true and set enable_unique_key_partial_update=true in the Unique model.
3、Error occurred when using the update sql to modify data with full unique keys.
Update sql can be executed successfully,when using part of then unique keys or any none unique key or mixed.
4、
1)table ddl:
CREATE TABLE mtstate (
id varchar(100) NOT NULL,
type int(11) NOT NULL,
date datetime NULL,
remark varchar(100) NULL COMMENT,
action_time datetime NULL
) ENGINE=OLAP
UNIQUE KEY(id, type)
COMMENT 'OLAP'
DISTRIBUTED BY HASH(id, type) BUCKETS 10
PROPERTIES (
"replication_allocation" = "tag.location.default: 3",
"is_being_synced" = "false",
"storage_format" = "V2",
"enable_unique_key_merge_on_write" = "true",
"light_schema_change" = "true",
"store_row_column" = "true",
"disable_auto_compaction" = "false",
"enable_single_replica_compaction" = "false"
);
- successful :update mtstate t set t.remark ='898989' where t.id ='380133091267784704' and t.type =3 and t.date ='2023-11-12 00:00:00';
update mtstate t set t.remark ='898989' where t.id ='380133091267784704' and t.date ='2023-11-12 00:00:00';
update mtstate t set t.remark ='898989' where t.id ='380133091267784704' ;
etc.
3)failed : update mtstate t set t.remark ='898989' where t.id ='380133091267784704' and t.type =3;
5、error info
1)mysql client:
SQL 错误 [1105] [HY000]: errCode = 2, detailMessage = Unexpected exception: null。
2)fe.log
2023-11-13 11:26:45,128 INFO (mysql-nio-pool-9|1234) [DatabaseTransactionMgr.beginTransaction():351] begin transaction: txn id 27988117 with label insert_ab22aaf8ce44464c_b674210e829cba2b from coordinator FE: 10.12.42.77, listener id: -1
2023-11-13 11:26:45,198 WARN (mysql-nio-pool-9|1234) [StmtExecutor.analyze():992] Analyze failed. stmt[1299, ab22aaf8ce44464c-b674210e829cba2b]
java.lang.NullPointerException: null
at org.apache.doris.planner.OriginalPlanner.createPlanFragments(OriginalPlanner.java:239) ~[doris-fe.jar:1.2-SNAPSHOT]
at org.apache.doris.planner.OriginalPlanner.plan(OriginalPlanner.java:101) ~[doris-fe.jar:1.2-SNAPSHOT]
at org.apache.doris.qe.StmtExecutor.analyzeAndGenerateQueryPlan(StmtExecutor.java:1141) ~[doris-fe.jar:1.2-SNAPSHOT]
at org.apache.doris.qe.StmtExecutor.analyze(StmtExecutor.java:975) ~[doris-fe.jar:1.2-SNAPSHOT]
at org.apache.doris.qe.StmtExecutor.executeByLegacy(StmtExecutor.java:673) ~[doris-fe.jar:1.2-SNAPSHOT]
at org.apache.doris.qe.StmtExecutor.execute(StmtExecutor.java:451) ~[doris-fe.jar:1.2-SNAPSHOT]
at org.apache.doris.qe.StmtExecutor.execute(StmtExecutor.java:422) ~[doris-fe.jar:1.2-SNAPSHOT]
at org.apache.doris.qe.StmtExecutor.handleUpdateStmt(StmtExecutor.java:2160) ~[doris-fe.jar:1.2-SNAPSHOT]
at org.apache.doris.qe.StmtExecutor.executeByLegacy(StmtExecutor.java:744) ~[doris-fe.jar:1.2-SNAPSHOT]
at org.apache.doris.qe.StmtExecutor.execute(StmtExecutor.java:448) ~[doris-fe.jar:1.2-SNAPSHOT]
at org.apache.doris.qe.StmtExecutor.execute(StmtExecutor.java:422) ~[doris-fe.jar:1.2-SNAPSHOT]
at org.apache.doris.qe.ConnectProcessor.handleQuery(ConnectProcessor.java:435) ~[doris-fe.jar:1.2-SNAPSHOT]
at org.apache.doris.qe.ConnectProcessor.dispatch(ConnectProcessor.java:583) ~[doris-fe.jar:1.2-SNAPSHOT]
at org.apache.doris.qe.ConnectProcessor.processOnce(ConnectProcessor.java:834) ~[doris-fe.jar:1.2-SNAPSHOT]
at org.apache.doris.mysql.ReadListener.lambda$handleEvent$0(ReadListener.java:52) ~[doris-fe.jar:1.2-SNAPSHOT]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) ~[?:1.8.0_162]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) ~[?:1.8.0_162]
at java.lang.Thread.run(Thread.java:748) ~[?:1.8.0_162]
2023-11-13 11:26:45,198 WARN (mysql-nio-pool-9|1234) [StmtExecutor.executeByLegacy():776] execute Exception. stmt[1299, ab22aaf8ce44464c-b674210e829cba2b]
org.apache.doris.common.AnalysisException: errCode = 2, detailMessage = Unexpected exception: null
at org.apache.doris.qe.StmtExecutor.analyze(StmtExecutor.java:993) ~[doris-fe.jar:1.2-SNAPSHOT]
at org.apache.doris.qe.StmtExecutor.executeByLegacy(StmtExecutor.java:673) ~[doris-fe.jar:1.2-SNAPSHOT]
at org.apache.doris.qe.StmtExecutor.execute(StmtExecutor.java:451) ~[doris-fe.jar:1.2-SNAPSHOT]
at org.apache.doris.qe.StmtExecutor.execute(StmtExecutor.java:422) ~[doris-fe.jar:1.2-SNAPSHOT]
at org.apache.doris.qe.StmtExecutor.handleUpdateStmt(StmtExecutor.java:2160) ~[doris-fe.jar:1.2-SNAPSHOT]
at org.apache.doris.qe.StmtExecutor.executeByLegacy(StmtExecutor.java:744) ~[doris-fe.jar:1.2-SNAPSHOT]
at org.apache.doris.qe.StmtExecutor.execute(StmtExecutor.java:448) ~[doris-fe.jar:1.2-SNAPSHOT]
at org.apache.doris.qe.StmtExecutor.execute(StmtExecutor.java:422) ~[doris-fe.jar:1.2-SNAPSHOT]
at org.apache.doris.qe.ConnectProcessor.handleQuery(ConnectProcessor.java:435) ~[doris-fe.jar:1.2-SNAPSHOT]
at org.apache.doris.qe.ConnectProcessor.dispatch(ConnectProcessor.java:583) ~[doris-fe.jar:1.2-SNAPSHOT]
at org.apache.doris.qe.ConnectProcessor.processOnce(ConnectProcessor.java:834) ~[doris-fe.jar:1.2-SNAPSHOT]
at org.apache.doris.mysql.ReadListener.lambda$handleEvent$0(ReadListener.java:52) ~[doris-fe.jar:1.2-SNAPSHOT]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) ~[?:1.8.0_162]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) ~[?:1.8.0_162]
at java.lang.Thread.run(Thread.java:748) ~[?:1.8.0_162]
6、Is there anthing wrong with it?
thanks!!