From 2d36cf478d0d323cdaae35df6d4d46e71d0eef97 Mon Sep 17 00:00:00 2001 From: Tyler Goodlet Date: Fri, 11 Jun 2021 16:21:26 -0400 Subject: [PATCH] Always cast arbiter addr to tuple --- tractor/_actor.py | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/tractor/_actor.py b/tractor/_actor.py index eec040b..5eb829a 100644 --- a/tractor/_actor.py +++ b/tractor/_actor.py @@ -279,7 +279,7 @@ class Actor: # TODO: consider making this a dynamically defined # @dataclass once we get py3.7 self.loglevel = loglevel - self._arb_addr = tuple(arbiter_addr) if arbiter_addr is not None else None + self._arb_addr = tuple(arbiter_addr) if arbiter_addr is not None else (None, None) # marked by the process spawning backend at startup # will be None for the parent most process started manually @@ -691,7 +691,15 @@ class Actor: _state._runtime_vars.update(rvs) for attr, value in parent_data.items(): - setattr(self, attr, value) + + if attr == '_arb_addr': + # XXX: msgspec doesn't support serializing tuples + # so just cash manually here since it's what our + # internals expect. + self._arb_addr = tuple(value) + + else: + setattr(self, attr, value) # Disable sigint handling in children if NOT running in # debug mode; we shouldn't need it thanks to our