[23847] Protect DataReaderInstance alive_writers attribute#6123
Merged
MiguelCompany merged 1 commit intomasterfrom Nov 6, 2025
Merged
[23847] Protect DataReaderInstance alive_writers attribute#6123MiguelCompany merged 1 commit intomasterfrom
MiguelCompany merged 1 commit intomasterfrom
Conversation
Contributor
🧪 CI InsightsHere's what we observed from your CI run for 976ba43. ❌ Job Failures
|
183bd8f to
2e89c95
Compare
2e89c95 to
cb6b9f2
Compare
cb6b9f2 to
7719af0
Compare
Signed-off-by: Juan Lopez Fernandez <juanlopez@eprosima.com>
7719af0 to
976ba43
Compare
Member
|
@Mergifyio backport 3.3.x 3.2.x 2.14.x |
Contributor
✅ Backports have been createdDetails
|
mergify bot
pushed a commit
that referenced
this pull request
Nov 6, 2025
Signed-off-by: Juan Lopez Fernandez <juanlopez@eprosima.com> (cherry picked from commit 19d6a2b)
12 tasks
mergify bot
pushed a commit
that referenced
this pull request
Nov 6, 2025
Signed-off-by: Juan Lopez Fernandez <juanlopez@eprosima.com> (cherry picked from commit 19d6a2b) # Conflicts: # src/cpp/fastdds/subscriber/history/DataReaderHistory.cpp
mergify bot
pushed a commit
that referenced
this pull request
Nov 6, 2025
Signed-off-by: Juan Lopez Fernandez <juanlopez@eprosima.com> (cherry picked from commit 19d6a2b) # Conflicts: # src/cpp/fastdds/subscriber/history/DataReaderHistory.cpp
This was referenced Nov 6, 2025
MiguelCompany
pushed a commit
that referenced
this pull request
Nov 7, 2025
MiguelCompany
added a commit
that referenced
this pull request
Nov 7, 2025
* Protect DataReaderInstance alive_writers attribute (#6123) Signed-off-by: Juan Lopez Fernandez <juanlopez@eprosima.com> (cherry picked from commit 19d6a2b) # Conflicts: # src/cpp/fastdds/subscriber/history/DataReaderHistory.cpp * Fix conflicts Signed-off-by: Miguel Company <miguelcompany@eprosima.com> --------- Signed-off-by: Miguel Company <miguelcompany@eprosima.com> Co-authored-by: juanlofer-eprosima <88179026+juanlofer-eprosima@users.noreply.github.com> Co-authored-by: Miguel Company <miguelcompany@eprosima.com>
MiguelCompany
added a commit
that referenced
this pull request
Nov 11, 2025
* Protect DataReaderInstance alive_writers attribute (#6123) Signed-off-by: Juan Lopez Fernandez <juanlopez@eprosima.com> (cherry picked from commit 19d6a2b) # Conflicts: # src/cpp/fastdds/subscriber/history/DataReaderHistory.cpp * Fix conflicts Signed-off-by: Miguel Company <miguelcompany@eprosima.com> --------- Signed-off-by: Miguel Company <miguelcompany@eprosima.com> Co-authored-by: juanlofer-eprosima <88179026+juanlofer-eprosima@users.noreply.github.com> Co-authored-by: Miguel Company <miguelcompany@eprosima.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
This PR attempts to solve the data race produced in intraprocess scenario, when a writer sends a message from a thread (which updates its associated instance state in the reader receiving the message: DataReaderImpl::on_new_cache_change_added → DataReaderHistory::update_instance_nts → … → DataReaderInstance::writer_set), while from another thread the instances state of the same reader is also updated without protection (e.g., when destroying a matched writer: DataReaderImpl::update_subscription_matched_status → … → DataReaderInstance::writer_unregister). In the first thread the reader mutex is taken before calling update_instance_nts, the problem is that in the second thread that mutex is never taken.
@Mergifyio backport 3.3.x 3.2.x 2.14.x
Contributor Checklist
versions.mdfile (if applicable).Reviewer Checklist