- FIND/SORT performance has been enhanced with the eloqdb6 data base.
- When a data base client connected to the server, a semaphore
value was updated wrongly. This could cause a hang of the data
base client during startup.
- UPC$/LWC$ on the Windows and Linux platform has been fixed.
- Constant values were sometimes displayed in exponential form
during program listing (eg. 0.2 became 2E-1).
- dbfsck required a commmand line argument.
- dbtables required exclusive data base access.
- A server crash recovery could fail with a server panic due to an
inconsistent usage of the transaction log during recovery.
The btree_FinalCommit() function recorded a block list operation in
the transaction log during crash recovery. However using the
transaction log is not safe until the crash recovery succeeds.
Assertion failed: !header.next in FPool_Alloc
- A non-fatal inconsistency check caused a server panic which also
prevented a server restart (Assertion failed: meta->first_recno == 0).
This message incidates inconsistent meta information and should never
happen. However the server should be able to recover from this situation.
This condition still causes a server panic, however it the server will
be able to recover from this situation and fix the meta information
during crash recovery.
- A server crash might damage an index. When a new index page was
allocated and the server crashed before the checkpoint operation,
the index page could be overwritten subsequently.
- Problem during index key comparison which caused a server panic.
Assertion failed: size_a >= len && size_b >= len
- Possible data corruption. This could happen in a rare case
when deleting the last record from a data set unless the
data volume was set to sync mode.
All access to the data base is performed through the internal
cache system. When a cache page was marked ("pinned") as beeing
used, the server did not write it back to the volume because it
could contain inconsistent modifications. In this particular
case it could happen that a cache page was not unmarked and thus
modifications to this page were never written back to disk.
As a result the database could become inconsistent when the
server was shut down. This behaviour has been changed and a
warning message is written to the log file in addition when a
marked page is detected during a checkpoint operation.
- The Priority of the HTTP status thread has been increased.
Previously the HTTP status thread had a priority which
prevented it from becoming active on a busy server.
- DBERASE fixes. DBERASE could cause a data base server panic
when erasing a single detail set. When the data base server
erased path information from connected master sets it failed
with "Assertion failed: lrec".
- DBCREATE/DBPURGE/DBERASE now check for a pending transaction.
Data base utility statements can not be executed when a
transaction is active. This will return a status 32 (transaction
nesting exceeds maximum).
- A possible problem in the 980204 patch has been fixed. A DBUPDATE
could cause an internal BTREE inconsistency.
- The dblogreset command failed on Windows NT and Linux when called
without argument (#681).
- The index order on little endian systems (Intel) is wrong
for data types other then strings. This is caused by an issue
in the index compare function which is not handling byte order
properly. (#659)
This affects DBGET mode 5/6/15/16 on index items which are not
of type string on Intel based systems (Windows NT, Linux).
Other than that the order seems to be random, the index works
correctly.
Please note: In order to activate the fix the database must be
purged and re-created. The database should be exported,
purged and imported again.
Erasing the database is not sufficient, since only a dbcreate will
create new BTREE metadata.
- The patch 971211 introduced a side effect which could cause under
some preconditions a cache page not to become unlocked. This will cause
a eloqdb6 server panic when this page is modified subsequently. (#627)
Assertion failed: bhp->refcount == 1
server panic: Aborting on internal failure, file mpool.c, line 1059
- Problem in eloqdb6 server can cause data corruption. (#620)
- DBFIND mode 3 / DBGET mode 16 sequence could cause
eloqdb6 server panic. DBGET mode 16 may return next record
after DBFIND mode 3. (#605)
DBFIND(3)/DBGET(16) on a key value beyond the highest key
in an index results in a server panic.
DBGET(16) returns next record when previous DBFIND(3) did not
find an exact match.
- Handling programs with embedded NUL characters (#606)
The HP260 made it possible to embed NUL characters into strings.
While HP Eloquence is able to execute such a program, the program
listing is inconsistent, since a NUL character is used internally
as a string terminator. This may cause program corruption if
such a program line is modified.
Embedded NUL characters are now converted into a CHR$(0) expression.
However this may cause a syntax error when a string constant is
replaced by an expression due to an embedded NUL character when
only a string constant is valid.