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).

Copy link
Contributor Author

mergify bot commented Oct 10, 2025

Cherry-pick of 3230d1d has failed:

On branch mergify/bp/3.2.x/pr-6016
Your branch is up to date with 'origin/3.2.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/publisher/DataWriterImpl.cpp
	modified:   src/cpp/fastdds/publisher/DataWriterImpl.hpp
	modified:   src/cpp/fastdds/subscriber/DataReaderImpl.hpp
	modified:   test/blackbox/api/dds-pim/PubSubReader.hpp
	modified:   test/blackbox/api/dds-pim/PubSubWriter.hpp
	modified:   test/blackbox/common/BlackboxTestsDeadlineQos.cpp
	new file:   test/utils/LogCounter.hpp

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

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 added the conflicts Backport PR wich git cherry pick failed label Oct 10, 2025
@mergify mergify bot mentioned this pull request Oct 10, 2025
12 tasks
@juanlofer-eprosima juanlofer-eprosima added this to the v3.2.3 milestone Oct 10, 2025
* Refs #23289. Handle maximum deadline misses case. Data writer implementation.

Signed-off-by: zesk1999 <[email protected]>

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

Signed-off-by: zesk1999 <[email protected]>

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

Signed-off-by: zesk1999 <[email protected]>

---------

Signed-off-by: zesk1999 <[email protected]>
(cherry picked from commit 3230d1d)

# Conflicts:
#	src/cpp/fastdds/subscriber/DataReaderImpl.cpp
#	test/blackbox/CMakeLists.txt
@juanlofer-eprosima juanlofer-eprosima removed the conflicts Backport PR wich git cherry pick failed label Oct 14, 2025
@juanlofer-eprosima juanlofer-eprosima requested review from richiprosima and removed request for richiprosima October 14, 2025 08:54
@github-actions github-actions bot added the ci-pending PR which CI is running label Oct 14, 2025
Copy link
Contributor Author

mergify bot commented Oct 14, 2025

🧪 CI Insights

Here's what we observed from your CI run for 2b19adf.

❌ Job Failures

Pipeline Job Health on 3.2.x Retries 🔍 CI Insights 📄 Logs
Fast DDS MacOS CI mac-ci / fastdds_test () Unknown 0 View View

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

Labels

ci-pending PR which CI is running

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants