Berkeley DB 2.6.6 Change Log

Berkeley DB version 2.6.6 is version 2.6.5 with all released patches applied.

Bug Fixes:

  1. When looking for an already open log file, do not examine a file name structure if its reference count is 0. This problem cannot cause data corruption, but may cause program failure.

  2. Berkeley DB recovery assumes that there are at least two checkpoints. It was possible for log archival to leave the recovery area with only a single checkpoint.

  3. Version 2.6.5 cannot recover version 2.4.14 log files.

  4. Database file opens after recovery could sometimes fail.

  5. If only a single checkpoint is found, perform recovery from the beginning of the log.

  6. The Btree access method delete-by-key code path did not always detect that a key/data pair was also referenced by a cursor, which could cause a cursor to reference incorrect data.

  7. Concurrent Data Store operations could sometimes fail because write cursors were not correctly identified.

  8. The DB_SET_RANGE flag did not always correctly deal with on-page deleted records in the Btree access method.

  9. If the buffer cache was completely dirty, transaction checkpoints could pin down too many buffers and cause other operations to fail.

  10. In the Btree access method, when creating a new record and specifying a dbt.off offset value, the DB_DBT_PARTIAL flag was not handled correctly.

  11. It was possible for the last-known-LSN-on-disk to not be set correctly during recovery, which could cause the loss of recovery's checkpoint record.

  12. Reclaim lockers when using lock_vec to release locks.

  13. Re-order subsystem close when closing the environment so that the logging subsystem can potentially flush buffers through the shared memory buffer pool.

  14. Never attempt to grow the shared regions when initially connecting to the Berkeley DB environment.

Other Changes:

  1. In non-threaded applications, change cursors to share a locker ID in order to avoid self-deadlocks.

  2. Defend against the possibility that records from multiple log files are present in the log buffer cache.

  3. Test suite change: generate fail message if environment open doesn't work.

  4. Update the version numbers from Berkeley DB 2.6.5 to Berkeley DB 2.6.6.