-
Notifications
You must be signed in to change notification settings - Fork 765
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[14813] WaitSet deadlock fix <master> #2744
Merged
Merged
Conversation
This file contains 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
Signed-off-by: Miguel Barro <miguelbarro@eprosima.com> Refs 14681. Fixing compiler errors & warnings. Signed-off-by: Miguel Barro <miguelbarro@eprosima.com> Refs 14681. Fixing testing Mocks. Signed-off-by: Miguel Barro <miguelbarro@eprosima.com> Refs 14681. Addressing reviewer comments. Signed-off-by: Miguel Barro <miguelbarro@eprosima.com> Refs 14681. Debugging fixes. Signed-off-by: Miguel Barro <miguelbarro@eprosima.com> Refs 14681. Linter pass Signed-off-by: Miguel Barro <miguelbarro@eprosima.com> Refs 14681. Adding a ProxyPool class to avoid EDP ABBAs on temporary proxy mutex. Signed-off-by: Miguel Barro <miguelbarro@eprosima.com> Refs 14681. Prevent reentrancy issues on shared_mutexes using tls Signed-off-by: Miguel Barro <miguelbarro@eprosima.com> Refs 14681. Mock updates to match new RTPSParticipantImpl behavior. Signed-off-by: Miguel Barro <miguelbarro@eprosima.com> Refs 14681. Linter pass.. Signed-off-by: Miguel Barro <miguelbarro@eprosima.com> Refs 14681. Fixing gcc/clang warnings Signed-off-by: Miguel Barro <miguelbarro@eprosima.com> Refs 14681. Fixing clang warnings Signed-off-by: Miguel Barro <miguelbarro@eprosima.com> Refs 14681. Unifying all temporary proxies in PDP owned pools Signed-off-by: Miguel Barro <miguelbarro@eprosima.com> Refs 14681. Linter pass Signed-off-by: Miguel Barro <miguelbarro@eprosima.com> Refs 14681. RTPSStatisticsTests.statistics_rpts_listener_gap_callback fixed Signed-off-by: Miguel Barro <miguelbarro@eprosima.com> Refs 14681. RTPSWriterTests CMakelists.txt fix for windows. Signed-off-by: Miguel Barro <miguelbarro@eprosima.com> Refs 14681. Fixing clang -Wunused-lambda-capture issue Signed-off-by: Miguel Barro <miguelbarro@eprosima.com> Refs 14681. Fixing proxies copy to fix PubSubBasic.ReceivedPartitionDataExceedsSizeLimit blackbox Signed-off-by: Miguel Barro <miguelbarro@eprosima.com> Refs 14681. Addressing reviewer's comments Signed-off-by: Miguel Barro <miguelbarro@eprosima.com>
Signed-off-by: Javier Santiago <javiersantiago@eprosima.com>
Signed-off-by: Javier Santiago <javiersantiago@eprosima.com>
MiguelBarro
force-pushed
the
test/issue/4121
branch
from
June 10, 2022 10:27
acf20a0
to
183023f
Compare
13 tasks
EduPonz
approved these changes
Jun 17, 2022
@Mergifyio backport 2.6.x |
mergify bot
pushed a commit
that referenced
this pull request
Jun 22, 2022
* Refs 14681. Fixing issue 4169. Signed-off-by: Miguel Barro <miguelbarro@eprosima.com> Refs 14681. Fixing compiler errors & warnings. Signed-off-by: Miguel Barro <miguelbarro@eprosima.com> Refs 14681. Fixing testing Mocks. Signed-off-by: Miguel Barro <miguelbarro@eprosima.com> Refs 14681. Addressing reviewer comments. Signed-off-by: Miguel Barro <miguelbarro@eprosima.com> Refs 14681. Debugging fixes. Signed-off-by: Miguel Barro <miguelbarro@eprosima.com> Refs 14681. Linter pass Signed-off-by: Miguel Barro <miguelbarro@eprosima.com> Refs 14681. Adding a ProxyPool class to avoid EDP ABBAs on temporary proxy mutex. Signed-off-by: Miguel Barro <miguelbarro@eprosima.com> Refs 14681. Prevent reentrancy issues on shared_mutexes using tls Signed-off-by: Miguel Barro <miguelbarro@eprosima.com> Refs 14681. Mock updates to match new RTPSParticipantImpl behavior. Signed-off-by: Miguel Barro <miguelbarro@eprosima.com> Refs 14681. Linter pass.. Signed-off-by: Miguel Barro <miguelbarro@eprosima.com> Refs 14681. Fixing gcc/clang warnings Signed-off-by: Miguel Barro <miguelbarro@eprosima.com> Refs 14681. Fixing clang warnings Signed-off-by: Miguel Barro <miguelbarro@eprosima.com> Refs 14681. Unifying all temporary proxies in PDP owned pools Signed-off-by: Miguel Barro <miguelbarro@eprosima.com> Refs 14681. Linter pass Signed-off-by: Miguel Barro <miguelbarro@eprosima.com> Refs 14681. RTPSStatisticsTests.statistics_rpts_listener_gap_callback fixed Signed-off-by: Miguel Barro <miguelbarro@eprosima.com> Refs 14681. RTPSWriterTests CMakelists.txt fix for windows. Signed-off-by: Miguel Barro <miguelbarro@eprosima.com> Refs 14681. Fixing clang -Wunused-lambda-capture issue Signed-off-by: Miguel Barro <miguelbarro@eprosima.com> Refs 14681. Fixing proxies copy to fix PubSubBasic.ReceivedPartitionDataExceedsSizeLimit blackbox Signed-off-by: Miguel Barro <miguelbarro@eprosima.com> Refs 14681. Addressing reviewer's comments Signed-off-by: Miguel Barro <miguelbarro@eprosima.com> * Refs #14813: WaitSet deadlock fix Signed-off-by: Javier Santiago <javiersantiago@eprosima.com> * Refs #14813: Added missing protection Signed-off-by: Javier Santiago <javiersantiago@eprosima.com> Co-authored-by: Javier Santiago <javiersantiago@eprosima.com> (cherry picked from commit 7b05712)
✅ Backports have been created
|
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.
Signed-off-by: Javier Santiago javiersantiago@eprosima.com
The sanitizer ci runs & review on #2730
It must be merged after #2717
Description
This applies to Thread Sanitizer issues 4121, 4122, 4123.
All these issues follow the same pattern. A new Condition is registered while an old one is being destroyed. This causes a deadlock since the locks are taken as follows:
WaitSetImpl::attach_condition
(A) ->ConditionNotifier::attach_to
(B)ConditionNotifier::will_be_deleted
(B) ->WaitSetImpl::will_be_deleted
(A)We prevent the issue by reducing the scope of lock A's protection inside
attach_condition
anddetach_condition
.Contributor Checklist
versions.md
file (if applicable).Reviewer Checklist