Tanzu GemFire 9.10 Release Notes

Pivotal GemFire is now VMware Tanzu GemFire.

Tanzu GemFire 9.10 is based on Apache Geode version 1.12, so it also includes features and bug fixes from Apache Geode version 1.11. Tanzu GemFire 9.10 and Apache Geode share a common set of documentation. Therefore, references to both Tanzu GemFire and Apache Geode appear throughout this documentation; consider them equivalents.

NOTE:This version of Tanzu GemFire incorporates fixes for issues related to recovery behavior and peer-to-peer TLS communication. We recommend that all v9.10 customers update to version 9.10.5.

What’s New in Tanzu GemFire 9.10.5

Tanzu GemFire 9.10.5 is a maintenance release that resolves a variety of issues—see Issues Resolved in Tanzu GemFire 9.10.5 for more information.

What’s New in Tanzu GemFire 9.10.4

Tanzu GemFire 9.10.4 is a maintenance release that resolves a variety of issues—see Issues Resolved in Tanzu GemFire 9.10.4 for more information.

What’s New in Tanzu GemFire 9.10.3

Tanzu GemFire 9.10.3 is a maintenance release that resolves a variety of issues—see Issues Resolved in Tanzu GemFire 9.10.3 for more information.

What’s New in Tanzu GemFire 9.10.2

Tanzu GemFire 9.10.2 is a maintenance release that resolves a variety of issues—see Issues Resolved in Tanzu GemFire 9.10.2 for more information.

What’s New in Tanzu GemFire 9.10.1

Tanzu GemFire 9.10.1 is a maintenance release that resolves a variety of issues—see Issues Resolved in Tanzu GemFire 9.10.1 for more information.

What’s New in Tanzu GemFire 9.10

Tanzu GemFire 9.10 includes the following improvements:

  • JMX now exposes the free disk space percentage as a statistic.

  • Asynchronous event queues may now be created in a paused state. This allows better control of event dispatch, as the dispatch may be delayed until the application is ready for event consumption.

  • The new pluggable OQL security framework restrict which classes and methods can be called from queries. A system administrator can change the security posture at runtime. Provided implementations cover several use cases, as described in Method Invocation Authorizers.

  • There are new endpoints in the REST API for Management, including create and delete index, list deployed jars, show PDX configuration, and show the supported REST API versions.

Installing Tanzu GemFire 9.10

You can download Tanzu GemFire 9.10 from the Tanzu GemFire product download page.

For details on how to install Tanzu GemFire 9.10, see Installing Tanzu GemFire.

Upgrading to Tanzu GemFire 9.10

To upgrade from an earlier version of Tanzu GemFire to the current version, see Upgrading Tanzu GemFire.

When servers are upgraded to this Tanzu GemFire version from a version prior to version 9.1.1, their authentication of client messages is disabled in order to facilitate rolling upgrades. If your clients are set up to send authenticated messages, the servers will honor those messages, but will not enforce authentication until you reinstate authentication on each of the upgraded servers.

To reinstate secure client/server messaging, restart each server with the geode.disallow-internal-messages-without-credentials system property set to true. For example:

gfsh>start server --name=server_name --dir=server_config_dir \

Resolved Issues

The Tanzu GemFire 9.10 release is based on the Apache Geode 1.12 release, which also includes bug fixes from the Apache Geode 1.11 release. This section describes issue resolutions that significantly affect Tanzu GemFire applications. For a list of all issues resolved in Apache Geode 1.12, see the Geode 1.12 Release Notes. For a list of all issues resolved in Apache Geode 1.11, see the Geode 1.11 Release Notes. Ticket numbers of the form GEODE‑NNNN can be inspected at the Apache Software Foundation site for Geode issues.

Issues Resolved in Tanzu GemFire 9.10.5

GEODE-8238, GEM-2901: Improved connection close behavior to ensure final delivery of cluster messages during shutdown and avoid potential hangs.

GEODE-8432, GEM-2778, GEM-3026, GEM-3029: Fixed a hang that occurred with asynchronous event queues during rebalance operations.

GEODE-8475, GEM-1589: Resolved a deadlock in ParallelGatewaySenderQueue.

GEODE-8520, GEM-3056: GarbageCollectionCount metric no longer shows negative values. GCStatsMonitor now sums up all the GC stats to get the total GC count and GC time.

GEODE-8557, GEM-3066, GEM-3067: Reclassified “java.lang.IllegalStateException: NioSslEngine has been closed” to IOException, which allows retries of server connection failures.

GEODE-8564, GEM-3081: Fixed an exception thrown by an attempt to remove a managed connection that has already been invalidated. Corrected functionality to avoid unnecessary intermediary collection creations.

GEODE-8584, GEM-3092: Corrected a peer-to-peer messaging failure with TLS when attempting to replicate data while a connection is being closed.

GEODE-8651, GEM-3109: Corrected a problem that caused TLS-encrypted messaging to hang when conserve-sockets is set to false.

GEODE-8652, GEM-3099: Corrected a synchronization issue that caused TLS-encrypted message transmission to hang during shutdown.

Issues Resolved in Tanzu GemFire 9.10.4

GEODE-8385, GEM-2936: Fixed a problem with cluster shutdown which caused a hang on restart, due to ambiguity as to which node had the most up-to-date disk store. This could occur if nodes (locators or servers) were simultaneously shut down.

GEODE-8463, GEODE-8506, GEM-3020: Refined the behavior of BufferPool to always return a buffer that has exactly the requested capacity. In the past, BufferPool could return a buffer larger than the size requested, which could lead to decryption errors and lost messages when using TLS(SSL) protocol TLSv1.3.

GEODE-8478, GEM-3069: Fixed an issue that caused a gateway sender to shut down if (1) its alert-threshold was configured, (2) an event was on the queue longer than that specified threshold, (3) the logger was attempting to record an alert for that message, and (4) a field in the event object threw an exception while undergoing toString conversion.

GEODE-8489, GEM-3043: Restored the behavior of Pulse queries for consistency with earlier versions. For example, the result of a select * query once again includes attributes without values.

Issues Resolved in Tanzu GemFire 9.10.3

GEODE-6564, GEM-3001: Fixed a memory leak that occurred when a replicated region, configured with entry expiration, was cleared.

GEODE-8331: Fixed an issue that prevented gfsh v1.12 (GemFire 9.10) from connecting to a Geode v1.10 (GemFire 9.9) server. Now, if a Geode v1.10 (GemFire 9.9) command is incompatible with a command issued by the newer version of gfsh, it will fail with a detailed error message.

GEODE-8394, GEM-2989: Fixed an issue in which putAll operations or put operations with large objects could result in data corruption if invoked without having a sufficiently large read-timeout. Subsequent get operations or queries could experience failures due to this corruption.

GEODE-8447, GEM-3019: Pulse displays dates using the local time zone.

GEODE-8483, GEM-3004: Introduced a correction to JCA transaction logic that restores the ability of the system to detect commit conflict exceptions in concurrent access situations.

Issues Resolved in Tanzu GemFire 9.10.2

GEODE-8174, GEM-2884: Fixed an issue that caused an incorrect ConcurrentModificationException to be thrown when using JTA transactions.

  • GEODE-8029, GEM-2919: Unused disk store backups (.drf files) are now deleted to prevent the proliferation of unused records and files, which could cause members to fail during startup while recovering disk stores.

GEODE-8131, GEM-2938: Eliminated a point of contention in the alert logging system that could occasionally block cache operations.

GEODE-8195: Improved WAN retry logic.

GEODE-8240: After a rolling upgrade, even though all locators were upgraded, the membership view indicated some were running the old version. This would have been evident in the gfsh list members command and in logs. The correct version number is now reported.

GEODE-8259, GEM-2943: When a client performs a single-hop getAll() operation and encounters a serialization error, the operation is now re-tried.

GEODE-8287, GEM-2897, GEM-2950: Ironed out a recently-introduced problem that caused a degradation in performance for join queries or queries that use multiple indexes. Performance in such cases has been restored to v8.2 levels.

Issues Resolved in Tanzu GemFire 9.10.1

GEODE-7851: Pulse logging has been restored.

GEODE-7940: Fixed a problem in which a parallel gateway sender stopped sending events if another gateway sender attached to the same region was destroyed.

GEODE-8055, GEM-2890: Indexes can now be created on subregions.

GEODE-8071, GEM-2896: Fixed the gfsh rebalance command to prevent locators from hanging during shutdown.

GEODE-8091, GEM-2898: Locators failed to start after upgrade to v9.10 if a deprecated gfsh start locator option, --load-cluster-configuration-from-dir, was in use. Support for the deprecated option has been restored to allow startup to proceed. Beginning with GemFire 9.5 and Geode 1.6, the gfsh command import cluster-configuration supersedes start locator --load-cluster-configuration-from-dir.

Issues Resolved in Tanzu GemFire 9.10

GEODE-7465, GEM-2773: Fixed an issue that threw RegionDestroyedException when an asynchronous event queue was stopped and then restarted.

GEODE-7473, GEM-2774: Fixed a memory leak in the accumulation of entry event objects that could occur when a gateway receiver existed for the same region as a gateway sender.

GEODE-7593, GEM-2795: Fixed a memory leak that caused a higher than expected heap size when eviction was enabled. The issue was due to indexes that retained references to serialized values when the indexed key was a PDX string.

GEODE-7374, GEM-2748: Tanzu GemFire no longer throws a ClassCastException when using the deprecated MemberCommandService.

GEODE-7373, GEM-2746: Enforce JMX credentials to be either a string or an array of strings.

GEODE-7036, GEM-2723: Fixed a bug that could result in a NullPointerException when restarting members and a locator rejoins the cluster to form a quorum.

GEODE-7264, GEM-2706: Updated the Jackson dependency to version 2.10.0.

GEODE-7334, GEM-2705: Tanzu GemFire no longer throws a ClassCastException when the developer REST API is enabled and JodaModule is in the classpath.

GEODE-7208, GEM-2698: Fixed Lucene index creation when there are non-primitive fields in a child class, and the fields are defined in the parent class.

GEODE-7268, GEM-2692: A gfsh alter region no longer causes a soft hang when many gateway senders exist, by making the gfsh command implementation work more like the equivalent Java API.

GEODE-7535, GEM-2654: Fixed a race condition that could improperly result in an EntryDestroyedException during a getAll operation, if a client proxy region exists and there are no transactions.

GEODE-7085, GEM-2647: Eliminated an IndexOutOfBoundsException while recovering values from disk when the region version value overflowed.

GEODE-7015, GEM-2604: Fixed a bug that could result in a hung server if a move bucket operation failed during rebalance due to a forced disconnect with recreated persistent partitioned regions.

GEODE-7042: The server launcher now waits until all of the server’s startup tasks have completed before updating the server’s status to “online”. The ServerLauncher.start() method now blocks until redundancy recovery and recovery of values from disk have completed. This change has the effect of making the gfsh start server command wait for all server startup tasks to complete before returning.

GEODE-4993: GatewaySender connection statistics are now stored after being captured.

GEODE-6973: Improved creation time performance when there are a large number of PDX types.

GEODE-7628, GEM-2747: Block JMX MBean creation when no SecurityManager interface is implemented.

GEODE-7755, GEM-2614: Fixed a bug that resulted in locator processes continuing to run even when the logs show them shut down.

GEODE-7728, GEM-2819: Fixed an exception thrown when executing an equi-join query and both fields are indexed.

GEODE-7294: Moved to Spring 5 and updated other third-party libraries to their latest security patch versions.

GEODE-7310: Fixed an issue in which taking a backup was not properly aborted if a member of the distributed system was lost during the backup process.

GEODE-7750, GEODE-7760, GEODE-7796, GEM-2821, GEM-2823: Fixed an issue which could cause a locator to fail to restart properly, and also corrupted the cluster configuration.

GEODE-7763: Reduced the performance degradation caused when a client has multiple threads, and each client thread does operations on the same region key.


General support includes security vulnerability resolutions and critical bug fixes in all supported minor versions, while other maintenance is applied only to the latest supported minor release.

Obtaining and Installing Security Updates

New versions of Tanzu GemFire often include important security fixes, so VMware recommends you keep up to date with the latest releases.

For details about any security fixes in a particular release, see the Application Security Team page.