What does the "can't reach: locator" error message mean?

Note: Applies to RTI Connext 4.x.

In general, a can't reach:locator: error message means that a DataWriter cannot send to the locator of a DataReader, usually due to a transport configuration error.

For example, suppose Participant A has both the UDPv4 and shared-memory built-in transports enabled, while Participant B only has shared-memory enabled. When B discovers A, it will try to reach A over A’s advertised UDPv4 and shared-memory locators. However B will fail to send to A's UDPv4 locators because B does not have its own UDPv4 transport plugin enabled. Consequently, B will log an exception.

To resolve this problem, either disable UDPv4 on A or enable UDPv4 on B.

Another common example is related to the discovery of Participants with multicast locators. Suppose Participant A has multicast enabled, but Participant B does not. By default, A will advertise the default multicast address 239.255.0.1 as a multicast locator to B. When B receives this advertisement, B will try to send meta-traffic back to 239.255.0.1, but it will fail with the following error message:

can't reach:
locator:
transport: 1
address: 0000:0000:0000:0000:0000:0000:EFFF:0001
port: 7400 
transport_priority: 0
aliasList: "" 

Notice that EFFF:0001 translates to 239.255.0.1. 

To resolve this problem, you can either:

Note: Applies to RTI Connext 5.2.0 or later

You may be running into a compatibility issue between RTI Connext 5.2.0 or later and a previous version. Please see this solution.

Keywords:

Comments

I got the same error message. I use the tracking vehicles example code. I run on local machine. When I launch the RTI Connext DDS with Administration Console. I got that message. What should I do now ?

Getting this error message as soon as another participant tries to call DDSTheParticipantFactory->create_participant_with_profile(). The participant A and and B uses the same QoS.xml file and uses UDPv4 like this:

              <name>dds.transport.UDPv4.builtin.parent.allow_interfaces_list</name>
              <value>192.168.0.201</value>
The participant A and B are running on the same centos box.
 

 

COMMENDBeWriterService_assertRemoteReader:!create reachable destination
COMMENDBeWriterService_assertRemoteReader:!create reachable destination
COMMENDBeWriterService_assertRemoteReader:!create reachable destination
COMMENDSrWriterService_assertRemoteReader:!create reachable destination
COMMENDSrWriterService_assertRemoteReader:!create reachable destination
COMMENDSrWriterService_assertRemoteReader:!create reachable destination
COMMENDSrReaderService_assertRemoteWriter:!create reachable destination
COMMENDSrWriterService_assertRemoteReader:!create reachable destination
COMMENDSrReaderService_assertRemoteWriter:!create reachable destination
COMMENDSrReaderService_assertRemoteWriter:Discovered remote writer using a non-addressable locator for a transport with class ID 1.
This can occur if the transport is not installed and/or enabled in the local participant.
See https://community.rti.com/kb/what-does-cant-reach-locator-error-message-mean for additional info.
COMMENDSrReaderService_assertRemoteWriter:Discovered remote writer using a non-addressable locator for a transport with class ID 1.
This can occur if the transport is not installed and/or enabled in the local participant.
See https://community.rti.com/kb/what-does-cant-reach-locator-error-message-mean for additional info.
can't reach:
can't reach:
   locator:
   locator:
      transport: 1 (UDPv4)
      transport: 1 (UDPv4)
      address: 192.168.0.201
      address: 192.168.0.201
      port: 7430
      port: 7430
      encapsulation:
      encapsulation:
   transport_priority: 0
   transport_priority: 0
   aliasList: ""
   aliasList: ""
COMMENDSrReaderService_assertRemoteWriter:Discovered remote writer using a non-addressable locator for a transport with class ID 16777216.
This can occur if the transport is not installed and/or enabled in the local participant.
See https://community.rti.com/kb/what-does-cant-reach-locator-error-message-mean for additional info.
COMMENDSrReaderService_assertRemoteWriter:Discovered remote writer using a non-addressable locator for a transport with class ID 16777216.
This can occur if the transport is not installed and/or enabled in the local participant.
See https://community.rti.com/kb/what-does-cant-reach-locator-error-message-mean for additional info.
can't reach:
can't reach:
   locator:
   locator:
      transport: 16777216
      transport: 16777216
      address: 590C:87B9:D01B:2953:6D26:2F85:0000:0000
      address: 590C:87B9:D01B:2953:6D26:2F85:0000:0000
      port: 7430
      port: 7430
      encapsulation:
      encapsulation:
   transport_priority: 0
   transport_priority: 0
   aliasList: ""
   aliasList: ""
COMMENDSrWriterService_assertRemoteReader:!create reachable destination
COMMENDSrReaderService_assertRemoteWriter:!create reachable destination
COMMENDSrReaderService_assertRemoteWriter:!create reachable destination
COMMENDSrReaderService_assertRemoteWriter:Discovered remote writer using a non-addressable locator for a transport with class ID 1.
This can occur if the transport is not installed and/or enabled in the local participant.
See https://community.rti.com/kb/what-does-cant-reach-locator-error-message-mean for additional info.
COMMENDSrReaderService_assertRemoteWriter:Discovered remote writer using a non-addressable locator for a transport with class ID 1.
This can occur if the transport is not installed and/or enabled in the local participant.
See https://community.rti.com/kb/what-does-cant-reach-locator-error-message-mean for additional info.
can't reach:
can't reach:
   locator:
   locator:
      transport: 1 (UDPv4)
      transport: 1 (UDPv4)
      address: 192.168.0.201
      address: 192.168.0.201
      port: 7430
      port: 7430
COMMENDSrWriterService_assertRemoteReader:!create reachable destination
      encapsulation:
      encapsulation:
   transport_priority: 0
   transport_priority: 0
   aliasList: ""
   aliasList: ""
COMMENDSrReaderService_assertRemoteWriter:Discovered remote writer using a non-addressable locator for a transport with class ID 16777216.
This can occur if the transport is not installed and/or enabled in the local participant.
See https://community.rti.com/kb/what-does-cant-reach-locator-error-message-mean for additional info.
COMMENDSrReaderService_assertRemoteWriter:Discovered remote writer using a non-addressable locator for a transport with class ID 16777216.
This can occur if the transport is not installed and/or enabled in the local participant.
See https://community.rti.com/kb/what-does-cant-reach-locator-error-message-mean for additional info.
can't reach:
can't reach:
   locator:
   locator:
COMMENDSrReaderService_assertRemoteWriter:!create reachable destination
      transport: 16777216
      transport: 16777216
COMMENDSrReaderService_assertRemoteWriter:Discovered remote writer using a non-addressable locator for a transport with class ID 1.
This can occur if the transport is not installed and/or enabled in the local participant.
See https://community.rti.com/kb/what-does-cant-reach-locator-error-message-mean for additional info.
      address: 590C:87B9:D01B:2953:6D26:2F85:0000:0000
      address: 590C:87B9:D01B:2953:6D26:2F85:0000:0000
      port: 7430
      port: 7430
can't reach:
      encapsulation:
      encapsulation:
   locator:
   transport_priority: 0
   transport_priority: 0
      transport: 1 (UDPv4)
   aliasList: ""
   aliasList: ""
      address: 192.168.0.201
      port: 7430
      encapsulation:
   transport_priority: 0
   aliasList: ""