geode-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Barry Oglesby (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (GEODE-3742) CI failure: DeltaPropagationDUnitTest.testBug40165ClientReconnects FAILED with no queus server is available
Date Wed, 04 Oct 2017 23:21:00 GMT

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

Barry Oglesby commented on GEODE-3742:
--------------------------------------

Its possible its not waiting long enough for something on the server, but its not clear what
that is. Its also possible that there is some interaction between the Message Dispatcher thread
and the ServerConnection thread that is preventing CacheClientProxy from completely pausing.

The 'Unsuccessfully registered' message is coming from CacheClientNotifier registerClient.

This message is logged when {{responseByte != CommunicationMode.SuccessfulServerToClient.getModeNumber()}}.

Every time that is true, a warning is logged except in one case. That is when it can't initialize
a CacheClientProxy from that client. In that case, the message that is created but not logged
is: 'A previous connection attempt from this client is still being processed.'

I changed this method to log the warning in the one case it isn't. I also changed the 'Unsuccessfully
registered' message to include the response code.

This message is also sent back to the client in CacheClientNotifier writeMessage. Unfortunately,
its ignored on the client.

The CacheClientUpdater constructor is the place that ignores this message. It catches and
logs several exceptions including ConnectException, SSLException, GemFireSecurityException,
IOException and ClassNotFoundException.

It doesn't deal with ServerRefusedConnectionException which is the exception created in this
case.

Instead this exception is handled in QueueManagerImpl initializeQueueConnection like:
{noformat}
} catch (Exception e) {
  if (logger.isDebugEnabled()) {
    logger.debug("error creating subscription connection to server {}", connection.getEndpoint(),
e);
  }
}
{noformat}
Basically, the message being returned from the server is lost, so I also added a catch block
in CacheClientUpdater constructor to log and rethrow the ServerRefusedConnectionException
which now logs something like:
{noformat}
[warn 2017/10/04 15:45:04.880 PDT <main> tid=0x1] Cache Client Updater Thread  on boglesbymac-2(28921)<v2>:32770
port 29869 (localhost:29869): Caught following exception while attempting to create a server-to-client
communication socket and will exit: org.apache.geode.cache.client.ServerRefusedConnectionException:
<null inet_addr hostname><ec>:29869 refused connection: A previous connection
attempt from this client is still being processed: identity(192.168.2.5(28918:loner):52814:275690e9,connection=1,durableAttributes=DurableClientAttributes[id=testBug40165ClientReconnects_client;
timeout=60])
{noformat}


> CI failure: DeltaPropagationDUnitTest.testBug40165ClientReconnects FAILED with no queus
server is available
> -----------------------------------------------------------------------------------------------------------
>
>                 Key: GEODE-3742
>                 URL: https://issues.apache.org/jira/browse/GEODE-3742
>             Project: Geode
>          Issue Type: Bug
>          Components: client queues
>            Reporter: Hitesh Khamesra
>
> org.apache.geode.internal.cache.DeltaPropagationDUnitTest > testBug40165ClientReconnects
FAILED
>     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:842)
>         at org.apache.geode.cache.client.internal.RegisterInterestOp.execute(RegisterInterestOp.java:58)
>         at org.apache.geode.cache.client.internal.ServerRegionProxy.registerInterest(ServerRegionProxy.java:359)
>         at org.apache.geode.internal.cache.LocalRegion.processSingleInterest(LocalRegion.java:3734)
>         at org.apache.geode.internal.cache.LocalRegion.registerInterest(LocalRegion.java:3823)
>         at org.apache.geode.internal.cache.LocalRegion.registerInterest(LocalRegion.java:3625)
>         at org.apache.geode.internal.cache.LocalRegion.registerInterest(LocalRegion.java:3620)
>         at org.apache.geode.internal.cache.LocalRegion.registerInterest(LocalRegion.java:3615)
>         at org.apache.geode.internal.cache.DeltaPropagationDUnitTest.createDurableCacheClient(DeltaPropagationDUnitTest.java:1372)
>         at org.apache.geode.internal.cache.DeltaPropagationDUnitTest.testBug40165ClientReconnects(DeltaPropagationDUnitTest.java:698)
>         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:346)
>             at org.apache.geode.cache.client.internal.PoolImpl.finishCreate(PoolImpl.java:172)
>             at org.apache.geode.cache.client.internal.PoolImpl.create(PoolImpl.java:158)
>             at org.apache.geode.internal.cache.PoolFactoryImpl.create(PoolFactoryImpl.java:338)
>             at org.apache.geode.internal.cache.DeltaPropagationDUnitTest.createDurableCacheClient(DeltaPropagationDUnitTest.java:1362)
>             ... 1 more



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Mime
View raw message