Uploaded image for project: 'Geode'
  1. Geode
  2. GEODE-2213

Deadlock in GMSJoinLeaveJUnitTest

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • None
    • 1.1.0
    • membership
    • None

    Description

      My precheckin run hung in integrationTests with this deadlock:

      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)
      

      This looks like a pretty straightforward lock inversion that could happen any time.

      Attachments

        Activity

          People

            bschuchardt Bruce J Schuchardt
            bschuchardt Bruce J Schuchardt
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: