Tests like TUNNEL_Test, TUNNELDeadlockTest, and GossipRouterTest make use of the following:
- a GosspiRouter which binds to a certain host address and port
- a GossipRouter client whose TUNNEL protocol binds to a certain host address and port
- a property gossip_router_hosts which specifies the gossip router hosts the client can connect to
If these bind addresses are not specified, we often get test failures involving an inability of the client to communicate with the GossipRouter, due to each not having the other's correct address, or one being on local host and the other on a non-localhost interface:
------------- startRouter ----------- -- starting GossipRouter on 127.0.0.1[23003] ------------- testConnectThree ----------- ------------------------------------------------------------------- GMS: address=B, cluster=TUNNEL_Test, physical address=192.168.5.141:61373 ------------------------------------------------------------------- 605382 [WARN] TUNNEL: - Failed connecting to GossipRouter at /127.0.0.1:23003 605383 [WARN] TUNNEL: - failed reconnecting stub to GR at /127.0.0.1:23003: java.lang.Exception: Could not connect to /127.0.0.1:23003 605383 [ERROR] TUNNEL: - failed sending message to cluster (94 bytes): java.lang.Exception: None of the available stubs [RouterStub[localsocket=/192.168.5.141:51802,router_host=127.0.0.1::23003,connected=false]] accepted a multicast message, cause: null
TUNNEL_Test and GossipRouterTest are failing on Windows, for example, due to this sort of issue.