Product Documentation

FairCom DB V12 Release Notes

Previous Topic

Next Topic

Fixed transaction log read errors when using delayed durability and encrypted transaction logs

When using delayed durability and encrypted transaction logs, there was an issue in the server code causing wrong information to be written in the transaction log files. This affected automatic recovery and features requiring the reading of the logs such as replication and deferred indexing.

Log reads performed by an internal thread or a replication log reader sometimes failed with a checksum error or with errors such as 75 or 76. In this situation, error messages such as the following were logged to CTSTATUS.FCS:

- User# 00011 DeferredIndexer: ERR: Failed to read next change from transaction log: 75

- User# 00011 DeferredIndexer: ERR: Log read position: log=1, offset=2479283

- User# 00011 ctrepl: Checksum failure at code location 1: 36

- User# 00011 DeferredIndexer: ERR: Failed to read next change from transaction log: 36

- User# 00011 DeferredIndexer: ERR: Log read position: log=1, offset=26017799

- User# 00011 ctrepl: Checksum failure at code location 1: 36

The logic has been modified to eliminate this problem.

For the sake of additional safety, the transaction log flush function now checks if its write to the transaction log failed, and if so it shuts down the database engine with internal error code 8523. This is extremely unlikely to happen and the check is included only for completeness. Note: This is a behavior change.

Affected Versions: V10.5.0 and later (only if delayed durability and log encryption are both used).

Affected Components: c-tree Server.

TOCIndex