Skip to content

no route to destination with indirect routing setup #2005

Description

@allspark

I've noticed a problem with monitoring a remote actor which is multiple hops away.

If an intermediate actor_system is shutdown the monitor-handler is not invoked.

here is a "small" example program: https://github.com/allspark/actor-framework/blob/remote_monitor/examples/remoting/remote_monitor.cpp

when i execute the program multiple times:

./remote_monitor -m 0 & # node-0
./remote_monitor -m 1 & # intermediate-1
./remote_monitor -m 2 & # intermediate-2
./remote_monitor -m 3 --client & # client-3

The messages (caf::registry_lookup_atom_v, "lookup" line 68) are correctly routed:

client-3 -> intermediate-2 -> intermediate-1 -> node-0 and the answer (the actor created in line 148) is received in client-3

but the intermediate-2 doesn't have a route to node-0 when the client-3 sends a message (line 122).

example output:

node-0

[Lookup-0] 8@269C7E6CC851EA8FDEB351D6CEF43BDC8B2A1BB8#20034
[TestActor] 9@269C7E6CC851EA8FDEB351D6CEF43BDC8B2A1BB8#20034
[Lookup-0] get_atom, sender: 11@46420117134EAEE8B47DBECE20384DBF086BAB13#20193

intermediate-1

[Lookup-1] 10@C5F8EEB01469636361B5CE68737AFE1BDE37BB8A#20115
[Lookup-1] get_atom, sender: 11@46420117134EAEE8B47DBECE20384DBF086BAB13#20193
[Lookup-1] get next hop success: 8@269C7E6CC851EA8FDEB351D6CEF43BDC8B2A1BB8#20034

intermediate-2

[Lookup-2] 10@66ACFB0928D1CE54E84CEBF98C06D48AD901E79E#20157
[Lookup-2] get_atom, sender: 11@46420117134EAEE8B47DBECE20384DBF086BAB13#20193
[Lookup-2] get next hop success: 10@C5F8EEB01469636361B5CE68737AFE1BDE37BB8A#20115

client-3

[Lookup-3] 10@46420117134EAEE8B47DBECE20384DBF086BAB13#20193
[Lookup-3] get_atom, sender: 11@46420117134EAEE8B47DBECE20384DBF086BAB13#20193
[Lookup-3] get next hop success: 10@66ACFB0928D1CE54E84CEBF98C06D48AD901E79E#20157
[Client-3] testActor 9@269C7E6CC851EA8FDEB351D6CEF43BDC8B2A1BB8#20034

with console log active on intermediate-2 (--caf.logger.console.verbosity=DEBUG) it showed the warning

[caf_flow:DEBUG] 2025-02-04T21:13:41.449653878+01:00 RECEIVE ; FROM = null ; CONTENT = message(caf::io::new_data_msg(8, [01, 00, 01, 14, 88, 27, C8, AB, 45, AD, EB, 7C, 5F, 9C, B7, EC, 76, B4, 3B, C5, 71, 92, 86, 83, 94, 01, 00, 01, 14, 07, D1, A6, FC, B8, EB, 4D, 6C, FC, 11, 41, CC, 54, 4C, 9F, 9E, 45, AE, B9, BA, 7C, 03, 00, 67, 00, 4F, 00, 0C, 04, 69, 6E, 66, 6F]))
[caf.io:DEBUG] 2025-02-04T21:13:41.449667033+01:00 hdr = anonymous(routed_message, 0, 0, 1, 62, 1152921504606846976, 14, 2)
[caf.io:WARN] 2025-02-04T21:13:41.449775793+01:00 cannot forward message, no route to destination
[caf_flow:DEBUG] 2025-02-04T21:13:41.449792657+01:00 FINALIZE

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions