Interoperability with OpenDDS fails when using complex key
smnrgrs opened this issue · 1 comments
I am using Cyclone Python with OpenDDS 3.22. Encoding is XCDR2, with Appendable extensibility. OpenDDS has xtypes-complete set.
If I have a simple Key (e.g. a long), when I run two OpenDDS publisher executables (each publishing a different instance with a random key) my Cyclone Python subscriber receives and prints the two instance's samples.
If I have a struct for my Key, e.g.
@nested struct GUID128bit_t
{
unsigned long data1;
unsigned long data2;
unsigned long data3;
unsigned long data4;
};
then when I repeat my test, Cyclone only receives one of the instances (the first one which is started). The second is never received.
I execute the test by running the Cyclone Python subscriber first, then running the two OpenDDS publishers.
This issue can be reproduce using a slightly butchered i11eperf setup for pub (using topic ou), and some simple python for sub:
- For the Python subscriber, run
/dds/bin/idlc -x appendable -l py i11eperf.idl
, then run sub2.py - Build and then run opub using the modified source attached
- Run a second opub, which will use a different random key
- The python subscriber will only list updates from the first publisher
I'm closing this as I think I had other problems.