GitHub user rxin opened a pull request:

    https://github.com/apache/spark/pull/4098

    [SPARK-5307] SerializationDebugger - take 2

    This patch adds a SerializationDebugger that is used to add serialization 
path to a NotSerializableException. When a NotSerializableException is 
encountered, the debugger visits the object graph to find the path towards the 
object that cannot be serialized, and constructs information to help user to 
find the object.
    
    Compared with an earlier attempt, this one provides extra information 
including field names, array offsets, writeExternal calls, etc.
    
    An example serialization stack:
    ```
    Serialization stack:
      -object not serializable (class: 
org.apache.spark.serializer.NotSerializable, value: 
org.apache.spark.serializer.NotSerializable@2c43caa4)
      -element of array (index: 0)
      -array (class [Ljava.lang.Object;, size 1)
      -field (class: org.apache.spark.serializer.SerializableArray, name: 
arrayField, type: class [Ljava.lang.Object;)
      -object (class org.apache.spark.serializer.SerializableArray, 
org.apache.spark.serializer.SerializableArray@193c5908)
      -writeExternal data
      -externalizable object (class 
org.apache.spark.serializer.ExternalizableClass, 
org.apache.spark.serializer.ExternalizableClass@320bdadc)
    ```

You can merge this pull request into a Git repository by running:

    $ git pull https://github.com/rxin/spark SerializationDebugger

Alternatively you can review and apply these changes as the patch at:

    https://github.com/apache/spark/pull/4098.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

    This closes #4098
    
----
commit b349b77509229eee3ea5a7f3fbad6737b82d2e95
Author: Reynold Xin <[email protected]>
Date:   2015-01-19T05:55:01Z

    [SPARK-5307] SerializationDebugger to help debug NotSerializableException - 
take 2
    
    This patch adds a SerializationDebugger that is used to add serialization 
path to
    a NotSerializableException. When a NotSerializableException is encountered, 
the debugger
    visits the object graph to find the path towards the object that cannot be 
serialized,
    and constructs information to help user to find the object.
    
    Compared with an earlier attempt, this one provides extra information 
including
    field names, array offsets, writeExternal calls, etc.

----


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at [email protected] or file a JIRA ticket
with INFRA.
---

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

Reply via email to