5.2.1. RTI Connext Core Libraries
The following issues affect backward compatibility in the Core Libraries starting in release 7.3.1. Issues in the Core Libraries may affect components that use these libraries, including Infrastructure Services and Tools.
5.2.1.1. socket_monitoring_kind default changed to POLL
In previous releases, the TCP Transport was not properly enforcing system
FD_SETSIZE hard system limits for SELECT socket monitoring. This may
have resulted in undefined behavior when using SELECT socket monitoring in
systems where overwriting the FD_SETSIZE to a custom value at compilation
time was not supported. This issue has been fixed in 7.3.1; see
COREPLG-756.
As part of this fix, the maximum FD_SETSIZE in Linux systems
has been reduced to 1024, which effectively limits both the maximum
number of sockets (to 1024) and the maximum socket ID (to 1023)
that are supported by SELECT socket monitoring. The socket_monitoring_kind
default (see
TCP/TLS Transport Properties,
in the RTI Connext Core Libraries User’s Manual) has also changed to POLL,
to avoid scalability issues.
If you previously explicitly set socket_monitoring_kind to the old default,
SELECT, and you now exceed the new, lower limits, you will experience
errors, potentially preventing communication. (The previous maximum expected
limits for SELECT were 32768 for the maximum number of sockets and
32767 for the maximum socket ID, although typically the runtime system
limits are much lower.) The errors will look similar to the following:
NDDS_Transport_TCP_SocketGroup_xxxxxx:invalid <operation> socket (<socket_id>) higher than the maximum accepted value (1024)
If you experience this error, either explicitly set
socket_monitoring_kind to POLL, or, preferably, make sure
socket_monitoring_kind is not set, so that the default is used: POLL
for Linux systems, WINDOWS_IOCP for Windows systems, and SELECT for
other systems. The new limits for POLL are 32768 for the maximum number
of sockets and 32767 for maximum socket ID.