Skip to content
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

Incorrect usage of dds:topics:qos:history-depth parameter by ddsreplayer #153

Closed
iurii-provizio opened this issue Aug 9, 2024 · 1 comment

Comments

@iurii-provizio
Copy link

iurii-provizio commented Aug 9, 2024

Dear eProsima,

The history-depth config parameter (with default value of 5000) seems to behave not the way it's supposed to be. The designated meaning of this parameter is:

The history-depth tag configures the history depth of the Fast DDS internal entities. By default, the depth of every RTPS History instance is 5000, which sets a constraint on the maximum number of samples a DDS Recorder instance can deliver to late joiner Readers configured with TRANSIENT_LOCAL DurabilityQosPolicyKind. Its value should be decreased when the sample size and/or number of created endpoints (increasing with the number of topics) are big enough to cause memory exhaustion issues. If enough memory is available, however, the history-depth could be increased to deliver a greater number of samples to late joiners.

In the same time, what it actually does (at least in DDS-Record-Replay v0.4.0 with Fast-DDS v2.14.2, no dynamic types in mcap) is it sets the maximum number of messages per mcap channel (i.e. DDS topic) it ever sends (even if appropriate topic subscribers were alive by the time ddsreplayer was started). It's very easy to reproduce:

  1. Store the following contents as reproduce_issue.yaml:
dds:
    topics:
      - name: "*"
        qos:
            history-depth: 1
  1. Run ddsreplayer -c reproduce_issue.yaml -i <whatever_mcap_file>
  2. See (f.e. in Fast-DDS Monitor) that each of the topics stored in the mcap got just a single message each. If you increase the value of history-depth it sends it as many times as you specified.

By default it stops sending any messages after 5000 messages in each topic.

@iurii-provizio iurii-provizio changed the title Incorrect usage of dds:topics:qos:history-depth parameter Incorrect usage of dds:topics:qos:history-depth parameter by ddsreplayer Aug 9, 2024
@juanlofer-eprosima
Copy link
Contributor

Hi @iurii-provizio , thank you for reporting this issue. As a matter of fact the same problem was already reported in the DDS-Router repository (eProsima/DDS-Router#458), as it affects the base both products have in common (DDS-Pipe). The fix was already merged into main branch and will be available in the upcoming release.

Best,
Juan

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants