Open ericl opened 1 month ago
Struggling a lot with Ray serialization, I feel that the proposed error message is still not clear enough, because it doesn't refer to the user code that sources the offending object.
Is it possible with some extra inspection to come up with an error message like the following?
This is the log of the execution plan, indicating the user functions by name:
Execution plan of Dataset: InputDataBuffer[Input] -> TaskPoolMapOperator[MapBatches(read_dataset)] -> TaskPoolMapOperator[Map(merge_components)->Map(remesh_surface)]
The error message refers to one of the user defined functions:
+ + +
Checking Serializability of <ray.data._internal.... TaskPoolMapOperator.Map(remesh_surface) object at 0x16fffa040>
================================================================================
# list of objects that pass serialization check ...
!!! FAIL serialization: cannot pickle 'socket' object
What happened + What you expected to happen
Running the following example gives a confusing error message that does not tell the user how to fix the problem:
The expected error message is something more like this:
cc @c21 @raulchen
Versions / Dependencies
Ray 2.32
Reproduction script
Issue Severity
Medium: It is a significant difficulty but I can work around it.