-
Notifications
You must be signed in to change notification settings - Fork 357
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Data Deserialisation Fails "For reasons unknown" #1769
Comments
Are you sure that Not that it matters much, if it says "deserialization failed" then there's a bug somewhere, be it in the IDL compiler, Type Object handling, conversion of Type Object to (de)serialilizer instructions, C++ serialization code if you use C++ ... A few practical questions:
Thanks! |
Apologies that was a typo, I had meant
Yes, we are using Cyclone in our application.
We are using the C++ bindings via CycloneDDS-CXX to publish the data. Attached is a minimal example, which results in the error being displayed within The example:
|
Thanks for the reproducer! I found out that the issue was incorrect handling of the discriminant for default union cases, and is fixed in the Cyclone master branch by commit fcc53b8 (part of PR #1433). With this commit in (and the topic descriptors re-generated using the patched IDL compiler), deserialization of the sample succeeds. However, the current Based on code shared by @eboasson I've created a PR (#1776) that adds support for these types in |
I just realized that I ran the reproducer using |
Thanks. We've cherry picked that commit, and confirmed ourselves that is is no longer reporting the error within |
I've been trying to use the
dynsub
application in order to test our implementation (being aware that it is incomplete). However, I'm receiving the following error:This is occurring in the
recvUC
thread, and from what I've been able to gather by stepping through the DDS code, appears to be due to the fact that the code is incorrectly processing incoming fields, possibly due to the determined size and alignment of fields being incorrect.We are using the OMG OARIS v2.0 - beta 1
sensor_track_type
. With the following fields of the structure in use, thedynsub
application then fails to decode the incoming message, because it believes that thetime_of_information
field (which is effectively a uint8_t) is a boolean discriminant, so any value other than 0 or 1 causes the deserialisation code to fail.That is as far as it gets before it fails, so I've omitted the other fields.
Could this potentially be an issue with the XType layout?
The text was updated successfully, but these errors were encountered: