Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
None
-
None
Description
If you've used PDX and your server has cluster-configuration enabled it will throw an exception when trying to auto-reconnect and the attempt will fail.
The symptom is this stack trace:
org.apache.geode.cache.CacheClosedException: Could not PDX serialize because the cache was closed at org.apache.geode.pdx.internal.TypeRegistry.getPdxSerializer(TypeRegistry.java:317) at org.apache.geode.internal.InternalDataSerializer.writeUserObject(InternalDataSerializer.java:1648) at org.apache.geode.internal.InternalDataSerializer.writeWellKnownObject(InternalDataSerializer.java:1548) at org.apache.geode.internal.InternalDataSerializer.basicWriteObject(InternalDataSerializer.java:2200) at org.apache.geode.DataSerializer.writeObject(DataSerializer.java:2952) at org.apache.geode.internal.cache.MemberFunctionStreamingMessage.toData(MemberFunctionStreamingMessage.java:315) at org.apache.geode.internal.InternalDataSerializer.invokeToData(InternalDataSerializer.java:2398) at org.apache.geode.internal.InternalDataSerializer.writeDSFID(InternalDataSerializer.java:1517) at org.apache.geode.internal.tcp.MsgStreamer.writeMessage(MsgStreamer.java:234) at org.apache.geode.distributed.internal.direct.DirectChannel.sendToMany(DirectChannel.java:394) at org.apache.geode.distributed.internal.direct.DirectChannel.sendToOne(DirectChannel.java:251) at org.apache.geode.distributed.internal.direct.DirectChannel.send(DirectChannel.java:616) at org.apache.geode.distributed.internal.membership.gms.mgr.GMSMembershipManager.directChannelSend(GMSMembershipManager.java:1686) at org.apache.geode.distributed.internal.membership.gms.mgr.GMSMembershipManager.send(GMSMembershipManager.java:1864) at org.apache.geode.distributed.internal.ClusterDistributionManager.sendViaMembershipManager(ClusterDistributionManager.java:2860) at org.apache.geode.distributed.internal.ClusterDistributionManager.sendOutgoing(ClusterDistributionManager.java:2780) at org.apache.geode.distributed.internal.ClusterDistributionManager.sendMessage(ClusterDistributionManager.java:2819) at org.apache.geode.distributed.internal.ClusterDistributionManager.putOutgoing(ClusterDistributionManager.java:1523) at org.apache.geode.internal.cache.execute.StreamingFunctionOperation.getFunctionResultFrom(StreamingFunctionOperation.java:107) at org.apache.geode.internal.cache.execute.MemberFunctionExecutor.executeFunction(MemberFunctionExecutor.java:151) at org.apache.geode.internal.cache.execute.MemberFunctionExecutor.executeFunction(MemberFunctionExecutor.java:189) at org.apache.geode.internal.cache.execute.AbstractExecution.execute(AbstractExecution.java:392) at org.apache.geode.internal.cache.ClusterConfigurationLoader.requestConfigurationFromOneLocator(ClusterConfigurationLoader.java:312) at org.apache.geode.internal.cache.ClusterConfigurationLoader.requestConfigurationFromLocators(ClusterConfigurationLoader.java:282) at org.apache.geode.internal.cache.GemFireCacheImpl.requestSharedConfiguration(GemFireCacheImpl.java:1066) at org.apache.geode.internal.cache.GemFireCacheImpl.<init>(GemFireCacheImpl.java:857) at org.apache.geode.internal.cache.GemFireCacheImpl.basicCreate(GemFireCacheImpl.java:794) at org.apache.geode.internal.cache.GemFireCacheImpl.create(GemFireCacheImpl.java:773) at org.apache.geode.distributed.internal.InternalDistributedSystem.reconnect(InternalDistributedSystem.java:2765) at org.apache.geode.distributed.internal.InternalDistributedSystem.tryReconnect(InternalDistributedSystem.java:2530) at org.apache.geode.distributed.internal.InternalDistributedSystem.disconnect(InternalDistributedSystem.java:1044) at org.apache.geode.distributed.internal.ClusterDistributionManager$DMListener.membershipFailure(ClusterDistributionManager.java:3406) at org.apache.geode.distributed.internal.membership.gms.mgr.GMSMembershipManager.uncleanShutdown(GMSMembershipManager.java:1534) at org.apache.geode.distributed.internal.membership.gms.mgr.GMSMembershipManager.lambda$forceDisconnect$3(GMSMembershipManager.java:2531) at java.lang.Thread.run(Thread.java:748)