deserialize error in dds 6 but not 5

6 posts / 0 new
Last post
Offline
Last seen: 1 year 5 months ago
Joined: 05/08/2020
Posts: 8
deserialize error in dds 6 but not 5

I got the following message I think when my application received a RegisterObserver message:

 

PRESPReaderQueue_storeSampleData:deserialize sample error in topic 'RegisterObserver' wth type 'SpecialTestServiceInterface::Internal::RegisterObserver'

 

This message was working fine when generated with DDS 5.3 but now using DDS 6.1 I am having issues.

 

The idl defining this message is below:

 

module SpecialTestServiceInterface {

    module Internal {

        struct RegisterObserver

        {

        };

    }

}

 

basically an empty message

Howard's picture
Offline
Last seen: 11 hours 27 min ago
Joined: 11/29/2012
Posts: 608

I'm not sure what you're seeing.  But I tried it with Connext 6.1.1 and was able to publish/subscribe to it fine (though it begs the question...utility of an empty structure?).

Are you publishing and subscribing using different versions of Connext?

Offline
Last seen: 1 year 5 months ago
Joined: 05/08/2020
Posts: 8

the client (a java window) and the server (a java application) use the exact same intf jar generated from the idl. When I say identical I mean the same jar in the same folder not just individual jars that are supposed to be pulled from the same repository. They also use the literally same shell script to set the environment (adds jar to classpath and sets up the LD_LIBRARY_PATH). Is there any way to increase the logging to determine a more specific reason for a failure to deserialize. It also seems strange that an empty message can't be deserialized, I guess it contains some sort of data at least about the structure since the message is 68 bytes. The message is empty because it has been determined adequate to notify the service that a client exists and it should start broadcasting messages.

Offline
Last seen: 1 year 5 months ago
Joined: 05/08/2020
Posts: 8

Possibly related I am seeing Exception in thread "Thread-3" as well as "Thread-6" printed to the screen. Debugging in eclipse I have determined that Thread-3 is created when we get a participant from the domain participant factory and Thread-6 is created when we enable the participant. I have tried adding a default uncaught exception handler to Thread as well as adding uncaught exception handlers to Thread-3 and 6 but the never get callled, which leads me to believe something in the RTI library is catching these exceptions and printing the error message to the screen without additional information such as the stack trace.

Offline
Last seen: 1 year 5 months ago
Joined: 05/08/2020
Posts: 8

changed the print format to maximal and there is more information about the error:

x64Linux4gcc7.3.0/src/pres.1.0/srcC/psReaderQueue/PsReaderQueue.c:2998 seems to be the line # logging the error?

Howard's picture
Offline
Last seen: 11 hours 27 min ago
Joined: 11/29/2012
Posts: 608

I tried with Java.  It worked for me.  See attached, I used Connext 6.1.1.

File Attachments: