10.5. Known Issues¶
10.5.1. Network interfaces cannot have non-ASCII characters in their name¶
If a network interface name contains one or more non-ASCII characters, creating
associated DomainParticipants may fail and return NULL.
As a workaround, do not use non-ASCII characters in network interface names.
[RTI ISsue ID MICRO-11127]
10.5.2. Script errors when running from a directory with a space in its name¶
If the path where the rtime-make script resides includes a space, invoking
rtime-make will cause a scripting error that includes the following:
line 25: cd: too many arguments.
As a workaround, install Connext Cert in a directory with no spaces or other special characters in its path.
[RTI Issue ID MICRO-11099]
10.5.3. Low resolution timestamps may cause Zero Copy samples to remain visible longer than expected¶
While using the Zero Copy v2 transport, if a sample is pushed out of a DataWriter’s history at the same time (with the same timestamp) as a DataReader is created, the DataReader will still be able to observe it. Additionally, Zero Copy samples with timestamps using a different clock than the DataReader may be missed.
There is no known workaround for this issue.
[RTI Issue ID MICRO-10926]
10.5.4. DDS_WstringSeq instance may have inconsistent state when set_maximum fails¶
If the function DDS_WstringSeq_set_maximum() fails and returns RTI_FALSE,
the entire sequence object may have an inconsistent state.
As a workaround, do not use the DDS_WstringSeq instance after a call to its
set_maximum has failed.
[RTI Issue ID MICRO-9999]
10.5.5. Logging mechanism is not included by default¶
Connext Cert supports logging in its Debug libraries, but the Platform Support Library (PSL) does not include a default logging mechanism. To see logging, you must set a log handler or log display function in your application.
For more information, see Debugging.
[RTI Issue ID MICRO-8534]
10.5.6. DDS_DomainParticipantFactory_get_instance() not memory safe on some architectures¶
On architectures with weak memory ordering (such as ARM),
DDS_DomainParticipantFactory_get_instance() is not guaranteed to be memory
safe.
As a workaround, use an OS API call that acts as a memory barrier before and
after calling DDS_DomainParticipantFactory_get_instance(). For example:
mutex_lock(my_mutex);
instance = DDS_DomainParticipantFactory_get_instance();
mutex_unlock(my_mutex);
[RTI Issue ID MICRO-8004]
10.5.7. Samples cannot be reclaimed if Zero Copy application does not return loan¶
If a DomainParticipant subscribing to Zero Copy data dies after reading or taking Zero Copy samples but before returning their loan, or never returns the loan for some other reason, then those samples can never be reclaimed for subsequent publishing and can be considered lost resources.
There is currently no known workaround that entirely removes the risk of samples becoming unavailable for reclaiming. The impact of such a scenario can be decreased by following these recommendations:
On the receiving side, process samples one at a time, by setting the
max_samplesparameter to 1 when invoking theread()ortake()family of functions. This will limit the impact of a dying process to a resource loss of 1 sample at most.Increase the
max_samplesresource limit on the DataWriter, to exceed the number of expected matching DataReaders. If the previous recommendation is followed as well, then the sample resources might decrease due to subscribing process failures, but never be exhausted.
[RTI Issue ID MICRO-5834]
10.5.8. VOLATILE Zero Copy DataReaders behave as TRANSIENT_LOCAL¶
When a DataReader matches a DataWriter via Zero Copy communication,
it has visibility into all samples that are present at that time, independent
of its setting for the DURABILITY QoS. This may be unexpected and is not
consistent with VOLATILE DataReaders that match to that same DataWriter via
other transports.
[RTI Issue ID MICRO-5550]
10.5.9. Reliable DataWriters send Heartbeats to best-effort DataReaders¶
Reliable DataWriters incorrectly send periodic and piggybacked Heartbeats to best-effort DataReaders.
[RTI Issue ID MICRO-2225]
10.5.10. Static endpoint discovery requires unique object IDs across all remote endpoints¶
When using static endpoint discovery (DPSE), Connext Cert requires that the
object_id for statically asserted remote endpoints must be unique across
all remote endpoints, as opposed to just among remote endpoints within the
same DomainParticipant.
[RTI Issue ID MICRO-211]