-
Notifications
You must be signed in to change notification settings - Fork 5.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Update cloudpickle to 0.6.1 #3076
Conversation
Test FAILed. |
It's so weird. |
@robertnishihara We haven't enabled debug mode for our travis CI, right? |
@suquark, I think that debug mode is enabled. However, I've always found it difficult to use. Have you tried both linux and mac? |
Yes. I have tried. It will succeed when running the recursive test alone. |
Currently, I think a workaround is just keep the changes we need in cloudpickle since the original version have no problems. I will remove some suspicious code. |
Did you run it with The error is very interesting, I wonder if it's related to 9a52ba31f270fb6888d31c012e14a841f8b82acb or 8eaf637e78733fe5b4c295d9204dc6dcc76fb342. It's also possible that we need to undo this code ray/python/ray/function_manager.py Lines 105 to 121 in 653c5b1
|
Yes. I run exactly the command. I will do a binary search to identify the bug. |
Test PASSed. |
Test FAILed. |
Test FAILed. |
Test FAILed. |
jenkins, retest this please |
Test PASSed. |
It is repaired by removing global-related code in cloudpickle. Comments are left in code to mark those removals. |
Thanks @suquark, is it a bug in cloudpickle? If so, can we submit a PR to fix cloudpickle? |
@robertnishihara I don't think it is a bug. Pickling python objects itself is not well-defined because what are needed to be serialized and what should be kept as references really depend on the application. So we just keep what we need from their code. |
It would be great to get this fixed soon. We have problems because of this cloud pickle issues. I see that there are further changes made by @suquark here, to fix problems in cloud pickle which are detected by Ray CI. If I understand correctly, they are not really bugs but it is that our needs from cloud pickle is different than what default logic they have provides. So or we maintain patched version or we get them to add a switch so that we can disable things which are breaking our use case. |
@mitar, I agree it would be great to get these issues resolved soon. Maintain our own version of cloudpickle will be a nightmare, so we should stick with the official code base. @suquark can you explain what situations cause cloudpickle to "overserialize" things? What can we do to avoid triggering those cases? |
@robertnishihara It's really hard to give a simple example. But here are some points:
If you insist on keeping sync with the official cloudpickle, I could make a PR to introduce some switches controlling the behavior. However, this will introduce new issues. For example, should this switch belong to the module or belong to the |
Are those things also something any user of Ray would have to think about? Personally, I really do not see this pickling of much benefit to us. This is useful in scripting mode, but for production, it would just be simple to send over a full Python path of a function to call and expect it to be there on a worker available, through a regular Python importing. |
@mitar, separately I think we will provide a mode doing something like what you outlined above, where modules are available on each machine and don't need to be serialized. However, even in that case it will be hard to avoid pickle entirely, e.g., for shipping around custom serializers and things like that. |
Even for custom serializers I would expect the code to be already there. |
So, how can we make progress here? This is pretty important for us. |
does this PR still have problems? |
@raulchen this problem with this PR is that it's not actually using the upstream cloudpickle. Instead @suquark applied some patches. There is some discussion on cloudpipe/cloudpickle#214 about the best way to patch the upstream cloudpickle. |
Looks like cloudpipe/cloudpickle#240 may help here. I assume it will be in 0.7.1 of cloudpickle |
Yes, we integrated that change and some other improvements in PR #3964
…On Tue, Feb 12, 2019, 8:31 PM Nick Matthews ***@***.*** wrote:
Looks like cloudpipe/cloudpickle#240
<cloudpipe/cloudpickle#240> may help here. I
assume it will be in 0.7.1 of cloudpickle
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
<#3076 (comment)>, or mute
the thread
<https://github.com/notifications/unsubscribe-auth/AAG6pH30HTk3KAtA6PyB5icqtiVk68eJks5vM5UggaJpZM4Xlgun>
.
|
What do these changes do?
This PR is used to fix problems found in updating cloudpickle.
Related issue number
#2685
#2928