The following bugs were present in v3.5.4 and are fixed in this version.
If the stone is shut down after the markForCollection, but before promoteToDead, and the possibleDead set is very large, the restart of the stone may take a long time (30 minutes was observed with a 4 billion size possibleDead). (#49109)
When a session is waiting on a GsSocket >> accept, it did not respond to a stopSession out-of-band signal. (#49120)
The logsender did not work correctly if the transaction logs generated by the master stone did not have the default name tranlogNN.dbf; that is, if the setting for STN_TRAN_LOG_PREFIX was not left at the default. (#48706)
If a running logsender attempts to login to a restarted stone, and the login fails (such as incompatible Gem version), there was excessive printing to the stone log, as well as to the logsender log. Now, only a single login failure message is printed to the Stone log, and logsender prints messages less frequently. (#48752, 48957)
Linked topaz and HostAgents may have excessive CHeap memory use after failed X509 logins. (#49230)
When a clustering operation in a tranlog is being replayed, and the object was already modified by another tranlog replay and is not yet committed, clustering of that object to a different cluster bucket may be ignored, if the new cluster bucket does not relate to the object’s current page. (#48509)
When a repository scan operation is running while sessions are voting on dead objects, there is a small risk that objects that were faulted into memory that are being promoted to dead. This could potentially allow references to dead objects to be committed. (#49051) Now, this will cause a repository scan to error with "An atomic promote detected during operation, results are compromised - please try again".
Configuration parameters that take lists should allow empty elements (that is, two comma dividers with nothing or white space between them). This was not working for DBF_PRE_GROW. (48967)
When there is a large commit record backlog to dispose, the Stone may be unresponsive until the backlog is completely disposed. (#48755)
The thresholds that managed garbage collection in the code_gen space of temporary object memory were not configured correctly, so cases that placed pressure on code_gen could encounter OutOfMemory errors. (#49143)
When the Stone named in topaz login parameters is not found, the error message returned to topaz included a number of secondary and duplicate errors. (#49032)
GsHostProcess requires a full path to the executable, it does not do a path lookup. The error message when the path was omitted was not helpful in understanding the problem. (#48761).
If the file to which statmonitor is writing is deleted, statmonitor opens a new file and continues writing. However it may write the buffered data to the new file before it writes the statmonitor header; which means VSD cannot read the file. (#49233)
When running with statmonitor -r or -R, which automatically create new files periodically, a new filename is generated containing an incremented sequence number. However, if the current file is moved or deleted, a file with that same sequence number was generated, rather than the next in the logical sequence. (#49235)
Topaz includes a number of predefined variables, which should not be redefined. The ErrorCount variable was not previously disallowed in define, which could cause unexpected behavior; for example, from errorcount or exit/quit. (#48977)
When executing with display bytes, the output for byte objects such as Strings include both the text, broken up into 20-byte lines, and the corresponding bytes. When displaying multi-byte characters, the line breaks were inserted off by one. (#49190)
The code in TimeZone fromPath: first looks for zoneinfo on the given path on the server; previously, if this was not found, it would attempt to find the given path on the client. Now, it searches only on the server. (#49009)
Duration printing prints in milliseconds resolution. If this printing would normally round up to a full seconds (0.9999, for example), this did not increment the whole second, but left the subseconds as 0. Rounding up in now capped at .999. (#48802)
The argument to GciTsLibrary >> version: was limited to specific versions, and failed to match some legal version numbers. (#48879)
The source code for the image method RangeEqualityIndex>>isBasicClass: contained a reference to the class JISCharacter, which was moved to ObsoleteClasses in an earlier version; this method could not be recompiled. The reference has been removed. (#48343)