You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@geode.apache.org by "John Blum (JIRA)" <ji...@apache.org> on 2018/05/24 23:36:00 UTC

[jira] [Commented] (GEODE-5236) Intermittent NoSubscriptionServersAvailableException

    [ https://issues.apache.org/jira/browse/GEODE-5236?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16489987#comment-16489987 ] 

John Blum commented on GEODE-5236:
----------------------------------

Here is an example _Stack Trace_...

{code}
Caused by: org.springframework.context.ApplicationContextException: Failed to start bean 'continuousQueryListenerContainer'; nested exception is org.springframework.data.gemfire.GemfireQueryException: Could not execute query [BoilingTemperatures]; state is [UNKNOWN]; nested exception is org.apache.geode.cache.query.CqException: Failed to execute the CQ. CqName: BoilingTemperatures, Query String is: SELECT * FROM /TemperatureReadings r WHERE r.temperature >= 212, Error from last server: org.apache.geode.cache.NoSubscriptionServersAvailableException: Could not initialize a primary queue on startup. No queue servers available.
	at org.springframework.context.support.DefaultLifecycleProcessor.doStart(DefaultLifecycleProcessor.java:184)
	at org.springframework.context.support.DefaultLifecycleProcessor.access$200(DefaultLifecycleProcessor.java:52)
	at org.springframework.context.support.DefaultLifecycleProcessor$LifecycleGroup.start(DefaultLifecycleProcessor.java:356)
	at org.springframework.context.support.DefaultLifecycleProcessor.startBeans(DefaultLifecycleProcessor.java:157)
	at org.springframework.context.support.DefaultLifecycleProcessor.onRefresh(DefaultLifecycleProcessor.java:121)
	at org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:885)
	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:553)
	at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:759)
	at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:395)
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:327)
	at org.springframework.boot.test.context.SpringBootContextLoader.loadContext(SpringBootContextLoader.java:138)
	at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContextInternal(DefaultCacheAwareContextLoaderDelegate.java:99)
	at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:117)
	... 35 more
Caused by: org.springframework.data.gemfire.GemfireQueryException: Could not execute query [BoilingTemperatures]; state is [UNKNOWN]; nested exception is org.apache.geode.cache.query.CqException: Failed to execute the CQ. CqName: BoilingTemperatures, Query String is: SELECT * FROM /TemperatureReadings r WHERE r.temperature >= 212, Error from last server: org.apache.geode.cache.NoSubscriptionServersAvailableException: Could not initialize a primary queue on startup. No queue servers available.
	at org.springframework.data.gemfire.listener.ContinuousQueryListenerContainer.execute(ContinuousQueryListenerContainer.java:682)
	at java.lang.Iterable.forEach(Iterable.java:75)
	at org.springframework.data.gemfire.listener.ContinuousQueryListenerContainer.doStart(ContinuousQueryListenerContainer.java:672)
	at org.springframework.data.gemfire.listener.ContinuousQueryListenerContainer.start(ContinuousQueryListenerContainer.java:661)
	at org.springframework.context.support.DefaultLifecycleProcessor.doStart(DefaultLifecycleProcessor.java:181)
	... 47 more
Caused by: org.apache.geode.cache.query.CqException: Failed to execute the CQ. CqName: BoilingTemperatures, Query String is: SELECT * FROM /TemperatureReadings r WHERE r.temperature >= 212, Error from last server: org.apache.geode.cache.NoSubscriptionServersAvailableException: Could not initialize a primary queue on startup. No queue servers available.
	at org.apache.geode.cache.query.internal.cq.ClientCQImpl.executeCqOnRedundantsAndPrimary(ClientCQImpl.java:443)
	at org.apache.geode.cache.query.internal.cq.ClientCQImpl.execute(ClientCQImpl.java:272)
	at org.springframework.data.gemfire.listener.ContinuousQueryListenerContainer.execute(ContinuousQueryListenerContainer.java:679)
	... 51 more
Caused by: org.apache.geode.cache.NoSubscriptionServersAvailableException: org.apache.geode.cache.NoSubscriptionServersAvailableException: Could not initialize a primary queue on startup. No queue servers available.
	at org.apache.geode.cache.client.internal.QueueManagerImpl.getAllConnections(QueueManagerImpl.java:190)
	at org.apache.geode.cache.client.internal.OpExecutorImpl.executeOnQueuesAndReturnPrimaryResult(OpExecutorImpl.java:540)
	at org.apache.geode.cache.client.internal.PoolImpl.executeOnQueuesAndReturnPrimaryResult(PoolImpl.java:831)
	at org.apache.geode.cache.client.internal.CreateCQOp.execute(CreateCQOp.java:50)
	at org.apache.geode.cache.client.internal.ServerCQProxyImpl.create(ServerCQProxyImpl.java:56)
	at org.apache.geode.cache.query.internal.cq.ClientCQImpl.executeCqOnRedundantsAndPrimary(ClientCQImpl.java:420)
	... 53 more
Caused by: org.apache.geode.cache.NoSubscriptionServersAvailableException: Could not initialize a primary queue on startup. No queue servers available.
	at org.apache.geode.cache.client.internal.QueueManagerImpl.initializeConnections(QueueManagerImpl.java:592)
	at org.apache.geode.cache.client.internal.QueueManagerImpl.start(QueueManagerImpl.java:303)
	at org.apache.geode.cache.client.internal.PoolImpl.start(PoolImpl.java:343)
	at org.apache.geode.cache.client.internal.PoolImpl.finishCreate(PoolImpl.java:173)
	at org.apache.geode.cache.client.internal.PoolImpl.create(PoolImpl.java:159)
	at org.apache.geode.internal.cache.PoolFactoryImpl.create(PoolFactoryImpl.java:321)
	at org.apache.geode.internal.cache.GemFireCacheImpl.determineDefaultPool(GemFireCacheImpl.java:2922)
	at org.apache.geode.internal.cache.GemFireCacheImpl.initializeDeclarativeCache(GemFireCacheImpl.java:1369)
	at org.apache.geode.internal.cache.GemFireCacheImpl.initialize(GemFireCacheImpl.java:1195)
	at org.apache.geode.internal.cache.GemFireCacheImpl.basicCreate(GemFireCacheImpl.java:758)
	at org.apache.geode.internal.cache.GemFireCacheImpl.createClient(GemFireCacheImpl.java:731)
	at org.apache.geode.cache.client.ClientCacheFactory.basicCreate(ClientCacheFactory.java:262)
	at org.apache.geode.cache.client.ClientCacheFactory.create(ClientCacheFactory.java:212)
	at org.springframework.data.gemfire.client.ClientCacheFactoryBean.createCache(ClientCacheFactoryBean.java:401)
	at org.springframework.data.gemfire.CacheFactoryBean.resolveCache(CacheFactoryBean.java:313)
	at org.springframework.data.gemfire.CacheFactoryBean.init(CacheFactoryBean.java:263)
	at java.util.Optional.orElseGet(Optional.java:267)
	at org.springframework.data.gemfire.CacheFactoryBean.getObject(CacheFactoryBean.java:739)
	at org.springframework.data.gemfire.CacheFactoryBean.getObject(CacheFactoryBean.java:106)
	at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.doGetObjectFromFactoryBean(FactoryBeanRegistrySupport.java:171)
	at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.getObjectFromFactoryBean(FactoryBeanRegistrySupport.java:101)
	at org.springframework.beans.factory.support.AbstractBeanFactory.getObjectForBeanInstance(AbstractBeanFactory.java:1645)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.getObjectForBeanInstance(AbstractAutowireCapableBeanFactory.java:1182)
	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:327)
	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:224)
	at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveNamedBean(DefaultListableBeanFactory.java:1015)
	at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBean(DefaultListableBeanFactory.java:339)
	at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBean(DefaultListableBeanFactory.java:334)
	at org.springframework.data.gemfire.config.annotation.CachingDefinedRegionsConfiguration.lambda$registerRegionBeans$3(CachingDefinedRegionsConfiguration.java:302)
	at java.lang.Iterable.forEach(Iterable.java:75)
	at org.springframework.data.gemfire.config.annotation.CachingDefinedRegionsConfiguration.registerRegionBeans(CachingDefinedRegionsConfiguration.java:295)
	at org.springframework.data.gemfire.config.annotation.CachingDefinedRegionsConfiguration.access$100(CachingDefinedRegionsConfiguration.java:107)
	at org.springframework.data.gemfire.config.annotation.CachingDefinedRegionsConfiguration$1.postProcessBeforeInitialization(CachingDefinedRegionsConfiguration.java:285)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyBeanPostProcessorsBeforeInitialization(AbstractAutowireCapableBeanFactory.java:422)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1698)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:579)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:501)
	at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:317)
	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:228)
	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:315)
	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199)
	at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:760)
	at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:869)
	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:550)
	at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:759)
	at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:395)
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:327)
	at org.springframework.boot.test.context.SpringBootContextLoader.loadContext(SpringBootContextLoader.java:138)
	at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContextInternal(DefaultCacheAwareContextLoaderDelegate.java:99)
	at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:117)
	at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:108)
	at org.springframework.test.context.support.DependencyInjectionTestExecutionListener.injectDependencies(DependencyInjectionTestExecutionListener.java:117)
	at org.springframework.test.context.support.DependencyInjectionTestExecutionListener.prepareTestInstance(DependencyInjectionTestExecutionListener.java:83)
	at org.springframework.boot.test.autoconfigure.SpringBootDependencyInjectionTestExecutionListener.prepareTestInstance(SpringBootDependencyInjectionTestExecutionListener.java:44)
	at org.springframework.test.context.TestContextManager.prepareTestInstance(TestContextManager.java:246)
	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.createTest(SpringJUnit4ClassRunner.java:227)
	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner$1.runReflectiveCall(SpringJUnit4ClassRunner.java:289)
	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.methodBlock(SpringJUnit4ClassRunner.java:291)
	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:246)
	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:97)
	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
	at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
	at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61)
	... 16 more
{code}

*Note*, this happens quite frequently in "_Integration Tests_" because the server has not been fully or properly initialized by the time the client connects (using connection from the configured, client Pool) and therefore, when the client attempts to "register interests" or a CQ, this Exception occurs!


> Intermittent NoSubscriptionServersAvailableException 
> -----------------------------------------------------
>
>                 Key: GEODE-5236
>                 URL: https://issues.apache.org/jira/browse/GEODE-5236
>             Project: Geode
>          Issue Type: Bug
>          Components: client queues, cq
>            Reporter: Swapnil Bawaskar
>            Priority: Major
>
> When the client connects to the server, the server creates a queue for the events to send the client, whether the client is *durable* or not. If that server-side queue is not ready, then a interest registration or CQ will cause the \{{NoSubscriptionServersAvailableException}}.
> When the request for RI or CQ reaches the server, I think, the server should be able to check if queue initialization is in progress, and the call should block until the queue is ready.
>  



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)