GemStone/S 64 Bit 3.2.14 is a new version of the GemStone/S 64 Bit object server. This release includes several minor new features and fixes two critical bugs; we recommend everyone using GemStone/S 64 Bit v3.2.x upgrade to this new version.
These release notes provide changes between the previous version of GemStone/S 64 Bit, version 3.2.13, and version 3.2.14. If you are upgrading from a version prior to 3.2.13, 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; see Upgrade.
GemStone/S 64 Bit version 3.2.14 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.14. 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.14.
The upgrade instructions from 3.1.x to 3.2.x do not specify that method recompilation is required. However, there were minor changes in the bytecodes generated from method compilation between v3.1.x and 3.2.x, related to the changes that allow a step point at the beginning of a method.
A case has been observed in which a SEGV in a Gem was apparently related to this difference in the bytecodes. While this is a very rare situation and is not believed to be at risk for causing any other problems, for reliability it is recommended that all application methods be recompiled as part of the 3.1.x to 3.2.x upgrade process.
The way CCallout handles the C global errno has been changed in this release.
Now, the errno resulting from a C-level call via CCallout is cached in VM memory. Each time that CCallout >> callWith: is invoked, errno is set to the cached value before the function, and the cached value is set to errno after the function executes. This preserves the value against other GemStone internal calls.
CCallout has added class methods to access the cached value:
CCallout class >> errno
Returns the SmallInteger value of the C global variable errno that was saved by the most recent invocation of CCallout >> callWith:.
CCallout class >> errno: aSmallInteger
If aSmallInteger == -1, Returns the SmallInteger value of the cached errno value, ffiErrno. If aSmallInteger >= 0, stores aSmallInteger into the session's cache.
The output of the printlogs utility is used for debugging and for analysis of repository transaction. When printing page information, the output can include data incidental to the actual issue being examined, in the form of strings that may include sensitive information.
Now, the added nostrings argument to printlogs suppresses printing the contents of all kinds of strings and similar byte collections, including ByteArrays. .
The interface between the libgci and libicu shared libraries has been modified, to make future upgrades to new versions of ICU more flexible. This change has no impact on the behavior in 3.2.1.4.
The following statistic has been added:
AlmostOutOfMemoryCount (Gem)
AlmostOutOfMemoryCount is the number of times that either an AlmostOutOfMemory notification was signalled to the application, or smalltalk stack was printed to the gem log because temporary object memory was approaching full.
The fix on Linux for bug 46066 in v3.2.13 introduced a file descriptor leak. The leak can result in the NetLDI getting into a state where it does not respond to requests, and continuously prints SocketAccept errors with the "Too many open files" message, potentially filling up the file system. (#46143)