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

locator returns incorrect server information when starting up

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • None
    • 1.0.0-incubating.M3
    • locator
    • None

    Description

      When starting up a locator has no knowledge of cache servers that might be in the distributed system but it will process server-location requests from clients and return them incorrect information until it receives load info from the servers.

      In one test I saw a locator be ejected from the distributed system. When it auto-reconnected some cache clients asked it for server locations and, though there were 6 cache servers available the clients got this exception:

      com.gemstone.gemfire.cache.client.NoAvailableServersException
              at com.gemstone.gemfire.cache.client.internal.pooling.ConnectionManagerImpl.borrowConnection(ConnectionManagerImpl.java:257)
              at com.gemstone.gemfire.cache.client.internal.OpExecutorImpl.getNextOpServerLocation(OpExecutorImpl.java:318)
              at com.gemstone.gemfire.cache.client.internal.OpExecutorImpl.execute(OpExecutorImpl.java:130)
              at com.gemstone.gemfire.cache.client.internal.OpExecutorImpl.execute(OpExecutorImpl.java:123)
              at com.gemstone.gemfire.cache.client.internal.PoolImpl.execute(PoolImpl.java:714)
              at com.gemstone.gemfire.cache.client.internal.GetOp.execute(GetOp.java:97)
              at com.gemstone.gemfire.cache.client.internal.ServerRegionProxy.get(ServerRegionProxy.java:112)
              at com.gemstone.gemfire.internal.cache.tx.ClientTXRegionStub.findObject(ClientTXRegionStub.java:72)
              at com.gemstone.gemfire.internal.cache.TXStateStub.findObject(TXStateStub.java:379)
              at com.gemstone.gemfire.internal.cache.TXStateProxyImpl.findObject(TXStateProxyImpl.java:607)
              at com.gemstone.gemfire.internal.cache.LocalRegion.get(LocalRegion.java:1460)
              at com.gemstone.gemfire.internal.cache.LocalRegion.get(LocalRegion.java:1398)
              at com.gemstone.gemfire.internal.cache.LocalRegion.get(LocalRegion.java:1385)
              at com.gemstone.gemfire.internal.cache.AbstractRegion.get(AbstractRegion.java:336)
      

      ServerLocator has a readiness check but it is only testing to see if its DistributedSystem instance variable has been initialized. It ought to wait until it has received a server load update.

      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: