trino: Spurious errors in function registry or type coercions

For example

OperatorNotFoundException: Cannot apply operator: double = integer

from a test (https://github.com/prestosql/presto/runs/1332836424):

2020-10-30T17:36:26.4273124Z [ERROR] testCorrelatedJoin(io.prestosql.plugin.redis.TestRedisDistributedHash)  Time elapsed: 0.372 s  <<< FAILURE!
2020-10-30T17:36:26.4275549Z java.lang.AssertionError: Execution of 'actual' query failed: SELECT n FROM (SELECT 1 FROM (VALUES 1) WHERE rand() = 5) t(a) RIGHT JOIN LATERAL (SELECT name FROM region) r(n) ON true
2020-10-30T17:36:26.4276644Z 	at org.testng.Assert.fail(Assert.java:83)
2020-10-30T17:36:26.4277930Z 	at io.prestosql.testing.QueryAssertions.assertQuery(QueryAssertions.java:150)
2020-10-30T17:36:26.4279828Z 	at io.prestosql.testing.QueryAssertions.assertQuery(QueryAssertions.java:106)
2020-10-30T17:36:26.4282250Z 	at io.prestosql.testing.AbstractTestQueryFramework.assertQuery(AbstractTestQueryFramework.java:159)
2020-10-30T17:36:26.4285227Z 	at io.prestosql.testing.AbstractTestQueries.testCorrelatedJoin(AbstractTestQueries.java:1848)
2020-10-30T17:36:26.4287596Z 	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
2020-10-30T17:36:26.4289865Z 	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
2020-10-30T17:36:26.4292524Z 	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
2020-10-30T17:36:26.4294480Z 	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
2020-10-30T17:36:26.4296253Z 	at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:104)
2020-10-30T17:36:26.4298179Z 	at org.testng.internal.Invoker.invokeMethod(Invoker.java:645)
2020-10-30T17:36:26.4299684Z 	at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:851)
2020-10-30T17:36:26.4301219Z 	at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1177)
2020-10-30T17:36:26.4303140Z 	at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:129)
2020-10-30T17:36:26.4305056Z 	at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:112)
2020-10-30T17:36:26.4306883Z 	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
2020-10-30T17:36:26.4308805Z 	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
2020-10-30T17:36:26.4313978Z 	at java.base/java.lang.Thread.run(Thread.java:834)
2020-10-30T17:36:26.4314880Z Caused by: java.lang.RuntimeException: line 1:54: Cannot apply operator: double = integer
2020-10-30T17:36:26.4316802Z 	at io.prestosql.testing.AbstractTestingPrestoClient.execute(AbstractTestingPrestoClient.java:115)
2020-10-30T17:36:26.4319341Z 	at io.prestosql.testing.DistributedQueryRunner.execute(DistributedQueryRunner.java:448)
2020-10-30T17:36:26.4321455Z 	at io.prestosql.testing.QueryAssertions.assertQuery(QueryAssertions.java:147)
2020-10-30T17:36:26.4322537Z 	... 16 more
2020-10-30T17:36:26.4323430Z Caused by: io.prestosql.spi.PrestoException: line 1:54: Cannot apply operator: double = integer
2020-10-30T17:36:26.4325587Z 	at io.prestosql.sql.analyzer.SemanticExceptions.semanticException(SemanticExceptions.java:48)
2020-10-30T17:36:26.4328076Z 	at io.prestosql.sql.analyzer.ExpressionAnalyzer$Visitor.getOperator(ExpressionAnalyzer.java:1677)
2020-10-30T17:36:26.4330317Z 	at io.prestosql.sql.analyzer.ExpressionAnalyzer$Visitor.visitComparisonExpression(ExpressionAnalyzer.java:595)
2020-10-30T17:36:26.4334386Z 	at io.prestosql.sql.analyzer.ExpressionAnalyzer$Visitor.visitComparisonExpression(ExpressionAnalyzer.java:384)
2020-10-30T17:36:26.4337686Z 	at io.prestosql.sql.tree.ComparisonExpression.accept(ComparisonExpression.java:71)
2020-10-30T17:36:26.4340804Z 	at io.prestosql.sql.tree.StackableAstVisitor.process(StackableAstVisitor.java:27)
2020-10-30T17:36:26.4342926Z 	at io.prestosql.sql.analyzer.ExpressionAnalyzer$Visitor.process(ExpressionAnalyzer.java:407)
2020-10-30T17:36:26.4345163Z 	at io.prestosql.sql.analyzer.ExpressionAnalyzer.analyze(ExpressionAnalyzer.java:345)
2020-10-30T17:36:26.4347808Z 	at io.prestosql.sql.analyzer.ExpressionAnalyzer.analyzeExpression(ExpressionAnalyzer.java:1890)
2020-10-30T17:36:26.4350268Z 	at io.prestosql.sql.analyzer.StatementAnalyzer$Visitor.analyzeExpression(StatementAnalyzer.java:2627)
2020-10-30T17:36:26.4352322Z 	at io.prestosql.sql.analyzer.StatementAnalyzer$Visitor.analyzeWhere(StatementAnalyzer.java:2486)
2020-10-30T17:36:26.4354442Z 	at io.prestosql.sql.analyzer.StatementAnalyzer$Visitor.lambda$visitQuerySpecification$23(StatementAnalyzer.java:1528)
2020-10-30T17:36:26.4356055Z 	at java.base/java.util.Optional.ifPresent(Optional.java:183)
2020-10-30T17:36:26.4357701Z 	at io.prestosql.sql.analyzer.StatementAnalyzer$Visitor.visitQuerySpecification(StatementAnalyzer.java:1528)
2020-10-30T17:36:26.4360034Z 	at io.prestosql.sql.analyzer.StatementAnalyzer$Visitor.visitQuerySpecification(StatementAnalyzer.java:322)
2020-10-30T17:36:26.4362124Z 	at io.prestosql.sql.tree.QuerySpecification.accept(QuerySpecification.java:144)
2020-10-30T17:36:26.4363930Z 	at io.prestosql.sql.tree.AstVisitor.process(AstVisitor.java:27)
2020-10-30T17:36:26.4365543Z 	at io.prestosql.sql.analyzer.StatementAnalyzer$Visitor.process(StatementAnalyzer.java:339)
2020-10-30T17:36:26.4367409Z 	at io.prestosql.sql.analyzer.StatementAnalyzer$Visitor.process(StatementAnalyzer.java:349)
2020-10-30T17:36:26.4369312Z 	at io.prestosql.sql.analyzer.StatementAnalyzer$Visitor.visitQuery(StatementAnalyzer.java:1039)
2020-10-30T17:36:26.4371243Z 	at io.prestosql.sql.analyzer.StatementAnalyzer$Visitor.visitQuery(StatementAnalyzer.java:322)
2020-10-30T17:36:26.4375127Z 	at io.prestosql.sql.tree.Query.accept(Query.java:107)
2020-10-30T17:36:26.4383840Z 	at io.prestosql.sql.tree.AstVisitor.process(AstVisitor.java:27)
2020-10-30T17:36:26.4385731Z 	at io.prestosql.sql.analyzer.StatementAnalyzer$Visitor.process(StatementAnalyzer.java:339)
2020-10-30T17:36:26.4387715Z 	at io.prestosql.sql.analyzer.StatementAnalyzer.analyze(StatementAnalyzer.java:308)
2020-10-30T17:36:26.4389851Z 	at io.prestosql.sql.analyzer.StatementAnalyzer$Visitor.visitTableSubquery(StatementAnalyzer.java:1516)
2020-10-30T17:36:26.4391998Z 	at io.prestosql.sql.analyzer.StatementAnalyzer$Visitor.visitTableSubquery(StatementAnalyzer.java:322)
2020-10-30T17:36:26.4393831Z 	at io.prestosql.sql.tree.TableSubquery.accept(TableSubquery.java:53)
2020-10-30T17:36:26.4395276Z 	at io.prestosql.sql.tree.AstVisitor.process(AstVisitor.java:27)
2020-10-30T17:36:26.4396889Z 	at io.prestosql.sql.analyzer.StatementAnalyzer$Visitor.process(StatementAnalyzer.java:339)
2020-10-30T17:36:26.4398929Z 	at io.prestosql.sql.analyzer.StatementAnalyzer$Visitor.visitAliasedRelation(StatementAnalyzer.java:1433)
2020-10-30T17:36:26.4401159Z 	at io.prestosql.sql.analyzer.StatementAnalyzer$Visitor.visitAliasedRelation(StatementAnalyzer.java:322)
2020-10-30T17:36:26.4403230Z 	at io.prestosql.sql.tree.AliasedRelation.accept(AliasedRelation.java:71)
2020-10-30T17:36:26.4404904Z 	at io.prestosql.sql.tree.AstVisitor.process(AstVisitor.java:27)
2020-10-30T17:36:26.4406874Z 	at io.prestosql.sql.analyzer.StatementAnalyzer$Visitor.process(StatementAnalyzer.java:339)
2020-10-30T17:36:26.4410188Z 	at io.prestosql.sql.analyzer.StatementAnalyzer$Visitor.visitJoin(StatementAnalyzer.java:1694)
2020-10-30T17:36:26.4413174Z 	at io.prestosql.sql.analyzer.StatementAnalyzer$Visitor.visitJoin(StatementAnalyzer.java:322)
2020-10-30T17:36:26.4414813Z 	at io.prestosql.sql.tree.Join.accept(Join.java:90)
2020-10-30T17:36:26.4415974Z 	at io.prestosql.sql.tree.AstVisitor.process(AstVisitor.java:27)
2020-10-30T17:36:26.4417582Z 	at io.prestosql.sql.analyzer.StatementAnalyzer$Visitor.process(StatementAnalyzer.java:339)
2020-10-30T17:36:26.4419492Z 	at io.prestosql.sql.analyzer.StatementAnalyzer$Visitor.analyzeFrom(StatementAnalyzer.java:2504)
2020-10-30T17:36:26.4421646Z 	at io.prestosql.sql.analyzer.StatementAnalyzer$Visitor.visitQuerySpecification(StatementAnalyzer.java:1526)
2020-10-30T17:36:26.4423977Z 	at io.prestosql.sql.analyzer.StatementAnalyzer$Visitor.visitQuerySpecification(StatementAnalyzer.java:322)
2020-10-30T17:36:26.4426237Z 	at io.prestosql.sql.tree.QuerySpecification.accept(QuerySpecification.java:144)
2020-10-30T17:36:26.4427868Z 	at io.prestosql.sql.tree.AstVisitor.process(AstVisitor.java:27)
2020-10-30T17:36:26.4429473Z 	at io.prestosql.sql.analyzer.StatementAnalyzer$Visitor.process(StatementAnalyzer.java:339)
2020-10-30T17:36:26.4431335Z 	at io.prestosql.sql.analyzer.StatementAnalyzer$Visitor.process(StatementAnalyzer.java:349)
2020-10-30T17:36:26.4433218Z 	at io.prestosql.sql.analyzer.StatementAnalyzer$Visitor.visitQuery(StatementAnalyzer.java:1039)
2020-10-30T17:36:26.4435151Z 	at io.prestosql.sql.analyzer.StatementAnalyzer$Visitor.visitQuery(StatementAnalyzer.java:322)
2020-10-30T17:36:26.4436627Z 	at io.prestosql.sql.tree.Query.accept(Query.java:107)
2020-10-30T17:36:26.4437815Z 	at io.prestosql.sql.tree.AstVisitor.process(AstVisitor.java:27)
2020-10-30T17:36:26.4439415Z 	at io.prestosql.sql.analyzer.StatementAnalyzer$Visitor.process(StatementAnalyzer.java:339)
2020-10-30T17:36:26.4441387Z 	at io.prestosql.sql.analyzer.StatementAnalyzer.analyze(StatementAnalyzer.java:308)
2020-10-30T17:36:26.4443276Z 	at io.prestosql.sql.analyzer.Analyzer.analyze(Analyzer.java:83)
2020-10-30T17:36:26.4444668Z 	at io.prestosql.sql.analyzer.Analyzer.analyze(Analyzer.java:75)
2020-10-30T17:36:26.4446339Z 	at io.prestosql.execution.SqlQueryExecution.analyze(SqlQueryExecution.java:257)
2020-10-30T17:36:26.4448140Z 	at io.prestosql.execution.SqlQueryExecution.<init>(SqlQueryExecution.java:183)
2020-10-30T17:36:26.4450381Z 	at io.prestosql.execution.SqlQueryExecution$SqlQueryExecutionFactory.createQueryExecution(SqlQueryExecution.java:759)
2020-10-30T17:36:26.4453322Z 	at io.prestosql.dispatcher.LocalDispatchQueryFactory.lambda$createDispatchQuery$0(LocalDispatchQueryFactory.java:123)
2020-10-30T17:36:26.4455293Z 	at io.prestosql.$gen.Presto_testversion____20201030_170549_404.call(Unknown Source)
2020-10-30T17:36:26.4457851Z 	at com.google.common.util.concurrent.TrustedListenableFutureTask$TrustedFutureInterruptibleTask.runInterruptibly(TrustedListenableFutureTask.java:125)
2020-10-30T17:36:26.4461201Z 	at com.google.common.util.concurrent.InterruptibleTask.run(InterruptibleTask.java:69)
2020-10-30T17:36:26.4463950Z 	at com.google.common.util.concurrent.TrustedListenableFutureTask.run(TrustedListenableFutureTask.java:78)
2020-10-30T17:36:26.4466647Z 	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
2020-10-30T17:36:26.4468570Z 	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
2020-10-30T17:36:26.4469798Z 	at java.base/java.lang.Thread.run(Thread.java:834)
2020-10-30T17:36:26.4471077Z Caused by: io.prestosql.metadata.OperatorNotFoundException: Cannot apply operator: double = integer
2020-10-30T17:36:26.4473094Z 	at io.prestosql.metadata.MetadataManager.resolveOperator(MetadataManager.java:1710)
2020-10-30T17:36:26.4475200Z 	at io.prestosql.sql.analyzer.ExpressionAnalyzer$Visitor.getOperator(ExpressionAnalyzer.java:1674)
2020-10-30T17:36:26.4476337Z 	... 64 more
2020-10-30T17:36:26.4476540Z 

About this issue

  • Original URL
  • State: closed
  • Created 4 years ago
  • Comments: 32 (32 by maintainers)

Commits related to this issue

Most upvoted comments

@wendigo pointed out we’re not observing this recently

On GHA we use Azul 11.0.11 now. This is not the same version we used couple months before (i didn’t note it down, but i think we were observing failures with 11.0.9).

“Azul 11.0.11+9” release notes (https://docs.azul.com/core/zulu-openjdk/release-notes/april-2021/pdf/zulu11.48-release-notes-ca-linux-aarch64-rev1.0.pdf) are long, but this caught my attention

JDK-8261912 Code IfNode::fold_compares_helper more defensively 

From https://bugs.openjdk.java.net/browse/JDK-8261912

This workarounds C2 miscompilation. … it disables the C2 optimization in places where it would definitely miscompile.

and from a link https://bugs.openjdk.java.net/browse/JDK-8261914

… Incorrect execution of compiled code, intermittent but reproducible …

@findepi does it still happen? Are you aware?

I wish we had a system to collect failure logs, so we can do analytics on them.