---------------------------------------------------------------------- ELOQUENCE B.08.10 - patch PE81-1302270 ---------------------------------------------------------------------- This patch adds enhancements or fixes defects of the eloqdb server program as released with Eloquence B.08.10. This patch will be integrated in the Eloquence B.08.10 release. Eloquence B.08.10 must be installed before applying this patch. Severity: PE81-1302270: BUG FIX Superseded patches: PE81-1210040: BUG FIX, ENHANCEMENT PE81-1110210: BUG FIX PE81-1109290: BUG FIX PE81-1109210: BUG FIX PE81-1109020: BUG FIX PE81-1102250: BUG FIX PE81-1012200: BUG FIX PE81-1011110: BUG FIX Patch PE81-1302270 ------------------ Platforms: All * Fixed a problem where in a rare case a data block in the volume files might get corrupted when on-line backup mode is stopped (#4108). Depending on the database activity, operating system load and I/O activity a disk write might get reordered while on-line backup mode is stopped. This could result in stale data written to the data volume. * Fixed a possible transaction journal corruption if the database server was stopped (or aborted) while in on-line backup mode after using the dblogreset or dbrecover utility (#4126). The database server process might allocate the transaction journal in an improper mode if the dbrecover or dblogreset utility was used before starting the server process. If the server is subsequently shut down (or aborted) while in on-line backup mode the volume recovery might fail. * Fixed a problem where under certain conditions a dbutil DELETE SET / CREATE SET sequence could result in a broken chain (#4116). If a data set was deleted and then recreated in the same dbutil invocation the chain pointers were not correctly initialized in some cases. * Fixed a problem where a DBGET mode 6 could miss one record after a TurboIMAGE TPI DBFIND on a master set using a less-or-equal condition. * Modified the database server startup behavior in case a transaction journal corruption is detected. If the database server aborts unexpectedly due to a power failure or an operating system problem and the SyncMode configuration has been deactivated, it might happen in rare cases that the transaction journal is damaged so that on startup the database server cannot perform its usual transaction recovery. In such a case, the database server now aborts immediately with a message like below, preventing the problem to remain unnoticed: "WARNING: Unable to perform volume recovery due to inconsistencies. Please restore the data volume files from a backup, then use dbrecover to apply the forward-log. If this is not possible, use dblogreset to manually perform a volume recovery, then check the data volume with dbfsck." Patch PE81-1210040 ------------------ Platforms: All * Fixed a problem where under rare conditions the HTTP thread could terminate unexpectedly on a failed network call (#4094). A message like below would be logged: X0: [7] getsockname failed. [22] Invalid argument D0: [7] Unable to obtain local address - dropping connection As a consequence, the HTTP status did no longer respond. Also, this could cause new connections to hang because an unexpected thread id was used. * Fixed a problem where the database server process could abort during startup with a message like below (#4110): Assertion failed: node server panic: Aborting on internal failure, file nodecore.c, line 1437 A forward-log record was wrongly initialized under some rare conditions. * Fixed a problem where a dbutil UPGRADE DATABASE command could cause the database server process to abort with a message like below (#4098): Assertion failed: col->colid > unique server panic: Aborting on internal failure, file syscat.c, line 4393 This could happen if UPGRADE DATABASE was applied to a database where the items were reordered alphabetically so that the column identifiers were no longer incremental. * Fixed potential performance issue on TurboIMAGE DBFIND modes 1/21 on index items (#4101). An index search on key arguments containing the * or [ characters could be inefficient in certain cases due to internal wildcard masking rules. * Fixed a potential compatibility problem with dbstore archives that were created with newer database server versions (#4073). * Improved the database compatibility checks on DBOPEN (#4073). * Added diagnostic messages on internal log record hash inconsistency (#4068). Patch PE81-1110210 ------------------ Platforms: All * Fixed a problem where under rare conditions the database server could abort due to a segment violation if multiple dbctl list invocations were issued at the same time (#4065). Patch PE81-1109290 ------------------ Platforms: All * The dbctl list session and dbopen commands as well as the HTTP status session and database lists could in rare cases cause the database server to abort due to a segment violation (#4063). This was caused by an internal race condition where a session was accessed that was just closing a database. Patch PE81-1109210 ------------------ Platforms: All * The dbctl list db and dbopen commands as well as the HTTP status database list could in rare cases cause the database server to abort due to a segment violation (#4062). This was caused by an internal race condition where a session was accessed that was just shutting down. Patch PE81-1109020 ------------------ Platforms: All * Fixed a problem that could result in a database server hang due to an internal deadlock under rare conditions (#4059). If a data volume runs out of space while on-line backup mode is active, a transaction record is written to the log volume to postpone the data volume extension until on-line backup mode is stopped. Under rare conditions, writing this transaction record could overlap with a concurrent checkpoint operation in a way that an internal deadlock could occur. Patch PE81-1102250 ------------------ Platforms: All * Fixed a corner case incompatibility with TurboIMAGE (#4024). In TurboIMAGE a failed DBFIND call does not change the current chain. This behavior change does not apply to programs written in the Eloquence language. This change is only effective if this patch and the related client library patch PE81-1102251 (or newer) are installed. Patch PE81-1012200 ------------------ Platforms: All * Fixed a problem where in a rare corner case the database server process could abort with a message like below (#3781): Assertion failed: !node->ref_count server panic: Aborting on internal failure, file nodecore.c, line 388 This was caused by an internal race condition between client session termination and a concurrent dbpurge operation on one of the involved databases. Patch PE81-1011110 ------------------ Platforms: All * Fixed a problem that could result in a server panic when deleting a record. The following message is written to the server message log: Assertion failed: set_ctx->idx_mode == IS_INVAL This can happen under the following conditions: 1. The database is accessed from the Eloquence language 2. The database client cache is enabled 3. Some records were read (eg. sequential) but additional records are in cache 4. A DBFIND on an index item in the same data set is called 5. A DBELETE is called to delete the record In this case the current record differs between the client and server side and nees to be re-established. However, a DBDELETE did not expect a previous index lookup in this case. Installation: ------------- Please download the patch archive that corresponds with the installed release. The patch files follow the conventions below: PE81-1302270-hpux-ia64.tar.gz ^ ^ ^ | | Architecture / OS specific build | Operating system Patch ID HP-UX: In order to install this patch, you need to unpack it with gzip and tar. Gzip is included with HP-UX. Installation requires root privileges. cd /opt/eloquence/8.1 gzip -dc /path/to/PE81-1302270-hpux.tar.gz | tar xf - Files: bin/eloqdb32 (32 bit database server) bin/eloqdb64 (64 bit database server, not available on hpux-pa11) share/doc/PE81-1302270-README Linux: In order to install this patch, you need to unpack it with tar. Installation requires root privileges. cd /opt/eloquence/8.1 tar xzf /path/to/PE81-1302270-linux.tar.gz Files: bin/eloqdb32 (32 bit database server, only available on linux-i686) bin/eloqdb64 (64 bit database server, not available on linux-i686) share/doc/PE81-1302270-README Windows: Two options are available for patch installation. The patch is available as self extracting archive for automatic installation and as a zip archive for manual installation. Both patches are equivalent. Installation requires administrative capabilities. For automatic installation of this patch, please download the patch file PE81-1302270-win32.exe. Before installation, please consider stopping the database server, then execute the patch installation program. Installation does not require a reboot unless the patched files were active. For a manual installation of the patch, please download the patch file PE81-1302270-win32.zip and unpack its contents. Then perform the following steps: * Please make sure the eloqdb service is stopped before installing the patch (in the Service Control Manager or with net stop eloqdb). * Please copy the eloqdb32.exe and eloqdb64.exe files into the Eloquence bin directory. (Default location: C:\Program Files\Eloquence\8.1\bin) * Please copy the PE81-1302270-README.txt file into the Eloquence share\doc directory. (Default location: C:\Program Files\Eloquence\8.1\share\doc) Files: eloqdb32.exe (32 bit database server) eloqdb64.exe (64 bit database server) PE81-1302270-README.txt