Skip to content

two_nodes_btp (2)

Taiga Nakayama edited this page Nov 13, 2019 · 8 revisions

Problem

https://circleci.com/gh/interledger-rs/interledger-rs/3562?utm_campaign=vcs-integration-link&utm_medium=referral&utm_source=github-build-link

2019-11-12T03:01:11.032531317+00:00 ERROR node_b:api:incoming{request.id=424e8f00-8b8f-4f6a-9444-366d5401b0b9 prepare.destination=local.host.alice_on_a.bI8MsxLoBV7XgPmacP5_OoSx prepare.amount=2000 from.id=d8a75691-1ed1-45e9-b387-4554ac193be5}:{from.username=bob_on_b from.ilp_address=example.parent.bob_on_b from.asset_code=XYZ from.asset_scale=9}: interledger_router::router: No route found for request (warning: address does not start with the right scheme prefix, expected: "example"): IncomingRequest { prepare: Prepare { destination: Address("local.host.alice_on_a.bI8MsxLoBV7XgPmacP5_OoSx"), amount: 2000, expires_at: "2019-11-12T03:01:41.032215878+00:00", execution_condition: "6f4d0bb271ab85a38ec360d021382a0875594e2742dce1945f643d1ff9c82469", data_length: 68 }, from: Account { id: AccountId(d8a75691-1ed1-45e9-b387-4554ac193be5), username: Username("bob_on_b"), ilp_address: Address("example.parent.bob_on_b"), asset_code: "XYZ", asset_scale: 9, max_packet_amount: 18446744073709551615, min_balance: None, ilp_over_http_url: None, ilp_over_http_incoming_token: Some(SecretBytes(...)), ilp_over_http_outgoing_token: None, ilp_over_btp_url: None, ilp_over_btp_incoming_token: None, ilp_over_btp_outgoing_token: None, settle_threshold: None, settle_to: None, routing_relation: NonRoutingAccount, round_trip_time: 500, packets_per_minute_limit: None, amount_per_minute_limit: None, settlement_engine_url: None } }

Sending to local.host?? Seems that the routing table of Node A is not updated properly.

The Routing Table of Success Case

interledger_store_redis::store: Routing table is: {"local.host.b_on_a": AccountId(01c921bb-af68-4e81-9b12-37a6b9abc4bb), "": AccountId(01c921bb-af68-4e81-9b12-37a6b9abc4bb), "example.parent": AccountId(01c921bb-af68-4e81-9b12-37a6b9abc4bb), "example.parent.a_on_b.alice_on_a": AccountId(02a6df15-713f-4544-9cd0-0c8146ee77bf)}

The Routing Table of Failure Case

interledger_store_redis::store: Routing table is: {"local.host.b_on_a": AccountId(b744f931-ef6c-4e5b-81e5-47bd12415634), "local.host.alice_on_a": AccountId(bb783990-a81d-4091-ba57-feba75acf5ac), "example.parent": AccountId(b744f931-ef6c-4e5b-81e5-47bd12415634), "": AccountId(b744f931-ef6c-4e5b-81e5-47bd12415634)}

doesn't have example.parent.a_on_b.alice_on_a entry??

Hypothesis

When an account is going to be inserted into Redis, if another account that is configured to acquire the ILP address of the node is created at the same time, the route information of the node gets broken.

Reproduce

https://github.com/interledger-rs/interledger-rs/commit/a3917726b12a31648c192d28c703ab5c1dce4d58

Clone this wiki locally