GemStone/S 64 Bit 3.2.15 is a new version of the GemStone/S 64 Bit object server. This release include fixes for a number of rare but serious bugs.
These release notes provide changes between the previous version of GemStone/S 64 Bit, version 3.2.14, and version 3.2.15. If you are upgrading from a version prior to 3.2.14, review the release notes for each intermediate release to see the full set of changes.
For installation, upgrade and conversion instructions, use the Installation Guide for version 3.2.6. Note that on upgrade from 3.1.x, application code recompilation is now recommended.
GemStone/S 64 Bit version 3.2.15 is supported on the following platforms:
For more information and detailed requirements for supported platforms, please refer to the GemStone/S 64 Bit Installation Guide for that platform.
The following versions of GBS are supported with GemStone/S 64 Bit version 3.2.15. You must use GBS version 7.6.1 or later for VisualWorks, or 5.4.2 or later for VA Smalltalk with GemStone/S 64 Bit v3.2.15.
The version of OpenSSL used by GemStone/S 64 Bit v3.2.15 has been updated to 1.0.2h.
GemStone automatically sets the limits on memory use using setrlimit().
Now, this can be disabled using the environment variable GEMSTONE_NO_SETRLIMIT, for customers who want to configure memory limits manually.
Linux only, in 3.2.13, 3.2.14 only
Under the $GEMSTONE product directory, if a directory such as sys was a symlink to another directory location, it caused issues with gslist -v, and startstone failures.
This issue was introduced by the fix for bug 46066, which adding checking to ensure that the pid of a running process matched the expected executable. (#46196)
Linux only, in 3.2.13, 3.2.14 only
If /proc ownership is by root, and permissions are r-x------, startstone failed due to stale lock file. (#46193)
If an incomplete transaction log was replayed, and then later the same transaction log was replayed after it had completed (and therefore contained more records), it was possible for some records in the later part of the transaction log to not be replayed. This resulted in the restored system being corrupted. (#46148)
If a reverse IP lookup returned an EAI_AGAIN ("The name could not be resolved at this time. Try again later.", the NetLDI retried immediately until a valid response was returned. On systems that persistently return this error, it resulted in the NetLDI hanging. (#39354)
There was a code path in which a remote shared page cache could have deadlocked on a stuck spin lock. (#46175)
It was possible for the Page Manager thread in the stone to detect a fatal error and crash, when there was a mismatch in the number of pages that it had requested to remove from remote shared page caches. (#46171).
If a read performed on a GsSecureSocket did not read all available characters, a subsequent call to GsSecureSocket>>readWillNotBlockWithin: incorrectly returned false. (#46174)
If the classInstanceVariable: argument to a class creation method is invalid, an error is returned. Due to the way class instance variables are added after class creation, the class was still created, but was not made invariant. (#46166)
Several private subclass creation methods have been modified to include a classInstanceVariable: argument, and the private methods without this argument have been removed.