---------------------------------------------------------------------- ELOQUENCE B.08.30 - patch PE83-2110270 ---------------------------------------------------------------------- This patch adds enhancements or fixes defects of the eloqdb server as released with Eloquence B.08.30-1810. This patch will be integrated in the Eloquence B.08.30 release. Eloquence B.08.30-1810 must be installed before applying this patch. Severity: PE83-2110270: BUG FIX Superseded patches: PE83-2104230: BUG FIX, ENHANCEMENT PE83-2010270: BUG FIX PE83-2010200: BUG FIX PE83-2005180: BUG FIX PE83-2005070: BUG FIX PE83-2001240: BUG FIX PE83-1910230: BUG FIX PE83-1909130: BUG FIX PE83-1907090: BUG FIX PE83-1906240: BUG FIX PE83-1905220: BUG FIX PE83-1903040: BUG FIX Patch PE83-2110270 ------------------ Platforms: All * Fixed unnecessary FTS index rebuild on database restructuring. An unnecessary FTS index rebuild could be triggered if the data set number changed when the database structure is modified. Patch PE83-2104230 ------------------ Platforms: All * Fixed status -809 returned by DBGET mode 2 on subsequent accesses after an end of set condition. Additional calls to DBGET mode 2 could return status -809:334 instead of status 11. * Improved allocation of temporary FTS results to reduce overhead and the amount of memory use to handle large results. * The dbctl asyncio command was added. It allows to query the status or temporarily disable or enable async disk i/o. dbctl asyncio status|enable|disable dba or operator privileges are required to change the status of async disk i/o. * The eloqdb process will report a process memory resource limit on startup. A message as below is output to the eloqdb message log: D1: Memory allocation limit: 4096 MB The allocation limit is also indicated in the http status on the statistics page. Platforms: HP-UX * The handling of aio_reap call failing with ENOMEM was improved. This call is used on HP-UX to collect completed async disk i/o and may fail with ENOMEM if the HP-UX kernel is unable to allocate memory. The call is tried again and a warning message as below is output to the eloqdb message log. NOTE: aio_reap call was restarted # times In this case the system should be reviewed for memory issues, for example processes using excessive memory. After repeated failures async disk i/o is disabled and a message like below is output to the eloqdb message log. WARNING: aio_reap call failed repeatedly - disabling asyncio The dbctl asyncio enable command may be used to resume async disk i/o. Notes / Related patches: * Patch PE83-2010201 or superseding (dbrecover utility) should be installed with this patch. Patch PE83-2010270 ------------------ Platforms: HP-UX * Fixed a potential eloqdb panic on HP-UX IA64 when async disk i/o is enabled (nonzero [Config] AIOThreads). The eloqdb process could abort with a message like below (#4302): D0: [2] server panic: Fatal problem detected in aio_async_process D0: [2] Assertion failed: aio_reap failed Notes / Related patches: * Patch PE83-2010201 or superseding (dbrecover utility) should be installed with this patch. Patch PE83-2010200 ------------------ Platforms: All * Fixed a potential slave server panic which could occur when a data set is being restructured (#4324). The slave server could abort with a message like below or similar: panic: Fatal problem detected in FixRec_FinalCommitUpdatePut Assertion failed: *flag_ptr == FixRec_USED || *flag_ptr == FixRec_DELETED * Fixed a potential slave server panic which could occur when async disk i/o is enabled (nonzero [Config] AIOThreads) and a data set is being restructured (#4324). The slave server could abort with a message like below: server panic: Fatal problem detected in FixRec_RRA Assertion failed: range_offset + range_size < (int)meta->rec_size Notes / Related patches: * Patch PE83-2010201 or superseding (dbrecover utility) fixes a related problem and should be installed with this patch. Patch PE83-2005180 ------------------ Platforms: All * A dbupdate with no changes was not reflected in the forward log but simply ignored (#4316). This could be unexpected for an application that relies on this. * Fixed a potential unexpected status 15 of FTS DBGET modes 25, 26 moving to the first or last result on an aggregated index. Platforms: Windows * Fixed a potential internal timer value overflow after 49 days (#4315). Patch PE83-2005070 ------------------ Platforms: All * Fixed unexpected status 15 returned by the FTC ODXGET call. The correct status 888:310/311 is now returned. * Fixed unexpected behavior of ODXGET call when skipping search results or changing fetch direction. The ODXGET behaves the same when skipping or reading results. * Fixed unexpected behavior with FTS DBGET modes 22, 23, 25, 26 when skipping results or changing fetch direction. Patch PE83-2001240 ------------------ Platforms: Windows * Fixed a problem where the eloqdb process did not have enough time to gracefully stop when Windows is shut down or restarted. Patch PE83-1910230 ------------------ Platforms: All * Fixed an FTS index problem that could affect databases migrated from B.08.20. This may affect databases using FTS indexes created with B.08.20 that were subsequently restructured with B.08.30. Restructuring a database created with B.08.20 enables additional FTS features, not available previously. This could result in an unexpected index structure that could result in inconsistencies for keywords with a large number of references. Subsequently adding records could result in FTS index inconsistencies. Databases where the FTS indexes were created or rebuilt with B.08.30 or that were not restructured are not affected. Installing this patch will prohibit additional FTS index inconsistencies. However, if an FTS index is affected, it must be rebuilt. The checkfts utility (available for download in the contrib directory) may be used to verify the FTS index consistency. Patch PE83-1909130 ------------------ Platforms: All * Fixed a potential deadlock condition which could happen on a replication slave server if an FTS query was executed while FTS updates were replicated (#4263). Platforms: HP-UX and Linux * Fixed a problem where some files were not closed on an eloqdb server panic and automatic restart (#4301). Platforms: Linux * Fixed a problem where an eloqdb server panic and automatic restart could ignore command line arguments. Patch PE83-1907090 ------------------ Platforms: All * Fixed a rare race condition where enumerating the internal threads could access a terminating thread (#4061). This could in some cases result in a failed lock or removal operation. Threads are enumerated when using the http status or the dbctl list functionality. An error message as below was logged T0: [#] pthread_mutex_destroy(p_mutex) failed (errno 16) T0: [#] pthread_mutex_lock(tcp->p_mutex) failed (errno 22) D0: [#] server panic: Fatal problem detected in thread__lock * Sync forward log file changes to disk on a checkpoint. In case of a system abort this limits data loss in the forward log to the last checkpoint and ensures replication can be resumed. Patch PE83-1906240 ------------------ Platforms: All * Fixed a problem where a replication slave server could abort with a message like below while processing a large transaction (#4292): Fwr_PageHashAdd() failed: key ... already present ... server panic: Fatal problem detected in Fwr_PageHash__Add Assertion failed: Fwr_PageHashAdd() failed: key already present server panic: Aborting on internal failure, file volfwr.c ... Notes / Related patches: * Patch PE83-1906241 or superseding (dbrecover utility) fixes a related problem and should be installed with this patch. Patch PE83-1905220 ------------------ Platforms: All * Improved async disk i/o overhead with replication. * HP-UX: Fixed possible latency problem on I/O completion using Posix async I/O and replication. * HP-UX: When using Posix async I/O the configured number of eloqdb I/O threads ([Config] AIOThreads) is now ignored other than a non-zero value is used to enable async I/O. Two threads are used: One thread to handle I/O completion and a second thread to handle a possible resource shortage when submitting disk read requests. Patch PE83-1903040 ------------------ Platforms: All * Fixed database server internal deadlock condition that could in rare cases result in a hanging server process (#4285). A deadlock condition was fixed in the database server cache management that could result in a (partially) hanging server process. A thread status (dbctl list thread or thread status dumped on shutdown) indicates a block in the mpool subsystem. This was caused by a potential lock ordering problem when a cache buffer was reused by a concurrent connection. Installation: ------------- Please download the patch archive that corresponds with the installed release. The patch files follow the conventions below: PE83-2110270-hpux-ia64.tar.gz ^ ^ ^ | | Architecture / OS specific build | Operating system Patch ID HP-UX IA64: 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.3 gzip -dc /path/to/PE83-2110270-hpux.tar.gz | tar xf - Files: bin/eloqdb (database server) share/doc/PE83-2110270-README HP-UX PA-RISC: 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.3 gzip -dc /path/to/PE83-2110270-hpux.tar.gz | tar xf - Files: bin/eloqdb32 (32 bit database server) bin/eloqdb64 (64 bit database server) share/doc/PE83-2110270-README Linux: In order to install this patch, you need to unpack it with tar. Installation requires root privileges. cd /opt/eloquence/8.3 tar xzf /path/to/PE83-2110270-linux.tar.gz Files: bin/eloqdb (database server) share/doc/PE83-2110270-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 PE83-2110270-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 PE83-2110270-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 file into the Eloquence bin directory. (Default location: C:\Program Files\Eloquence\8.3\bin) * Please copy the eloqdb64.exe file into the Eloquence bin64 directory. (Default location: C:\Program Files\Eloquence\8.3\bin64) * Please copy the PE83-2110270-README.txt file into the Eloquence share\doc directory. (Default location: C:\Program Files\Eloquence\8.3\share\doc) Files: eloqdb32.exe (32 bit database server) eloqdb64.exe (64 bit database server) PE83-2110270-README.txt