Daniel Darabos created SPARK-6497:
-------------------------------------

             Summary: Class is not registered: 
scala.reflect.ManifestFactory$$anon$9
                 Key: SPARK-6497
                 URL: https://issues.apache.org/jira/browse/SPARK-6497
             Project: Spark
          Issue Type: Bug
          Components: Spark Core
    Affects Versions: 1.3.0
            Reporter: Daniel Darabos
            Priority: Minor


This is a slight regression from Spark 1.2.1 to 1.3.0.

{noformat}
spark-1.2.1-bin-hadoop2.4/bin/spark-shell --conf 
spark.serializer=org.apache.spark.serializer.KryoSerializer --conf 
spark.kryo.registrationRequired=true --conf 
'spark.kryo.classesToRegister=scala.collection.mutable.WrappedArray$ofRef,[Lscala.Tuple2;'
scala> sc.parallelize(Seq(1 -> 1)).groupByKey.collect
res0: Array[(Int, Iterable[Int])] = Array((1,CompactBuffer(1)))
{noformat}

{noformat}
spark-1.3.0-bin-hadoop2.4/bin/spark-shell --conf 
spark.serializer=org.apache.spark.serializer.KryoSerializer --conf 
spark.kryo.registrationRequired=true --conf 
'spark.kryo.classesToRegister=scala.collection.mutable.WrappedArray$ofRef,[Lscala.Tuple2;'
scala> sc.parallelize(Seq(1 -> 1)).groupByKey.collect
Lost task 1.0 in stage 3.0 (TID 25, localhost): 
com.esotericsoftware.kryo.KryoException: java.lang.IllegalArgumentException: 
Class is not registered: scala.reflect.ManifestFactory$$anon$9
Note: To register this class use: 
kryo.register(scala.reflect.ManifestFactory$$anon$9.class);
Serialization trace:
evidence$1 (org.apache.spark.util.collection.CompactBuffer)
        at 
com.esotericsoftware.kryo.serializers.FieldSerializer$ObjectField.write(FieldSerializer.java:585)
        at 
com.esotericsoftware.kryo.serializers.FieldSerializer.write(FieldSerializer.java:213)
        at com.esotericsoftware.kryo.Kryo.writeClassAndObject(Kryo.java:568)
        at com.twitter.chill.Tuple2Serializer.write(TupleSerializers.scala:37)
        at com.twitter.chill.Tuple2Serializer.write(TupleSerializers.scala:33)
        at com.esotericsoftware.kryo.Kryo.writeClassAndObject(Kryo.java:568)
        at 
com.esotericsoftware.kryo.serializers.DefaultArraySerializers$ObjectArraySerializer.write(DefaultArraySerializers.java:318)
        at 
com.esotericsoftware.kryo.serializers.DefaultArraySerializers$ObjectArraySerializer.write(DefaultArraySerializers.java:293)
        at com.esotericsoftware.kryo.Kryo.writeClassAndObject(Kryo.java:568)
        at 
org.apache.spark.serializer.KryoSerializerInstance.serialize(KryoSerializer.scala:161)
        at org.apache.spark.executor.Executor$TaskRunner.run(Executor.scala:213)
        at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
        at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.IllegalArgumentException: Class is not registered: 
scala.reflect.ManifestFactory$$anon$9
Note: To register this class use: 
kryo.register(scala.reflect.ManifestFactory$$anon$9.class);
        at com.esotericsoftware.kryo.Kryo.getRegistration(Kryo.java:442)
        at 
com.esotericsoftware.kryo.util.DefaultClassResolver.writeClass(DefaultClassResolver.java:79)
        at com.esotericsoftware.kryo.Kryo.writeClass(Kryo.java:472)
        at 
com.esotericsoftware.kryo.serializers.FieldSerializer$ObjectField.write(FieldSerializer.java:561)
        ... 13 more
{noformat}

In our production code the exception is actually about 
{{scala.reflect.ManifestFactory$$anon$8}} instead of 
{{scala.reflect.ManifestFactory$$anon$9}} but it's probably the same thing. Any 
idea what caused from 1.2.1 to 1.3.0 that could be causing this?

We also get exceptions in 1.3.0 for {{scala.reflect.ClassTag$$anon$1}} and 
{{java.lang.Class}}, but I haven't reduced them to a spark-shell reproduction 
yet. We can of course just register these classes ourselves.



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

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

Reply via email to