Skip to content

Add Address types to the built-in msgspec, fix non-registar root addr setup bug #410

@goodboy

Description

@goodboy

Allows us to avoid all this UwrappedAddress malarky from before we
adopted msgspec internally and would mean simplifying a variety of
internals finagling (in which there is currently a bug for
non-registrar root actors, see below).


Current root-actor bug

Rn if you spawn a non-registrar root, whenever it spawns a child the
child will at least crash when trying to acquire the inter-actor
debugger-REPL lock due to the ._state._runtime_vars['_root_addrs']
value(s) being of the wrong type.

This is due to the setup logic in ._root.open_root_actor() for that
case wherein we aren't able to just verbatim set the Actor.accept_addrs
to the registrar addrs; currently the Address form is being set in
the rtvs, and when a child is spawned they receive a dict-ified
form of say TCPAddress (due to msgspec.decode() default settings
for the type) which then can't be used when an API like
._discovery.get_root() is called, as it is for crash handling..

ToDos to prevent this issue going foward

Full short-term fix (set) was landed in, #412


Ideal long term soln?

Metadata

Metadata

Assignees

No one assigned

    Labels

    IPC and transportbugSomething isn't workingmessagingmessaging patterns and protocolsspawningof processes, (shm) threads, tasks on varied (OS-specific) backends

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions