[ 
https://issues.apache.org/jira/browse/SPARK-20241?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15958636#comment-15958636
 ] 

翟玉勇 edited comment on SPARK-20241 at 4/6/17 10:18 AM:
------------------------------------------------------

{code}
val codeAttr = 
Utils.classForName("org.codehaus.janino.util.ClassFile$CodeAttribute")
    val codeAttrField = codeAttr.getDeclaredField("code")
    codeAttrField.setAccessible(true)
    classes.foreach { case (_, classBytes) =>
      
CodegenMetrics.METRIC_GENERATED_CLASS_BYTECODE_SIZE.update(classBytes.length)
      try {
        val cf = new ClassFile(new ByteArrayInputStream(classBytes))
        cf.methodInfos.asScala.foreach { method =>
          method.getAttributes().foreach { a =>
            if (a.getClass.getName == codeAttr.getName) {
              val code = a.getClass.getDeclaredField("code")
              if (code == null) {
                logInfo("****************** Code is null in CodeAttribute")
              } else {
                code.setAccessible(true)
                logInfo("******************" + 
code.get(a).asInstanceOf[Array[Byte]].length)
              }
              logInfo("******codeAttrField==" + codeAttrField.getDeclaringClass 
+ "|" + a.getClass)
              logInfo("******isAssignableFrom=="
                + codeAttrField.getDeclaringClass.isAssignableFrom(a.getClass))
              CodegenMetrics.METRIC_GENERATED_METHOD_BYTECODE_SIZE.update(
                codeAttrField.get(a).asInstanceOf[Array[Byte]].length)
            }
          }
        }
      } catch {
        case NonFatal(e) =>
          logWarning("Error calculating stats of compiled class.", e)
      }
    }
{code}
when has WARN log 

{code}
17/04/06 17:04:55 INFO 
[org.apache.spark.sql.catalyst.expressions.codegen.CodeGenerator(54) -- main]: 
******codeAttrField==class 
org.codehaus.janino.util.ClassFile$CodeAttribute|class 
org.codehaus.janino.util.ClassFile$CodeAttribute
17/04/06 17:04:55 INFO 
[org.apache.spark.sql.catalyst.expressions.codegen.CodeGenerator(54) -- main]: 
******isAssignableFrom==false
{code}


was (Author: zhaiyuyong):
val codeAttr = 
Utils.classForName("org.codehaus.janino.util.ClassFile$CodeAttribute")
    val codeAttrField = codeAttr.getDeclaredField("code")
    codeAttrField.setAccessible(true)
    classes.foreach { case (_, classBytes) =>
      
CodegenMetrics.METRIC_GENERATED_CLASS_BYTECODE_SIZE.update(classBytes.length)
      try {
        val cf = new ClassFile(new ByteArrayInputStream(classBytes))
        cf.methodInfos.asScala.foreach { method =>
          method.getAttributes().foreach { a =>
            if (a.getClass.getName == codeAttr.getName) {
              val code = a.getClass.getDeclaredField("code")
              if (code == null) {
                logInfo("****************** Code is null in CodeAttribute")
              } else {
                code.setAccessible(true)
                logInfo("******************" + 
code.get(a).asInstanceOf[Array[Byte]].length)
              }
              logInfo("******codeAttrField==" + codeAttrField.getDeclaringClass 
+ "|" + a.getClass)
              logInfo("******isAssignableFrom=="
                + codeAttrField.getDeclaringClass.isAssignableFrom(a.getClass))
              CodegenMetrics.METRIC_GENERATED_METHOD_BYTECODE_SIZE.update(
                codeAttrField.get(a).asInstanceOf[Array[Byte]].length)
            }
          }
        }
      } catch {
        case NonFatal(e) =>
          logWarning("Error calculating stats of compiled class.", e)
      }
    }

when has WARN log 

17/04/06 17:04:55 INFO 
[org.apache.spark.sql.catalyst.expressions.codegen.CodeGenerator(54) -- main]: 
******codeAttrField==class 
org.codehaus.janino.util.ClassFile$CodeAttribute|class 
org.codehaus.janino.util.ClassFile$CodeAttribute
17/04/06 17:04:55 INFO 
[org.apache.spark.sql.catalyst.expressions.codegen.CodeGenerator(54) -- main]: 
******isAssignableFrom==false

> java.lang.IllegalArgumentException: Can not set final [B field 
> org.codehaus.janino.util.ClassFile$CodeAttribute.code to 
> org.codehaus.janino.util.ClassFile$CodeAttribute
> ------------------------------------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: SPARK-20241
>                 URL: https://issues.apache.org/jira/browse/SPARK-20241
>             Project: Spark
>          Issue Type: Bug
>          Components: SQL
>    Affects Versions: 2.1.0
>            Reporter: 翟玉勇
>            Priority: Minor
>
> do some sql operate for example :insert into table mytable select * from 
> othertable 
> there are WARN log:
> 17/04/06 17:04:55 WARN 
> [org.apache.spark.sql.catalyst.expressions.codegen.CodeGenerator(87) -- 
> main]: Error calculating stats of compiled class.
> java.lang.IllegalArgumentException: Can not set final [B field 
> org.codehaus.janino.util.ClassFile$CodeAttribute.code to 
> org.codehaus.janino.util.ClassFile$CodeAttribute
>       at 
> sun.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentException(UnsafeFieldAccessorImpl.java:164)
>       at 
> sun.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentException(UnsafeFieldAccessorImpl.java:168)
>       at 
> sun.reflect.UnsafeFieldAccessorImpl.ensureObj(UnsafeFieldAccessorImpl.java:55)
>       at 
> sun.reflect.UnsafeQualifiedObjectFieldAccessorImpl.get(UnsafeQualifiedObjectFieldAccessorImpl.java:38)
>       at java.lang.reflect.Field.get(Field.java:379)
>       at 
> org.apache.spark.sql.catalyst.expressions.codegen.CodeGenerator$$anonfun$recordCompilationStats$1$$anonfun$apply$4$$anonfun$apply$5.apply(CodeGenerator.scala:997)
>       at 
> org.apache.spark.sql.catalyst.expressions.codegen.CodeGenerator$$anonfun$recordCompilationStats$1$$anonfun$apply$4$$anonfun$apply$5.apply(CodeGenerator.scala:984)
>       at 
> scala.collection.IndexedSeqOptimized$class.foreach(IndexedSeqOptimized.scala:33)
>       at scala.collection.mutable.ArrayOps$ofRef.foreach(ArrayOps.scala:186)
>       at 
> org.apache.spark.sql.catalyst.expressions.codegen.CodeGenerator$$anonfun$recordCompilationStats$1$$anonfun$apply$4.apply(CodeGenerator.scala:984)
>       at 
> org.apache.spark.sql.catalyst.expressions.codegen.CodeGenerator$$anonfun$recordCompilationStats$1$$anonfun$apply$4.apply(CodeGenerator.scala:983)
>       at scala.collection.Iterator$class.foreach(Iterator.scala:893)
>       at scala.collection.AbstractIterator.foreach(Iterator.scala:1336)
>       at scala.collection.IterableLike$class.foreach(IterableLike.scala:72)
>       at scala.collection.AbstractIterable.foreach(Iterable.scala:54)
>       at 
> org.apache.spark.sql.catalyst.expressions.codegen.CodeGenerator$$anonfun$recordCompilationStats$1.apply(CodeGenerator.scala:983)
>       at 
> org.apache.spark.sql.catalyst.expressions.codegen.CodeGenerator$$anonfun$recordCompilationStats$1.apply(CodeGenerator.scala:979)
>       at scala.collection.Iterator$class.foreach(Iterator.scala:893)
>       at scala.collection.AbstractIterator.foreach(Iterator.scala:1336)
>       at scala.collection.IterableLike$class.foreach(IterableLike.scala:72)
>       at scala.collection.AbstractIterable.foreach(Iterable.scala:54)
>       at 
> org.apache.spark.sql.catalyst.expressions.codegen.CodeGenerator$.recordCompilationStats(CodeGenerator.scala:979)
>       at 
> org.apache.spark.sql.catalyst.expressions.codegen.CodeGenerator$.org$apache$spark$sql$catalyst$expressions$codegen$CodeGenerator$$doCompile(CodeGenerator.scala:951)
>       at 
> org.apache.spark.sql.catalyst.expressions.codegen.CodeGenerator$$anon$1.load(CodeGenerator.scala:1023)
>       at 
> org.apache.spark.sql.catalyst.expressions.codegen.CodeGenerator$$anon$1.load(CodeGenerator.scala:1020)
>       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:905)
>       at 
> org.apache.spark.sql.execution.WholeStageCodegenExec.doExecute(WholeStageCodegenExec.scala:357)
>       at 
> org.apache.spark.sql.execution.SparkPlan$$anonfun$execute$1.apply(SparkPlan.scala:114)
>       at 
> org.apache.spark.sql.execution.SparkPlan$$anonfun$execute$1.apply(SparkPlan.scala:114)
>       at 
> org.apache.spark.sql.execution.SparkPlan$$anonfun$executeQuery$1.apply(SparkPlan.scala:135)
>       at 
> org.apache.spark.rdd.RDDOperationScope$.withScope(RDDOperationScope.scala:151)
>       at 
> org.apache.spark.sql.execution.SparkPlan.executeQuery(SparkPlan.scala:132)
>       at org.apache.spark.sql.execution.SparkPlan.execute(SparkPlan.scala:113)
>       at 
> org.apache.spark.sql.hive.execution.InsertIntoHiveTable.sideEffectResult$lzycompute(InsertIntoHiveTable.scala:310)
>       at 
> org.apache.spark.sql.hive.execution.InsertIntoHiveTable.sideEffectResult(InsertIntoHiveTable.scala:221)
>       at 
> org.apache.spark.sql.hive.execution.InsertIntoHiveTable.executeCollect(InsertIntoHiveTable.scala:404)
>       at 
> org.apache.spark.sql.execution.SparkPlan.executeCollectPublic(SparkPlan.scala:295)
>       at 
> org.apache.spark.sql.execution.QueryExecution$$anonfun$hiveResultString$3.apply(QueryExecution.scala:137)
>       at 
> org.apache.spark.sql.execution.QueryExecution$$anonfun$hiveResultString$3.apply(QueryExecution.scala:136)
>       at 
> org.apache.spark.sql.execution.SQLExecution$.withNewExecutionId(SQLExecution.scala:57)
>       at 
> org.apache.spark.sql.execution.QueryExecution.hiveResultString(QueryExecution.scala:136)
>       at 
> org.apache.spark.sql.hive.thriftserver.SparkSQLDriver.run(SparkSQLDriver.scala:63)
>       at 
> org.apache.spark.sql.hive.thriftserver.SparkSQLCLIDriver.processCmd(SparkSQLCLIDriver.scala:335)
>       at org.apache.hadoop.hive.cli.CliDriver.processLine(CliDriver.java:376)
>       at 
> org.apache.spark.sql.hive.thriftserver.SparkSQLCLIDriver$.main(SparkSQLCLIDriver.scala:247)
>       at 
> org.apache.spark.sql.hive.thriftserver.SparkSQLCLIDriver.main(SparkSQLCLIDriver.scala)
>       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>       at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>       at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>       at java.lang.reflect.Method.invoke(Method.java:606)
>       at 
> org.apache.spark.deploy.SparkSubmit$.org$apache$spark$deploy$SparkSubmit$$runMain(SparkSubmit.scala:737)
>       at 
> org.apache.spark.deploy.SparkSubmit$$anon$1.run(SparkSubmit.scala:168)
>       at 
> org.apache.spark.deploy.SparkSubmit$$anon$1.run(SparkSubmit.scala:166)
>       at java.security.AccessController.doPrivileged(Native Method)
>       at javax.security.auth.Subject.doAs(Subject.java:415)
>       at 
> org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1693)
>       at 
> org.apache.spark.deploy.SparkSubmit$.doRunMain$1(SparkSubmit.scala:166)
>       at org.apache.spark.deploy.SparkSubmit$.submit(SparkSubmit.scala:211)
>       at org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:126)
>       at org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala)



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to