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
ringbuf
pub-sub actor module on branchone_ring_to_rule_them_all
:In particular the duplication was caused by the
find_actor
call, inside theget_peer_by_name
helper:fde681fa19/tractor/_discovery.py (L119)
The solution is to not append the parent channel to the
to_scan
data structure.yup! thanks for putting this up quick!