---------------------------------------------------------------------- ELOQUENCE B.08.00 - patch PE80-0907030 ---------------------------------------------------------------------- This patch adds enhancements or fixes defects of the eloqdb server program as released with Eloquence B.08.00. This patch will be integrated in the Eloquence B.08.00 release. Eloquence B.08.00 must be installed before applying this patch. Severity: PE80-0907030: BUG FIX Superseded patches: PE80-0906080: BUG FIX, ENHANCEMENT PE80-0905130: BUG FIX PE80-0904270: BUG FIX PE80-0904240: BUG FIX PE80-0904060: BUG FIX PE80-0903270: BUG FIX PE80-0903060: BUG FIX PE80-0903040: BUG FIX PE80-0902091: ENHANCEMENT PE80-0901090: BUG FIX PE80-0812180: BUG FIX Patch PE80-0907030 ------------------ Platforms: All * Fixed a potential memory leak when using multiple consecutive wildcard characters in a DBFIND argument (#3794). * Fixed a problem with DBFIND wildcard arguments where a "?*" sequence was evaluated as a single '*' wildcard character (#3794). Patch PE80-0906080 ------------------ Platforms: All * Fixed a potential memory leak when a dbctl list output exceeded the size of the shared memory communications buffer (#3785). * The dbctl list command was enhanced. A filter expression may be specified and the /count option may be used to only obtain the number of matching entries. For example: $ dbctl list session "pname=*query3k*" $ dbctl list lock /count "status=blocked" Please refer to the dbctl documentation for details: http://eloquence.marxmeier.com/support/B0800/doc/dbctl/index.html#list Patch PE80-0905130 ------------------ Platforms: All * Fixed a problem which could cause the database server to temporarily hang while on-line backup mode was shutting down (#3782). If a checkpoint operation overlapped with stopping on-line backup mode, the checkpoint could block and in turn block any existing or new database sessions until on-line backup mode was shut down. Patch PE80-0904270 ------------------ Platforms: All * This patch corrects a problem introduced with fix #3777 delivered with the previous patch PE71-0904240. Patch PE80-0904240 ------------------ Platforms: All * The dbctl forwardlog restart command did not immediately update the volume generation count in the log volume (#3777). As a possible consequence, the database server could fail to start with a message like below if it was abnormally terminated after a dbctl forwardlog restart was issued: failed to open volume: volume ... has inconsistent generation count As a workaround it is possible to manually update the generation count in the log volume in this case. Please contact support if you are affected by this. Patch PE80-0904060 ------------------ Platforms: All * Fixed a problem where a database was not immediately available after a dbutil restructuring (#3751). A subsequent DBOPEN executed immediately after a restructuring dbutil process had finished could in some cases encounter a database status -2 (database in use). * Resuming a replication or recovery could in rare cases abort with a message like below (#3752): Assertion failed: Fwr_PageHashAdd() failed: key already present server panic: Aborting on internal failure, file volfwr.c, line 5367 This could happen in a corner case if a user transaction spans multiple forward-log files, where BTREE PAGE actions are present in different files at identical offsets. Under these conditions the problem could be triggered if these files had to be processed to locate the last status of the replication progress. * Resuming a replication or recovery could in rare cases abort with a message like below (#3755): recovery failed ... node ... page ... not in expected state Assertion failed: h->lower == data->lower server panic: Aborting on internal failure, file btree.c, line 2382 This could happen in a corner case if a user transaction spans multiple forward-log files, where the transaction was executed immediately after the last status of the replication progress was found and the replication was resumed. Patch PE80-0903270 ------------------ Platforms: All * Under certain conditions the database server could hang due to an internal deadlock (#3739). In rare cases under high load, if a deadlock was detected between two tasks so that one of these tasks was signaled, and at the same time another task detected the same conflict as the task being signaled, a deadlock could occur. As a consequence, the database server did no longer accept new connections and could not be shut down but had to be killed. * In rare cases under high load, the database server could abort with a message like below (#3741): Assertion failed: current_task->waiting_for == NULL server panic: Aborting on internal failure, file thread.c, line 2837 If a deadlock was detected between two tasks so that one of these tasks was signaled, the task being signaled could in some cases remain connected to the conflicting task. This could then cause the problem to occur due to an out-of-context notification. * A race condition was fixed that could cause a DBPUT or DBUPDATE operation to fail with a -809/1024 status (#3742). During a DBPUT or DBUPDATE executed simultaneously with a DBDELETE, the database server could temporarily encounter an inconsistent state of an automatic master chain head, where the master key was found in the index while the corresponding master record did no longer exist. * A race condition was fixed that could cause a wrong date/time prefix being written to the database server log file (#3731). Patch PE80-0903060 ------------------ Platforms: All * An internal memory leak was fixed (#3708). Some memory was not correctly released when a new connection was established. This may eventually result in memory allocation failures that require a re-start of the database server process. Patch PE80-0903040 ------------------ Platforms: All * A dbutil RENAME DATABASE operation could cause the database server to abort with a message like below (#3704): Assertion failed: SysCat_LinkAddrEquals ... server panic: Aborting on internal failure, file syscat.c, line 1943 * An internal memory leak was fixed (#3708). Some memory was not correctly released when closing a connection. This may eventually result in memory allocation failures in the database server process that require a re-start of the server process. * In rare cases, a malformed client request or an incomplete tcp/ip network packet could cause the database server to abort with a message like below (#3705): Assertion failed: size != 0 server panic: Aborting on internal failure, file buffer.c, line 777 Patch PE80-0902091 ------------------ Platforms: All * This patch enables dbutil to change item order (#3689). Notes / Related patches: - dbutil patch PE80-0902090 (or superseding) supports changing item order. Patch PE80-0901090 ------------------ Platforms: All * Fixed an internal race condition that could cause a database server abort in rare cases when concurrently disconnecting multiple database sessions (#3696). A message like below is output to the log file: Assertion failed: thread_rwlock_destroy failed server panic: Aborting on internal failure, file thread.c, line 1815 The stack trace shows the following call stack: (1) thread_rwlock_destroy (2) Node_DeleteNodeMempageIfEmpty (3) Node_Delete (4) Tlog_Destroy (5) idb_exit_session * The dbctl forwardlog status command no longer requires dba privileges. Patch PE80-0812180 ------------------ Platforms: All * During an automatic forward-log file switch it could happen in rare cases that transactions were not written to the forward-log (#3694). As a consequence, a recovery or replication from this forward-log would fail, for example with a message like below: recovery failed in action ... page ... not in expected state server panic: Fatal problem detected in btree_FWR__verify_page Assertion failed: h->lower == data->lower * A DBGET mode 6 or 16 on an index item could improperly return an end-of-chain condition when the last key in the index was deleted (#3683). Installation: ------------- Please download the patch archive that corresponds with the installed release. The patch files follow the conventions below: PE80-0907030-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.0 gzip -dc /path/to/PE80-0907030-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/PE80-0907030-README Linux: In order to install this patch, you need to unpack it with tar. Installation requires root privileges. cd /opt/eloquence/8.0 tar xzf /path/to/PE80-0907030-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/PE80-0907030-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 PE80-0907030-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 PE80-0907030-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.0\bin) * Please copy the PE80-0907030-README.txt file into the Eloquence share\doc directory. (Default location: C:\Program Files\Eloquence\8.0\share\doc) Files: eloqdb32.exe (32 bit database server) eloqdb64.exe (64 bit database server) PE80-0907030-README.txt