Details
-
Bug
-
Resolution: Fixed
-
Critical
-
Morpheus
-
7.5.0-4355
-
Untriaged
-
Linux x86_64
-
-
0
-
No
-
Analytics Sprint 20
Description
Steps to reproduce -
- Create a 4 node cluster with 3 cbas nodes and 1 node with kv,n1ql and index services.
- Create 2 buckets with 2 scopes and 10 collection in each scope.
- Load 2.5k docs in each collection.
- Now set the default dataset storage format as column using analytics/config/service endpoint.
- Create datasets on all collections in both buckets.
- Create index on each of the dataset.
- Execute following query for each dataset -
EXPLAIN SELECT VALUE v FROM <dataset_name> v WHERE age > 2
- Following error is seen -
[
{
"code": 24112,
"msg": "Invalid name for a database object: 'ikwPV7uCY/O1yLR57cAOLj2v9'",
"query_from_user": "EXPLAIN SELECT VALUE v FROM ikwPV7uCY.O1yLR57cAOLj2v9.OZlt2foRe6azxeW4N v WHERE age > 2"
}
]
I ran below queries for one of the dataset that was created -
select * from `ikwPV7uCY`.`O1yLR57cAOLj2v9`.`OZlt2foRe6azxeW4N` where age > 2;
|
[
|
\{
|
"code": 24112,
|
"msg": "Invalid name for a database object: 'ikwPV7uCY/O1yLR57cAOLj2v9'",
|
"query_from_user": "select * from `ikwPV7uCY`.`O1yLR57cAOLj2v9`.`OZlt2foRe6azxeW4N` where age > 2;"
|
}
|
]
|
but if I run
select * from `ikwPV7uCY`.`O1yLR57cAOLj2v9`.`OZlt2foRe6azxeW4N`;
|
The query returns correct result.
The above behaviour is not observed for dataset with columnar storage.
Following error is observed in analytics_info.log
2023-05-17T13:10:56.872+00:00 WARN CBAS.server.QueryServiceServlet [HttpExecutor(port:8095)-4] handleException: unexpected exception: <ud>{"host":"10.123.230.101:8091","path":"/query/service","statement":"select * from `ikwPV7uCY`.`O1yLR57cAOLj2v9`.`OZlt2foRe6azxeW4N` where age > 2;","pretty":false,"mode":"immediate","clientContextID":"b736066f-6b33-4622-8f73-a685ae04aff0","clientType":"ASTERIX","dataverse":null,"format":"CLEAN_JSON","timeout":9223372036854775807,"maxResultReads":1,"planFormat":"JSON","expressionTree":false,"rewrittenExpressionTree":false,"logicalPlan":false,"optimizedLogicalPlan":true,"job":false,"profile":"counts","signature":true,"multiStatement":false,"parseOnly":false,"readOnly":false,"maxWarnings":10,"sqlCompat":false,"scanConsistency":"not_bounded","scanWait":null}</ud>
|
java.lang.IllegalArgumentException: ASX1115: Invalid name for a database object: 'ikwPV7uCY/O1yLR57cAOLj2v9'
|
at org.apache.asterix.common.metadata.DataverseName.createBuiltinDataverseName(DataverseName.java:246) ~[asterix-common-7.5.0-4355.jar:7.5.0-4355]
|
at org.apache.asterix.optimizer.rules.pushdown.OperatorValueAccessPushdownVisitor.getDataSourceFromUnnestMapOperator(OperatorValueAccessPushdownVisitor.java:298) ~[asterix-algebra-7.5.0-4355.jar:7.5.0-4355]
|
at org.apache.asterix.optimizer.rules.pushdown.OperatorValueAccessPushdownVisitor.visitUnnestMapOperator(OperatorValueAccessPushdownVisitor.java:218) ~[asterix-algebra-7.5.0-4355.jar:7.5.0-4355]
|
at org.apache.asterix.optimizer.rules.pushdown.OperatorValueAccessPushdownVisitor.visitUnnestMapOperator(OperatorValueAccessPushdownVisitor.java:97) ~[asterix-algebra-7.5.0-4355.jar:7.5.0-4355]
|
at org.apache.hyracks.algebricks.core.algebra.operators.logical.UnnestMapOperator.accept(UnnestMapOperator.java:67) ~[algebricks-core-7.5.0-4355.jar:7.5.0-4355]
|
at org.apache.asterix.optimizer.rules.pushdown.OperatorValueAccessPushdownVisitor.visitInputs(OperatorValueAccessPushdownVisitor.java:168) ~[asterix-algebra-7.5.0-4355.jar:7.5.0-4355]
|
at org.apache.asterix.optimizer.rules.pushdown.OperatorValueAccessPushdownVisitor.visitInputs(OperatorValueAccessPushdownVisitor.java:620) ~[asterix-algebra-7.5.0-4355.jar:7.5.0-4355]
|
at org.apache.asterix.optimizer.rules.pushdown.OperatorValueAccessPushdownVisitor.visitProjectOperator(OperatorValueAccessPushdownVisitor.java:193) ~[asterix-algebra-7.5.0-4355.jar:7.5.0-4355]
|
at org.apache.asterix.optimizer.rules.pushdown.OperatorValueAccessPushdownVisitor.visitProjectOperator(OperatorValueAccessPushdownVisitor.java:97) ~[asterix-algebra-7.5.0-4355.jar:7.5.0-4355]
|
at org.apache.hyracks.algebricks.core.algebra.operators.logical.ProjectOperator.accept(ProjectOperator.java:70) ~[algebricks-core-7.5.0-4355.jar:7.5.0-4355]
|
at org.apache.asterix.optimizer.rules.pushdown.OperatorValueAccessPushdownVisitor.visitInputs(OperatorValueAccessPushdownVisitor.java:168) ~[asterix-algebra-7.5.0-4355.jar:7.5.0-4355]
|
at org.apache.asterix.optimizer.rules.pushdown.OperatorValueAccessPushdownVisitor.visitInputs(OperatorValueAccessPushdownVisitor.java:620) ~[asterix-algebra-7.5.0-4355.jar:7.5.0-4355]
|
at org.apache.asterix.optimizer.rules.pushdown.OperatorValueAccessPushdownVisitor.visitSelectOperator(OperatorValueAccessPushdownVisitor.java:432) ~[asterix-algebra-7.5.0-4355.jar:7.5.0-4355]
|
at org.apache.asterix.optimizer.rules.pushdown.OperatorValueAccessPushdownVisitor.visitSelectOperator(OperatorValueAccessPushdownVisitor.java:97) ~[asterix-algebra-7.5.0-4355.jar:7.5.0-4355]
|
at org.apache.hyracks.algebricks.core.algebra.operators.logical.SelectOperator.accept(SelectOperator.java:107) ~[algebricks-core-7.5.0-4355.jar:7.5.0-4355]
|
at org.apache.asterix.optimizer.rules.pushdown.OperatorValueAccessPushdownVisitor.visitInputs(OperatorValueAccessPushdownVisitor.java:168) ~[asterix-algebra-7.5.0-4355.jar:7.5.0-4355]
|
at org.apache.asterix.optimizer.rules.pushdown.OperatorValueAccessPushdownVisitor.visitAssignOperator(OperatorValueAccessPushdownVisitor.java:239) ~[asterix-algebra-7.5.0-4355.jar:7.5.0-4355]
|
at org.apache.asterix.optimizer.rules.pushdown.OperatorValueAccessPushdownVisitor.visitAssignOperator(OperatorValueAccessPushdownVisitor.java:97) ~[asterix-algebra-7.5.0-4355.jar:7.5.0-4355]
|
at org.apache.hyracks.algebricks.core.algebra.operators.logical.AssignOperator.accept(AssignOperator.java:61) ~[algebricks-core-7.5.0-4355.jar:7.5.0-4355]
|
at org.apache.asterix.optimizer.rules.pushdown.OperatorValueAccessPushdownVisitor.visitInputs(OperatorValueAccessPushdownVisitor.java:168) ~[asterix-algebra-7.5.0-4355.jar:7.5.0-4355]
|
at org.apache.asterix.optimizer.rules.pushdown.OperatorValueAccessPushdownVisitor.visitInputs(OperatorValueAccessPushdownVisitor.java:620) ~[asterix-algebra-7.5.0-4355.jar:7.5.0-4355]
|
at org.apache.asterix.optimizer.rules.pushdown.OperatorValueAccessPushdownVisitor.visitProjectOperator(OperatorValueAccessPushdownVisitor.java:193) ~[asterix-algebra-7.5.0-4355.jar:7.5.0-4355]
|
at org.apache.asterix.optimizer.rules.pushdown.OperatorValueAccessPushdownVisitor.visitProjectOperator(OperatorValueAccessPushdownVisitor.java:97) ~[asterix-algebra-7.5.0-4355.jar:7.5.0-4355]
|
at org.apache.hyracks.algebricks.core.algebra.operators.logical.ProjectOperator.accept(ProjectOperator.java:70) ~[algebricks-core-7.5.0-4355.jar:7.5.0-4355]
|
at org.apache.asterix.optimizer.rules.pushdown.OperatorValueAccessPushdownVisitor.visitInputs(OperatorValueAccessPushdownVisitor.java:168) ~[asterix-algebra-7.5.0-4355.jar:7.5.0-4355]
|
at org.apache.asterix.optimizer.rules.pushdown.OperatorValueAccessPushdownVisitor.visitInputs(OperatorValueAccessPushdownVisitor.java:620) ~[asterix-algebra-7.5.0-4355.jar:7.5.0-4355]
|
at org.apache.asterix.optimizer.rules.pushdown.OperatorValueAccessPushdownVisitor.visitDistributeResultOperator(OperatorValueAccessPushdownVisitor.java:583) ~[asterix-algebra-7.5.0-4355.jar:7.5.0-4355]
|
at org.apache.asterix.optimizer.rules.pushdown.OperatorValueAccessPushdownVisitor.visitDistributeResultOperator(OperatorValueAccessPushdownVisitor.java:97) ~[asterix-algebra-7.5.0-4355.jar:7.5.0-4355]
|
at org.apache.hyracks.algebricks.core.algebra.operators.logical.DistributeResultOperator.accept(DistributeResultOperator.java:64) ~[algebricks-core-7.5.0-4355.jar:7.5.0-4355]
|
at org.apache.asterix.optimizer.rules.PushValueAccessToDataScanRule.rewritePre(PushValueAccessToDataScanRule.java:86) ~[asterix-algebra-7.5.0-4355.jar:7.5.0-4355]
|
at org.apache.hyracks.algebricks.core.rewriter.base.AbstractRuleController.rewriteOperatorRef(AbstractRuleController.java:79) ~[algebricks-core-7.5.0-4355.jar:7.5.0-4355]
|
at org.apache.hyracks.algebricks.compiler.rewriter.rulecontrollers.SequentialOnceRuleController.rewriteWithRuleCollection(SequentialOnceRuleController.java:43) ~[algebricks-compiler-7.5.0-4355.jar:7.5.0-4355]
|
at org.apache.hyracks.algebricks.core.rewriter.base.HeuristicOptimizer.runOptimizationSets(HeuristicOptimizer.java:92) ~[algebricks-core-7.5.0-4355.jar:7.5.0-4355]
|
at org.apache.hyracks.algebricks.core.rewriter.base.HeuristicOptimizer.runPhysicalOptimizationSets(HeuristicOptimizer.java:122) ~[algebricks-core-7.5.0-4355.jar:7.5.0-4355]
|
at org.apache.hyracks.algebricks.core.rewriter.base.HeuristicOptimizer.optimize(HeuristicOptimizer.java:66) ~[algebricks-core-7.5.0-4355.jar:7.5.0-4355]
|
at org.apache.hyracks.algebricks.compiler.api.HeuristicCompilerFactoryBuilder$CompilerImpl.optimize(HeuristicCompilerFactoryBuilder.java:163) ~[algebricks-compiler-7.5.0-4355.jar:7.5.0-4355]
|
at org.apache.asterix.api.common.APIFramework.compileQuery(APIFramework.java:268) ~[asterix-app-7.5.0-4355.jar:7.5.0-4355]
|
at org.apache.asterix.app.translator.QueryTranslator.rewriteCompileQuery(QueryTranslator.java:3630) ~[asterix-app-7.5.0-4355.jar:7.5.0-4355]
|
at org.apache.asterix.app.translator.QueryTranslator.lambda$handleQuery$2(QueryTranslator.java:4534) ~[asterix-app-7.5.0-4355.jar:7.5.0-4355]
|
at org.apache.asterix.app.translator.QueryTranslator.createAndRunJob(QueryTranslator.java:4673) ~[asterix-app-7.5.0-4355.jar:7.5.0-4355]
|
at org.apache.asterix.app.translator.QueryTranslator.deliverResult(QueryTranslator.java:4580) ~[asterix-app-7.5.0-4355.jar:7.5.0-4355]
|
at org.apache.asterix.app.translator.QueryTranslator.handleQuery(QueryTranslator.java:4550) ~[asterix-app-7.5.0-4355.jar:7.5.0-4355]
|
at org.apache.asterix.app.translator.QueryTranslator.compileAndExecute(QueryTranslator.java:497) ~[asterix-app-7.5.0-4355.jar:7.5.0-4355]
|
at org.apache.asterix.app.message.ExecuteStatementRequestMessage.handle(ExecuteStatementRequestMessage.java:180) ~[asterix-app-7.5.0-4355.jar:7.5.0-4355]
|
at org.apache.asterix.messaging.CCMessageBroker.receivedMessage(CCMessageBroker.java:64) ~[asterix-app-7.5.0-4355.jar:7.5.0-4355]
|
at org.apache.hyracks.control.cc.work.ApplicationMessageWork.lambda$notifyMessageBroker$0(ApplicationMessageWork.java:68) ~[hyracks-control-cc-7.5.0-4355.jar:7.5.0-4355]
|
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) ~[?:?]
|
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) ~[?:?]
|
at java.lang.Thread.run(Thread.java:833) ~[?:?]
|
Caused by: org.apache.asterix.common.exceptions.AsterixException: ASX1115: Invalid name for a database object: 'ikwPV7uCY/O1yLR57cAOLj2v9'
|
at org.apache.asterix.common.metadata.DataverseName.validatePart(DataverseName.java:289) ~[asterix-common-7.5.0-4355.jar:7.5.0-4355]
|
at org.apache.asterix.common.metadata.DataverseName.encodeSinglePartNamePartIntoCanonicalForm(DataverseName.java:278) ~[asterix-common-7.5.0-4355.jar:7.5.0-4355]
|
at org.apache.asterix.common.metadata.DataverseName.createSinglePartName(DataverseName.java:234) ~[asterix-common-7.5.0-4355.jar:7.5.0-4355]
|
at org.apache.asterix.common.metadata.DataverseName.createBuiltinDataverseName(DataverseName.java:244) ~[asterix-common-7.5.0-4355.jar:7.5.0-4355]
|
... 48 more
|
Attachments
Issue Links
- links to