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

Peigen commented on SPARK-23131:
--------------------------------

I realize this happens when I try to serialize the model using 
ObjectOutputStream
like 
{quote}
def modelToString(model: Model): (String, String) = \{
                val os: ByteArrayOutputStream = new ByteArrayOutputStream()
                val zos = new GZIPOutputStream(os)
                val oo: ObjectOutputStream = new ObjectOutputStream(zos)
                oo.writeObject(model)
                oo.close()
                zos.close()
                os.close()
                (model.id, DatatypeConverter.printBase64Binary(os.toByteArray))
        \}
{quote}
not a standard way to save a model but fitting our production requirement.

So this might just be a wish to upgrade kryo, I will adapt the ticket :)


> Stackoverflow using ML and Kryo serializer
> ------------------------------------------
>
>                 Key: SPARK-23131
>                 URL: https://issues.apache.org/jira/browse/SPARK-23131
>             Project: Spark
>          Issue Type: Bug
>          Components: ML
>    Affects Versions: 2.2.0
>            Reporter: Peigen
>            Priority: Minor
>
> When trying to use GeneralizedLinearRegression model and set SparkConf to use 
> KryoSerializer(JavaSerializer is fine)
> It causes StackOverflowException
> {quote}
> Exception in thread "dispatcher-event-loop-34" java.lang.StackOverflowError
>       at java.util.HashMap.hash(HashMap.java:338)
>       at java.util.HashMap.get(HashMap.java:556)
>       at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:61)
>       at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:62)
>       at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:62)
>       at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:62)
>       at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:62)
>       at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:62)
>       at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:62)
>       at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:62)
>       at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:62)
>       at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:62)
>       at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:62)
>       at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:62)
>       at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:62)
>       at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:62)
> {quote}
> This is very likely to be https://github.com/EsotericSoftware/kryo/issues/341
> Upgrade Kryo to 4.0+ probably could fix this



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

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

Reply via email to