Skip to content

[23929] Allow to send empty payloads in dispose/unregister ops (backport #6217)#6237

Merged
MiguelCompany merged 5 commits into3.2.xfrom
mergify/bp/3.2.x/pr-6217
Mar 10, 2026
Merged

[23929] Allow to send empty payloads in dispose/unregister ops (backport #6217)#6237
MiguelCompany merged 5 commits into3.2.xfrom
mergify/bp/3.2.x/pr-6217

Conversation

@mergify
Copy link
Contributor

@mergify mergify bot commented Jan 8, 2026

Description

This pull request improves the handling of dispose and unregister operations when payloads are empty, and enhances test coverage for these scenarios. Until now, it was not possible to send those messages with empty payloads, now it is allowed as long as a valid instance handle is provided.

  • Update DataWriterImpl to be able to write Unregister/Dispose messages with empty payloads.
  • Add tests for the case above
  • Update RTPSStatelessReader to be able to read Unregister/Dispose messages with empty payloads.
  • Add tests for the case above
  • Update RTPSStatefulReader to be able to read Unregister/Dispose messages with empty payloads.
  • Add tests for the case above
  • Modified topic_instances example to correctly print the color name even when no payload is passed.

@Mergifyio backport 3.4.x 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)

  • NO: 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.
  • N/A: 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 #6217 done by [Mergify](https://mergify.com).

* Allowing to send empty payloads in dispose/unregister ops

Signed-off-by: Emilio Cuesta <emiliocuesta@eprosima.com>

* Add tests

Signed-off-by: Emilio Cuesta <emiliocuesta@eprosima.com>

* Uncrustify

Signed-off-by: Emilio Cuesta <emiliocuesta@eprosima.com>

* Refactor to keep current execution path for most cases

Signed-off-by: Emilio Cuesta <emiliocuesta@eprosima.com>

* Making readers able to read empty paoload messages

Signed-off-by: Emilio Cuesta <emiliocuesta@eprosima.com>

* Adding tests for RTPS readers

Signed-off-by: Emilio Cuesta <emiliocuesta@eprosima.com>

* Fix trace logging in topic_instances example, that always showed the same color on dispose

Signed-off-by: Emilio Cuesta <emiliocuesta@eprosima.com>

* Uncrustify

Signed-off-by: Emilio Cuesta <emiliocuesta@eprosima.com>

* Make writer write empty payload only if get_payload fails

Signed-off-by: Emilio Cuesta <emiliocuesta@eprosima.com>

* Late disposes are not received in history and cause segfault when freed

Signed-off-by: Emilio Cuesta <emiliocuesta@eprosima.com>

* Fix asan problems

Signed-off-by: Emilio Cuesta <emiliocuesta@eprosima.com>

* Apply easy suggestions from code review

Co-authored-by: Miguel Company <miguelcompany@eprosima.com>
Signed-off-by: Emilio Cuesta Fernandez <emiliocuesta@eprosima.com>

* Apply revision part2

Signed-off-by: Emilio Cuesta <emiliocuesta@eprosima.com>

* Update src/cpp/fastdds/publisher/DataWriterImpl.cpp

Co-authored-by: Miguel Company <miguelcompany@eprosima.com>
Signed-off-by: Emilio Cuesta Fernandez <emiliocuesta@eprosima.com>

* Replace old signature name

Signed-off-by: Emilio Cuesta <emiliocuesta@eprosima.com>

* Remove unnecessary check

Signed-off-by: Emilio Cuesta <emiliocuesta@eprosima.com>

* Adding assert in case that should not happen

Signed-off-by: Emilio Cuesta <emiliocuesta@eprosima.com>

* Removing line

Signed-off-by: Emilio Cuesta <emiliocuesta@eprosima.com>

---------

Signed-off-by: Emilio Cuesta <emiliocuesta@eprosima.com>
Signed-off-by: Emilio Cuesta Fernandez <emiliocuesta@eprosima.com>
Co-authored-by: Miguel Company <miguelcompany@eprosima.com>
(cherry picked from commit 47bfac0)

# Conflicts:
#	test/unittest/dds/publisher/DataWriterTests.cpp
@mergify
Copy link
Contributor Author

mergify bot commented Jan 8, 2026

Cherry-pick of 47bfac0 has failed:

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

You are currently cherry-picking commit 47bfac03.
  (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:   examples/cpp/topic_instances/SubscriberApp.cpp
	modified:   examples/cpp/topic_instances/SubscriberApp.hpp
	modified:   src/cpp/fastdds/publisher/DataWriterImpl.cpp
	modified:   src/cpp/rtps/reader/StatefulReader.cpp
	modified:   src/cpp/rtps/reader/StatelessReader.cpp
	modified:   test/unittest/rtps/reader/CMakeLists.txt
	modified:   test/unittest/rtps/reader/StatefulReaderTests.cpp
	new file:   test/unittest/rtps/reader/StatelessReaderTests.cpp

Unmerged paths:
  (use "git add <file>..." to mark resolution)
	both modified:   test/unittest/dds/publisher/DataWriterTests.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 added the conflicts Backport PR wich git cherry pick failed label Jan 8, 2026
@MiguelCompany MiguelCompany added this to the v3.2.4 milestone Jan 8, 2026
Signed-off-by: Emilio Cuesta <emiliocuesta@eprosima.com>
@emiliocuestaf emiliocuestaf removed the conflicts Backport PR wich git cherry pick failed label Mar 5, 2026
@emiliocuestaf emiliocuestaf requested review from richiprosima and removed request for richiprosima March 5, 2026 11:37
@github-actions github-actions bot added the ci-pending PR which CI is running label Mar 5, 2026
@MiguelCompany MiguelCompany self-requested a review March 6, 2026 11:26
Signed-off-by: Emilio Cuesta <emiliocuesta@eprosima.com>
@emiliocuestaf emiliocuestaf requested review from richiprosima and removed request for richiprosima March 6, 2026 12:02
Signed-off-by: Emilio Cuesta <emiliocuesta@eprosima.com>
@emiliocuestaf emiliocuestaf requested review from richiprosima and removed request for richiprosima March 6, 2026 12:04
Signed-off-by: Miguel Company <miguelcompany@eprosima.com>
@MiguelCompany MiguelCompany requested review from MiguelCompany and removed request for MiguelCompany March 10, 2026 09:17
@MiguelCompany MiguelCompany merged commit 9b3dc51 into 3.2.x Mar 10, 2026
25 of 28 checks passed
@MiguelCompany MiguelCompany deleted the mergify/bp/3.2.x/pr-6217 branch March 10, 2026 16:28
@mergify
Copy link
Contributor Author

mergify bot commented Mar 10, 2026

🧪 CI Insights

Here's what we observed from your CI run for 0d61df0.

❌ Job Failures

Pipeline Job Health on 3.2.x Retries 🔍 CI Insights 📄 Logs
Fast DDS Linters CI uncrustify Unknown 0 View View
Fast DDS MacOS CI mac-ci / fastdds_test () Unknown 0 View View
Fast DDS Ubuntu CI ubuntu-ci / fastdds_test (RelWithDebInfo) 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