You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@geode.apache.org by "Eric Shu (JIRA)" <ji...@apache.org> on 2018/10/11 16:50:00 UTC

[jira] [Assigned] (GEODE-5849) RemoveAll operation on client should not wrap the CacheClosedException (due to client shutdown) to ServerOperationException

     [ https://issues.apache.org/jira/browse/GEODE-5849?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Eric Shu reassigned GEODE-5849:
-------------------------------

    Assignee: Eric Shu

> RemoveAll operation on client should not wrap the CacheClosedException (due to client shutdown) to ServerOperationException
> ---------------------------------------------------------------------------------------------------------------------------
>
>                 Key: GEODE-5849
>                 URL: https://issues.apache.org/jira/browse/GEODE-5849
>             Project: Geode
>          Issue Type: Bug
>          Components: regions
>            Reporter: Eric Shu
>            Assignee: Eric Shu
>            Priority: Major
>
> The client removeAll operation failed with ServerOperationException as client cache is closing.
> org.apache.geode.cache.client.ServerOperationException: remote server on rs-FullRegression09040105a2i32xlarge-hydra-client-43(edgegemfire3_host1_19763:19763:loner):55926:c152d2bc:edgegemfire3_host1_19763: Region /testRegion removeAll at server applied partial keys due to exception.
> 	at org.apache.geode.internal.cache.LocalRegion.basicRemoveAll(LocalRegion.java:9795)
> 	at org.apache.geode.internal.cache.LocalRegion.removeAll(LocalRegion.java:9508)
> Caused by: org.apache.geode.cache.CacheClosedException: The cache is closed., caused by java.io.EOFException: The connection has been reset while reading the header
> 	at org.apache.geode.internal.cache.GemFireCacheImpl$Stopper.generateCancelledException(GemFireCacheImpl.java:1563)
> 	at org.apache.geode.cache.client.internal.PoolImpl.generatePoolOrCacheCancelledException(PoolImpl.java:1476)
> 	at org.apache.geode.cache.client.internal.PoolImpl.access$100(PoolImpl.java:77)
> 	at org.apache.geode.cache.client.internal.PoolImpl$PoolOrCacheStopper.generateCancelledException(PoolImpl.java:1377)
> 	at org.apache.geode.CancelCriterion.checkCancelInProgress(CancelCriterion.java:83)
> 	at org.apache.geode.cache.client.internal.OpExecutorImpl.handleException(OpExecutorImpl.java:655)
> 	at org.apache.geode.cache.client.internal.OpExecutorImpl.handleException(OpExecutorImpl.java:631)
> 	at org.apache.geode.cache.client.internal.OpExecutorImpl.execute(OpExecutorImpl.java:180)
> 	at org.apache.geode.cache.client.internal.OpExecutorImpl.execute(OpExecutorImpl.java:128)
> 	at org.apache.geode.cache.client.internal.PoolImpl.execute(PoolImpl.java:787)
> 	at org.apache.geode.cache.client.internal.RemoveAllOp.execute(RemoveAllOp.java:75)
> 	at org.apache.geode.cache.client.internal.RemoveAllOp.execute(RemoveAllOp.java:178)
> 	at org.apache.geode.cache.client.internal.ServerRegionProxy.removeAll(ServerRegionProxy.java:613)
> 	at org.apache.geode.internal.cache.LocalRegion.basicRemoveAll(LocalRegion.java:9770)
> 	... 12 more
> Caused by: java.io.EOFException: The connection has been reset while reading the header
> 	at org.apache.geode.internal.cache.tier.sockets.Message.fetchHeader(Message.java:813)
> 	at org.apache.geode.internal.cache.tier.sockets.ChunkedMessage.readHeader(ChunkedMessage.java:198)
> 	at org.apache.geode.cache.client.internal.AbstractOp.processChunkedResponse(AbstractOp.java:333)
> 	at org.apache.geode.cache.client.internal.RemoveAllOp$RemoveAllOpImpl.processResponse(RemoveAllOp.java:290)
> 	at org.apache.geode.cache.client.internal.AbstractOp.attemptReadResponse(AbstractOp.java:198)
> 	at org.apache.geode.cache.client.internal.AbstractOp.attempt(AbstractOp.java:386)
> 	at org.apache.geode.cache.client.internal.ConnectionImpl.execute(ConnectionImpl.java:276)
> 	at org.apache.geode.cache.client.internal.pooling.PooledConnection.execute(PooledConnection.java:325)
> 	at org.apache.geode.cache.client.internal.OpExecutorImpl.executeWithPossibleReAuthentication(OpExecutorImpl.java:894)
> 	at org.apache.geode.cache.client.internal.OpExecutorImpl.execute(OpExecutorImpl.java:171)
> 	... 18 more
> Current bulk operation has two steps for partitioned region. First, it uses single hop mechanism to send smaller maps to different severs based on primary bucket location. If this step failed with some reason like primary bucket moved or server is crashed, bulk operation will retry each failed smaller map to all the nodes one by one.
> After the first retry server failed, however, the client checks if client itself is being closed before trying to the next server. If it is, it will throw CacheClosedException for the operation. Product should not wrap this CacheClosedException to ServerOperationException.



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