Node serialization fails with Pyro >= 2.20
- Dominant language
- Python
- Stars
- 183
- Forks
- 54
- PR merge metrics
- No merged PRs in 30d
Description
Tests involving serializing nodes fail on the newer pyro versions:
```
Traceback (most recent call last):
File "/home/travis/build/SleepingPills/mdf/mdf/tests/test_regression.py", line 37, in test_df_differ
diffs = mdf.regression.run(date_range, [df_differ], lhs=None, rhs=None)
File "/home/travis/build/SleepingPills/mdf/mdf/regression/__init__.py", line 281, in run
rhs_modulenames=rhs_modulenames)
File "/home/travis/build/SleepingPills/mdf/mdf/regression/__init__.py", line 239, in get_contexts
lhs_ctx = lhs_server.get_remote_context(ctx)
File "/home/travis/virtualenv/python2.6/lib/python2.6/site-packages/Pyro4/core.py", line 160, in __call__
return self.__send(self.__name, args, kwargs)
File "/home/travis/virtualenv/python2.6/lib/python2.6/site-packages/Pyro4/core.py", line 290, in _pyroInvoke
compress=Pyro4.config.COMPRESSION)
File "/home/travis/virtualenv/python2.6/lib/python2.6/site-packages/Pyro4/util.py", line 159, in serializeCall
data=self.dumpsCall(obj, method, vargs, kwargs)
File "/home/travis/virtualenv/python2.6/lib/python2.6/site-packages/Pyro4/util.py", line 392, in dumpsCall
return serpent.dumps((obj, method, vargs, kwargs))
File "/home/travis/virtualenv/python2.6/lib/python2.6/site-packages/serpent.py", line 62, in dumps
return Serializer(indent, set_literals).serialize(obj)
File "/home/travis/virtualenv/python2.6/lib/python2.6/site-packages/serpent.py", line 211, in serialize
self._serialize(obj, out, 0)
File "/home/travis/virtualenv/python2.6/lib/python2.6/site-packages/serpent.py", line 240, in _serialize
getattr(self, method_name, self.ser_default_class)(obj, out, level) # dispatch
File "/home/travis/virtualenv/python2.6/lib/python2.6/site-packages/serpent.py", line 290, in ser_builtins_tuple
self._serialize(elt, out, level + 1)
File "/home/travis/virtualenv/python2.6/lib/python2.6/site-packages/serpent.py", line 240, in _serialize
getattr(self, method_name, self.ser_default_class)(obj, out, level) # dispatch
File "/home/travis/virtualenv/python2.6/lib/python2.6/site-packages/serpent.py", line 290, in ser_builtins_tuple
self._serialize(elt, out, level + 1)
File "/home/travis/virtualenv/python2.6/lib/python2.6/site-packages/serpent.py", line 240, in _serialize
getattr(self, method_name, self.ser_default_class)(obj, out, level) # dispatch
File "/home/travis/virtualenv/python2.6/lib/python2.6/site-packages/serpent.py", line 436, in ser_default_class
raise TypeError("don't know how to serialize class " + str(obj.__class__) + ". Give it vars() or an appropriate __getstate__")
TypeError: don't know how to serialize class . Give it vars() or an appropriate __getstate__
```
Contributor guide
No contributing guide indexed for this repository
Research direction
Start with mdf/tests/test_regression.py::test_df_differ and the get_contexts entry point in mdf/regression/__init__.py. Reproduce the failure with Pyro 2.20 or newer and inspect how the MDFContext reaches the remote call. Done means the regression test and node serialization work on the affected Pyro versions.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- distributed-systems
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 42/100