Skip to content
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

Exceptions raised on the IPP is wrapped by RemoteError #110

Closed
yadudoc opened this Issue Mar 7, 2018 · 2 comments

Comments

Projects
None yet
2 participants
@yadudoc
Copy link
Member

yadudoc commented Mar 7, 2018

When running apps that raise an application, the exception is returned as is by Threads, however they
are wrapped by IPP inside a RemoteError. This is confusing and adds inconsistencies in handling logic based on the executor being used.

Here's a wrapped exception traceback

Traceback (most recent call last):
  File "/home/yadu/src/parsl/parsl/dataflow/dflow.py", line 174, in handle_update
    future.result()
  File "/usr/lib/python3.5/concurrent/futures/_base.py", line 398, in result
    return self.__get_result()
  File "/usr/lib/python3.5/concurrent/futures/_base.py", line 357, in __get_result
    raise self._exception
  File "/usr/local/lib/python3.5/dist-packages/ipyparallel/client/asyncresult.py", line 224, in _resolve_result
    raise r
ipyparallel.error.RemoteError: TypeError(a float is required)

@annawoodard annawoodard added this to the Parsl-0.6.0 milestone Apr 3, 2018

@annawoodard

This comment has been minimized.

Copy link
Collaborator

annawoodard commented Apr 3, 2018

I think this should be very high-priority. Fixing this would speed up debugging on other items.

@yadudoc

This comment has been minimized.

Copy link
Member Author

yadudoc commented Apr 4, 2018

This is very hard. IPP converts the exceptions to a string, which makes it hard to reconstruct the original exception. Another confounding issue is that exceptions even if serialized might not have be deserializable on the local side due to missing (non-imported) libraries

@annawoodard annawoodard self-assigned this Apr 4, 2018

annawoodard added a commit that referenced this issue Apr 6, 2018

Switch to cloudpickle for serialization
This allows the resolution of #110 without having to double-pickle
tracebacks. It adds a dependency on cloudpickle.

annawoodard added a commit that referenced this issue Apr 6, 2018

Switch to cloudpickle for serialization
This allows the resolution of #110 without having to double-pickle
tracebacks. It adds a dependency on cloudpickle.

annawoodard added a commit that referenced this issue Apr 18, 2018

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.