Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
1.2
Description
问题描述 :
删除view 的源序列,show view 报错信息不正确。
用例:
drop database root.db;
drop database root.view;
create database root.db;
create database root.view;
create timeseries root.db.d01.s01 with datatype=INT32;
create timeseries root.db.d01.s02 with datatype=INT64;
create timeseries root.db.d02.s01 with datatype=BOOLEAN;
create timeseries root.db.d02.s02 with datatype=TEXT;
CREATE VIEW root.view.d(alpha, beta, gamma,delta) AS SELECT s01, s02 FROM root.db.d01, root.db.d02;
show view root.view.d.*;
insert into root.db.d01(time,s01,s02) values(1,1,1);
insert into root.db.d02(time,s01,s02) values(2,true,"hello");
select alpha, beta, gamma,delta from root.view.d;
show view root.view.d.delta;
delete timeseries root.db.d02.s02;
show view root.view.d.delta;
show view;
show view;
drop view root.view.d.delta;
show view root.view.d.delta;
create timeseries root.db.d02.s02 with datatype=TEXT;
show view root.view.d.*;
show view root.view.d.gamma;
delete timeseries root.db.d01.s02;
show view root.view.d.gamma;
show view;
show view;
show view;
show view;
因为此环境,已经多次执行 view 功能的测试。
运行到这个用例,才出现这个问题,可以参考log 定位:
2023-05-31 18:02:26,448 [pool-28-IoTDB-ClientRPC-Processor-6] WARN o.a.i.d.u.ErrorHandlingUtils:89 - Status code: 301, Query Statement: "show view". executeStatement failed
org.apache.iotdb.commons.exception.IoTDBException: java.lang.IllegalStateException: queue has been destroyed
at org.apache.iotdb.db.mpp.plan.execution.QueryExecution.dealWithException(QueryExecution.java:530)
at org.apache.iotdb.db.mpp.plan.execution.QueryExecution.getResult(QueryExecution.java:513)
at org.apache.iotdb.db.mpp.plan.execution.QueryExecution.getByteBufferBatchResult(QueryExecution.java:548)
at org.apache.iotdb.db.utils.QueryDataSetUtils.convertQueryResultByFetchSize(QueryDataSetUtils.java:254)
at org.apache.iotdb.db.service.thrift.impl.ClientRPCServiceImpl.lambda$static$0(ClientRPCServiceImpl.java:173)
at org.apache.iotdb.db.service.thrift.impl.ClientRPCServiceImpl.executeStatementInternal(ClientRPCServiceImpl.java:252)
at org.apache.iotdb.db.service.thrift.impl.ClientRPCServiceImpl.executeStatementV2(ClientRPCServiceImpl.java:570)
at org.apache.iotdb.service.rpc.thrift.IClientRPCService$Processor$executeStatementV2.getResult(IClientRPCService.java:3749)
at org.apache.iotdb.service.rpc.thrift.IClientRPCService$Processor$executeStatementV2.getResult(IClientRPCService.java:3729)
at org.apache.thrift.ProcessFunction.process(ProcessFunction.java:38)
at org.apache.iotdb.db.service.thrift.ProcessorWithMetrics.process(ProcessorWithMetrics.java:64)
at org.apache.thrift.server.TThreadPoolServer$WorkerProcess.run(TThreadPoolServer.java:248)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.IllegalStateException: queue has been destroyed
at org.apache.iotdb.db.mpp.execution.exchange.SharedTsBlockQueue.remove(SharedTsBlockQueue.java:178)
at org.apache.iotdb.db.mpp.execution.exchange.source.LocalSourceHandle.receive(LocalSourceHandle.java:113)
at org.apache.iotdb.db.mpp.execution.operator.source.ExchangeOperator.next(ExchangeOperator.java:76)
at org.apache.iotdb.db.mpp.execution.operator.Operator.nextWithTimer(Operator.java:46)
at org.apache.iotdb.db.mpp.execution.operator.schema.SchemaQueryMergeOperator.next(SchemaQueryMergeOperator.java:55)
at org.apache.iotdb.db.mpp.execution.operator.sink.IdentitySinkOperator.next(IdentitySinkOperator.java:99)
at org.apache.iotdb.db.mpp.execution.operator.Operator.nextWithTimer(Operator.java:46)
at org.apache.iotdb.db.mpp.execution.driver.Driver.processInternal(Driver.java:229)
at org.apache.iotdb.db.mpp.execution.driver.Driver.lambda$processFor$1(Driver.java:152)
at org.apache.iotdb.db.mpp.execution.driver.Driver.tryWithLock(Driver.java:316)
at org.apache.iotdb.db.mpp.execution.driver.Driver.processFor(Driver.java:133)
at org.apache.iotdb.db.mpp.execution.schedule.DriverTaskThread.execute(DriverTaskThread.java:68)
at org.apache.iotdb.db.mpp.execution.schedule.AbstractDriverThread.run(AbstractDriverThread.java:73)
2023-05-31 18:05:30,453 [Query-Worker-Thread-2$20230531_100530_03199_1.3.0.0] WARN o.a.i.d.m.e.s.DriverScheduler$Scheduler:566 - The task 20230531_100530_03199_1.3.0.0 is aborted. All other tasks in the same query will be cancelled
2023-05-31 18:05:30,454 [pool-28-IoTDB-ClientRPC-Processor-6] WARN o.a.i.d.u.ErrorHandlingUtils:89 - Status code: 301, Query Statement: "show view". executeStatement failed
org.apache.iotdb.commons.exception.IoTDBException: org.apache.iotdb.db.mpp.execution.schedule.DriverTaskAbortedException: DriverTask 20230531_100530_03199_1.1.0.0 is aborted by query cascading aborted
at org.apache.iotdb.db.mpp.plan.execution.QueryExecution.dealWithException(QueryExecution.java:530)
at org.apache.iotdb.db.mpp.plan.execution.QueryExecution.getResult(QueryExecution.java:513)
at org.apache.iotdb.db.mpp.plan.execution.QueryExecution.getByteBufferBatchResult(QueryExecution.java:548)
at org.apache.iotdb.db.utils.QueryDataSetUtils.convertQueryResultByFetchSize(QueryDataSetUtils.java:254)
at org.apache.iotdb.db.service.thrift.impl.ClientRPCServiceImpl.lambda$static$0(ClientRPCServiceImpl.java:173)
at org.apache.iotdb.db.service.thrift.impl.ClientRPCServiceImpl.executeStatementInternal(ClientRPCServiceImpl.java:252)
at org.apache.iotdb.db.service.thrift.impl.ClientRPCServiceImpl.executeStatementV2(ClientRPCServiceImpl.java:570)
at org.apache.iotdb.service.rpc.thrift.IClientRPCService$Processor$executeStatementV2.getResult(IClientRPCService.java:3749)
at org.apache.iotdb.service.rpc.thrift.IClientRPCService$Processor$executeStatementV2.getResult(IClientRPCService.java:3729)
at org.apache.thrift.ProcessFunction.process(ProcessFunction.java:38)
at org.apache.iotdb.db.service.thrift.ProcessorWithMetrics.process(ProcessorWithMetrics.java:64)
at org.apache.thrift.server.TThreadPoolServer$WorkerProcess.run(TThreadPoolServer.java:248)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
Caused by: org.apache.iotdb.db.mpp.execution.schedule.DriverTaskAbortedException: DriverTask 20230531_100530_03199_1.1.0.0 is aborted by query cascading aborted
at org.apache.iotdb.db.mpp.execution.schedule.DriverScheduler.clearDriverTask(DriverScheduler.java:384)
at org.apache.iotdb.db.mpp.execution.schedule.DriverScheduler.access$1000(DriverScheduler.java:71)
at org.apache.iotdb.db.mpp.execution.schedule.DriverScheduler$Scheduler.toAborted(DriverScheduler.java:584)
at org.apache.iotdb.db.mpp.execution.schedule.AbstractDriverThread.run(AbstractDriverThread.java:81)