Details
-
Bug
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
1.0.0
-
None
Description
We are using Kryo and require registering classes. When trying to serialize something containing an unregistered class, Kryo will raise an exception.
DAGScheduler.submitMissingTasks runs in the scheduler thread and checks if the contents of the task can be serialized by trying to serialize it:
It catches NotSerializableException and aborts the task with an error when this happens.
The problem is, Kryo does not raise NotSerializableException for unregistered classes. It raises IllegalArgumentException instead. This exception is not caught and kills the scheduler thread. The application then hangs, waiting indefinitely for the job to finish.
Catching IllegalArgumentException also is a quick fix. I'll send a pull request for it if you agree. Thanks!