LATEST VERSION: 8.2.5 - CHANGELOG
Pivotal GemFire® v8.2

Pivotal GemFire 8.2 Release Notes

Pivotal GemFire 8.2 Release Notes

What's New in Pivotal GemFire 8.2

This section lists new features in GemFire 8.2, with the most recent release shown first.

What's New in Pivotal GemFire 8.2.5

Pivotal GemFire 8.2.5 is a maintenance release. See Issues Resolved in Pivotal GemFire 8.2.5.

What's New in Pivotal GemFire 8.2.4

Pivotal GemFire 8.2.4 is a maintenance release. See Issues Resolved in Pivotal GemFire 8.2.4.

What's New in Pivotal GemFire 8.2.3

Pivotal GemFire 8.2.3 is a maintenance release. See Issues Resolved in Pivotal GemFire 8.2.3.

What's New in Pivotal GemFire 8.2.2

Pivotal GemFire 8.2.2 includes these new features and changes:

  • Compatibility with Geode package names
  • Compatibility with GemFire 9.0

What's New in Pivotal GemFire 8.2.1

Pivotal GemFire 8.2.1 includes these new features and changes:

  • Added support for Solaris 10 and 11 on 32-bit and 64-bit x86 architectures.
  • GEM-199/GEODE-581: Added a load probe class that balances buckets based on bucket count, rather than size. To use, set the system property gemfire.ResourceManager.PR_LOAD_PROBE_CLASS to com.gemstone.gemfire.internal.cache.partitioned.BucketCountLoadProbe.

What's New in Pivotal GemFire 8.2.0

Pivotal GemFire 8.2.0 includes these new features and changes:

  • Support for Java SE 8 (in addition to Java SE 7).
  • Production support for RHEL 7. See Pivotal GemFire Supported Configurations for more information.
  • Improved Performance for Recovery and Rebalancing. By default, GemFire 8.2 now recovers up to eight buckets in parallel in order to satisfy redundancy after a member crashes, after a new member joins the system, or after a manual rebalance command is executed.

    During recovery, there is a trade off between resources that are dedicated to recovery and resources that are dedicated to concurrent operations. To reduce the impact on concurrent operations, adjust the number of parallel recovery threads using the gemfire.MAX_PARALLEL_BUCKET_RECOVERIES system property. See Configure High Availability for a Partitioned Region.

    Keep in mind that with parallel recovery, redundancy may be recovered much more quickly than in previous versions of GemFire. For this reason, it is even more important to configure startup-recovery-delay to an appropriate value if you intend to restart multiple members at once. Set startup-recovery-delay to a value that ensures all members are up and available before redundancy recovery kicks in. See Configure Member Join Redundancy Recovery for a Partitioned Region.

    GemFire 8.2 also provides the ability to improve rebalancing performance by rebalancing multiple regions in parallel any time a rebalance operation is performed. To enable parallel rebalancing for regions, set the gemfire.resource.manager.threads system property to a value greater than 1. See Rebalancing Partitioned Region Data.

  • Deprecated Platforms. In GemFire 8.2, support for the following platforms is deprecated and may be removed in a future release of the product:
    • All 32-bit operating systems.
    • RHEL 5
    • Mac OS X 10.8
    • Windows 2008 Server R2
    • Windows 7
    • Windows 8
    • Ubuntu 10

    See Pivotal GemFire Supported Configurations.

  • Compatibility with Geode package names
  • Compatibility with GemFire 9.0

Installing Pivotal GemFire 8.2

You can download Pivotal GemFire 8.2 (and Pivotal GemFire Native Client 9.0) from the Pivotal GemFire product download page.

Pivotal GemFire 8.2 is available in a variety of distribution methods including:

  • ZIP or tar.gz
  • RPM for RHEL
  • DEB for Ubuntu
  • Homebrew for MacOSX
  • Maven repository

The Pivotal GemFire 8.2 installation download includes GemFire tools such as Pulse, VSD, Developer REST APIs, and Pivotal GemFire HTTP Modules.

Note: If you are deploying Pivotal GemFire into an OSGi environment, GemFire requires that you use Apache Felix v4.4.1 and that you deploy log4j-api-2.1.jar and log4j-core-2.1.jar files to your OSGi environment.

For details on how to install Pivotal GemFire 8.2, see Installing Pivotal GemFire.

Upgrading to Pivotal GemFire 8.2

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

The following are some upgrade considerations specific to upgrading to Pivotal GemFire 8.2:

  • Pivotal GemFire 8.2 requires Java SE 1.7 or 1.8. You may need to upgrade your Java distribution on your target upgrade machines before you upgrade to GemFire 8.2.
  • You can perform a rolling upgrade from Pivotal GemFire 8.2.3, 8.2.2, 8.2.1, 8.2.0, 8.1, or 8.0 to GemFire 8.2. Rolling upgrade means that you can upgrade your entire distributed system to the latest GemFire release without experiencing any system downtime. You upgrade one member at a time, and each upgraded member can communicate with other members that are running earlier versions of GemFire. See Performing a Rolling Upgrade for details on how to perform this kind of upgrade.
  • When doing a rolling upgrade to Pivotal GemFire 8.2, administrators should be careful to complete the upgrade to all servers prior to making API calls to methods that did not exist in the earlier version. The prominent example of this is the Region removeAll method, introduced in Pivotal GemFire 8.1. A removeAll call issued from an upgraded 8.2 server to an 8.0 server cannot be fulfilled, and is likely to cause the 8.2 server to hang due to the lack of response from the 8.0 server.
  • If you are upgrading your applications to use the most recent Pivotal GemFire, make sure you copy log4j-api-2.1.jar and log4j-core-2.1.jar files to your application's CLASSPATH in addition to gemfire.jar. These log JAR files are required to run Pivotal GemFire 8.2.
  • Thoroughly test your systems with the new 8.2 version before moving into production. Downgrade from 8.2 to a previous version of GemFire is not supported.

GemFire 8.2 Resolved Issues

This section lists issues resolved in GemFire 8.2, with the most recent release shown first.

Ticket reference numbers come from three different ticketing systems. Those labeled with GEODE are Apache Geode JIRA ticket numbers, and those labeled with GEM are from the current GemFire ticketing system. The 4-digit and 5-digit values are from the older GemFire ticketing system.

Issues Resolved in Pivotal GemFire 8.2.5

The following issues have been resolved in this release of GemFire:

  • GEM-139/GEODE-965/GEODE-2732: Resolved inconsistencies in auto-reconnect logic that could lead to redundant or out-of-date server members.
  • GEM-1348: Corrected an indexing problem by pruning functions from strings that are intended for use as region names.
  • GEM-1380/GEODE-2808: Fixed a Java-level deadlock in the Tomcat session module that could occur during session expiration.
  • GEM-1413: Fixed a problem in which a non-responsive SSL client could block the server "acceptor" and prevent other clients from connecting.

Issues Resolved in Pivotal GemFire 8.2.4

The following issues have been resolved in this release of GemFire:

  • GEODE-2616/GEM-1195: Fixed a memory leak associated with the closing of colocated regions.
  • GEODE-2547/GEM-1218: Fixed a bug that caused a cache loader to be incorrectly invoked upon registration of interest in a key that has been destroyed.
  • GEM-1233: GemFire no longer logs the keystore password in clear text when 'fine logging' is in effect.
  • GEM-1237: Fixes a bug in which disk space cleanup operations were ignoring hyphenated filenames.
  • GEM-1243: Fixed an IOException during disk write; the channel now remains open until the write operation has fully completed.
  • GEM-1276: Updated the following jar versions to correct CVEs:
    • spring 3.2.13: CVE-2016-9878, CVE-2015-3192
    • mail 1.2: CVE-2005-1754
  • GEODE-2638/GEM-1282: A GatewaySender will now start even if configured with locators on unknown hosts. Instead of throwing an exception, it logs an error and skips the mis-configured host.
  • GEM-1315: Fixed a bug in which threads stuck during the shutdown process.
  • GEODE-2497: Fixed a system hang caused by waiting for a response to a startup message from a surprise member.

Issues Resolved in Pivotal GemFire 8.2.3

The following issues have been resolved in this release of GemFire:

  • GEODE-232/GEM-966: Fixed the log4j configuration in gfsh scripts.
  • GEODE-473: Improved the reliability of start and status commands.
  • GEODE-965/GEM-139: Fixed a bug in which an extra cache server was created during automatic reconnect.
  • GEODE-1272/GEM-1133: Index creation now correctly handles exceptions and not deserializing PDX objects.
  • GEODE-2011/GEM-1096: Fixed a NullPointerException in CacheWriter for PdxTypes Region.
  • GEODE-2080/GEM-1070: Fixed a bug that caused a REST POST call to fail when a value-constraint attribute was configured for a region.
  • GEODE-2089/GEM-1034: Fixed a bug in the implementation of the client configuration for entry-idle-time.
  • GEODE-2123/GEM-1099: Made parallel gateway senders more independent, such that stopping one gateway sender does not interfere with an unrelated sender's AckReaderThread.
  • GEODE-2133/GEM-1100: Changed a sending site's AckReaderThread such that it does not shut down while logging batch exceptions.
  • GEODE-2179/GEODE-2186/GEM-1104: The gateway sender status displayed in Pulse has been corrected.
  • GEODE-2209/GEM-1114: Increased the number of gateway senders supported from 16 to 128.
  • GEODE-2216/GEM-1159: Fix a bug such that exceptions are correctly thrown upon index creation failure.
  • GEODE-2224/GEM-1123: The local QueryService no longer throws an exception when running a query within a transaction.
  • GEODE-2228/GEM-1050: Eliminated a potential deadlock when a server that grants locks died during a transaction.
  • GEODE-2279/GEM-1108: Corrected the value of statistic messageQueueSize.
  • GEODE-2297/GEM-1183: Fixed a deadlock condition caused by an alert generated during server startup.
  • GEODE-2324/GEM-1190: Fixed a bug that manifested as an incomplete system shut down. If the locator's worker pool was interrupted while the locator was shutting down, some resources, including some workers, were not freed.
  • GEM-706: Fixed a bug such that System javax.net.ssl.trustStore settings do not override values configured in a gemfire.properties file.
  • GEM-950: Resolved a condition in which the Pulse data browser could hang during an export operation.
  • GEM-1055: Fixed a client hang caused by a NullPointerException generated in the JGroups NAKACK protocol.
  • GEM-1072: Eliminates duplication of Set-Cookie response headers by the session module for app servers.
  • GEM-1086: Fixed a bug that caused version 9.0 servers to throw a ClassNotFoundException when a version 8.2.2 client executed a continuous query.
  • GEM-1132: Fixed a NullPointerException that occurred when creating a map index in which null map values were already present in region.
  • GEM-1143: Resolved a classloader exception that occurred when using GemFire with Pivotal Cloud Foundry.
  • GEM-1149: Invalid VersionTags are no longer replicated across a WAN.
  • GEM-1176: A null key no longer causes a NullPointerException when running a junction query with a hash index.
  • GEM-1193: A bug fix eliminates the problem in which an exception that occurred on the server while attempting to return a function execution's last result could have resulted in a ServerConnection thread getting stuck. The ServerConnection threads are the ones processing client requests. If all threads all got stuck, then no client requests could be processed.
  • GEM-1198: Fixed a bug in which a severed network connection isolated a locator and server, and the new membership coordinator did not assume its role.
  • GEM-1239: Updated the commons-fileupload library to version 1.3.2 to address CVE-2016-3092.
  • GEM-1240: Updated the spring-tx library to version 3.2.9 to address CVE-2011-2730.

Issues Resolved in Pivotal GemFire 8.2.2

The following issues have been resolved in this release of GemFire:

  • GEODE-106/GEM-978: Fixed a bug which could have resulted in an IndexMaintenanceException while doing an invalidate operation due to a race condition between the setting of the size of an array and an iterator over that array.
  • GEODE-478/GEM-716: Message size is restricted to 1 GB to avoid overflow when specifying the length of a message.
  • GEODE-695/GEM-732: Modified the exported cluster configuration file name to avoid using colons in the file name, as needed to support Windows file name restrictions.
  • GEODE-745/GEM-757: Properly include the include-locators parameter in the shutdown command invoked through the REST API.
  • GEODE-980: Fixed a bug that prevented a region destroy operation on Mac OS X platforms when the local host name was not tied to the local IP address.
  • GEODE-1236/GEODE-1248: Fixed a bug in which a gfsh shutdown call may have resulted in JVMs exiting prematurely and not completing the full shut down process. In such a case, other systems would have viewed the affected system as having crashed. If network partition detection was active, it might have resulted in a split-brain scenario.
  • GEODE-1329/GEM-625: Fixed a bug that caused a reconnecting member to receive a second forced disconnect while creating the cache.
  • GEODE-1347/GEM-642: Fixed two gfsh issues. An echo of the gfsh connect command no longer echos clear text for a password. And, a gfsh history --clear now also clears the history on file.
  • GEODE-1349/GEM-606: Fixed a bug that caused clients to throw a java.lang.InternalError: MemoryPool not found exception.
  • GEODE-1387/GEM-809: Fixed a race condition that manifested as a write-after-read error on the locator status file when reading the status or starting a server.
  • GEODE-1393/GEM-659: Fixed a bug which manifested as clients not finding servers from the locator after the locator reconnects to the distributed system.
  • GEODE-1469/GEM-712: Corrected state information prevents an error that caused multi-page HTTP output to generate an exception.
  • GEODE-1495/GEM-715: Fixed a bug in which a CQEvent was not getting properly generated after a destroy operation on a partioned region. The fix removes the cached, destroyed token/events from the CQ.
  • GEODE-1610/GEM-794: A bug fix modifies an initial event value to use the same event id in both primary and secondary queues.
  • GEODE-1615: Fixed a bug that manifested as gfsh being unable to destroy a region that has a hyphen in its name.
  • GEODE-1644/GEM-792: In queries against a map index no longer incorrectly throw a ClassCastException.
  • GEODE-1676/GEM-838: Fixed query bugs in which multiple not equals together with a compact range index returned incorrect results.
  • GEODE-1718/GEM-896: Fixed a bug in which the Region.replace method incorrectly returned false when it should have returned true. Or, it may have failed with a null pointer exception. The bug manifested itself when an entry being replaced is on disk, either because it was overflowed to disk or because it was not yet initialized from disk.
  • GEODE-1800/GEM-921: Fixed the cause of a ParallelGatewaySenderQueue race condition.
  • GEODE-1830/GEM-938: Fixed a bug that caused client CacheListener methods to incorrectly receive a tombstone marker for a destroyed region entry.
  • GEODE-1834/GEM-877: The gfsecurity.properties file may now be renamed or moved to a different location, and the correct SSL settings will be used.
  • GEODE-1840/GEM-952: Fixed a bug in which predicates of queries lost their operator type.
  • GEODE-1862/GEM-909: Fixed a bug that manifested itself as a request to list durable continuous queries returning an empty string.
  • GEODE-1864/GEM-968: Fixed a bug that manifested itself as incorrect maintenance of an index when a map key no longer exists.
  • GEODE-2021/GEM-1043 Fixed a bug in which get operations within a transaction operating on data that was not colocated failed to generate a TransactionDataNotColocatedException.
  • GEM-845: Region attribute multicastEnabled is now properly honored for region operation communications.
  • GEM-961: A function no longer gets executed twice on gateway receivers when groups are also configured.

Issues Resolved in Pivotal GemFire 8.2.1

The following issues have been resolved in this release of Pulse:

  • #1336: NumQueues is now part of a member's basic Details widget.
  • GEM-415: Added support to allow region names to contain hyphens.

The following issues have been resolved in this release of the modules:

  • GEM-126: Fixed a null pointer exception from the GemFire tcServer Module when sessions do not have a context name set.
  • GEM-547: Eliminated a spurious warning message generated by the HTTP Session Management Module that contained the string "attribute is already a byte[]."

The following issues have been resolved in this release of GemFire:

  • The gateway event substitution filter no longer serializes substitute values.
  • Backup directory names for cluster configuration now incorporate nanoseconds, instead of minutes, to avoid failure upon the export of a second configuration within the same minute.
  • 51983: Fixed a bug that caused gfsh to return with the wrong return value after command failure.
  • 52078: To avoid a distributed deadlock, GetMessage will not be processed inline if the partitioned region is persistent or LRU, unless the conserve-sockets property is false.
  • 52101: Fixed a bug that caused gfsh help create gateway-sender and gfsh help create gateway-receiver to fail.
  • 52303: Starting and stopping a locator with a membership-port-range of 3 ports no longer fails on the fourth attempt to start the locator.
  • 52387: Improved the performance for HARegionQueue and CQ by reducing garbage generation during the processing and sending of CQ-related event messages.
  • 52410: Fixed a race condition bug that caused region initialization to hang.
  • 52445: Fixed a bug that caused the inclusion of an incorrect UNDEFINED value in an OQL query result.
  • 52477: Fixed a bug that caused authentication between a gateway receiver and a gateway sender to fail.
  • 52482: The gfsh locate entry command no longer fails to find its entry on partitioned regions when the key is not a string.
  • 52501: Improved the performance for HARegionQueue and CQ by reworking internal locking and monitors to improve concurrency and the messaging of JGroupMembershipManager.
  • 52503: Auto reconnect for locators now works.
  • 52517: Concurrent region create and region destroy operations on partitioned regions no longer hang.
  • 52649: All caches now throw a cacheCloseexception if putAll fails during a cache close.
  • GEM-19: Fixed a bug in which a key index would not be used due to a failed internal mapping.
  • GEM-20: Improved the performance of single filter join queries.
  • GEM-21/GEODE-478: Reduced the WAN batch size, such that a message does not exceed the 2 GB size that a receiver can handle.
  • GEM-22/52651/GEODE-396: Fixed a bug such that servers now honor server-ssl- properties properly.
  • GEM-23/52652/GEODE-397: Fixed a bug such that clients now honor server-ssl- properties properly.
  • GEM-24: Improved the reaction and error handling in response to crashed members.
  • GEM-35: Fixed a bug which manifested itself in the return of bad region entry values when doing a query with gfsh and a value was null.
  • GEM-40: Fixed a bug in which a locator may not stop correctly with a property of jmx-manager-port=0.
  • GEM-44: Fixed a bug in which a transactional operation in a partitioned region failed with a NullPointerException when accessing an overflowed entry.
  • GEM-71: Fixed a memory leak in the locator.
  • GEM-75: Clear text passwords are no longer in the log file for an SSL keystore.
  • GEM-79/GEM-416/52550/GEODE 774: To avoid an uncaught exception, a WAN retry event will not be distributed without a version tag.
  • GEM-94/GEODE-332: Reuse threads in peer to peer connection management for both a performance improvement and a reduced memory footprint.
  • GEM-95: Ignore white space for SAX parser with schema validation under Java 1.7.
  • GEM-96/GEODE-678: Fixed a bug in which an attempt to reenter a distributed lock with a short timeout could cause the lock to be completely released.
  • GEM-111/GEODE-541: Fixed an incompatibility in which 8.0.0.9+ clients could not interact with 8.1+ servers.
  • GEM-128/48285: Eliminated a rare distributed deadlock bug that could occur with gateway LIFO eviction during startup. Changing the LIFO eviction prevents the deadlock.
  • GEM-140/51484: Fixed a bug that manifested as an incorrect queue size statistic.
  • GEM-166/GEODE-670: The Sizeable interface is now used to size a GatewaySenderEvent when added to or removed from the queue.
  • GEM-167/52023: Fixed a null pointer exception thrown from ServerConnection method getPostAuthzRequest().
  • GEM-182/45506: Messages logged for each SSL connection are now logged at the debug level. They were previously logged at the info level.
  • GEM-199/GEODE-581: Added a load probe class that balances buckets based on bucket count, rather than size. To use, set the system property gemfire.ResourceManager.PR_LOAD_PROBE_CLASS to com.gemstone.gemfire.internal.cache.partitioned.BucketCountLoadProbe.
  • GEM-213/GEODE-605: Fixed HTTPS access for the REST Swagger UI.
  • GEM-220: Modifying a cache loader with AttributesMutator during the bucket creation of a partitioned region could result in buckets not having a cache loader. Eliminated a race condition, to ensure that buckets will always receive the new cache loader.
  • GEM-231: Corrected the event queue size statistic that is displayed in gfsh and the jmx manager.
  • GEM-372: Fixed a memory leak that manifested as a performance slowdown over time for transactions on regions with AsyncEventListeners.
  • GEM-273/GEODE-718: Eliminated the logging of clear text passwords in a gfsh history file.
  • GEM-278/GEODE-825: Fixed a bug that caused additional, extraneous events to be sent to a subscription client when using cache loader.
  • GEM-286: Fixed a bug that caused an unexpected exception while processing tombstones. If an unexpected exception occurs, we now skip processing the tombstone and go on to the next one within the garbage-collection queue.
  • GEM-287/GEODE-886: Fixed a bug in which specifying ENUM types in an IN query returned no results.
  • GEM-334/GEODE-915: If the system property gemfire.FORCE_INVALIDATE_EVENT is set to true, then an afterInvalidate will be sent to CacheListeners even if the entry does not exist or if the entry is already invalid.
  • GEM-337/GEODE-794: Fixed a bug that improperly threw an exception while an update was in progress for a running query.
  • GEM-348/GEODE-1027: Correctly initialize the RegionMBean upon server restart to avoid reporting an entryCount of 0.
  • GEM-369/GEODE-890: Fixed a stack overflow bug that occurred in queries containing LIKE clauses executed from multiple clients concurrently.
  • GEM-376/GEODE-1014: Fixed a bug that threw a PdxSerializationException while deserializing values, when verifying the put all map with security enabled.
  • GEM-418: A GatewaySender pool was not properly closed when a ForcedDisconnect occurred. This caused the member to hang upon reconnect.
  • GEM-431/GEODE-1044: Fixed a bug in which index corruption resulted in duplicate entries.
  • GEM-443/GEODE-1053: Added withFilter capability to the function execute within the REST API.
  • GEM-478: Fix a hang that occurred while doing put operation on global regions.
  • GEM-532: The FORCE_INVALIDATE_EVENT property works properly with both subscribed clients and concurrency-checks.
  • GEM-579/52028: Fixed an incorrect NullPointerException issued from FetchEntriesResponse.processChunk while operating on a partitioned region.
  • GEM-593: The GatewaySenderEventImpl serialize now catches Throwable.
  • GEM-626: Fixed a bug that caused a connection failure.
  • GEM-642/GEODE-1347: gfsh history --clear extends to history within a file; echo no longer shows passwords in cleartext.
  • GEODE-216: There is proper handling of the RegionDestroyedException.
  • GEODE-331: Upgraded jetty to 9.2.13.v20150730, which addresses CVE-2015-2080.
  • GEODE-354/52432: Improved performance for commit conflicts that involved extra large size values.
  • GEODE-380: Fixed a race condition that could cause a member to shut down before informing other members that it was shutting down. This caused the other members to view the shut down member as crashed.
  • GEODE-381/52300: Introduced the ability for gfsh to work in SSL-terminated environments.
  • GEODE-877: CacheXmlGenerator no longer uses an internal alias when it creates XML for an index.
  • GEODE-920: To avoid a null pointer exception, lazily create a HaContainer for a cache server.
  • GEODE-1236/GEODE-1248: Fixed an issue in which a gfsh shutdown could result in JVMs exiting prematurely without completing the full shutdown process. In such a case, other systems viewed the affected system as having crashed, possibly casting the situation as a network partition.

Issues Resolved in Pivotal GemFire 8.2.0

The following issues have been resolved specifically in this release of GemFire Pulse:

  • #1193: In embedded mode, Pulse displays locator's host name as cluster name.
  • #52107: Pulse region detail EntrySize says is MB, but is actually bytes.