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

Intermittent NullPointerException in org.codehaus.janino.IClass.isAssignableFrom

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Minor
    • Resolution: Fixed
    • 2.1.1
    • 2.1.3, 2.2.2, 2.3.0
    • Spark Core
    • None
    • Hortonworks distribution: HDP 2.6.2.0-205 , /usr/hdp/current/spark2-client/jars/spark-core_2.11-2.1.1.2.6.2.0-205.jar

    Description

      Very occasional and retry works.

      Full stack:
      17/10/27 21:06:15 ERROR Executor: Exception in task 29.0 in stage 12.0 (TID 758)
      java.lang.NullPointerException
      at org.codehaus.janino.IClass.isAssignableFrom(IClass.java:569)
      at org.codehaus.janino.UnitCompiler.isWideningReferenceConvertible(UnitCompiler.java:10347)
      at org.codehaus.janino.UnitCompiler.isMethodInvocationConvertible(UnitCompiler.java:8636)
      at org.codehaus.janino.UnitCompiler.findMostSpecificIInvocable(UnitCompiler.java:8427)
      at org.codehaus.janino.UnitCompiler.findMostSpecificIInvocable(UnitCompiler.java:8285)
      at org.codehaus.janino.UnitCompiler.findIMethod(UnitCompiler.java:8169)
      at org.codehaus.janino.UnitCompiler.findIMethod(UnitCompiler.java:8071)
      at org.codehaus.janino.UnitCompiler.compileGet2(UnitCompiler.java:4421)
      at org.codehaus.janino.UnitCompiler.access$7500(UnitCompiler.java:206)
      at org.codehaus.janino.UnitCompiler$12.visitMethodInvocation(UnitCompiler.java:3774)
      at org.codehaus.janino.UnitCompiler$12.visitMethodInvocation(UnitCompiler.java:3762)
      at org.codehaus.janino.Java$MethodInvocation.accept(Java.java:4328)
      at org.codehaus.janino.UnitCompiler.compileGet(UnitCompiler.java:3762)
      at org.codehaus.janino.UnitCompiler.compileGetValue(UnitCompiler.java:4933)
      at org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:3180)
      at org.codehaus.janino.UnitCompiler.access$5000(UnitCompiler.java:206)
      at org.codehaus.janino.UnitCompiler$9.visitMethodInvocation(UnitCompiler.java:3151)
      at org.codehaus.janino.UnitCompiler$9.visitMethodInvocation(UnitCompiler.java:3139)
      at org.codehaus.janino.Java$MethodInvocation.accept(Java.java:4328)
      at org.codehaus.janino.UnitCompiler.compile(UnitCompiler.java:3139)
      at org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:2112)
      at org.codehaus.janino.UnitCompiler.access$1700(UnitCompiler.java:206)
      at org.codehaus.janino.UnitCompiler$6.visitExpressionStatement(UnitCompiler.java:1377)
      at org.codehaus.janino.UnitCompiler$6.visitExpressionStatement(UnitCompiler.java:1370)
      at org.codehaus.janino.Java$ExpressionStatement.accept(Java.java:2558)
      at org.codehaus.janino.UnitCompiler.compile(UnitCompiler.java:1370)
      at org.codehaus.janino.UnitCompiler.compileStatements(UnitCompiler.java:1450)
      at org.codehaus.janino.UnitCompiler.compile(UnitCompiler.java:2811)
      at org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:550)
      at org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:890)
      at org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:894)
      at org.codehaus.janino.UnitCompiler.access$600(UnitCompiler.java:206)
      at org.codehaus.janino.UnitCompiler$2.visitMemberClassDeclaration(UnitCompiler.java:377)
      at org.codehaus.janino.UnitCompiler$2.visitMemberClassDeclaration(UnitCompiler.java:369)
      at org.codehaus.janino.Java$MemberClassDeclaration.accept(Java.java:1128)
      at org.codehaus.janino.UnitCompiler.compile(UnitCompiler.java:369)
      at org.codehaus.janino.UnitCompiler.compileDeclaredMemberTypes(UnitCompiler.java:1209)
      at org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:564)
      at org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:890)
      at org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:894)
      at org.codehaus.janino.UnitCompiler.access$600(UnitCompiler.java:206)
      at org.codehaus.janino.UnitCompiler$2.visitMemberClassDeclaration(UnitCompiler.java:377)
      at org.codehaus.janino.UnitCompiler$2.visitMemberClassDeclaration(UnitCompiler.java:369)
      at org.codehaus.janino.Java$MemberClassDeclaration.accept(Java.java:1128)
      at org.codehaus.janino.UnitCompiler.compile(UnitCompiler.java:369)
      at org.codehaus.janino.UnitCompiler.compileDeclaredMemberTypes(UnitCompiler.java:1209)
      at org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:564)
      at org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:420)
      at org.codehaus.janino.UnitCompiler.access$400(UnitCompiler.java:206)
      at org.codehaus.janino.UnitCompiler$2.visitPackageMemberClassDeclaration(UnitCompiler.java:374)
      at org.codehaus.janino.UnitCompiler$2.visitPackageMemberClassDeclaration(UnitCompiler.java:369)
      at org.codehaus.janino.Java$AbstractPackageMemberClassDeclaration.accept(Java.java:1309)
      at org.codehaus.janino.UnitCompiler.compile(UnitCompiler.java:369)
      at org.codehaus.janino.UnitCompiler.compileUnit(UnitCompiler.java:345)
      at org.codehaus.janino.SimpleCompiler.compileToClassLoader(SimpleCompiler.java:396)
      at org.codehaus.janino.ClassBodyEvaluator.compileToClass(ClassBodyEvaluator.java:311)
      at org.codehaus.janino.ClassBodyEvaluator.cook(ClassBodyEvaluator.java:229)
      at org.codehaus.janino.SimpleCompiler.cook(SimpleCompiler.java:196)
      at org.codehaus.commons.compiler.Cookable.cook(Cookable.java:91)
      at org.apache.spark.sql.catalyst.expressions.codegen.CodeGenerator$.org$apache$spark$sql$catalyst$expressions$codegen$CodeGenerator$$doCompile(CodeGenerator.scala:959)
      at org.apache.spark.sql.catalyst.expressions.codegen.CodeGenerator$$anon$1.load(CodeGenerator.scala:1026)
      at org.apache.spark.sql.catalyst.expressions.codegen.CodeGenerator$$anon$1.load(CodeGenerator.scala:1023)
      at org.spark_project.guava.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3599)
      at org.spark_project.guava.cache.LocalCache$Segment.loadSync(LocalCache.java:2379)
      at org.spark_project.guava.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2342)
      at org.spark_project.guava.cache.LocalCache$Segment.get(LocalCache.java:2257)
      at org.spark_project.guava.cache.LocalCache.get(LocalCache.java:4000)
      at org.spark_project.guava.cache.LocalCache.getOrLoad(LocalCache.java:4004)
      at org.spark_project.guava.cache.LocalCache$LocalLoadingCache.get(LocalCache.java:4874)
      at org.apache.spark.sql.catalyst.expressions.codegen.CodeGenerator$.compile(CodeGenerator.scala:908)
      at org.apache.spark.sql.execution.WholeStageCodegenExec$$anonfun$8.apply(WholeStageCodegenExec.scala:372)
      at org.apache.spark.sql.execution.WholeStageCodegenExec$$anonfun$8.apply(WholeStageCodegenExec.scala:371)
      at org.apache.spark.rdd.RDD$$anonfun$mapPartitionsWithIndex$1$$anonfun$apply$26.apply(RDD.scala:844)
      at org.apache.spark.rdd.RDD$$anonfun$mapPartitionsWithIndex$1$$anonfun$apply$26.apply(RDD.scala:844)
      at org.apache.spark.rdd.MapPartitionsRDD.compute(MapPartitionsRDD.scala:38)
      at org.apache.spark.rdd.RDD.computeOrReadCheckpoint(RDD.scala:323)
      at org.apache.spark.rdd.RDD.iterator(RDD.scala:287)
      at org.apache.spark.rdd.MapPartitionsRDD.compute(MapPartitionsRDD.scala:38)
      at org.apache.spark.rdd.RDD.computeOrReadCheckpoint(RDD.scala:323)
      at org.apache.spark.rdd.RDD.iterator(RDD.scala:287)
      at org.apache.spark.scheduler.ShuffleMapTask.runTask(ShuffleMapTask.scala:96)
      at org.apache.spark.scheduler.ShuffleMapTask.runTask(ShuffleMapTask.scala:53)
      at org.apache.spark.scheduler.Task.run(Task.scala:99)
      at org.apache.spark.executor.Executor$TaskRunner.run(Executor.scala:322)
      at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
      at java.lang.Thread.run(Thread.java:745)
      17/10/27 21:06:15 INFO CodeGenerator: Code generated in 8.896831 ms

      Intermittent nature of problem makes me suspect the cache or a thread-related issue.
      Some the SQL that appears in the area of the code line reported in Spark UI:
      dense_rank() over (partition by itemid, type order by sum(col_a)+(sum(col_b)/1000000000000000.0) desc) as rank,
      ...where cast(mytimestampfield as String) >= '$mydate'

      Attachments

        1. generated.java
          3.61 MB
          Min Shen
        2. CodeGeneratorTester.scala
          3 kB
          Min Shen

        Activity

          People

            Unassigned Unassigned
            danmeany Dan Meany
            Votes:
            1 Vote for this issue
            Watchers:
            9 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: