Eric Shu created GEODE-5849:
-------------------------------
Summary: 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
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)