[ 
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)

Reply via email to