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

Eric Shu resolved GEODE-5849.
-----------------------------
       Resolution: Fixed
    Fix Version/s: 1.8.0

> 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
>    Affects Versions: 1.1.0
>            Reporter: Eric Shu
>            Assignee: Eric Shu
>            Priority: Major
>              Labels: pull-request-available
>             Fix For: 1.8.0
>
>          Time Spent: 50m
>  Remaining Estimate: 0h
>
> 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)

Reply via email to