Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

[21519] Fix issue with exclusive ownership and unordered samples #5182

Merged
merged 5 commits into from
Sep 10, 2024

Conversation

MiguelCompany
Copy link
Member

@MiguelCompany MiguelCompany commented Aug 30, 2024

Description

During interoperability testing, some flakiness on Test_Ownership_3 unveiled that a reader with exclusive ownership and a KEEP_ALL history may return a mix of samples from writers with different strengths.

This PR adds a regression test and fixes the issue by removing inappropriate samples during the take operation.

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

@MiguelCompany MiguelCompany added this to the v3.0.1 milestone Aug 30, 2024
Copy link
Member

@Mario-DL Mario-DL left a comment

Choose a reason for hiding this comment

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

Just a NIT.
Alternatively, we may have chosen to do the check when adding the change to the instance instead of "waiting" for the user to perform a read/take to do the cleanup, but it should be equivalent.

@MiguelCompany MiguelCompany requested a review from Mario-DL August 30, 2024 11:22
@github-actions github-actions bot added the ci-pending PR which CI is running label Aug 30, 2024
Mario-DL
Mario-DL previously approved these changes Aug 30, 2024
Copy link
Member

@Mario-DL Mario-DL left a comment

Choose a reason for hiding this comment

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

LGTM

@JesusPoderoso JesusPoderoso added ready-to-merge Ready to be merged. CI and changes have been reviewed and approved. and removed ci-pending PR which CI is running labels Sep 2, 2024
@MiguelCompany MiguelCompany added in progress Issue or PR which is being reviewed and removed ready-to-merge Ready to be merged. CI and changes have been reviewed and approved. labels Sep 2, 2024
@MiguelCompany MiguelCompany force-pushed the bugfix/20866 branch 2 times, most recently from b13d1de to ac54175 Compare September 3, 2024 07:11
@MiguelCompany
Copy link
Member Author

@Mario-DL I have rebased this one, and also refactored both the test (I added a second one) and the fix (remove when adding).

@MiguelCompany MiguelCompany added needs-review PR that is ready to be reviewed and removed in progress Issue or PR which is being reviewed labels Sep 3, 2024
@github-actions github-actions bot added the ci-pending PR which CI is running label Sep 3, 2024
@MiguelCompany MiguelCompany requested review from Mario-DL and removed request for Mario-DL September 3, 2024 13:43
@JesusPoderoso JesusPoderoso requested review from Mario-DL and removed request for Mario-DL September 4, 2024 14:03
@MiguelCompany MiguelCompany removed the request for review from Mario-DL September 4, 2024 14:03
@MiguelCompany
Copy link
Member Author

Note: The failure in MacOS also failed in PR 5181, so it seems unrelated.

Copy link
Member

@Mario-DL Mario-DL left a comment

Choose a reason for hiding this comment

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

Fine rework overall ! Leaving a question in the code and other one that comes to me.
If I understood correctly, the changes may affect also to a reader with a sufficiently big keep_last history (e.g 20 or 40).
If that's the case, would it be useful to include an analogous test with that history kind just to check ?

@Mario-DL
Copy link
Member

Mario-DL commented Sep 6, 2024

NIT
We may remove KEEP_ALL from the PR's title

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 requested review from Mario-DL and removed request for Mario-DL September 6, 2024 10:50
@MiguelCompany MiguelCompany changed the title [21519] Fix issue with exclusive ownership and KEEP_ALL [21519] Fix issue with exclusive ownership and unordered samples Sep 6, 2024
@MiguelCompany
Copy link
Member Author

@Mario-DL I rebased this one and refactored the tests in commit b886d86

I also changed the title.

@JesusPoderoso JesusPoderoso removed needs-review PR that is ready to be reviewed ci-pending PR which CI is running labels Sep 10, 2024
Copy link
Contributor

@JesusPoderoso JesusPoderoso left a comment

Choose a reason for hiding this comment

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

LGTM

@JesusPoderoso JesusPoderoso added the ready-to-merge Ready to be merged. CI and changes have been reviewed and approved. label Sep 10, 2024
@MiguelCompany MiguelCompany merged commit b1a7fe2 into master Sep 10, 2024
17 checks passed
@MiguelCompany MiguelCompany deleted the bugfix/20866 branch September 10, 2024 09:22
@MiguelCompany
Copy link
Member Author

@Mergifyio backport 2.14.x 2.10.x

Copy link
Contributor

mergify bot commented Sep 10, 2024

backport 2.14.x 2.10.x

✅ Backports have been created

mergify bot pushed a commit that referenced this pull request Sep 10, 2024
* Refs #20866. Regression test.

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

* Refs #20866. Additional regression test.

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

* Refs #20866. Fix issue.

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

* Refs #20866. Fix unit tests.

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

* Refs #20866. Refactor test to run several cases.

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

---------

Signed-off-by: Miguel Company <miguelcompany@eprosima.com>
(cherry picked from commit b1a7fe2)

# Conflicts:
#	test/unittest/dds/subscriber/DataReaderHistoryTests.cpp
mergify bot pushed a commit that referenced this pull request Sep 10, 2024
* Refs #20866. Regression test.

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

* Refs #20866. Additional regression test.

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

* Refs #20866. Fix issue.

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

* Refs #20866. Fix unit tests.

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

* Refs #20866. Refactor test to run several cases.

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

---------

Signed-off-by: Miguel Company <miguelcompany@eprosima.com>
(cherry picked from commit b1a7fe2)

# Conflicts:
#	test/unittest/dds/subscriber/DataReaderHistoryTests.cpp
JesusPoderoso pushed a commit that referenced this pull request Sep 10, 2024
* Refs #20866. Regression test.

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

* Refs #20866. Additional regression test.

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

* Refs #20866. Fix issue.

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

* Refs #20866. Fix unit tests.

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

* Refs #20866. Refactor test to run several cases.

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

---------

Signed-off-by: Miguel Company <miguelcompany@eprosima.com>
(cherry picked from commit b1a7fe2)
Signed-off-by: JesusPoderoso <jesuspoderoso@eprosima.com>

# Conflicts:
#	test/unittest/dds/subscriber/DataReaderHistoryTests.cpp
JesusPoderoso pushed a commit that referenced this pull request Sep 10, 2024
* Refs #20866. Regression test.

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

* Refs #20866. Additional regression test.

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

* Refs #20866. Fix issue.

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

* Refs #20866. Fix unit tests.

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

* Refs #20866. Refactor test to run several cases.

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

---------

Signed-off-by: Miguel Company <miguelcompany@eprosima.com>
(cherry picked from commit b1a7fe2)
Signed-off-by: JesusPoderoso <jesuspoderoso@eprosima.com>

# Conflicts:
#	test/unittest/dds/subscriber/DataReaderHistoryTests.cpp
JesusPoderoso pushed a commit that referenced this pull request Sep 10, 2024
* Refs #20866. Regression test.

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

* Refs #20866. Additional regression test.

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

* Refs #20866. Fix issue.

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

* Refs #20866. Fix unit tests.

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

* Refs #20866. Refactor test to run several cases.

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

---------

Signed-off-by: Miguel Company <miguelcompany@eprosima.com>
(cherry picked from commit b1a7fe2)
Signed-off-by: JesusPoderoso <jesuspoderoso@eprosima.com>

# Conflicts:
#	test/unittest/dds/subscriber/DataReaderHistoryTests.cpp
JesusPoderoso pushed a commit that referenced this pull request Sep 10, 2024
* Refs #20866. Regression test.

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

* Refs #20866. Additional regression test.

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

* Refs #20866. Fix issue.

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

* Refs #20866. Fix unit tests.

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

* Refs #20866. Refactor test to run several cases.

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

---------

Signed-off-by: Miguel Company <miguelcompany@eprosima.com>
(cherry picked from commit b1a7fe2)
Signed-off-by: JesusPoderoso <jesuspoderoso@eprosima.com>

# Conflicts:
#	test/unittest/dds/subscriber/DataReaderHistoryTests.cpp
JesusPoderoso pushed a commit that referenced this pull request Sep 10, 2024
* Refs #20866. Regression test.

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

* Refs #20866. Additional regression test.

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

* Refs #20866. Fix issue.

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

* Refs #20866. Fix unit tests.

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

* Refs #20866. Refactor test to run several cases.

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

---------

Signed-off-by: Miguel Company <miguelcompany@eprosima.com>
(cherry picked from commit b1a7fe2)
Signed-off-by: JesusPoderoso <jesuspoderoso@eprosima.com>

# Conflicts:
#	test/unittest/dds/subscriber/DataReaderHistoryTests.cpp
JesusPoderoso pushed a commit that referenced this pull request Sep 10, 2024
* Refs #20866. Regression test.

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

* Refs #20866. Additional regression test.

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

* Refs #20866. Fix issue.

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

* Refs #20866. Fix unit tests.

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

* Refs #20866. Refactor test to run several cases.

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

---------

Signed-off-by: Miguel Company <miguelcompany@eprosima.com>
(cherry picked from commit b1a7fe2)
Signed-off-by: JesusPoderoso <jesuspoderoso@eprosima.com>

# Conflicts:
#	test/unittest/dds/subscriber/DataReaderHistoryTests.cpp
MiguelCompany added a commit that referenced this pull request Sep 11, 2024
* Refs #20866. Regression test.

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

* Refs #20866. Additional regression test.

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

* Refs #20866. Fix issue.

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

* Refs #20866. Fix unit tests.

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

* Refs #20866. Refactor test to run several cases.

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

---------

Signed-off-by: Miguel Company <miguelcompany@eprosima.com>
(cherry picked from commit b1a7fe2)
Signed-off-by: JesusPoderoso <jesuspoderoso@eprosima.com>

# Conflicts:
#	test/unittest/dds/subscriber/DataReaderHistoryTests.cpp

Co-authored-by: Miguel Company <miguelcompany@eprosima.com>
MiguelCompany added a commit that referenced this pull request Sep 11, 2024
* Refs #20866. Regression test.

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

* Refs #20866. Additional regression test.

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

* Refs #20866. Fix issue.

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

* Refs #20866. Fix unit tests.

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

* Refs #20866. Refactor test to run several cases.

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

---------

Signed-off-by: Miguel Company <miguelcompany@eprosima.com>
(cherry picked from commit b1a7fe2)
Signed-off-by: JesusPoderoso <jesuspoderoso@eprosima.com>

# Conflicts:
#	test/unittest/dds/subscriber/DataReaderHistoryTests.cpp

Co-authored-by: Miguel Company <miguelcompany@eprosima.com>
# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
ready-to-merge Ready to be merged. CI and changes have been reviewed and approved.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants