Berkeley DB 3.1.17 Change Log

Database On-Disk Format Changes:

None.

Major New Features:

None.

Interface Additions and Changes:

  1. The documentation for DB->set_feedback stated that the third argument to the callback function is "the percent of the operation remaining to be completed, specified as an integer value between 0 and 100", implying that it's a countdown from 100 to 0. The actual implementation was to count upward from 0 to 100. The documentation has been changed to match the code. [#2310]

General Environment Changes:

  1. Fix a bug where attempts to remove a region never returned. [#2379]
  2. Fix a typo in the freeing of the shared log region. [#2379]
  3. Remove the requirement that all threads of control using System V shared memory for regions specify the base segment ID [#2379]
  4. Fix a bug where applications using different sets of regions in an environment would fail when using System V shared memory for the regions. [#2379]
  5. Fix a bug where the DB_USE_ENVIRON_ROOT flag was incorrectly tested, using the environment for processes without sufficient privilege. [#2400]
  6. Fix a bug where the error prefix was ignored by the Db handle method error calls. [#2484]
  7. Fix a bug where the db_archive utility could create an environment that would cause applications or other Berkeley DB utilities to fail. [#2524]

General Access Method Changes:

  1. Fix a memory leak in the DB->verify method. [#2347]
  2. Fix memory leaks in DB->rename and DB->remove method recovery [#2363]
  3. Fix a bug in the DB->verify method where 64K pages with large offsets were incorrectly verified. [#2408]
  4. Fix a bug where data strings containing % characters could be corrupted by the DB->verify method. [#2427]
  5. Fix a bug where the DB_TRUNCATE flag could trigger a program error if the database type was not specified. [#2423]
  6. Fix a bug in the Concurrent Data Store product where operations could result in application hang or segmentation fault. [#2493]

Btree Access Method Changes:

  1. Fix a bug where uninitialized parts of a database page could be read and an incorrect record count returned. [#2250]
  2. Fix a bug where reverse splits could corrupt a page under rare conditions. [#2362]
  3. Fix a bug where cursors in the parent of a nested transaction could be incorrectly adjusted after a child transaction was aborted. [#2373]
  4. Fix a bug where threads could race when updating a tree. [#2402]
  5. Fix a bug where a lock was leaked by the DB->stat method. [#2418]
  6. Fix a bug where DB->put could fail when the data matched a duplicate data item previously deleted using a still-open cursor. [#2451]
  7. Fix a bug where one abort path after a page allocation could leak the page. [#2455]
  8. Fix a bug where recovering the operation of moving on-page duplicates into their own tree could cause corruption. [#2459]
  9. Fix a bug where moving on-page duplicates into their own tree could cause cursors on the same page to reference an invalid key/data pair. [#2462]
  10. Fix a bug where an error could be ignored when reverse splitting the tree. [#2472]
  11. Fix a bug where creating Btrees deeper than 5 levels could cause core dumps or out-of-memory errors. [#2514]
  12. Fix a bug where the DB->verify method did not correctly diagnose Btree/Recno internal page references to invalid pages. [#2525]

Hash Access Method Changes:

None.

Queue Access Method Changes:

  1. Fix a bug where undo could happen incorrectly for record insert and delete. [#2298]
  2. Fix a bug where a page could be leaked during Queue recovery. [#2431]

Recno Access Method Changes:

  1. Fix a bug where the delete flag was set incorrectly in renumbering Recno trees. [#2490]

C++ API Changes:

None.

Java API Changes:

  1. Fix a bug where the wrong classname was used to find the fieldId in storing back the DbEnv.private_dbobj field. [#1628]
  2. Fix a Java documentation bug, the com.sleepycat.examples.AccessExample program removes the database so information from previous runs is not available. [#2385]
  3. Fix a Java documentation bug, Db.del should show it returning int. [#2480]
  4. Fix a bug where the Java Db.del API would fail to return Db.DB_NOTFOUND [#2480]
  5. Fix a bug where the Db.DB_THREAD flag wasn't always set by Java. [#2492]

Tcl API Changes:

  1. Fix a bug where DB_USE_ENVIRON_ROOT was specified for the Tcl command -use_environ. [#2400]

RPC Client/Server Changes:

None.

XA Resource Manager Changes:

None.

Locking Subsystem Changes:

None.

Logging Subsystem Changes:

  1. Fix a bug where the underlying operating system sync interface could be unnecessarily (and repeatedly) called when performing transaction checkpoints. [#2287]
  2. Fix a bug where a recovery diagnostic message displayed the wrong information. [#2449]

Buffer Pool Subsystem Changes:

  1. Fix a bug where calling memp_sync (including by transaction checkpoint) could cause shared region corruption and core dumps. [#2348, #2392]

Transaction Subsystem Changes:

  1. Fix a bug where recovery would succeed but drop core if no close record was ever written after the commit of a remove. [#2316]
  2. Fix a bug where file ID mapping could be incorrect [#2324]
  3. Fix a memory leak in abort of a nested transaction. [#2440]
  4. Fix a freed memory reference when committing active child transactions during parent transaction commit. [#2457]

Utility Changes:

None.

Configuration, Documentation, Portability and Build Changes:

  1. Portability fixes to compile on SunOS 4.1.4. [#2309]
  2. Fix a bug where VxWorks hash databases could be corrupted on dosFS filesystems because Berkeley DB did not correct for dirty filesystem reads. [#2317]
  3. Add a workaround for a MoveFileEx bug in Windows/98 which caused the DB->rename method to fail. [#2341]
  4. Fix a bug where the VxWorks support did not accept both slash and backslash as path separators. [#2393]
  5. Fix a bug where VxWorks device names were not ignored when evaluating paths. [#2393]
  6. Fix txn_begin documentation to correctly specify operations available to parent transactions with active child transactions. [#2457]
  7. Fix txn_commit documentation to correctly specify effect of parent transaction commit on active child transactions. [#2457]
  8. Fix a bug in the Reference Guide where txn_begin and txn_commit examples had the wrong arguments. [#2485]
  9. Fix the documentation on extending Berkeley DB recovery to reference the correct filenames. [#2501]
  10. Fix a bug where the DB_CLIENT flag was not listed in the C++/Java API DbEnv class constructor documentation. [#2510]
  11. Fix a bug where the DbEnv->set_server interface was not documented for the C++/Java APIs. [#2510]
  12. Fix the DBENV->remove method's argument documentation. [#2518]
  13. Fix a bug where the Java DbEnv.strerror and version number methods weren't documented. [#2523]