Back to Known Issues PageBack

DCPS Known Issues

Report ID. Description
dds184 Query parser doesn't support escape characters
The internal OpenSplice DDS query parser does not support escape characters. This implicates that specific tokens cannot be used in query expressions (like for instance SQL keywords 'select', 'where', etc).
Impact at API level:
  • Topics with a SQL keyword as name cannot be created
  • QueryCondition expressions cannot refer to datafields with SQL keyword as name
  • ContentFilteredTopic expressions cannot refer to datafields with SQL keyword as name
4508
dds206
typeSupport with invalid type name causes crash during register_type
When a type support object is created with an type name which is not known in the meta database, the following register_type function crashes.
dds492 idlpp cannot handle same struct in a struct or forward declarations to structs
The following (faulty) idl code generates a 'floating point exception', instead idlpp should not allow such constructs.

            struct TestStruct;

            struct TestStruct{
                long x;
                TestStruct someEnum;
                string val;
            };
            
The following idl also fails (the forward declaration to the TestStruct is not correctly processed):

            struct TestStruct;

            struct TestStruct1{
                TestStruct y;
            };

            struct TestStruct{
                long x;
            };
            
with the error: ***DDS parse error TestStruct undefined at line: 4. The following idl construct is not allowed, however the IDL preprocessor does not give a clear error:

            struct TestStruct;

            struct TestStruct1{
                TestStruct y;
            };

            struct TestStruct{
                TestStruct1 x;
            };
            
4821
dds494
SQL RelOp like not supported
Using the SQL relational operator like is not supported.
dds1117 Implicit unregister messages can corrupt copy-out functions
On all language bindings there are methods that only use the key fields of a sample, as for example the register, unregister and dispose methods. However, currently the complete sample (including the non-key fields) need to adhere to the IDL to language mapping rules, as all fields are validated. This means that when a sample contains garbage data in its non-key fields, the sample could be rejected and the application might even crash in case of dangling pointers (segmentation fault).
The work-around is that no values should be initalised to NULL values, no values should contain dangling pointers, all unions should explicitly be initialized to a valid value and any enumeration value should remain within its bounds.
dds1696 Limitations for output directories for ospl_projgen on Integrity
ospl_projgen will generate projects which will build incorrectly if it is supplied an output directory ( -o option ) in which the final part of the path matches the name of one of the address spaces being generated.
e.g. ospl_projgen ... -t mmstat -o path/mmstat
These projects appear to build correctly however the final image will be incorrect.
Other names to avoid currently are inetserver, ivfs_server, ResourceStore, spliced, networking, durability, pong, ping1, ping2, ping3, ping4, ping5, ping6, shmdump, Chatter, Chatter_Quit, MessageBoard, UserLoad
dds1711 Warnings when compiling with the Studio12 compiler
There are still numerous warnings when using the Studio12 compiler. These can be ignored and will be tidied in future releases.
dds2142 Sequences are not currently supported in multi-domain applications.
On Solaris9 there may be an error in the ospl-error.log when the networking service is started: "setsockopt returned errno 132 (No buffer space available)" this is down to the udp_max_buf being to small. To find out what the system has it set to do /usr/sbin/ndd -get /dev/udp udp_max_buf and to set it larger do : /usr/sbin/ndd -set /dev/udp udp_max_buf <xxxxxxx size in bytes>
dds2565 Sequences are not currently supported in multi-domain applications.
Sequences can be used in case the application only writes them in one domain, and never in the other domain(s). Because of the current implementation, this restriction only applies on topic level, so for each topic it means that you can only write sequences on that topic in one single domain. Another option is that instead of using sequences, use arrays, with the downside that you always use the worst-case amount of resources.
OSPL-973 Partitions with wild-cards don't work properly in all cases
The PartitionQosPolicy for Publisher and Subscriber entities can contain two types of values. An absolute value that specifies a partition or a partition expression i.e. a name containing wildcard symbols '?'' and/or '*'. A partition expression is locally used by the Entity to discover matching absolute partitions to build up connections. Entities react on the creation of new partitions and those that match the partition expression are connected. Unfortunately information about newly created remote partitions is not distributed at this time. This means no matching can be performed to determine if the remote partition must be instantiated locally. As a result Subscribers and Publishers that use wild-cards in partition expression won't connect to partitions that are not explicitly created in the local application (when running in single process mode) or local node (when running in federated mode). As a workaround, all partitions that need to match must be explicitly mentioned in the PartitionQosPolicy.
OSPL-2542 64 bit stack space issues with the JVM
Newer versions of JDK (at least 1.6u43 and 1.6u45) run out of stack space on 64 bit platforms. Using a larger default StackSize would impact all non-Java applications too, and is therefore undesirable. Try increasing StackSize to 128000 bytes if you're experiencing problems with using listeners from Java on 64 bit platforms.
OSPL-2967 Deadlock in Java listeners
To terminate from within a listener callback, spawn a new Thread from within the callback and call System.exit() in that thread.
OSPL-2696 Merge policy behaviour
Merging of different data-sets after a re-connect only works when the disconnect takes less than the service_cleanup_delay value of the Topic(s). Otherwise it is not possible for the middleware to determine whether instances that are available on one side and not on the other have been disposed or created during the disconnect. If a re-connect takes place after a period larger than the configured service_cleanup_delay, data-sets on both sides may be different after the merge-policy has been applied. One should carefully consider the merge-policy configuration for all federations in the system as a whole as not all combinations make sense. Consider the example of a two-node system. The following configurations semantically make no sense:
  • Configuring REPLACE as policy on both sides.
  • Combining REPLACE as policy on one side and MERGE on the other side.
  • Combining REPLACE as policy on one side and DELETE on the other side.
  • Combining DELETE as policy on one side and MERGE on the other side.
The wait_for_historical_data() call does not block while performing a merge due to the configured merge-policy. This means it is currently not possible to block an application until the merge has completed.


PrismTech TOP
Top