November 22, 2016 – Alert: Database Integrity on UNIX® and Linux Platforms
InterSystems has corrected a defect that may, in rare circumstances, result in database degradation on UNIX and Linux platforms.
This defect affects Caché, Ensemble, and HealthShare distributions beginning with Caché version 2012.1. It is only a possible risk on UNIX and Linux platforms that are using asynchronous I/O for database writes. The following table specifies if asynchronous I/O is always on or optional for the affected platforms and releases:
Platform | Versions 2012.1 to 2015.1 | Version 2015.2 and later |
AIX | Optional | Always on |
HP/UX | Optional | Always on |
Linux (all) | Optional | Optional |
MacOS | Optional | Always on |
Solaris | Optional | Always on |
For platforms where asynchronous I/O is optional, you can determine if it is in use by examining the cconsole.log file. In that file, at instance startup, locate a reference to:
swdwrtmax=
If this is set to a non-zero value, then asynchronous I/O is in use.
It is only possible to trigger this defect when a hardware or OS-level I/O error occurs while writing to storage AND the environment recovered without needing to be restarted (that is, the environment did not hang). Such an I/O error may result in the following corresponding message in the cconsole.log:
****** SERIOUS DISK WRITE ERROR - WILL RETRY ******
However, a write error can occur without triggering the defect. (That is, the presence of an I/O error or a cconsole.log message does not guarantee that the defect has been triggered.)
If a system has experienced the above, check the integrity of databases on the affected storage via the InterSystems integrity check utility.
The correction for this defect is identified as JO2950. It will be included in all future releases of Caché, Ensemble, and HealthShare. The correction is also available via Ad Hoc distribution from InterSystems Worldwide Response Center (WRC). If you have any questions regarding this alert, please contact the Worldwide Response Center.