Skip to content

[24372] Assert liveliness with periodic heartbeats in secure participants#6411

Merged
MiguelCompany merged 5 commits into
masterfrom
bugfix/secure-part-liveliness
Jun 1, 2026
Merged

[24372] Assert liveliness with periodic heartbeats in secure participants#6411
MiguelCompany merged 5 commits into
masterfrom
bugfix/secure-part-liveliness

Conversation

@MiguelCompany

@MiguelCompany MiguelCompany commented May 28, 2026

Copy link
Copy Markdown
Member

Description

When two secure participants discover each other, they drop the non-secure channel used for PDP, and establish instead a secure connection through their SimplePDPEndpointsSecure. But since in the secure case TRANSIENT_LOCAL durability is used to share data Ps, there is no periodic data transmission which can be used to assert liveliness. As a consequence, liveliness is lost if there is no (user) data traffic between the participants.

With changes introduced in this PR, it is attempted to solve the issue by sending heartbeats periodically, with the same period data Ps are sent in the non-secure case.

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

juanlofer-eprosima and others added 5 commits May 28, 2026 10:20
…ticipants.

Signed-off-by: Juan Lopez Fernandez <juanlopez@eprosima.com>
Signed-off-by: danipiza <dpizarrogallego@gmail.com>
Signed-off-by: Miguel Company <miguelcompany@eprosima.com>
Signed-off-by: Miguel Company <miguelcompany@eprosima.com>
Signed-off-by: Miguel Company <miguelcompany@eprosima.com>
@MiguelCompany MiguelCompany added this to the v3.6.2 milestone May 28, 2026
@github-actions github-actions Bot added the ci-pending PR which CI is running label May 28, 2026

@juanlofer-eprosima juanlofer-eprosima left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@MiguelCompany
MiguelCompany merged commit 910ac99 into master Jun 1, 2026
25 of 27 checks passed
@MiguelCompany
MiguelCompany deleted the bugfix/secure-part-liveliness branch June 1, 2026 07:17
@MiguelCompany

Copy link
Copy Markdown
Member Author

@Mergifyio backport 3.2.x 2.14.x

@mergify

mergify Bot commented Jun 1, 2026

Copy link
Copy Markdown
Contributor

backport 3.2.x 2.14.x

✅ Backports have been created

Details

Cherry-pick of 910ac99 has failed:

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

You are currently cherry-picking commit 910ac9907.
  (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:   test/blackbox/common/BlackboxTestsSecurity.cpp

Unmerged paths:
  (use "git add <file>..." to mark resolution)
	both modified:   src/cpp/rtps/builtin/discovery/participant/PDPSimple.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

Cherry-pick of 910ac99 has failed:

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

You are currently cherry-picking commit 910ac9907.
  (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:   test/blackbox/common/BlackboxTestsSecurity.cpp

Unmerged paths:
  (use "git add <file>..." to mark resolution)
	both modified:   src/cpp/rtps/builtin/discovery/participant/PDPSimple.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

cferreiragonz pushed a commit that referenced this pull request Jul 13, 2026
)

* Refs #24372. Assert liveliness with periodic heartbeats in secure participants.

Signed-off-by: Juan Lopez Fernandez <juanlopez@eprosima.com>

* Refs #24372. Added regression test.

Signed-off-by: danipiza <dpizarrogallego@gmail.com>

* Refs #24372. Revert change in returned value.

Signed-off-by: Miguel Company <miguelcompany@eprosima.com>

* Refs #24372. Improve null pointer checks.

Signed-off-by: Miguel Company <miguelcompany@eprosima.com>

* Refs #24372. Uncrustify.

Signed-off-by: Miguel Company <miguelcompany@eprosima.com>

---------

Signed-off-by: Juan Lopez Fernandez <juanlopez@eprosima.com>
Signed-off-by: danipiza <dpizarrogallego@gmail.com>
Signed-off-by: Miguel Company <miguelcompany@eprosima.com>
Co-authored-by: Juan Lopez Fernandez <juanlopez@eprosima.com>
Co-authored-by: danipiza <dpizarrogallego@gmail.com>
(cherry picked from commit 910ac99)

# Conflicts:
#	src/cpp/rtps/builtin/discovery/participant/PDPSimple.cpp
cferreiragonz added a commit that referenced this pull request Jul 14, 2026
) (#6413)

* Assert liveliness with periodic heartbeats in secure participants (#6411)

* Refs #24372. Assert liveliness with periodic heartbeats in secure participants.

Signed-off-by: Juan Lopez Fernandez <juanlopez@eprosima.com>

* Refs #24372. Added regression test.

Signed-off-by: danipiza <dpizarrogallego@gmail.com>

* Refs #24372. Revert change in returned value.

Signed-off-by: Miguel Company <miguelcompany@eprosima.com>

* Refs #24372. Improve null pointer checks.

Signed-off-by: Miguel Company <miguelcompany@eprosima.com>

* Refs #24372. Uncrustify.

Signed-off-by: Miguel Company <miguelcompany@eprosima.com>

---------

Signed-off-by: Juan Lopez Fernandez <juanlopez@eprosima.com>
Signed-off-by: danipiza <dpizarrogallego@gmail.com>
Signed-off-by: Miguel Company <miguelcompany@eprosima.com>
Co-authored-by: Juan Lopez Fernandez <juanlopez@eprosima.com>
Co-authored-by: danipiza <dpizarrogallego@gmail.com>
(cherry picked from commit 910ac99)

# Conflicts:
#	src/cpp/rtps/builtin/discovery/participant/PDPSimple.cpp

* Fix conflicts

Signed-off-by: Carlos Ferreira González <carlosferreira@eprosima.com>

* Backport FASTDDS_UNREACHABLE()

Signed-off-by: Carlos Ferreira González <carlosferreira@eprosima.com>

* Uncrustify

Signed-off-by: Carlos Ferreira González <carlosferreira@eprosima.com>

---------

Signed-off-by: Carlos Ferreira González <carlosferreira@eprosima.com>
Co-authored-by: Miguel Company <miguelcompany@eprosima.com>
Co-authored-by: Carlos Ferreira González <carlosferreira@eprosima.com>
cferreiragonz pushed a commit that referenced this pull request Jul 15, 2026
)

* Refs #24372. Assert liveliness with periodic heartbeats in secure participants.

Signed-off-by: Juan Lopez Fernandez <juanlopez@eprosima.com>

* Refs #24372. Added regression test.

Signed-off-by: danipiza <dpizarrogallego@gmail.com>

* Refs #24372. Revert change in returned value.

Signed-off-by: Miguel Company <miguelcompany@eprosima.com>

* Refs #24372. Improve null pointer checks.

Signed-off-by: Miguel Company <miguelcompany@eprosima.com>

* Refs #24372. Uncrustify.

Signed-off-by: Miguel Company <miguelcompany@eprosima.com>

---------

Signed-off-by: Juan Lopez Fernandez <juanlopez@eprosima.com>
Signed-off-by: danipiza <dpizarrogallego@gmail.com>
Signed-off-by: Miguel Company <miguelcompany@eprosima.com>
Co-authored-by: Juan Lopez Fernandez <juanlopez@eprosima.com>
Co-authored-by: danipiza <dpizarrogallego@gmail.com>
(cherry picked from commit 910ac99)

# Conflicts:
#	src/cpp/rtps/builtin/discovery/participant/PDPSimple.cpp
cferreiragonz added a commit that referenced this pull request Jul 17, 2026
) (#6414)

* Assert liveliness with periodic heartbeats in secure participants (#6411)

* Refs #24372. Assert liveliness with periodic heartbeats in secure participants.

Signed-off-by: Juan Lopez Fernandez <juanlopez@eprosima.com>

* Refs #24372. Added regression test.

Signed-off-by: danipiza <dpizarrogallego@gmail.com>

* Refs #24372. Revert change in returned value.

Signed-off-by: Miguel Company <miguelcompany@eprosima.com>

* Refs #24372. Improve null pointer checks.

Signed-off-by: Miguel Company <miguelcompany@eprosima.com>

* Refs #24372. Uncrustify.

Signed-off-by: Miguel Company <miguelcompany@eprosima.com>

---------

Signed-off-by: Juan Lopez Fernandez <juanlopez@eprosima.com>
Signed-off-by: danipiza <dpizarrogallego@gmail.com>
Signed-off-by: Miguel Company <miguelcompany@eprosima.com>
Co-authored-by: Juan Lopez Fernandez <juanlopez@eprosima.com>
Co-authored-by: danipiza <dpizarrogallego@gmail.com>
(cherry picked from commit 910ac99)

# Conflicts:
#	src/cpp/rtps/builtin/discovery/participant/PDPSimple.cpp

* Solve conflicts

Signed-off-by: Carlos Ferreira González <carlosferreira@eprosima.com>

* Uncrustify

Signed-off-by: Carlos Ferreira González <carlosferreira@eprosima.com>

---------

Signed-off-by: Carlos Ferreira González <carlosferreira@eprosima.com>
Co-authored-by: Miguel Company <miguelcompany@eprosima.com>
Co-authored-by: Carlos Ferreira González <carlosferreira@eprosima.com>
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.

3 participants