aboutsummaryrefslogtreecommitdiff
path: root/sql/core
diff options
context:
space:
mode:
authorReynold Xin <rxin@databricks.com>2015-01-30 22:34:10 -0800
committerReynold Xin <rxin@databricks.com>2015-01-30 22:34:10 -0800
commit740a56862ba82aeb4206edf71ce83dc4475e322a (patch)
treeec84e700c7df51be101b2e99d5655ddeb1cf122f /sql/core
parente643de42a70834dc967664bd297b58fc91a998e7 (diff)
downloadspark-740a56862ba82aeb4206edf71ce83dc4475e322a.tar.gz
spark-740a56862ba82aeb4206edf71ce83dc4475e322a.tar.bz2
spark-740a56862ba82aeb4206edf71ce83dc4475e322a.zip
[SPARK-5307] SerializationDebugger
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. The patch uses the internals of JVM serialization (in particular, heavy usage of ObjectStreamClass). 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.NotSerializable2c43caa4) - 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.SerializableArray193c5908) - writeExternal data - externalizable object (class org.apache.spark.serializer.ExternalizableClass, org.apache.spark.serializer.ExternalizableClass320bdadc) ``` Author: Reynold Xin <rxin@databricks.com> Closes #4098 from rxin/SerializationDebugger and squashes the following commits: 553b3ff [Reynold Xin] Update SerializationDebuggerSuite.scala 572d0cb [Reynold Xin] Disable automatically when reflection fails. b349b77 [Reynold Xin] [SPARK-5307] SerializationDebugger to help debug NotSerializableException - take 2
Diffstat (limited to 'sql/core')
0 files changed, 0 insertions, 0 deletions