internal error 5 help

3 posts / 0 new
Last post
Offline
Last seen: 7 years 8 months ago
Joined: 07/05/2016
Posts: 1
internal error 5 help

Hello,

I am trying to send DDS messages from Matlab to a C++ interface. I have several messages defined, but one in particular is not sending. When I run the matlab script to send the message, I get quite a few errors, and they are all something along the lines of:

DDS_DynamicData_unbind_complex_member: internal error 5 trying to assert complex member

DDS_DynamicData_bind_complex_member: invalid operation, bound to member ID 216

 

It is worth noting that this message contains a sequence of other data that is quite large. However, there is another message of similar size that is sending no problem. The IDLs also match, with the exception fo a few typedefs. does anyone have any insight into what may be causing this issue?

Thanks,

Anthony

 

Offline
Last seen: 1 year 1 month ago
Joined: 10/23/2013
Posts: 43

The MATLAB interface uses the Dynamic Data APIs to register, send and receive samples.  The error message is coming from one of those APIs.  Can someone at RTI give some indication of what might cause this error?

Offline
Last seen: 6 months 4 weeks ago
Joined: 01/10/2013
Posts: 28

Hi Anthony, 

Error code 5 is DDS_RETCODE_OUT_OF_RESOURCES (which is seems as though you figured out). This can happen in an unbind_complex_member operation because the DynamicData API is trying to put the members that were set in the bound DynamicData object into the DynamicData object that is being unbound from. So, if you're binding to a member, setting large sequences, and then unbinding, it looks as though those large sequences cannot be added back to the top-level DynamicData object. 

Do you know what version of Connext are you using? In 5.2.0 we increased the DDS_DynamicDataProperty_t.buffer_max_size from 64K to DDS_LENGTH_UNLIMITED, to avoid these kind of situations. Do you have access to the underlying DynamicData object through your MATLAB script so that you can set this property? 

Also, if you can give me more details about what your script is doing, including your type and the order in which you are setting members within that type, I may be able to give you tips on how to workaround the error. For example, when using DynamicData, we advise that you set members in the order in which they are declared in your type.

- Erin