Uploaded image for project: 'Ignite'
  1. Ignite
  2. IGNITE-8593

The semaphore's isBroken function doesn't work properly.

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Open
    • Minor
    • Resolution: Unresolved
    • 2.4
    • None
    • data structures
    • None

    Description

      Scenario: Three servers (s1,s2,s3) two clients (c1,c2).

      A semaphore with one permit is created. 

      Config: 

      1. Release acquired permits if the node that owned them left topology: set to false

      2.  TCP discovery mode: off

       

      steps: 

      1. c2 acquires the permit.
      2. Network failure happens, isolating c2 from the rest of nodes for a period of time.
      3. Network heals.
      4. c2 releases the permit.
      5. c2 acquires the permit.
      6. Calling semaphore.isBroken() returns false on both c1 and c2.
      7. c1 tries to acquire the permit but fails.
      8. Now calling isBroken() returns true on both c1 and c2.

       

      I think isBroken() should return true before a client tries to acquire a permit, and then fails (i.e., in step 6) rather than after acquiring a permit fails, as in the latter case, what purpose does the isBroken() function serves?

      Attachments

        Activity

          People

            Unassigned Unassigned
            un9xknown Mo
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated: