This page lists all the changes and fixed bugs in OpenSplice v6.1.x
Regular releases of OpenSplice are made available which contain fixed bugs, changes to supported platforms and new features.
There are two types of release, major releases and minor releases. Upgrading OpenSplice contains more information about the differences between these releases and the impact of upgrading. We advise customers to move to the most recent release in order to take advantage of these changes. This page details all the fixed bugs and changes between different OpenSplice releases. There is also a page which details the new features that are the different OpenSplice releases.
There are two different types of changes. Bug fixes and changes that do not affect the API and bug fixes and changes that may affect the API. These are documented in separate tables.
Fixed Bugs and Changes in OpenSplice v6.1.x
OpenSplice v6.1.1p4
Report ID. | Description |
---|---|
OSPL-1017/ 10755 | Added support for Windriver Linux 4.3 on Freescale MPC8308 Solution: Implementated platform support for windriver linux 4.3 on mpc8308 |
OpenSplice v6.1.1p3
Report ID. | Description |
---|---|
OSPL-1017/ 10755 | Durability crashes when alignment data contains only unregister messages The 6.1.1p2 release failed on this issue. Solution: Correctly applied patch to resolve the issue. |
OSPL-1092/ 10791 | Liveliness notifications to data readers created on multiple partitions may not happen If a data reader is created on two partitions, say "A" and "B", then it will only receive liveliness notifications for the partition that is last lexicographically, i.e. only for "B", despite a new data writer being created on partition A.. Solution: The algorithm that determined whether a data reader's partitions match that of a data writer has been fixed to ensure that it supports a data reader with multiple partitions. This means that a notification can now happen for more than just the final partition in the list |
OpenSplice v6.1.1p2
Report ID. | Description |
---|---|
OSPL-1017/ 10755 | Durability crashes when alignment data contains only unregister messages In the scenario where there are only unregister messages aligned by the durability service for a given partition-topic combination, the service would crash because an instance lookup would fail. Solution: Durability is made robust against this kind of scenario. |
OSPL-1035/ 10764 | DDSI2 failure to deserialize bounded strings of maximum length DDSI2 validates all data coming in over the network, but the input validator erroneously considered strings in received network packets of which the length equalled the specified bound as being oversized. Solution: The error in the validator has been fixed |
OpenSplice v6.1.1p1
Fixed bugs and changes not affecting the API in OpenSplice 6.1.1p1
Report ID. | Description |
---|---|
OSPL-892/ 10091 | DDSI2 can respond with incorrect set fragments to retransmission requests The DDSI protocol allows reliable readers to request retransmission of individual fragments of large samples. DDSI2 could respond with fragments other than the ones requested, which could generally be masked by an eventual request for the full sample to be retransmitted, but would cause the communication to come to a complete standstill if a particular fragment always got lost. For example, when the rapid (re)transmission of a large amount of data systematically lead to a switch throwing away a whole range of packets. Solution: DDSI2 now always responds with the requested fragments. |
OSPL-919 | C# Examples do not compile on Windows 64 bit platforms The C# Examples do not compile on Windows 64 bit platforms. This was caused by 2 problems: - missing entries in the solution file - bugs in the example source code Solution: The missing entries have been added to the solution file and the bugs fixed in the example source code. |
OpenSplice v6.1.1
Fixed bugs and changes not affecting the API in OpenSplice 6.1.1
Report ID. | Description |
---|---|
OSPL-301/ 10110 | handle.serial exceeds HANDLE_SERIAL_MASK Two different perceptions of the maximum serial number for a handle exist within the product. Once the serial becomes larger than the smallest maximum, the reported error occurs. Solution: The maximum serial number to be used is now to same in both locations in the product. |
OSPL-508/ 9816 | Idlpp crashes on invalid recursion. Solution: idlpp will check if a type is defined before it is used - except for sequences where recursion is allowed. |
OSPL-635 10466 | Unable to determine adapter name in windows It was possible that when using windows OpenSplice is unable to determine the network adapter name. Solution: The defect in the name resolving mechanism is fixed according to the MSDN page solution and a proper adapter name is resolved. |
OSPL-637 10466 | Handling loopback data in native networking When using shared memory with native networking the configuration will never 'see' a co-located single-process instance on the same node. Secondly data that loops back (i.e. 'own sent data') is detected in a sub-optimal way. Solution: The defect in native networking is solved and a new configuration item 'EnableMulticastLoopback' for native networking is introduced to optimize loopback data. EnableMulticastLoopback specifies whether the networking service will allow IP multicast packets within the node to be visible to all networking participants in the node, including itself. It must be TRUE for intra-node multicast communications, but if a node runs only a single OpenSplice networking service and does not host any other networking-capable programs, it may be set to FALSE for improved performance |
9963/ dds3426 / OSPL-646 | DDSI2 used incorrect encoding for fragment data message headers DDSI2 incorrectly used to generate and interpret fragmented data message headers as if they were slightly extended versions of the non-fragmented data message headers. This caused DDSI2 to be non-compliant with respect to the standard and to fail to interoperate with other vendors' implementations for large samples. Solution: the setting and interpretation has been corrected. This breaks backwards compatibility, but because DDSI2 is still in beta, this does not constitute a change of policy. For those exceptional cases where backwards compatibility is currently an issue, a setting Unsupported/LegacyFragmentation has been introduced, which may be set to true to continue using and interpreting the old message format. |
OSPL-780 | Incorrect handling of ioctl return code The return result from a call to ioctl should be interpreted as successful if the result is not equal to ERROR. The existing code uses result equal to zero as the criteria for success but positive non-zero values are also valid. Solution: The defect in the abstraction layer is now fixed and positive non-zero values values are now also valid. |
OSPL-783 | IPv6 DontRoute emulation incorrect Due to lack of support for SO_DONTROUTE on some IPv6 stacks, networking tried to emulate the behaviour by setting the hop-count to 1. This is not functionally equivalent to SO_DONTROUTE. Solution: The emulation of the option has been removed. When set on an IPv6 configured networking service the option will be ignored. |
OSPL-784 | Erroneous messages logging when sending initial ACKs if multiple AC messages were bundled in a single packet Erroneous messages were logged when multiple ACK messages were bundled into a single packet in the case of multiple partitons with Partition 1 only has a first ACK to be sent (no pending ACKs) and partition 2 has a first ACK and/or pending ACKs. Solution: The defect in the ACK logging mechanism has been fixed and now logs the correct messages. |
OSPL-813 | Consistent final value not always guaranteed with BY_SOURCE_TIMESTAMP In the unusual scenario where a single writer updates an instance with the same timestamp, a consistent final value for that instance was not guaranteed across all subscribers. According to the DDS v1.2 spec this should be guaranteed in this case. Solution: When updating the administration of the readers the consistent final value is guaranteed by incorporating a writer-generated sequence number. |
OSPL-821/ 10098 | DDSI2 socket receive buffer sizes are be too small to handle large packet bursts Large incoming packet bursts could overwhelm the configured buffer capacity of the network sockets in DDSI2 networking service. This was dependent on many factors, in particular also on scheduling latencies at the OS level. Solution: The default receive buffer size is now the minimum of the new Unsupported/MinimumSocketReceiveBufferSize option and the operating system default UDP socket buffer size. The default value of 64kB should suffice for most systems but can be increased where needed. |
OSPL-827 | liveliness count issue with multiple partitions When using data readers accros multiple partitions the liveliness count increments for all writers instead of only the writers connected to the selected partition. Solution: The defect in the liveliness count algorithm is now fixed and now only the liveliness count for the writers in the selected partition are updated. |
OpenSplice v6.1.0g2
Fixed bugs and changes not affecting the API in OpenSplice 6.1.0g2
Report ID. | Description |
---|---|
dds3554 | e500v2 based builds need to include the VX_SPE_TASK option when spawning RTPs. Updated e500v2 based builds to include the VX_SPE_TASK option when spawning RTPs. |
OpenSplice v6.1.0g1
Report ID. | Description |
---|---|
dds3554 | PowerPC P2020 and PPC32 vxworks 6.8, linux hosted builds now supported. Added PowerPC P2020 and PPC32 vxworks 6.8, linux hosted builds. |
OpenSplice v6.1.0p8
Report ID. | Description |
---|---|
dds3508/ 10342 | spliced not running on LynxOS 5. Problems with spliced not executing correctly on LynxOS 5. Solution: Multiple fixes required, invalid makesystem options and some extra LynxOS posix support required. |
OpenSplice v6.1.0p7
Fixed bugs and changes not affecting the API in OpenSplice 6.1.0p7
Report ID. | Description |
---|---|
8840 / 9350 / dds2973 / dds2590 | Memory leaks during shutdown of native networking. During the shutdown of native networking not all administration structures are freed. Solution: The defect in the network termination algorithm is now fixed and all administration is correctly freed. |
10065 / dds3306 | DDSI2 may erroneously decide CDR serialized data is invalid The DDSI2 deserializer attempts to avoid allocating memory for sequences of obviously bogus lengths by checking whether the remaining number of bytes is sufficient to encode some sequence of the declared length. Unfortunately, it uses the wrong notion of the size of an element, which can cause it to incorrectly declare a length to be bogus. This is dependent on platform, type and the type and contents of any data preceding the sequence. Solution: Always deserialize all data until the input is really exhausted. |
10064 / dds3339 | Reliable communication fails with multiple connected RT networking services on one node The statically configured portnumbers collide with multiple instances, causing unicast data not to be received by all RT networking instances. For reliability related packets (ACK's, resends, etc.) unicast is used on a static port (data-port + 1), even when broad- or multicast is configured. This implies that multiple instances try to use the same IP-addres-portnumber combination, which is never possible. This causes only the latest bound RT networking service to receive all ACK's and resends for any instance on the same IP-address-portnumber combination, breaking reliable communication and causing a lot of warnings to be reported regarding unexpected ACK's, etc. Solution: RT networking uses a dynamically assigned portnumber instead of a statically configured portnumber for the reliability related packets. |
10125 / dds3391 | OpenSplice DDS configured with multiple native network services and IgnoredPartitions configuration option set. In the case that OpenSplice is used with multiple native networking services and IgnoredPartitions is configurated. Writing multiple instances with a single dataWriter fails. The first instance will be written all further instances will not be written. Solution: The defect in the network administation algorithm in combination with ignored partitions is now fixed. |
9963 / dds3426 dds3478 | DDSI2 used incorrect encoding for fragment data message headers DDSI2 incorrectly used to generate and interpret fragmented data message headers as if they were slightly extended versions of the non-fragmented data message headers. This caused DDSI2 to be non-compliant with respect to the standard and to fail to interoperate with other vendors' implementations for large samples. Solution: The setting and interpretation has been corrected. This breaks backwards compatibility. For those exceptional cases where backwards compatibility is currently an issue, a setting Unsupported/LegacyFragmentation has been introduced, which may be set to true to continue using and interpreting the old message format. |
Fixed bugs and changes affecting the API in OpenSplice 6.1.0p7
Report ID | Description |
---|---|
9963 / dds3426 dds3478 | DDSI2 used incorrect encoding for fragment data message headers DDSI2 incorrectly used to generate and interpret fragmented data message headers as if they were slightly extended versions of the non-fragmented data message headers. This caused DDSI2 to be non-compliant with respect to the standard and to fail to interoperate with other vendors' implementations for large samples. Solution: The setting and interpretation has been corrected. This breaks backwards compatibility. For those exceptional cases where backwards compatibility is currently an issue, a setting Unsupported/LegacyFragmentation has been introduced, which may be set to true to continue using and interpreting the old message format. |
OpenSplice v6.1.0p6
Fixed bugs and changes not affecting the API in OpenSplice 6.1.0p6
Report ID. | Description |
---|---|
9963 / dds3426 dds3478 | DDSI2 fragment size is now configurable DDSI2 never creates data messages containing a payload larger than the FragmentSize, any sample larger than the FragmentSize gets split into multiple fragments of FragmentSize each. These fragments are then transported independently (but may yet be merged into larger UDP datagrams). Solution: This size is now configurable using Unsupported/FragmentSize, with a default of 1280 bytes. Values below 1025 bytes violate the DDSI2 specification, above approximately 65000 bytes it (probably) won't fit inside a single UDP datagram. Increasing the size will shift more fragmenting and reassembling to the IP stack, which is generally more efficient because it is done inside the network stack, but which is incapable of retransmitting individual lost fragments. Increasing it may also allow operating without any fragmenting at the DDSI level, which may help avoid interoperability issues. |
dds3486 | Third party licenses updates OpenSplice Tester third party tool licenses were not documented in release notes. Solution: Updated docs/html/third_party_licenses.html. |
OpenSplice v6.1.0p5
Fixed bugs and changes not affecting the API in OpenSplice 6.1.0p5
Report ID. | Description |
---|---|
dds3467/ 10259 | Signal handling failing on DENX. Signals were not being correctly handled for the DENX target Solution: Use the generic POSIX implementation. |
dds3217/9881 dds3430 | Spliced shared memory leak on remote durability shutdown A memory leak was found whenever a remote node was started and then stopped while durability was also running. Solution: When durability detected a remote node, it would write an update into the system (and thus the shared memory on the local node). The logic for this write wrongly performed a double string creation for the same string. The second string creation overwrote the pointer to the first created string, which resulted in the first created string to be never freed when the remote node disconnected. The solution was to remove the first string creation, as it was superfluous. |
dds3248/ 9908 | Partition expressions not matched properly. In case an application publishes/subscribes to multiple partitions and the list of partitions has names that are sub-strings of one of the others in the list, some partitions may be ignored. Even though communication within a node and communication over the network using the native networking service still works correctly, this issue causes communication over the network to fail when using the ddsi networking service and it also causes listeners not to be triggered on matched subscriptions and publications. Solution: The error in the pattern matching algorithm in the kernel has been repaired. |
dds3399/ 10139 | Incorrect network statistics. The networking service optionally keeps track of statistics that can be inspected by means of the Tuner tool. After inspection it turned out that the maxNumberOfPacketsResentToOneNode and maxNumberOfBytesResentToOneNode statistics are showing wrong values. Solution: The maxNumberOfPacketsResentToOneNode and maxNumberOfBytesResentToOneNode statistics are now showing the correct values. |
dds3416/ 10152 | Manual liveliness not working correctly Specific circumstances, such as a manual liveliness, could trigger a bug in the lease manager that would eventually cause the lease manager thread to hang indefinitely. The result is that periodic leases, such as the sending and receiving of heartbeats, is stopped. Solution: The lease manager was fixed. |
dds3432/ 10187 | Applications SEGFAULT when the domain is not started. In the case no DDS domain is running but there is still a dirty shared memory segement present from an old instance of Spliced. It can happen that when an application is started, the application can crash with a SEGFAULT. Solution: The defect is fixed and the application will no longer crash because of this. |
dds3455 | The durability service should improve the memory used during alignment. The durability service temporarily caches received alignment data until the set for a specific partition-topic combination is complete. The algorithm implemented there could be improved to reduce the amount of memory used during this phase. Solution: The durability service now stores unregistrations is a much more memory-efficient way reducing the memory overhead for alignment to a minimum. |
dds3457/10241 dds3458/10242 | Crash of networking and/or durability during due to memory exhaustion. The networking and durability services could crash when the shared memory was exhausted. Solution: The services now check the available memory threshold and does not claim more memory when the threshold has been reached. Furthermore they will terminate when no more memory becomes available within a few seconds. |
OpenSplice v6.1.0p4
Fixed bugs and changes not affecting the API in OpenSplice 6.1.0p4
Report ID. | Description |
---|---|
dds3443 | Added support for vxWorks 6.8.2 on MIPSI32R2sf There was no port for vxWorks 6.8.2 on mips. Solution: A build for vxworks 6.8.2 on MIPSI32R2sf has been added |
OpenSplice v6.1.0p3
Fixed bugs and changes not affecting the API in OpenSplice 6.1.0p3
Report ID. | Description |
---|---|
dds3217/ 9881 | Spliced shared memory leak on remote node shutdown When a remote node comes (e.g., ospl start is executed on a remote node) and then leaves (e.g., ospl stop is executed on a remote node) the system, a structural increase in shared memory is observed. Solution: A memory leak was fixed dealing with heartbeat message of the splice daemon being leaked. And a memory leak was fixed where durability history_kind was wrongly mixed with regular history depth instead of the value of the durability history depth. |
dds3391/ 10125 | OpenSplice DDS configured with multiple native network services and IgnoredPartitions configuration option set In the case that OpenSplice is used with multiple native networking services and IgnoredPartitions is configured. Writing multiple instances with a single dataWriter fails. The first instance will be written all further instances will not be written. Solution: The network administration algorithm is now taking ignored partitions into account as well. |
OpenSplice v6.1.0p2
Fixed bugs and changes not affecting the API in OpenSplice 6.1.0p2
Report ID. | Description |
---|---|
dds3240 | Usability improvement for OpenSplice RMI The rmipp compilation requires a step to also compile its output with idlpp. There is no need for a user to inititate this. Solution: rmipp compilation now directly calls the idlpp step to remove unnecessary user action. |
dds3299 | Added Support for IPv6 on vxworks 6.7 and 6.8 Added Support for IPv6 on vxworks 6.7 and 6.8, including workarounds for issues with vxworks inet_pton, and inet_ntop ( Windriver TSR#1085626 ) |
OpenSplice v6.1.0p1
Fixed bugs and changes not affecting the API in OpenSplice 6.1.0p1
Report ID. | Description |
---|---|
dds3348 | Robustness of secure-networking service against malformed incoming packets The secure networking service should be robust against malformed incoming packets, but certain cases were (although detected) not handled correctly and could lead to a crash of the secure-networking service. Solution: Handling of malformed incoming packets has been fixed, so that they are correctly ignored. |
dds3354/ 10083 | DBMSConnect - Bounded strings would get mapped by DbmsConnect to a VARCHAR column with width 6000 DBMSConnect ignored the length of a bounded string and treated it as an unbounded string, which is mapped to a SQL'99 VARCHAR column with a width of 6000. Solution: DBMSConnect uses the specified maximum length of a bounded string to determine the appropriate width of a column. |
dds3363/ 10094 | Installation of the OpenSplice daemon as a Windows service from the Visual Studio 2010 distribution fails with an abort. Installation of the OpenSplice daemon as a Windows service from the Visual Studio 2010 distribution failed with an abort as the installer used an obsolete API. Solution: Installation of the OpenSplice daemon as a Windows service from the Visual Studio 2010 distribution no longer fails with an abort as the installer no longer uses an obsolete API. |
dds3365/ 10098 | DDSI - Unnecessary packet drops for large "best-effort" messages (>8Kb) when using DDSI2 on windows platform. When receiving "best-effort" messages larger than 8kB via the DDSI2 service on the windows platform, a packetdrop-rate was observed that was higher than expected. This was caused by the UDP receivebuffer size on this platform, that defaults to just 8kB. Solution: An enhancement has been implemented that will set the UDP receivebuffer size to 64kB if the default value of a platform is lower than that. This will ensure that the UDP receivebuffers are big enough for the largest supported packetsize. |
dds3366 | Shared Memory leaks in OpenSplice RMI In OpenSplice RMI, each request and each reply uses a different instance. These instances were not disposed and unregistered after the request/reply. The reply readers were not taking the samples that were destinated to other clients. These two problems were leading to a shm leak : shm memory consumption growing for each request/reply until the process ended. Solution: After writing the request/reply, the corresponding writer disposes and unregisters the corresponding instance. After taking it's reply, the reply reader takes all samples destinated to other clients. |
OpenSplice v6.1.0
Fixed bugs and changes not affecting the API in OpenSplice 6.1.0
Report ID. | Description |
---|---|
dds2723 | DataReader does not support the TIME_BASED_FILTER QoS policy The time-based filter QoS policy allows for pacing of a DataReader, based on a minimum separation time when receiving samples. Solution: The feature is now implemented and described in the OpenSpliceDDS Reference Manuals. |
dds2784 | The DomainParticipant find_topic() function blocks for the full timeout period Where the topic of interest in the DomainParticipant find_topic() call did not exist, the find_topic method was blocking for the full timeout period even if the topic became available earlier. Solution: If no matching topic is found on find_topic() call, the function now checks for a matching topic every 10ms until a matching topic is found or the timeout is reached. |
dds2846 | Issues with multiple domains on Windows A number of problems exist in the Windows abstraction layer that become noticeable if multiple domains are active and the default SHM mapping address is used. File locks are not released causing problems at shutdown and kernel objects (condition events, semaphores) are mixed up between the active domains. Solution: A number of improvements were made to ensure a correct operation of OpenSplice on Windows. |
dds3003 | Cleanup problem in C++ PSM When an application is terminated while particular entities are still in use by the C++ PSM, these entities are not properly cleaned-up and freed. Depending on the context this could cause a crash or hang during shutdown. Solution: The cleanup routines of the affected entities were changed to take into account additional constraints to ensure a proper cleanup under all circumstances. |
dds3023 | Crash in writer history cache management Under some circumstances the set of samples belonging to an instance in the writer history cache could become corrupted and cause a crash. Solution: The area of code was reviewed and improved to remove this problem. |
dds3062 | Synchronization error while shutting down spliced A thread tried to access the spliced user-space object after it was destroyed. Solution: Spliced now waits until the thread has finished before destroying the spliced user-space object. |
dds3125/ 9463 | Idlpp does not handle -I correctly and does not include the directory of where the IDL is located idlpp does not handle -I correctly when the paths end with a backslash. This typically happens in Visual Studio, because macros always end with a backslash. Also the include the directory of where the IDL is located is missing from the include path. Solution: Each last backslash from the include path is now removed and the include the directory of where the IDL is located is now added to the include path. |
dds3142 | Durability crashed if no configuration was provided Because durability did not load the default values when a configuration (URI) was omitted on the commandline, the configuration was corrupt, which crashed the service. Solution: The service now also loads default settings when a configuration is not available. |
dds3147/dds3189/ 9725 | DCPS C++ TypeSupportFactory object leakage The C++ TypeSupportFactory leaks in case its associated TypeSupport is registered with a DomainParticipant due to a missing decrease of the reference count of that object in the API itself when the DomainParticipant is deleted. Solution: The reference count of the object is now correctly decreased when a DomainParticipant, that has the type registered, is deleted. |
dds3148/ 9726 | Maximum UDP payload size could not be configured DDSI2 used a default maximum payload size for the payload of UDP packets which could cause issues on networks that don't support fragmentation of UDP frames. Solution: A configuration option has been added that allows the maximum payload size to be configured. The DDSI2Service/Unsupported/MaxMessageSize element specifies the maximum size of the UDP payload ([def] 4096) that will be used by DDSI2. DDSI2 will maintain this limit within the bounds of the DDSI specification. This currently means that even though MaxMessageSize is set below 1192, messages with a payload of up to 1192 may still be observed. |
dds3154/ 9756 | Heap memory leakage due to Java based query conditions. The copy routines for a sequence of strings for the DCPS Java API contained a memory leak due to the fact a release flag wasn't set to true. Solution: The release flag has been set to true. |
dds3156/ 9753 | Reliablility problem in networking when running multiple nodes. When running real time networking and nodes are communicating over a reliable channel, it is possible that when a node is shutdown other nodes in the network start to lose communication with each other due to a corruption in the network administration. Solution: The defect in the network administation algorithm is now fixed. |
dds3168/ 9771 | Destruction of ErrorInfo in C++ could cause crash. Due to a bug in the C++ language binding for the (unsupported) ErrorInfo API a crash could occur. Solution: The bug has been resolved, allowing proper destruction of ErrorInfo objects in the C++ language binding. |
dds3221 | Using hostname as address of a NetworkPartition fails When a valid or invalid hostname is used as the address of a NetworkPartition of the network service, the error 'ignoring invalid networking address ' is reported and no communication takes place. Solution: The defect was in the hostname resolving algorithm and is now fixed. |
dds3245 | Durability MMF store leaks unregistrations on injection of persistent data To make sure that instances are not registered by DataWriters that no longer exist (they cannot because the system has been restarted), the durability service will inject a self created unregister message for each unique DataWriter for an instance and that is proper behavior. However, the unregister message needs to be freed after it has been injected and that part is missing. This causes every unregister message on instance injection to leak. Solution: Unregister messages are now freed after re-publishing them. |
dds3266 | Crash in signal handler due to uninitialized value During code analysis, a possible scenario was detected that could results in a crash in the signal handler if it's thread received a signal before a value was initialized. Solution: The code has been updated to avoid this possible scenario. |
Fixed bugs and changes affecting the API in OpenSplice 6.1.0
Report ID. | Description |
---|---|
dds751 | Change in ReaderLifecycle QoS (invalid sample setting) The QoS setting that determines if OpenSplice creates invalid samples to communicate state changes, called 'enable_invalid_samples', is now deprecated. Invalid samples, in the past, could either be enabled or disabled. There is a replacement QoS setting, called 'invalid_sample_visibility', which accepts three values: - MINIMUM_INVALID_SAMPLES: Acts like the old enable_invalid_samples = true, an invalid sample will be created if there's no regular sample on which the state change can be piggy-backed (this is the default behavior). - NO_INVALID_SAMPLES: Acts like the old enable_invalid_samples = false, no invalid samples are created. - ALL_INVALID_SAMPLES: Currently not implemented, but in the future will create an invalid samples for all state changes even if a regular sample is available. Using the QoS deprecated setting will cause a message to be logged to the info log. This QoS will be removed from the product in the future. If applicable it is recommended to switch application code to the new invalid_sample_visibility setting instead. Solution: The default DataWriter reliability QoS is now set to RELIABLE in OpenSplice's API. |
dds2676 | Default DataWriter reliability QoS is set to BEST_EFFORT OpenSplice default DataWriter reliability QoS was set to BEST_EFFORT. This was conflicting with the spec which states that default DataWriter reliability QoS should be RELIABLE. Solution: The default DataWriter reliability QoS is now set to RELIABLE in OpenSplice's API. |
dds2806 | Domain ID change from string to integer The DDS API prescribes a create_participant() method to create a DomainParticipant. A DomainParticipant is the entry-point for an application to a specific Domain. To be able to create a DomainParticipant for a specific Domain, the create_participant() call requires a DomainId_t as parameter. In the specification the type of this DomainId_t is 'native' meaning that every vendor is free to choose its own type. In OpenSpliceDDS the type of a DomainId_t was a string and represented either the name of the Domain or a URI that points to the location of the configuration for the Domain to connect too. This has now become an integer domain ID. With this change OpenSpliceDDS now complies with other vendors on the DomainId_t type and the DDS interoperability specification (DDS-I) can use it now to select the port-number for discovery for a specific Domain. Solution: The feature is now implemented and described in the OpenSpliceDDS Reference Manuals. |
dds3061 | DDSI v1 removed from the codebase The deprecated DDSIv1 code is now officially removed from the source code base and product APIs. DDSI2 should be used. Solution: The feature is now implemented and described in the OpenSpliceDDS Reference Manuals. |