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

Locator can't start if a lot of clients already started

    XMLWordPrintableJSON

    Details

      Description

      Locator can't start if a few hundred clients already started.
      Steps to reproduce:
      1. Start Locator
      2. Start 300 Geode clients
      3. Stop Locator
      4. Start Locator again
      Observe 100% CPU load and after some time Locator app crashes with timeout exceptions in the log.

      The problem is in the method org.apache.geode.distributed.internal.InternalLocator.PrimaryHandler#processRequest
      handlerMapping doesn't have handlers for LocatorListRequest and ClientConnectionRequest requests on Locator startup and in this case work code part with condition 'if(giveup == 0)'(InternalLocator:1185)

      Pause Thread.sleep(1000) works only on the first iteration and after that giveup>0 and CPU just spends resources on cycle execution without any pauses.

      Call Thread.sleep(1000)  should be after if(giveup>0) condition block. It will be called on each iteration in this case.

       

        Attachments

        1. 1.log
          64 kB
          Eugene Nedzvetsky

          Issue Links

            Activity

              People

              • Assignee:
                bschuchardt Bruce J Schuchardt
                Reporter:
                eugenex9 Eugene Nedzvetsky
              • Votes:
                1 Vote for this issue
                Watchers:
                6 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: