Duplicated channel on Actor._peers causes hang on portal.cancel_actor() #25
Loading…
Reference in New Issue
There is no content yet.
Delete Branch "discovery_dedup"
Deleting a branch is permanent. Although the deleted branch may exist for a short time before cleaning up, in most cases it CANNOT be undone. Continue?
While working on
py-leap’s state history ws reader code, I was getting hangs on exit even after all contexts where terminated between actors, we tracked down the source of the hang to be this line:fde681fa19/tractor/_runtime.py (L1990)Which upon further inspection revealed a duplicated channel reference on
actor._peers.The source of the duplication was caused by this function, used on the new
ringbufpub-sub actor module on branchone_ring_to_rule_them_all:In particular the duplication was caused by the
find_actorcall, inside theget_peer_by_namehelper:fde681fa19/tractor/_discovery.py (L119)The solution is to not append the parent channel to the
to_scandata structure.yup! thanks for putting this up quick!