[
https://issues.apache.org/jira/browse/GEODE-2213?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15761823#comment-15761823
]
ASF subversion and git services commented on GEODE-2213:
--------------------------------------------------------
Commit b5356d65a04a20c3ac6dc309c89580ba9d1c7aec in geode's branch
refs/heads/develop from [~bschuchardt]
[ https://git-wip-us.apache.org/repos/asf?p=geode.git;h=b5356d6 ]
GEODE-2213 Deadlock in GMSJoinLeaveJUnitTest
This removes the informToPendingJoinRequests invocation in recordViewRequest.
I was already testing this change as I suspected that this invocation was
causing new members to timeout trying to connect to the distributed system
due to informToPendingJoinRequests removing join requests from the view
creator's queue.
> Deadlock in GMSJoinLeaveJUnitTest
> ---------------------------------
>
> Key: GEODE-2213
> URL: https://issues.apache.org/jira/browse/GEODE-2213
> Project: Geode
> Issue Type: Bug
> Components: membership
> Reporter: Bruce Schuchardt
>
> My precheckin run hung in integrationTests with this deadlock:
> {noformat}
> Found one Java-level deadlock:
> =============================
> "Geode Membership View Creator":
> waiting to lock monitor 0x00000000153187e8 (object 0x00000000f09102e8, a
> java.util.LinkedList),
> which is held by "Test worker"
> "Test worker":
> waiting to lock monitor 0x00000000149d5ad8 (object 0x00000000f09227a8, a
> org.apache.geode.distributed.internal.membership.gms.membership.GMSJoinLeave$ViewCreator),
> which is held by "Geode Membership View Creator"
> Java stack information for the threads listed above:
> ===================================================
> "Geode Membership View Creator":
> at
> org.apache.geode.distributed.internal.membership.gms.membership.GMSJoinLeave$ViewCreator.informToPendingJoinRequests(GMSJoinLeave.java:2153)
> - waiting to lock <0x00000000f09102e8> (a java.util.LinkedList)
> - locked <0x00000000f09227a8> (a
> org.apache.geode.distributed.internal.membership.gms.membership.GMSJoinLeave$ViewCreator)
> at
> org.apache.geode.distributed.internal.membership.gms.membership.GMSJoinLeave$ViewCreator.run(GMSJoinLeave.java:2137)
> "Test worker":
> at
> org.apache.geode.distributed.internal.membership.gms.membership.GMSJoinLeave$ViewCreator.informToPendingJoinRequests(GMSJoinLeave.java:2143)
> - waiting to lock <0x00000000f09227a8> (a
> org.apache.geode.distributed.internal.membership.gms.membership.GMSJoinLeave$ViewCreator)
> at
> org.apache.geode.distributed.internal.membership.gms.membership.GMSJoinLeave.recordViewRequest(GMSJoinLeave.java:679)
> - locked <0x00000000f09102e8> (a java.util.LinkedList)
> at
> org.apache.geode.distributed.internal.membership.gms.membership.GMSJoinLeave.processRemoveRequest(GMSJoinLeave.java:666)
> at
> org.apache.geode.distributed.internal.membership.gms.membership.GMSJoinLeave.processMessage(GMSJoinLeave.java:1704)
> at
> org.apache.geode.distributed.internal.membership.gms.membership.GMSJoinLeaveJUnitTest.testViewNotSentWhenShuttingDown(GMSJoinLeaveJUnitTest.java:1103)
> {noformat}
> This looks like a pretty straightforward lock inversion that could happen any
> time.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)