Skip to content

Conversation

mergify[bot]
Copy link
Contributor

@mergify mergify bot commented Oct 10, 2025

Description

This PR fixes an issue where a DataWriter with a deadline period of 0ms would cause a high CPU load due to an infinite loop of deadline_missed callbacks.

The DataWriterImpl has been modified to handle a 0 as a special case. When this condition is detected:

  • A single warning is logged.
  • The deadline_missed_status_.total_count and deadline_missed_status_.total_count_change are set to INT_MAX as a sentinel value.

This ensures that the DataWriter remains stable and responsive, and allows the deadline timer to be properly re-armed if the QoS is later changed to a valid value.
Also, reaching the maximal number of deadline missed messages cancels the timer.

Fixes #23289

@Mergifyio backport 3.3.x 3.2.x 2.14.x

Contributor Checklist

  • Commit messages follow the project guidelines.

  • The code follows the style guidelines of this project.

  • Tests that thoroughly check the new feature have been added/Regression tests checking the bug and its fix have been added; the added tests pass locally

  • [N/A] Any new/modified methods have been properly documented using Doxygen.

  • [N/A] Any new configuration API has an equivalent XML API (with the corresponding XSD extension)

  • Changes are backport compatible: they do NOT break ABI nor change library core behavior.

  • Changes are API compatible.

  • [N/A] New feature has been added to the versions.md file (if applicable).

  • [N/A] New feature has been documented/Current behavior is correctly described in the documentation.

  • Applicable backports have been included in the description.

Reviewer Checklist

  • The PR has a milestone assigned.
  • The title and description correctly express the PR's purpose.
  • Check contributor checklist is correct.
  • If this is a critical bug fix, backports to the critical-only supported branches have been requested.
  • Check CI results: changes do not issue any warning.
  • Check CI results: failing tests are unrelated with the changes.

This is an automatic backport of pull request #6016 done by [Mergify](https://mergify.com).

* Refs #23289. Handle maximum deadline misses case. Data writer implementation.

Signed-off-by: zesk1999 <zesk1999@gmail.com>

* Refs #23289. Handle maximum deadline misses case. Data reader implementation.

Signed-off-by: zesk1999 <zesk1999@gmail.com>

* Refs #23289. Handle maximum deadline misses case. Tests.

Signed-off-by: zesk1999 <zesk1999@gmail.com>

---------

Signed-off-by: zesk1999 <zesk1999@gmail.com>
(cherry picked from commit 3230d1d)

# Conflicts:
#	src/cpp/fastdds/publisher/DataWriterImpl.cpp
#	src/cpp/fastdds/publisher/DataWriterImpl.hpp
#	src/cpp/fastdds/subscriber/DataReaderImpl.cpp
#	test/blackbox/CMakeLists.txt
#	test/blackbox/common/BlackboxTestsDeadlineQos.cpp
@mergify mergify bot added the conflicts Backport PR wich git cherry pick failed label Oct 10, 2025
Copy link
Contributor Author

mergify bot commented Oct 10, 2025

Cherry-pick of 3230d1d has failed:

On branch mergify/bp/2.14.x/pr-6016
Your branch is up to date with 'origin/2.14.x'.

You are currently cherry-picking commit 3230d1d7.
  (fix conflicts and run "git cherry-pick --continue")
  (use "git cherry-pick --skip" to skip this patch)
  (use "git cherry-pick --abort" to cancel the cherry-pick operation)

Changes to be committed:
	modified:   src/cpp/fastdds/subscriber/DataReaderImpl.hpp
	modified:   test/blackbox/api/dds-pim/PubSubReader.hpp
	modified:   test/blackbox/api/dds-pim/PubSubWriter.hpp
	new file:   test/utils/LogCounter.hpp

Unmerged paths:
  (use "git add <file>..." to mark resolution)
	both modified:   src/cpp/fastdds/publisher/DataWriterImpl.cpp
	both modified:   src/cpp/fastdds/publisher/DataWriterImpl.hpp
	both modified:   src/cpp/fastdds/subscriber/DataReaderImpl.cpp
	both modified:   test/blackbox/CMakeLists.txt
	both modified:   test/blackbox/common/BlackboxTestsDeadlineQos.cpp

To fix up this pull request, you can check it out locally. See documentation: https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/checking-out-pull-requests-locally

@mergify mergify bot mentioned this pull request Oct 10, 2025
12 tasks
@juanlofer-eprosima juanlofer-eprosima added this to the v2.14.6 milestone Oct 10, 2025
@juanlofer-eprosima
Copy link
Contributor

@zesk1999 please solve conflicts here

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

conflicts Backport PR wich git cherry pick failed

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants