---------------------------------------------------------------------- HP ELOQUENCE A.06.20 - patch 9906100 ---------------------------------------------------------------------- This patch fixes a defect of the eloqdb6 program as released with A.06.20. This patch will be integrated in a subsequent HP Eloquence release. A.06.20 must be installed before applying this patch. This patch replaces patches PE62-9902110, PE62-9902170, PE62-9902221, PE62-9902222, PE62-9903040 (beta), PE62-9903080, PE62-9903240 (beta), PE62-9903290, PE62-9903311, PE62-9904060, PE62-9904080 (beta), PE62-9904090 (beta), PE62-9905110 (beta), PE62-9904120 and PE62-9905250. Fixed problems: --------------- Platforms: All * A zero record number in the free record list causes a panic in Node_RemoveFirstItem() during DBPUT. This patch takes care of a possible side effect when encountering the zero record number. Assertion failed: freelist_miss == 0 server panic: Aborting on internal failure, file volfrec.c, line 861 The zero record number is placed into the record free list during pre-commit phase of a DBDELETE operation to ensure that the free list does not need to be expanded during the final commit phase. There was a small window of opporunity that a concurrent DBPUT would request a new record number and could get that reserved entry. This situation was not expected and the server paniced. * The buffer allocation strategy in the buffer cache has been slightly modified to handle cases of committing large transactions with a small buffer cache configurtion more gracefully. Patch PE62-9905250 ------------------ Platforms: All * Due to a race condition, simultaneous DBOPEN and DBCLOSE operations could cause a server panic in rare situations. Assertion failed: prev_link != NULL server panic: Aborting on internal failure, file vroot.c, line 207 Patch PE62-9905110 ------------------ Platforms: All * A zero record number in the free record list causes a panic in Node_RemoveFirstItem() during DBPUT. This patch adds a workaround to handle this particular case more gracefully and ignore the offending list entry. Assertion failed: item_ptr->id server panic: Aborting on internal failure, file nodeilist.c, line 658 Patch PE62-9904120 ------------------ Platforms: All * Transaction isolation in the fixrec subsystem did not work correctly. This could cause a server panic if a commit operation was executed concurrently to a read operation. Assertion failed: f_bhp->id.node_id == node_id server panic: Aborting on internal failure, file mpool.c, line 391 Assertion failed: Pool_TestFlag(Pool_BLOCKUSED, &header) server panic: Aborting on internal failure, file volpool.c, line 2372 Patch PE62-9904090 ------------------ Platforms: All * dbctl dbstore could cause a PIN leak when running out of disk space. This will lead to a subsequent server panic. * dbctl dbrestore may cause a server panic when using dbutil subsequently. Assertion failed: f_bhp->id.node_id == node_id server panic: Aborting on internal failure, file mpool.c, line 391 Assertion failed: header.size >= addr->size server panic: Aborting on internal failure, file volpool.c, line 3456 Patch PE62-9904080 ------------------ Platforms: All * dbctl backup stop could cause a eloqdb6 panic. Assertion failed: hash_table[ndx] != NULL server panic: Aborting on internal failure, file volredir.c, line 207 * A eloqdb6 crash during on-line backup could cause a subsequent failure to open the volume files. Unable to open data base volumes. Vol_Open() failed with VOLE018 Patch PE62-9904060 ------------------ Platforms: All * Crash recovery could fail with an internal problem. server panic: Fatal problem detected in Node_RecoverItemPage Assertion failed: rec->prev_page_timestamp == prev_ilist->timestamp + 1 server panic: Aborting on internal failure, file nodeilist.c, line 1314 Patch PE62-9903311 ------------------ Platforms: All * Crash recovery could fail with internal error. Assertion failed: iter->anch->last_block.offset == iter->addr.offset server panic: Aborting on internal failure, file volpool.c, line 136 * A corner case with disabling on-line backup mode could cause data corruption if a checkpoint operation was executed concurrently. * Disabling on-line backup mode could cause a server hang. * A server crash while in backup on-line mode could cause an internal failure the next time on-line backup mode was enabled. Assertion failed: !Vol_TestFlag(Vol_IS_REDIRECTED, &root_vol[idx].header)) server panic: Aborting on internal failure, file volredir.c, line 568 Due to a related reason, dbfsck or dbvolextend could refuse to modify a volume, complaining that the volume is still in on-line backup mode. * dblogreset shares the same recovery routines as the eloqdb6 server. So a new version is included in this patch. Patch PE62-9903290 ------------------ Platforms: All * eloqdb6 could abort with an internal failure. Assertion failed: header.size >= addr->size server panic: Aborting on internal failure, file volpool.c, line 1985 Assertion failed: Pool_TestFlag(Pool_BLOCKUSED,&header) server panic: Aborting on internal failure, file volpool.c, line 2132 * When a client was disconnected (killed) eloqdb6 could cause a high load when the associated internal thread was blocked. For example, when eloqcore is blocking on a DBLOCK and is killed the eloqdb6 process could busy waiting until the lock becomes available, consuming almost all CPU resources. Patch PE62-9903080 ------------------ Platforms: All * Crash recovery could cause fixrec meta data corruption. This could either cause image status errors status 17 or -96 or lead to a eloqdb6 server panic. Assertion failed: FixRec_FinalCommitDelete(): record counter inconsistency server panic: Aborting on internal failure, file volfrec.c, line 3089 The dbfsck utlity can be used to verify or correct fixrec meta information. * Crash recovery could leave unassigned index and system catalog data pages. In rare situations, this could lead to data corruption. * dbctl dbrestore could cause a deadlock. When a database is restored, user/group memberships are deleted. This could cause a deadlock. Patch PE62-9902222 ------------------ Platforms: All * DBUPDATE mode 1 on a standalone detail set returned status 41 Patch PE62-9902221 ------------------ Platforms: All * DBFIND/DBGET on index item or QFIND on index item could fail. Patch PE62-9902170 ------------------ Platforms: All * A race condition could cause a eloqdb6 panic. Assertion failed: bhp->id.page_id == ++page_id server panic: Aborting on internal failure, file mpool.c, line 415 This was triggered by a low buffer space condition where a buffer page was re-used unexpectedly by the same thread. * A race condition in Node_Open() could cause a eloqdb6 panic. Assertion failed: meta server panic: Aborting on internal failure, file volfrec.c, line 2274 This was triggered by a condition where multiple threads were opening a node and the first one was blocked to read the node meta data. * On the HP-UX and Linux platform a server shutdown could cause errorneous messages. Patch PE62-9902110 ------------------ Platforms: All * dbvolcreate utility could output errorneous warnings about a possible PIN LEAK. * The eloqdb6 server process could output errorneous warnings about a possible PIN LEAK. * The dbstore operation failed to release a node lock which could cause a subsequent eloqdb6 server panic. * After opening more than 32767 databases in succession in a single session eloqdb6 could provide a possibly wrong or duplicate dbid. Installation: ------------- UNIX: In order to install this patch, you need to unpack it with gzip. Gzip is included with HP-UX 10.x and Linux. Installation requires root privileges. cd /opt/eloquence6 gzip -dc PE62-9906100-hpux.tar.gz | tar xf - Files: bin/eloqdb6 bin/dbvolcreate bin/dblogreset share/doc/PE62-9906100-README Windows NT: This patch should *only* be installed if you previously installed the HP Eloquence server components on your system. Download the PE62-9906100-win32.zip file and unpack with WINZIP or PKZIP. Installation requires administrative capabilities. PLEASE MAKE SURE THE EloqDB6 SERVICE has been STOPPED previously (in the Service Control Manager). Please copy the eloqdb6.exe file into the WINDOWS SYSTEM DIRECTORY (for example C:/WINNT/SYSTEM32) and the dbvolcreate.exe and dblogreset.exe files to the bin subdirectory of your HP Eloquence installation directory (for example C:/Programs/Hewlett-Packard/HP Eloquence/bin). Files: eloqdb6.exe dbvolcreate.exe dblogreset.exe PE62-9906100-README.txt