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