Skip to content

Dead letter when a message arrives from remote call and target is not alive anymore #943

@ktoso

Description

@ktoso

In DA world this only happens for distributed remote calls, it used to be possible everywhere and we implemented a "personal dead letters" for it.

Instead, we now must throw during .resolve and catch during applying a remote call -- and cause a dead letter there.

Include logging tests so we make sure it actually did dead letter.

Relevant pieces of code:

            guard let managed = self._managedDistributedActors.get(identifiedBy: address) else {
                log.trace("Resolved as remote reference", metadata: [
                    "actor/identity": "\(address)",
                ])
                // TODO(distributed): throw here, this should be a dead letter
                return nil
            }

in resolve and receiveInvocation is where we should catch and cause the dead letter.

Metadata

Metadata

Assignees

No one assigned

    Labels

    1 - triagedTicket makes sense and is well defined, ready to be worked onhelp wantedGreat tickets to get started contributing!size/SSmall task. (A couple of hours of work.)

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions