Uploaded image for project: 'Spark'
  1. Spark
  2. SPARK-50072

Big Intervals throw java.lang.ArithmeticException

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Open
    • Minor
    • Resolution: Unresolved
    • 4.0.0
    • None
    • SQL
    • None

    Description

      Can be reproduced by

      SELECT interval 106751991 day 4 hour 0 minute 54.776 second

      It throws an ArithmeticException. Probably it should be handled and wrapped with more verbose Spark-specific exception 

      java.lang.ArithmeticException
      	at java.lang.Math.addExact(Math.java:903)
      	at org.apache.spark.sql.catalyst.util.IntervalUtils$.getDuration(IntervalUtils.scala:593)
      	at org.apache.spark.sql.catalyst.parser.AstBuilder.constructMultiUnitsIntervalLiteral(AstBuilder.scala:3652)
      	at org.apache.spark.sql.catalyst.parser.AstBuilder.$anonfun$visitInterval$1(AstBuilder.scala:3688)
      	at org.apache.spark.sql.catalyst.util.SparkParserUtils.withOrigin(SparkParserUtils.scala:154)
      	at org.apache.spark.sql.catalyst.util.SparkParserUtils.withOrigin$(SparkParserUtils.scala:144)
      	at org.apache.spark.sql.catalyst.parser.ParserUtils$.withOrigin(ParserUtils.scala:32)
      	at org.apache.spark.sql.catalyst.parser.AstBuilder.visitInterval(AstBuilder.scala:3663)
      	at org.apache.spark.sql.catalyst.parser.AstBuilder.visitInterval(AstBuilder.scala:85)
      	at org.apache.spark.sql.catalyst.parser.SqlBaseParser$IntervalContext.accept(SqlBaseParser.java:35547)
      	at org.apache.spark.sql.catalyst.parser.AstBuilder.visitChildren(AstBuilder.scala:148)
      	at org.apache.spark.sql.catalyst.parser.SqlBaseParserBaseVisitor.visitIntervalLiteral(SqlBaseParserBaseVisitor.java:3205)
      	at org.apache.spark.sql.catalyst.parser.SqlBaseParser$IntervalLiteralContext.accept(SqlBaseParser.java:35112)
      	at org.apache.spark.sql.catalyst.parser.AstBuilder.visitChildren(AstBuilder.scala:148)
      	at org.apache.spark.sql.catalyst.parser.SqlBaseParserBaseVisitor.visitConstantDefault(SqlBaseParserBaseVisitor.java:3093)
      	at org.apache.spark.sql.catalyst.parser.SqlBaseParser$ConstantDefaultContext.accept(SqlBaseParser.java:33153)
      	at org.apache.spark.sql.catalyst.parser.AstBuilder.visitChildren(AstBuilder.scala:148)
      	at org.apache.spark.sql.catalyst.parser.SqlBaseParserBaseVisitor.visitValueExpressionDefault(SqlBaseParserBaseVisitor.java:2869)
      	at org.apache.spark.sql.catalyst.parser.SqlBaseParser$ValueExpressionDefaultContext.accept(SqlBaseParser.java:31918)
      	at org.apache.spark.sql.catalyst.parser.DataTypeAstBuilder.typedVisit(DataTypeAstBuilder.scala:38)
      	at org.apache.spark.sql.catalyst.parser.AstBuilder.expression(AstBuilder.scala:2261)
      	at org.apache.spark.sql.catalyst.parser.AstBuilder.$anonfun$visitPredicated$1(AstBuilder.scala:2436)
      	at org.apache.spark.sql.catalyst.util.SparkParserUtils.withOrigin(SparkParserUtils.scala:154)
      	at org.apache.spark.sql.catalyst.util.SparkParserUtils.withOrigin$(SparkParserUtils.scala:144)
      	at org.apache.spark.sql.catalyst.parser.ParserUtils$.withOrigin(ParserUtils.scala:32)
      	at org.apache.spark.sql.catalyst.parser.AstBuilder.visitPredicated(AstBuilder.scala:2435)
      	at org.apache.spark.sql.catalyst.parser.AstBuilder.visitPredicated(AstBuilder.scala:85)
      	at org.apache.spark.sql.catalyst.parser.SqlBaseParser$PredicatedContext.accept(SqlBaseParser.java:31273)
      	at org.apache.spark.sql.catalyst.parser.AstBuilder.visitChildren(AstBuilder.scala:148)
      	at org.apache.spark.sql.catalyst.parser.SqlBaseParserBaseVisitor.visitExpression(SqlBaseParserBaseVisitor.java:2799)
      	at org.apache.spark.sql.catalyst.parser.SqlBaseParser$ExpressionContext.accept(SqlBaseParser.java:31015)
      	at org.apache.spark.sql.catalyst.parser.DataTypeAstBuilder.typedVisit(DataTypeAstBuilder.scala:38)
      	at org.apache.spark.sql.catalyst.parser.AstBuilder.expression(AstBuilder.scala:2261)
      	at org.apache.spark.sql.catalyst.parser.AstBuilder.$anonfun$visitNamedExpression$1(AstBuilder.scala:2322)
      	at org.apache.spark.sql.catalyst.util.SparkParserUtils.withOrigin(SparkParserUtils.scala:154)
      	at org.apache.spark.sql.catalyst.util.SparkParserUtils.withOrigin$(SparkParserUtils.scala:144)
      	at org.apache.spark.sql.catalyst.parser.ParserUtils$.withOrigin(ParserUtils.scala:32)
      	at org.apache.spark.sql.catalyst.parser.AstBuilder.visitNamedExpression(AstBuilder.scala:2321)
      	at org.apache.spark.sql.catalyst.parser.AstBuilder.visitNamedExpression(AstBuilder.scala:85)
      	at org.apache.spark.sql.catalyst.parser.SqlBaseParser$NamedExpressionContext.accept(SqlBaseParser.java:30517)
      	at org.apache.spark.sql.catalyst.parser.DataTypeAstBuilder.typedVisit(DataTypeAstBuilder.scala:38)
      	at org.apache.spark.sql.catalyst.parser.AstBuilder.$anonfun$visitNamedExpressionSeq$2(AstBuilder.scala:1009)
      	at scala.collection.immutable.List.map(List.scala:293)
      	at org.apache.spark.sql.catalyst.parser.AstBuilder.visitNamedExpressionSeq(AstBuilder.scala:1009)
      	at org.apache.spark.sql.catalyst.parser.AstBuilder.$anonfun$withSelectQuerySpecification$1(AstBuilder.scala:1130)
      	at org.apache.spark.sql.catalyst.util.SparkParserUtils.withOrigin(SparkParserUtils.scala:154)
      	at org.apache.spark.sql.catalyst.util.SparkParserUtils.withOrigin$(SparkParserUtils.scala:144)
      	at org.apache.spark.sql.catalyst.parser.ParserUtils$.withOrigin(ParserUtils.scala:32)
      	at org.apache.spark.sql.catalyst.parser.AstBuilder.withSelectQuerySpecification(AstBuilder.scala:1124)
      	at org.apache.spark.sql.catalyst.parser.AstBuilder.$anonfun$visitRegularQuerySpecification$1(AstBuilder.scala:993)
      	at org.apache.spark.sql.catalyst.util.SparkParserUtils.withOrigin(SparkParserUtils.scala:154)
      	at org.apache.spark.sql.catalyst.util.SparkParserUtils.withOrigin$(SparkParserUtils.scala:144)
      	at org.apache.spark.sql.catalyst.parser.ParserUtils$.withOrigin(ParserUtils.scala:32)
      	at org.apache.spark.sql.catalyst.parser.AstBuilder.visitRegularQuerySpecification(AstBuilder.scala:980)
      	at org.apache.spark.sql.catalyst.parser.AstBuilder.visitRegularQuerySpecification(AstBuilder.scala:85)
      	at org.apache.spark.sql.catalyst.parser.SqlBaseParser$RegularQuerySpecificationContext.accept(SqlBaseParser.java:24051)
      	at org.apache.spark.sql.catalyst.parser.AstBuilder.visitChildren(AstBuilder.scala:148)
      	at org.apache.spark.sql.catalyst.parser.SqlBaseParserBaseVisitor.visitQueryPrimaryDefault(SqlBaseParserBaseVisitor.java:2155)
      	at org.apache.spark.sql.catalyst.parser.SqlBaseParser$QueryPrimaryDefaultContext.accept(SqlBaseParser.java:23540)
      	at org.apache.spark.sql.catalyst.parser.AstBuilder.visitChildren(AstBuilder.scala:148)
      	at org.apache.spark.sql.catalyst.parser.SqlBaseParserBaseVisitor.visitQueryTermDefault(SqlBaseParserBaseVisitor.java:2141)
      	at org.apache.spark.sql.catalyst.parser.SqlBaseParser$QueryTermDefaultContext.accept(SqlBaseParser.java:23307)
      	at org.apache.spark.sql.catalyst.parser.DataTypeAstBuilder.typedVisit(DataTypeAstBuilder.scala:38)
      	at org.apache.spark.sql.catalyst.parser.AstBuilder.plan(AstBuilder.scala:219)
      	at org.apache.spark.sql.catalyst.parser.AstBuilder.$anonfun$visitNoWithQuery$1(AstBuilder.scala:300)
      	at org.apache.spark.sql.catalyst.util.SparkParserUtils.withOrigin(SparkParserUtils.scala:154)
      	at org.apache.spark.sql.catalyst.util.SparkParserUtils.withOrigin$(SparkParserUtils.scala:144)
      	at org.apache.spark.sql.catalyst.parser.ParserUtils$.withOrigin(ParserUtils.scala:32)
      	at org.apache.spark.sql.catalyst.parser.AstBuilder.visitNoWithQuery(AstBuilder.scala:300)
      	at org.apache.spark.sql.catalyst.parser.AstBuilder.visitNoWithQuery(AstBuilder.scala:85)
      	at org.apache.spark.sql.catalyst.parser.SqlBaseParser$NoWithQueryContext.accept(SqlBaseParser.java:22780)
      	at org.apache.spark.sql.catalyst.parser.DataTypeAstBuilder.typedVisit(DataTypeAstBuilder.scala:38)
      	at org.apache.spark.sql.catalyst.parser.AstBuilder.plan(AstBuilder.scala:219)
      	at org.apache.spark.sql.catalyst.parser.AstBuilder.$anonfun$visitQuery$1(AstBuilder.scala:225)
      	at org.apache.spark.sql.catalyst.util.SparkParserUtils.withOrigin(SparkParserUtils.scala:154)
      	at org.apache.spark.sql.catalyst.util.SparkParserUtils.withOrigin$(SparkParserUtils.scala:144)
      	at org.apache.spark.sql.catalyst.parser.ParserUtils$.withOrigin(ParserUtils.scala:32)
      	at org.apache.spark.sql.catalyst.parser.AstBuilder.visitQuery(AstBuilder.scala:224)
      	at org.apache.spark.sql.catalyst.parser.AstBuilder.visitQuery(AstBuilder.scala:85)
      	at org.apache.spark.sql.catalyst.parser.SqlBaseParser$QueryContext.accept(SqlBaseParser.java:16246)
      	at org.apache.spark.sql.catalyst.parser.AstBuilder.visitChildren(AstBuilder.scala:148)
      	at org.apache.spark.sql.catalyst.parser.SqlBaseParserBaseVisitor.visitStatementDefault(SqlBaseParserBaseVisitor.java:111)
      	at org.apache.spark.sql.catalyst.parser.SqlBaseParser$StatementDefaultContext.accept(SqlBaseParser.java:2744)
      	at org.antlr.v4.runtime.tree.AbstractParseTreeVisitor.visit(AbstractParseTreeVisitor.java:18)
      	at org.apache.spark.sql.catalyst.parser.AstBuilder.$anonfun$visitSingleStatement$1(AstBuilder.scala:194)
      	at org.apache.spark.sql.catalyst.util.SparkParserUtils.withOrigin(SparkParserUtils.scala:154)
      	at org.apache.spark.sql.catalyst.util.SparkParserUtils.withOrigin$(SparkParserUtils.scala:144)
      	at org.apache.spark.sql.catalyst.parser.ParserUtils$.withOrigin(ParserUtils.scala:32)
      	at org.apache.spark.sql.catalyst.parser.AstBuilder.visitSingleStatement(AstBuilder.scala:194)
      	at org.apache.spark.sql.catalyst.parser.AbstractSqlParser.$anonfun$parsePlan$2(AbstractSqlParser.scala:109)
      	at org.apache.spark.sql.catalyst.parser.AbstractSqlParser.$anonfun$withErrorHandling$1(AbstractSqlParser.scala:134)
      	at org.apache.spark.sql.catalyst.util.SparkParserUtils.withOrigin(SparkParserUtils.scala:154)
      	at org.apache.spark.sql.catalyst.util.SparkParserUtils.withOrigin$(SparkParserUtils.scala:144)
      	at org.apache.spark.sql.catalyst.parser.ParserUtils$.withOrigin(ParserUtils.scala:32)
      	at org.apache.spark.sql.catalyst.parser.AbstractSqlParser.withErrorHandling(AbstractSqlParser.scala:133)
      	at org.apache.spark.sql.catalyst.parser.AbstractSqlParser.$anonfun$parsePlan$1(AbstractSqlParser.scala:109)
      	at org.apache.spark.sql.catalyst.parser.AbstractParser.parse(parsers.scala:96)
      	at org.apache.spark.sql.execution.SparkSqlParser.parse(SparkSqlParser.scala:137)
      	at org.apache.spark.sql.catalyst.parser.AbstractSqlParser.parsePlan(AbstractSqlParser.scala:106)
      	at com.databricks.sql.parser.DatabricksSqlParser.$anonfun$parsePlan$1(DatabricksSqlParser.scala:80)
      	at com.databricks.sql.parser.DatabricksSqlParser.parse(DatabricksSqlParser.scala:101)
      	at com.databricks.sql.parser.DatabricksSqlParser.parsePlan(DatabricksSqlParser.scala:77)
      	at org.apache.spark.sql.SparkSession.$anonfun$sql$5(SparkSession.scala:949)
      	at com.databricks.spark.util.FrameProfiler$.record(FrameProfiler.scala:94)
      	at org.apache.spark.sql.catalyst.QueryPlanningTracker.measurePhase(QueryPlanningTracker.scala:453)
      	at org.apache.spark.sql.SparkSession.$anonfun$sql$4(SparkSession.scala:948)
      	at org.apache.spark.sql.SparkSession.withActive(SparkSession.scala:1180)
      	at org.apache.spark.sql.SparkSession.sql(SparkSession.scala:947)
      	at org.apache.spark.sql.connect.planner.SparkConnectPlanner.executeSQL(SparkConnectPlanner.scala:3089)
      	at org.apache.spark.sql.connect.planner.SparkConnectPlanner.handleSqlCommand(SparkConnectPlanner.scala:2923)
      	at org.apache.spark.sql.connect.planner.SparkConnectPlanner.process(SparkConnectPlanner.scala:2860)
      	at org.apache.spark.sql.connect.execution.ExecuteThreadRunner.handleCommand(ExecuteThreadRunner.scala:345)
      	at org.apache.spark.sql.connect.execution.ExecuteThreadRunner.$anonfun$executeInternal$1(ExecuteThreadRunner.scala:259)
      	at org.apache.spark.sql.connect.execution.ExecuteThreadRunner.$anonfun$executeInternal$1$adapted(ExecuteThreadRunner.scala:192)
      	at org.apache.spark.sql.connect.service.SessionHolder.$anonfun$withSession$2(SessionHolder.scala:341)
      	at org.apache.spark.sql.SparkSession.withActive(SparkSession.scala:1180)
      	at org.apache.spark.sql.connect.service.SessionHolder.$anonfun$withSession$1(SessionHolder.scala:341)
      	at org.apache.spark.JobArtifactSet$.withActiveJobArtifactState(JobArtifactSet.scala:97)
      	at org.apache.spark.sql.artifact.ArtifactManager.$anonfun$withResources$1(ArtifactManager.scala:84)
      	at org.apache.spark.util.Utils$.withContextClassLoader(Utils.scala:239)
      	at org.apache.spark.sql.artifact.ArtifactManager.withResources(ArtifactManager.scala:83)
      	at org.apache.spark.sql.connect.service.SessionHolder.withSession(SessionHolder.scala:340)
      	at org.apache.spark.sql.connect.execution.ExecuteThreadRunner.executeInternal(ExecuteThreadRunner.scala:192)
      	at org.apache.spark.sql.connect.execution.ExecuteThreadRunner.org$apache$spark$sql$connect$execution$ExecuteThreadRunner$$execute(ExecuteThreadRunner.scala:125)
      	at org.apache.spark.sql.connect.execution.ExecuteThreadRunner$ExecutionThread.$anonfun$run$2(ExecuteThreadRunner.scala:571)
      	at scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:23)
      	at com.databricks.unity.UCSEphemeralState$Handle.runWith(UCSEphemeralState.scala:51)
      	at com.databricks.unity.HandleImpl.runWith(UCSHandle.scala:104)
      	at com.databricks.unity.HandleImpl.$anonfun$runWithAndClose$1(UCSHandle.scala:109)
      	at scala.util.Using$.resource(Using.scala:269)
      	at com.databricks.unity.HandleImpl.runWithAndClose(UCSHandle.scala:108)
      	at org.apache.spark.sql.connect.execution.ExecuteThreadRunner$ExecutionThread.run(ExecuteThreadRunner.scala:571) 

       

      Attachments

        Activity

          People

            Unassigned Unassigned
            mikhailnik Mikhail Nikoliukin
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated: