In case of errors, return a simple dictionary instead of pickled exception.
Pros:
- Language-independent
- Works with unpickleable exceptions (eg. cimpl.KafkaException, and RLock objects in exceptions raised by tenacity)
Con:
- Shows a less nice error on the client side (if the client is in Python)
Resolves swh-storage#2239 (closed).
Test Plan
tox passes this repo, but I'm going to try tests with RPC servers that use it.
Migrated from D2627 (view on Phabricator)