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

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

              Dates

                Created:
                Updated:
                Resolved: