1. GemStone/S 64 Bit 3.2.14 Release Notes

Overview

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.

Supported Platforms

Platforms for Version 3.2.14

GemStone/S 64 Bit version 3.2.14 is supported on the following platforms:

  • Solaris 10 and 11 on SPARC
  • Solaris 10 on x86
  • AIX 6.1 and AIX 7.1
  • Red Hat Linux ES 6.4 and 6.5, Ubuntu 12.04, and SUSE Linux Enterprise 12, on x86
  • Mac OSX 10.6.8 (Snow Leopard), with Darwin 10.8.0 kernel, on x86

For more information and detailed requirements for supported platforms, please refer to the GemStone/S 64 Bit Installation Guide for that platform.

GBS Versions

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.

GBS version 8.1

VisualWorks
7.10.1

32-bit

VisualWorks
7.10.1

64-bit

  • Windows 8, Windows 2008 R2 and Windows 7
  • Solaris 10 on SPARC
  • Ubuntu 12.04, RedHat Linux ES 6.4 and 6.5, and SUSE Linux ES 12
  • Windows 8, Windows 2008 R2 and Windows 7
  • Solaris 10 on SPARC
  • Ubuntu 12.04, RedHat Linux ES 6.4 and 6.5, and SUSE Linux ES 12
GBS version 7.6.1

VisualWorks
7.10.1

32-bit

VisualWorks
7.10.1

64-bit

VisualWorks

7.9.1

32-bit

  • Windows 8,
    Windows 2008 R2 and Windows 7
  • Solaris 10 on SPARC
  • Ubuntu 12.04, RedHat Linux ES 6.4 and 6.5, and SUSE Linux ES 12
  • Windows 8,
    Windows 2008 R2 and Windows 7
  • Solaris 10 on SPARC
  • Ubuntu 12.04, RedHat Linux ES 6.4 and 6.5, and SUSE Linux ES 12
  • Windows 2008 R2 and Windows 7
  • Solaris 10 on SPARC
  • Linux ES 6.4 and
    SUSE Linux ES 12
GBS version 5.4.2

VA Smalltalk
8.6

VA Smalltalk
8.5.2

  • Windows 8, Professional or above
  • Windows 2008 R2
  • Windows 7, Professional or above
  • Windows 2008 R2
  • Windows 7

For more details on supported GBS and client Smalltalk platforms and requirements, see the GemBuilder for Smalltalk Installation Guide for that version of GBS.

VSD Version

The GemStone/S 64 Bit v3.2.14 distribution includes VSD version 5.1.3. The previous version of GemStone/S 64 Bit, v3.2.13, included VSD v5.1.2.

Between v5.1.2 and v5.1.3, the changes consist of new statistics definitions.

For more details, see the Release Notes for VSD v5.1.3.

Upgrade

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.

Changes and New Features

Handling C-level errno from CCallout

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.

printlogs utility now allows suppression of displaying strings

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. .

Internal changes to shared libraries related to ICU

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.

Added Cache Statistic

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.

Bugs Fixed

File descriptor leak in NetLDI on Linux

Linux and v3.2.13 only

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)

GsFile write following a read may write at end of file

When a GsFile was open for update (that is, for both reading and writing), in certain cases if a read operation is followed by a write, the text to be written was appended to the end, not at the desired location. (#46120)