Jump to content
OpenSplice DDS Forum

Search the Community

Showing results for tags 'abort'.

More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


  • About OpenSplice DDS
    • News and Events
    • Site Feedback
  • Using OpenSplice DDS
    • General
    • Troubleshooting
  • Understanding OpenSplice DDS
    • OpenSplice DDS Slideshows
    • OpenSplice DDS Movies
  • Community
    • Project: SIMD
    • Project: CamelOS
    • Project: DDS Touchstone
    • Project: RESTful DDS
    • Mac OS X


  • Community Calendar

Found 1 result

  1. Running P637-OpenSpliceDDSV6.3.2p2-HDE-x86.win-vs2010 We have an application using DDS between multiple computers. After approximately 24 hours (happens reliably), we see the following error in the log after the application crashes: "writer reached maximum heartbeat-frag sequence number" Examination of the source code shows: q_transmit.c :: create_HeartbeatFrag() if (wr->hbfragcount == DDSI_COUNT_MAX) NN_FATAL0 ("writer reached maximum heartbeat-frag sequence number"); hbf->count = ++wr->hbfragcount; #define NN_FATAL0(fmt) do { \ nn_log (LC_FATAL, (fmt)); \ os_report (OS_FATAL, config.servicename, __FILE__, __LINE__, 0, (fmt)); \ abort (); \ } while (0) So it appears on the surface that each time a heartbeat fragment is created, a counter is incremented, and if the counter exceeds the maximum (32 bit max value), an abort() is executed and the entire program exits. The counter does not appear to every be reset except in the case of creating the initial connection. There is similar behavior in q_xevent.c :: add_AckNack(). This would correspond to roughly 20us traffic, which is approximately what we see using wireshark. Can someone please describe the expected behavior in these cases, and what possible fixes can be applied? I have looked at version notes all the way through V6.8 and there appears to be no mention of this issue. Cannot find any mention in the forum either. Thanks.