Skip to content

[22339] Fix tsan potential deadlock between StatefulWriter and FlowController#5432

Merged
MiguelCompany merged 4 commits intomasterfrom
fix/22339
Dec 13, 2024
Merged

[22339] Fix tsan potential deadlock between StatefulWriter and FlowController#5432
MiguelCompany merged 4 commits intomasterfrom
fix/22339

Conversation

@Mario-DL
Copy link
Copy Markdown
Contributor

@Mario-DL Mario-DL commented Nov 27, 2024

Description

This PR addresses a TSAN potential deadlock by lock inversion report between StatefulWriter::matched_reader_remove() and (async)FlowController::run().

@Mergifyio backport 3.1.x 3.0.x 2.14.x 2.10.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.
  • 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.

Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com>
Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com>
@Mario-DL Mario-DL added this to the v3.2.0 milestone Nov 27, 2024
@Mario-DL Mario-DL requested review from richiprosima and removed request for richiprosima November 27, 2024 15:12
@github-actions github-actions bot added the ci-pending PR which CI is running label Nov 27, 2024
@Mario-DL Mario-DL marked this pull request as ready for review November 28, 2024 06:38
@rsanchez15 rsanchez15 requested a review from richiware November 28, 2024 08:21
…d_status()

Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com>
@Mario-DL Mario-DL requested review from richiware and removed request for richiware December 11, 2024 09:48
Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com>
@Mario-DL Mario-DL requested review from richiware and removed request for richiware December 11, 2024 11:46
Copy link
Copy Markdown
Member

@MiguelCompany MiguelCompany left a comment

Choose a reason for hiding this comment

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

LGTM with green CI

@MiguelCompany
Copy link
Copy Markdown
Member

@Mergifyio backport 3.1.x 3.0.x 2.14.x 2.10.x

@MiguelCompany MiguelCompany merged commit 8fcd7ca into master Dec 13, 2024
@MiguelCompany MiguelCompany deleted the fix/22339 branch December 13, 2024 12:12
@mergify
Copy link
Copy Markdown
Contributor

mergify bot commented Dec 13, 2024

backport 3.1.x 3.0.x 2.14.x 2.10.x

✅ Backports have been created

Details

mergify bot pushed a commit that referenced this pull request Dec 13, 2024
…ler` (#5432)

* Refs #22339: Add BB test

Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com>

* Refs #22339: Fix tsan deadlock report

Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com>

* Refs #22339: Take writer's mutex before rproxy->stop() and check_acked_status()

Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com>

* Refs #22339: Apply Miguels suggestion

Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com>

---------

Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com>
(cherry picked from commit 8fcd7ca)
mergify bot pushed a commit that referenced this pull request Dec 13, 2024
…ler` (#5432)

* Refs #22339: Add BB test

Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com>

* Refs #22339: Fix tsan deadlock report

Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com>

* Refs #22339: Take writer's mutex before rproxy->stop() and check_acked_status()

Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com>

* Refs #22339: Apply Miguels suggestion

Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com>

---------

Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com>
(cherry picked from commit 8fcd7ca)
mergify bot pushed a commit that referenced this pull request Dec 13, 2024
…ler` (#5432)

* Refs #22339: Add BB test

Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com>

* Refs #22339: Fix tsan deadlock report

Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com>

* Refs #22339: Take writer's mutex before rproxy->stop() and check_acked_status()

Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com>

* Refs #22339: Apply Miguels suggestion

Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com>

---------

Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com>
(cherry picked from commit 8fcd7ca)

# Conflicts:
#	src/cpp/rtps/writer/StatefulWriter.cpp
mergify bot pushed a commit that referenced this pull request Dec 13, 2024
…ler` (#5432)

* Refs #22339: Add BB test

Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com>

* Refs #22339: Fix tsan deadlock report

Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com>

* Refs #22339: Take writer's mutex before rproxy->stop() and check_acked_status()

Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com>

* Refs #22339: Apply Miguels suggestion

Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com>

---------

Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com>
(cherry picked from commit 8fcd7ca)

# Conflicts:
#	src/cpp/rtps/writer/StatefulWriter.cpp
#	test/blackbox/common/DDSBlackboxTestsBasic.cpp
MiguelCompany pushed a commit that referenced this pull request Dec 16, 2024
…ler` (#5432) (#5494)

* Refs #22339: Add BB test

Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com>

* Refs #22339: Fix tsan deadlock report

Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com>

* Refs #22339: Take writer's mutex before rproxy->stop() and check_acked_status()

Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com>

* Refs #22339: Apply Miguels suggestion

Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com>

---------

Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com>
(cherry picked from commit 8fcd7ca)

Co-authored-by: Mario Domínguez López <116071334+Mario-DL@users.noreply.github.com>
EugenioCollado pushed a commit that referenced this pull request Jan 30, 2025
…ler` (#5432)

* Refs #22339: Add BB test

Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com>

* Refs #22339: Fix tsan deadlock report

Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com>

* Refs #22339: Take writer's mutex before rproxy->stop() and check_acked_status()

Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com>

* Refs #22339: Apply Miguels suggestion

Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com>

---------

Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com>
(cherry picked from commit 8fcd7ca)

Fix conflicts

Signed-off-by: Eugenio Collado <eugeniocollado@eprosima.com>
EugenioCollado added a commit that referenced this pull request Jan 30, 2025
…ler` (#5432)

* Refs #22339: Add BB test

Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com>

* Refs #22339: Fix tsan deadlock report

Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com>

* Refs #22339: Take writer's mutex before rproxy->stop() and check_acked_status()

Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com>

* Refs #22339: Apply Miguels suggestion

Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com>

---------

Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com>
(cherry picked from commit 8fcd7ca)

Fix conflicts

Signed-off-by: Eugenio Collado <eugeniocollado@eprosima.com>
EugenioCollado added a commit that referenced this pull request Jan 30, 2025
…ler` (#5432)

* Refs #22339: Add BB test

Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com>

* Refs #22339: Fix tsan deadlock report

Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com>

* Refs #22339: Take writer's mutex before rproxy->stop() and check_acked_status()

Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com>

* Refs #22339: Apply Miguels suggestion

Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com>

---------

Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com>
(cherry picked from commit 8fcd7ca)

Fix conflicts

Signed-off-by: Eugenio Collado <eugeniocollado@eprosima.com>
juanlofer-eprosima pushed a commit that referenced this pull request Feb 3, 2025
…ler` (#5432) (#5496)

* Refs #22339: Add BB test



* Refs #22339: Fix tsan deadlock report



* Refs #22339: Take writer's mutex before rproxy->stop() and check_acked_status()



* Refs #22339: Apply Miguels suggestion



---------


(cherry picked from commit 8fcd7ca)

Fix conflicts

Signed-off-by: Eugenio Collado <eugeniocollado@eprosima.com>
Co-authored-by: Eugenio Collado <eugeniocollado@eprosima.com>
MiguelCompany pushed a commit that referenced this pull request May 28, 2025
…ler` (#5432)

* Refs #22339: Add BB test

Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com>

* Refs #22339: Fix tsan deadlock report

Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com>

* Refs #22339: Take writer's mutex before rproxy->stop() and check_acked_status()

Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com>

* Refs #22339: Apply Miguels suggestion

Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com>

---------

Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com>
(cherry picked from commit 8fcd7ca)

# Conflicts:
#	src/cpp/rtps/writer/StatefulWriter.cpp
#	test/blackbox/common/DDSBlackboxTestsBasic.cpp
MiguelCompany added a commit that referenced this pull request May 29, 2025
…ler` (#5432) (#5497)

* Fix tsan potential deadlock between `StatefulWriter` and `FlowController` (#5432)

* Refs #22339: Add BB test

Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com>

* Refs #22339: Fix tsan deadlock report

Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com>

* Refs #22339: Take writer's mutex before rproxy->stop() and check_acked_status()

Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com>

* Refs #22339: Apply Miguels suggestion

Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com>

---------

Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com>
(cherry picked from commit 8fcd7ca)

# Conflicts:
#	src/cpp/rtps/writer/StatefulWriter.cpp
#	test/blackbox/common/DDSBlackboxTestsBasic.cpp

* Fix conflicts

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

---------

Signed-off-by: Miguel Company <miguelcompany@eprosima.com>
Co-authored-by: Mario Domínguez López <116071334+Mario-DL@users.noreply.github.com>
Co-authored-by: Miguel Company <miguelcompany@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.

2 participants