----------------------------------------------------------------------

ELOQUENCE B.08.10 - patch PE81-1210040

----------------------------------------------------------------------

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-1210040: BUG FIX, ENHANCEMENT

Superseded patches:
 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-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-1210040-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-1210040-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-1210040-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-1210040-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-1210040-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-1210040-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-1210040-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-1210040-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-1210040-README.txt