You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@spark.apache.org by "Rajesh Balamohan (JIRA)" <ji...@apache.org> on 2016/04/20 02:31:25 UTC

[jira] [Comment Edited] (SPARK-14521) StackOverflowError in Kryo when executing TPC-DS Query27

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

Rajesh Balamohan edited comment on SPARK-14521 at 4/20/16 12:31 AM:
--------------------------------------------------------------------

Update:
- By default, spark-thrift server disables "spark.kryo.referenceTracking" (if not specified in conf).
https://github.com/apache/spark/blob/master/sql/hive-thriftserver/src/main/scala/org/apache/spark/sql/hive/thriftserver/SparkSQLEnv.scala#L55

- When "spark.kryo.referenceTracking" is set to true explicitly in spark-defaults.conf, query executes successfully. Alternatively, if "spark.sql.autoBroadcastJoinThreshold" can be set to a very low value in order to prevent broacasting (this is done just for verification).  

- Recent changes LongHashedRelation could have introduced loops which would need "spark.kryo.referenceTracking=true" in spark-thrift server. I will create a PR for this.


was (Author: rajesh.balamohan):
Update:
- By default, spark-thrift server disables "spark.kryo.referenceTracking".
https://github.com/apache/spark/blob/master/sql/hive-thriftserver/src/main/scala/org/apache/spark/sql/hive/thriftserver/SparkSQLEnv.scala#L55

- When "spark.kryo.referenceTracking" is set to true explicitly in spark-defaults.conf, query executes successfully. Alternatively, if "spark.sql.autoBroadcastJoinThreshold" can be set to a very low value in order to prevent broacasting (this is done just for verification).  

- Recent changes LongHashedRelation could have introduced loops which would need "spark.kryo.referenceTracking=true" in spark-thrift server. I will create a PR for this.

> StackOverflowError in Kryo when executing TPC-DS Query27
> --------------------------------------------------------
>
>                 Key: SPARK-14521
>                 URL: https://issues.apache.org/jira/browse/SPARK-14521
>             Project: Spark
>          Issue Type: Bug
>          Components: SQL
>    Affects Versions: 2.0.0
>            Reporter: Rajesh Balamohan
>            Priority: Blocker
>
> Build details:  Spark build from master branch (Apr-10)
> DataSet:        TPC-DS at 200 GB scale in Parq format stored in hive.
> Client:         $SPARK_HOME/bin/beeline 
> Query:          TPC-DS Query27
> spark.sql.sources.fileScan=true (this is the default value anyways)
> Exception:
> {noformat}
> Exception in thread "broadcast-exchange-0" java.lang.StackOverflowError
>         at com.esotericsoftware.kryo.util.DefaultClassResolver.writeName(DefaultClassResolver.java:108)
>         at com.esotericsoftware.kryo.util.DefaultClassResolver.writeClass(DefaultClassResolver.java:99)
>         at com.esotericsoftware.kryo.Kryo.writeClass(Kryo.java:517)
>         at com.esotericsoftware.kryo.Kryo.writeClassAndObject(Kryo.java:622)
>         at com.esotericsoftware.kryo.serializers.CollectionSerializer.write(CollectionSerializer.java:100)
>         at com.esotericsoftware.kryo.serializers.CollectionSerializer.write(CollectionSerializer.java:40)
>         at com.esotericsoftware.kryo.Kryo.writeObject(Kryo.java:552)
>         at com.esotericsoftware.kryo.serializers.ObjectField.write(ObjectField.java:80)
>         at com.esotericsoftware.kryo.serializers.FieldSerializer.write(FieldSerializer.java:518)
>         at com.esotericsoftware.kryo.Kryo.writeObject(Kryo.java:552)
>         at com.esotericsoftware.kryo.serializers.ObjectField.write(ObjectField.java:80)
>         at com.esotericsoftware.kryo.serializers.FieldSerializer.write(FieldSerializer.java:518)
>         at com.esotericsoftware.kryo.Kryo.writeClassAndObject(Kryo.java:628)
>         at com.esotericsoftware.kryo.serializers.CollectionSerializer.write(CollectionSerializer.java:100)
>         at com.esotericsoftware.kryo.serializers.CollectionSerializer.write(CollectionSerializer.java:40)
>         at com.esotericsoftware.kryo.Kryo.writeObject(Kryo.java:552)
>         at com.esotericsoftware.kryo.serializers.ObjectField.write(ObjectField.java:80)
>         at com.esotericsoftware.kryo.serializers.FieldSerializer.write(FieldSerializer.java:518)
>         at com.esotericsoftware.kryo.Kryo.writeObject(Kryo.java:552)
>         at com.esotericsoftware.kryo.serializers.ObjectField.write(ObjectField.java:80)
>         at com.esotericsoftware.kryo.serializers.FieldSerializer.write(FieldSerializer.java:518)
>         at com.esotericsoftware.kryo.Kryo.writeClassAndObject(Kryo.java:628)
>         at com.esotericsoftware.kryo.serializers.CollectionSerializer.write(CollectionSerializer.java:100)
>         at com.esotericsoftware.kryo.serializers.CollectionSerializer.write(CollectionSerializer.java:40)
>         at com.esotericsoftware.kryo.Kryo.writeObject(Kryo.java:552)
>         at com.esotericsoftware.kryo.serializers.ObjectField.write(ObjectField.java:80)
>         at com.esotericsoftware.kryo.serializers.FieldSerializer.write(FieldSerializer.java:518)
>         at com.esotericsoftware.kryo.Kryo.writeObject(Kryo.java:552)
>         at com.esotericsoftware.kryo.serializers.ObjectField.write(ObjectField.java:80)
>         at com.esotericsoftware.kryo.serializers.FieldSerializer.write(FieldSerializer.java:518)
>         at com.esotericsoftware.kryo.Kryo.writeClassAndObject(Kryo.java:628)
>         at com.esotericsoftware.kryo.serializers.CollectionSerializer.write(CollectionSerializer.java:100)
>         at com.esotericsoftware.kryo.serializers.CollectionSerializer.write(CollectionSerializer.java:40)
>         at com.esotericsoftware.kryo.Kryo.writeObject(Kryo.java:552)
> {noformat}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@spark.apache.org
For additional commands, e-mail: issues-help@spark.apache.org