1. GemStone/S 64 Bit 3.2.4 Release Notes

Overview

GemStone/S 64 Bit 3.2.4 is a new version of the GemStone/S 64 Bit object server. This release fixes a number of bugs in v3.2.3; we recommend everyone using or planning to use 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.3, and version 3.2.4. If you are upgrading from a version prior to 3.2.3, review the release notes for each intermediate release to see the full set of changes. In particular, if you are upgrading from version 2.4.x, note that there were substantial changes in v3.0 that impact your application.

The Installation Guide has not been updated for this release. For installation, upgrade and conversion instructions, use the Installation Guide for version 3.2.

Supported Platforms

Platforms for Version 3.2.4

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

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

For more information and detailed requirements for each supported platforms, please refer to the GemStone/S 64 Bit v3.2 Installation Guide for that platform. Note that the Linux Installation Guide does not mention SUSE or recently added versions of Red Hat and Ubuntu. Configuration information is the same as for the other Linux platforms.

GBS Versions

The following version of GBS is supported with GemStone/S 64 Bit version 3.2.4. 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.4.

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.1, 6.4, and 6.5, and SUSE Linux ES 11 SP3
  • Windows 8,
    Windows 2008 R2 and Windows 7
  • Solaris 10 on SPARC
  • Ubuntu 12.04,
    RedHat Linux ES 6.1, 6.4, and 6.5, and SUSE Linux ES 11 SP3
  • Windows 2008 R2 and Windows 7
  • Solaris 10 on SPARC
  • Ubuntu 10.04,
    RedHat Linux ES 6.1, and SUSE Linux ES 11 SP3
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.4 distribution includes VSD version 4.0. The previous version, v3.2.3, included VSD v3.2 build 34759/60. The full set of VSD changes that affect the v3.2.4 distribution include those in VSD version 3.5 as well as those in VSD v4.0.

This is a summary of these changes:

  • Initial samples in a chart incorrectly 0 or very large on Solaris and AIX (#44623)
  • Text input field does not handle backspace and similar keystrokes correctly when running on virtualized desktop (#44813)
  • Several changes and bug fixes that do not affect statmonitor data generated in v3.2.4 and earlier, but will become important in future releases. This includes support for new millisecond timestamp formats, and improvements in support for the GFS file format used by GBS. Note that VSD v4.0 can read statmonitor data generated by this and all earlier versions of GemStone/S 64 Bit and GBS.

For more details, see the Release Notes for VSD versions 3.5 and 4,0.

Changes and Bugs Fixed

Updated SSL libraries

OpenSSL continues to release security advisories. The version of OpenSSL used by GemStone/S 64 Bit v 3.2.4 has accordingly been updated to 1.0.1k.

Support for backup operations on NFS

Previously, operations performed over NFS were considered remote, and disallowed without netldi-brokered communications. Now, the following are allowed:

  • writing backups to NFS locations
  • restoring backups or tranlogs from NFS locations
  • logsender/logreceiver access to files on NFS locations

Page Cache Faults and changes in LostOT handling

There are scenarios in which Gem processes encounter page cache faults when the STN_GEM_LOSTOT_TIMEOUT is set to -1. This value indicates that the Stone should retract the Gem’s commit record, but not stop the Gem. This has always entailed a risk that some sleeping Gem would reactive and perform writes to the cache before responding to the signals. (#44866).

STN_GEM_LOSTOT_TIMEOUT now must be zero or greater.

As a result of these recently-seen problems, -1 has been disallowed as a setting for STN_GEM_LOSTOT_TIMEOUT. Now, the Gem is always stopped, either immediately if the value is 0, or after the number of seconds configured by STN_GEM_LOSTOT_TIMEOUT.

Remote Gem scenarios have risk of page cache faults due to lostOT

There are race conditions in handling lostOT that affects remote gems when GEM_PGSVR_UPDATE_CACHE_ON_READ is false. In this case, when the remote gem requires a page that is not in the shared page cache, and reads that page from disk, it may not notice a lostOT timeout that occurred at the same time. (#44818, #44817)

Changes related to Remote configurations

Remote caches did not complete shutdown

When a remote cache is shutting down (e.g., when there are no clients on that cache), the status changes to REMOTE_CACHE_IN_SHUTDOWN. The page manager did not respond to the instructions to complete shutting down the cache. No other caches could be started on this remote node, since the cache was in shutdown. (#44940)

Remote cache startup may hang if already in startup

If a remote cache is in the process of startup on a node, and another gem requires a remote cache on that node, the second gem may hang. (#44970)

Stone log messages with incomplete remote host details

While some stone log messages include hostId, IP address, and network name, on other messages only the IP address is included. Now, all messages should include complete information. (#44937)

Further details in remote cache startup message

The message printed in the stone log on remote cache startup now also includes the remote node’s IP address, and the sessionId and processId of the session that initiated the remote cache startup.

Previously, the message was of the form:

Remote cache in startup for hostId NNN  node NODENAME  timeout SECS 

Now:

Remote cache in startup on NODENAME , IPAddr , hostId NNN  timeout SECS  session SID  gemProcess PID 

Ambiguous remote cache error messages

The error "remote cache exists, but is IN_SHUTDOWN" was returned for remote cache startup failure as well as during shutdown. Now, separate error messages are returned:

remote cache exists, but has STARTUP_FAILED
remote cache exists, but is IN_SHUTDOWN

(#44936)

RemoteSharedPageCacheCount statistic incorrect

The Stone cache statistic RemoteSharedPageCacheCount reported the high water number of remote caches, not the currently active number of remote caches. (#44947)

ClientPageReads statistic not always updated

The ClientPageReads statistic was not updated when GEM_PGSVR_UPDATE_CACHE_ON_READ was FALSE. Now, when a page server reads a page, it updates ClientPageReads, regardless of whether the page is read into the shared page cache or not. (#44782)

Improved tracking for mid level caches

To make it easier to track creation of mid level caches, the Stone log will now include a line to indicate when a remote cache becomes a mid-level cache.

Remote cache on hostId NNN  node HHH  IP ::IPAddr  is now a mid-level cache. 

A new cache statistic has been added:

RemoteMidLevelCacheCount (Stone)
The number of remote mid level caches attached to this Stone.

Page server's ClientPid stat not set correctly

The Page server's ClientPid was being set before the stats were initialized, and so was not correct. (#44949)

Risk of SEGV on AIX during shared page cache monitor slot recovery

AIX only

When a process dies unexpectedly and the slot in the shared page cache must be recovered, there is a risk of SEGV. (#44904)

Failed logins no longer disable accounts under LDAP/Unix authentication

When login authentication is done by LDAP or Unix, rather than by GemStone, login failures now do not disable the account. Since responsibility for authentication has been placed on another system, it is not appropriate for GemStone to disable logins. Stone will still print a warning message indicating a number of failed login attempts have occurred, but the account will not be disabled. (#44772)

Handling a breakpoint within Smalltalk code may SEGV

If a Breakpoint is handled and resumed within Smalltalk code, it may SEGV. (#44848)

Block containing legacy Exception handler could get errors

Under some circumstances, including block temporary variable assignments, execution of blocks containing legacy Exception handler could behave incorrectly. (#44896)

Risk of SEGV when performing GemStone compressed operations

A SEGV has been seen during error conditions in closing a compressed GemStone file (a backup file). The code has been improved to ensure that the GemStone file close and the gzip close are called exactly once each in both normal and error exits. (#44900)

Potential SSL race condition communicating with gem

Previously, SSL was initialized in single-threaded mode, and while multiple reads or writes were protected, a simultaneous read and write to different threads was possible, causing coredump. Now, SSL is initialized in multithreaded mode. (#44857)

Upgraded repositories have multiple instances of exceptional floats

Exception floats, such as PlusInfinity, are referenced both in Globals and by class variables within Float class. During upgrade to 3.2.x, the references from Globals become new objects, but the Float class references remain to the previous instances. The objects are equivalent, but not identical. (#44807)

GciLibrary incorrect in upgraded repositories

GciLibrary was not correctly reinitialized during upgrade from earlier versions, and referenced the older library name. This caused errors, including failures in ExternalSessions. (#44747)

Removing users can fail in sequentially upgraded repositories

In sequentially upgraded repositories originating in older versions of GemStone/S 64 Bit or GemStone/S, the upgrade process may leave nil entries at some indexes in SystemRepository. This is expected. However, if you remove a user and specify to migrate the elements in that user's security policy to another UserProfile, the method removeAndCleanup:migrateSecurityPoliciesTo: did not expect nil, and failed. (#44839)

GsSocket getHostAddressByName: hung on incomplete host name

If the OS cannot resolve an incompletely qualified host name, the execution of
GsSocket >> getHostAddressByName: hung. Now, it will try five times before reporting an error (#44815)

Reclaim gem may run hot

If the GcHighWaterMark prevents reclaim, the ReclaimGem may run hot (#44908)

Issues with Transaction Log Restore

SystemRepository restoreStatus did not use $GS_CFTIME

The timestamp returned as part of the SystemRepository restoreStatus command did not use the $GS_CFTIME environment flag; it displayed using the default timestamp format. (#44809)

Further issues with NotTranloggedGlobals over restore

The NotTranloggedGlobals features was added in 3.0. This feature created problems in interactions with garbage collection as recorded in the transaction logs, which were exposed during restore. While many cases were fixed in v3.2, further more complex restore scenarios have exposed further problems. (#42702, #40383)

Restore of tranlogs attempted to create duplicate tranlog

There were code paths in restoring tranlogs, in which tracking the tranlogs being generated could have become incorrect, and the system attempted to start a new log with an existing tranlog number and filename. These code paths included optimizations to skip checkpoints under certain conditions, and in certain cases where multiple tranlogs were generated between checkpoints. (#44759)

Hot Standby logreceiver failures after disk full

After a disk full condition on the slave system, the logreceiver process does not resume writing tranlogs properly. (#44816)

GBS error on symbols as source code to evaluate

Changes in v3.2.3 resulted in server client libraries disallowing the use of instances of Symbol as source code to be evaluated (for example, using fwevaluate:). In 3.2.4, you may pass Symbols for evaluation, but they will be converted to Strings before sending to the GCI. (#44777)

GBS special builds have issues with evaluation strings in linked sessions

GBS special builds include a feature that can prevent traversal results from including the root object, with v3.2.3 and later. These changes required that source strings not be put into the ExportSet; otherwise, there were problems reporting compile errors. This fix was made for RPC sessions in v3.2.3, and for linked sessions in v3.2.4. (#44769)

System>>descriptionOfSession: included incorrect values

In the results from System>>descriptionOfSession:, elements 18, 19, and 21 were incorrect. These values returned results for the calling session, not for the session specified in the argument. (#44948)

Error message printed hostId as signed

In some error messages, the hostID was being printed as signed, resulting in an incorrect value. (#44939)

 

 

 

 

 

 

Chapter

1. GemStone/S 64 Bit 3.2.4 Release Notes

Overview

Supported Platforms

Platforms for Version 3.2.4

GBS Versions

VSD Version

Changes and Bugs Fixed

Updated SSL libraries

Support for backup operations on NFS

Page Cache Faults and changes in LostOT handling

STN_GEM_LOSTOT_TIMEOUT now must be zero or greater.

Remote Gem scenarios have risk of page cache faults due to lostOT

Changes related to Remote configurations

Remote caches did not complete shutdown

Remote cache startup may hang if already in startup

Stone log messages with incomplete remote host details

Further details in remote cache startup message

Ambiguous remote cache error messages

RemoteSharedPageCacheCount statistic incorrect

ClientPageReads statistic not always updated

Improved tracking for mid level caches

Page server's ClientPid stat not set correctly

Risk of SEGV on AIX during shared page cache monitor slot recovery

Failed logins no longer disable accounts under LDAP/Unix authentication

Handling a breakpoint within Smalltalk code may SEGV

Block containing legacy Exception handler could get errors

Risk of SEGV when performing GemStone compressed operations

Potential SSL race condition communicating with gem

Upgraded repositories have multiple instances of exceptional floats

GciLibrary incorrect in upgraded repositories

Removing users can fail in sequentially upgraded repositories

GsSocket getHostAddressByName: hung on incomplete host name

Reclaim gem may run hot

Issues with Transaction Log Restore

SystemRepository restoreStatus did not use $GS_CFTIME

Further issues with NotTranloggedGlobals over restore

Restore of tranlogs attempted to create duplicate tranlog

Hot Standby logreceiver failures after disk full

GBS error on symbols as source code to evaluate

GBS special builds have issues with evaluation strings in linked sessions

System>>descriptionOfSession: included incorrect values

Error message printed hostId as signed