Problems with receiving already publi... PreviousNext
Data Distribution Service (DDS) Forum > DDS Technical Forum >
Message/Author
Next message James Selevan  posted on Tuesday, January 25, 2011 - 02:28 pm
Sorry if that is a slightly confusing title, but i will do my best to describe what is happening because i cant really figure it out.

I basically have a client/server. publish/subscribe model, with multiple clients communicating with a single server node. My client/server applications both use OSPL DDS as its data distribution service. My goal is to have the ability for a client application to come down, be re-opened, rejoin the participant group, and then receive all previously published topic data that the client subscribes to.

There is the background. Here is what I am seeing:
I see no problems when I pass a maximum instance count of 1 in my DataReader->take() call. I can grab the 1 instance, no problem, data is not corrupt, everything works. as soon as i increase that maximum count to > 1, I get crashes whenever DDS tries to pass me more than 1 instance. I have run the program in GDB, and it appears to be crashing on the malloc() of some new type within DDS. With this knowledge, I ran the application with Valgrind (memory management debugger tool) to try to find where this memory issue was. The results came out like such (i see multiple of these errors, ~10 of each):

==26225== Invalid write of size 4
==26225== at 0x40BFAD2: DDS::ccpp_SampleInfo_copyOut(gapi_sampleInfo_s const&, DDS::SampleInfo&) (in libdcpssacpp.so)

and

==26225== Invalid write of size 4
==26225== at 0x40BFAA0: DDS::ccpp_TimeStamp_copyOut(gapi_time_t_s const&, DDS::Time_t&) (in libdcpssacpp.so)

and also

==26225== Address 0x56FF9CC is 0 bytes after a block of size 60 alloc'd. <--- side note about this one. This error changes slightly each time it is printed. that 0 bytes increases each time its printed by 4, until 16, then starts to decrease.

I am at a loss at this point and am not really sure if it is something that I am not doing properly in my application or if it is an internal DDS problem... Does anyone have any thoughts?
Back to top
Add Your Message Here
Post:
Username: Posting Information:
This is a private posting area. Only registered users and moderators may post messages here.
Password:
Options: Post as "Anonymous"
Enable HTML code in message
Automatically activate URLs in message
Action: