diff options
Diffstat (limited to 'dist/ChangeLog')
-rw-r--r-- | dist/ChangeLog | 486 |
1 files changed, 276 insertions, 210 deletions
diff --git a/dist/ChangeLog b/dist/ChangeLog index 8ed93de7..adff63a8 100644 --- a/dist/ChangeLog +++ b/dist/ChangeLog @@ -1,318 +1,384 @@ -= Berkeley DB 5.3 Changelog = += Berkeley DB 6.1 Changelog = -== Changes between 11.2.5.3.15 and 11.2.5.3.21 == +== Changes between 12.1.6.1.20 and 12.1.6.1.23 == -Fixed incompatibility problems of Java DPL with JDK7, so DPL will now -work with JDK7. [#20586] +Fixed a recovery bug that could cause files to end up in the +wrong directory when using logs created in 5.3 or earlier. [#24169] -Added a flag to allow database locking to be disabled from the SQL -API. [#20928] +Creating a table in SQL will no longer fail if the database +connection was opened without the SQLITE_OPEN_CREATE flag. [#24115] -Fixed a bug that could allocate a heap data page in a region after the -region creation has been undone. [#20939] +Fixed a bug where an error message was not displayed back to the user +correctly when sequence creation failed. [#24103] -Redundant whitespaces are now ignored in DB_CONFIG lines pertaining to -directories, e.g. set_data_dir. [#20158] +Fixed a bug where BDB was not handling tables with multiple BLOB columns +when using the SQL API. [#24092] -Fixed a bug that caused DB_ENV->backup to stop early if DB_BACKUP_FILES was -not set and a non-DB file was in the data directory. [#21076] +SQL sequence names are now case insensitive except when surrounded +by quotation marks. [#23964] -Fixed a rare race condition that could cause a crash if two processes opened -the same database at the same time. [#21041] +Avoid incrementing the statistic DB_LOG_STAT.st_scount +("Total log file flushes") when DB_LOG_NOSYNC is in effect. [#23945] -Fixed missing cross compiling capability for the JDBC driver. [#21101] +Fixed a bug that may lead to crash when opening multiple environments +in a multi-threaded program. [#23913] -Allow the same system/machine to host both a master and a replica -database through the use of relative pathnames. [#21105] +Improved the way we mark a password as consumed. [#23876] -Fixed a bug in the Java API where EnvironmentConfig.setCreateDir would fail -to configure the environment. [#21127] +Fixed the error "BDB2074 No space available in latch table" for +configurations using plain pthreads mutexes and DB_ENV->set_thread_count(). +Susceptible configurations include the definition of HAVE_MUTEX_PTHREADS +in db_config.h but do not define HAVE_MUTEX_HYBRID. [#23831] -Fixed an assert failure in btreeCompare when allocating memory -in the wrong thread was causing a memory leak. [#21232] +Fixed a crash when MVCC and snapshot isolation are used and the system is under +heavy load. [#23815] -Fixed a bug in the Java API where concurrent operations that change the -database schema could lead to a hang. [#21265] +Fixed a problem with closing a panicked environment, in which an +infinite loop was possible. [#23814] -Added JDBC code to the code base and updated the windows build files -to include the JDBC solution. [#21294] +Removed Java 5 targets from Windows builds and javadoc production. [#23811] -Fixed a bug where the heap's region size was not getting swapped correctly -in mixed-endian environments. [#21295] +Support for client-to-client replication of BLOB data during internal +initialization has been disabled. [#23748] -Fixed a bug in the db_sql_jdbc project file for vs2010 that was preventing -it from building correctly. [#21332] +Fixed a bug that may cause self-deadlock during database compaction. [#23725] -== Database or Log File On-Disk Format Changes == +Fixed a bug in the recovery of a truncated hash database. [#23772] + +== Changes between 12.1.6.1.19 and 12.1.6.1.20 == + +Fixed a sqlite3odbc bug which may return an out-of-memory error when calling +SQLGetData() on empty long columns. [#22777] + +Enabling BLOB support and master leases will no longer result +in unexpected DB_REP_LEASE_EXPIRED errors. [#23275] -Existing database file formats were unchanged in library version 11.2.5.3. +Fixed a race condition when BLOB support is enabled with replication +where message handling could fail with an ENOENT error. [#23275] -The log file format changed in library version 11.2.5.3. +Existing SQL databases will have to be reindexed after upgrading +to this release. No actions are required for non-SQL databases. +Check the upgrade documentation for more details. [#23469] -== New Features == +Fixed a known bug in SQL where ORDER BY could return results +out of order if an index is used to answer the query. [#23469] -Added support for verifying named in-memory dbs. [#16941] +Fixed a bug that causes a crash when opening a corrupted environment +with encryption and DB_REGISTER. [#23643] -Added an integer key comparison function to improve performance through -the SQL API. [#19609] +Fixed a bug that causes a crash when opening a corrupted environment +with DB_FAILCHK using a BDB compiled with DIAGNOSTIC defined. [#23643] -Support build on the platforms where pthread_t is a struct. [#19876] +Fixed a bug where closing a panicked environment raised an access violation +and crashed the program. [#23679] -Added an API call so the user can specify the size of the region in a -heap db. [#19914] +Fixed a bug where db_verify did not verify multiple files correctly. [#23692] + +Fixed a bug that causes a site joining a replication group to hang or +to only partially complete the internal steps necessary to join the +replication group. [#23750] + +== Database or Log File On-Disk Format Changes == -Improved Replication Manager's ability to recover from the (perhaps -rare) phenomenon of two sites trying to connect to each other -simultaneously, which used to result in loss of both connections, -requiring a retry after the CONNECTION_RETRY timeout period. [#19980] +The log file format changed in 12.1.6.1. -Enhanced the interface for copying databases for a hot backup. Added configure -support for --enable-atomicfileread. [#20129] +== New Features/Improvements == -Enhaced the log reading routine to detect that a log file is missing rather -than returning that a zero length record was found. [#20130] +Demonstrated in a sample app how to use thread-specific structures to +associate a DB_EVENT_REP_PERM_FAILED event with the transaction that +caused it. [#17686] -Added pragma bdbsql_shared_resources to set or report the maximum amount of -memory to be used by shared structures in the main environment region and -bdbsql_lock_tablesize to set or report the number of buckets in -the lock object hash table. These are advanced tuning features for -applications with large number of tables or needs to reduce locking on -concurrent long running transactions. [#20156] +Replication Manager Preferred Master is a new option for 2-site +replication groups. One site is the preferred master, which assumes the +master role as much of the time as its availability permits. A preferred +master replication group guarantees that transactions committed +on the preferred master site will never be rolled back while also +providing client failover. [#20230] -Added set_metadata_dir() and get_metadata_dir() to enable storage of -persistent metadata files in a location other than the environment -home directory. [#20174] +A new flag DB_FORCESYNCENV is provided for DB_ENV->close(), which forces +flushing the memory mapped regions before unmapping them. [#21176] -Improved the error handling through the SQL API. Errors can be sent to a -file with the use of the BDBSQL_ERROR_FILE pragma. [#20213] +A new API is provided to limit the Replication Manager incoming queue based +on the amount of heap memory it uses. [#21481] -Database handles can now be configured to give exclusive access to -the database. [#20331] +BLOB support is now available for environments configured for +replication. [#22359] -XA transactions will now use transaction snapshots if the XA databases -they operate on were configured with DB_MULTIVERSION. [#20332] +A new version of DB_ENV->failchk() helps supports multi-process environments +which use DB_REGISTER rather than a monitoring process. It is turned on with +--enable-failchk_broadcast. [#22419] -Added additional stats fields into the C# API [#20693] +Added support for Visual Studio 2012. [#22477] -Added pragma bdbsql_single_process to keep the Berkeley DB environment -information on the heap instead of in shared memory. This option cannot -be used if the database is accessed from multiple processes. [#20789] +CPU time needed for database backups is now reduced. [#22967] -Improved the ability of DB->compact to move DB_HASH database pages to the -begining of the file. [#20815] +Added BDB utilities for the Android platform. [#23079] + +Added --enable-error_history support. This diagnostic tool prints a +stack trace when a panic occurs. [#23119] + +The new log configuration option DB_LOG_NOSYNC has been added to avoid +flushing the transaction log in order to stabilize storage. This can be +useful when durability across system crashes is unnecessary and all the +transactions in the environment specify either the DB_TXN_NOSYNC or +DB_TXN_WRITE_NOSYNC flag. This configuration setting may be made by +DB_ENV->log_set_config() or a DB_CONFIG line "db_log_nosync [on|off]". [#23191] == Database Environment Changes == -Fixed a bug that could cause a segmentation violation when closing -an environment handle which has open database handles on partition -databases. [#20281] +Fixed a problem with DB_LOCKDOWN which would cause an mlock error ENOMEM +on some operating systems. [#21379] + +DB_ENV->close() now detaches from the environment's mmap and shared memory +regions even when a panic error (DB_RUNRECOVERY) has been returned. +DB_ENV->open(DB_REGISTER) detects whether a panic has occurred in the +environment. If so it returns DB_RUNRECOVERY. Prior to this, the panic state +was not detected, which might have caused a hang. [#22805] -Fixed a bug that could cause a segmentation violation if a region was -extended leaving a very small fragment at the end. [#20414] +Ensure that the size of memory mapped backing files are a multiple of the +system pagesize. Previously the files were aligned up to 8KB boundaries, +which was not adequate for systems with a 64KB pagesize. [#23290] -Changed the behavior of the DB_REGISTER | DB_RECOVER flag combination, so -that recovery is always run if the environment panic bit is set. [#20767] +== Concurrent Data Store Changes == + +-None == Access Method Changes == -Fixed a bug were database configuration settings could be lost when the -database was opened if the open operation was blocked for any amount -of time. [#20860] +Fixed a bug that left behind obsolete queue extents. [#21988] -Fixed a bug that bulk update operations did not work correctly on -compressed databases. [#19017] +Fixed a bug that occurred if the range keys did not fit within one database +page during database partition opening. [#22280] -Improved the log flushing performance when ftruncate() is not available -on a system. [#19725] +Corrected a buffer mutex deadlock involving off-page duplicate sets and +less than full transactional isolation levels. [#22532] -When performing partial puts in a heap database, empty pieces will no longer -be left in a split record chain. [#20052] +Fixed a byte swapping bug that could corrupt the header of heap database +pages. [#23318] -Fixed a bug where, on systems without FTRUNCATE, db_verify will return an -error for truncated heap databases. [#20195] +== API Changes == -Fixed a bug where BDB could run out of mutexes when many databases are -renamed. [#20228] +Make flag checking in sequence stat print API consistent with the other +stat print APIs. [#22513] -Fixed a bug where the metadata page in hash databases would not be flushed -to disk. [#20265] +== SQL-specific API Changes == -Fixed a bug that could leave deleted pages from a HEAP database in the -buffer cache. [#20309] +Fixed a bug that was preventing old log files from being +removed while using the SQL API. [#22521] -Fixed a bug where the library would fail to put records with overflow keys -into hash duplicate database. [#20329] - -Fixed a bug in DB->compact of btrees that could cause a bad pointer -reference. [#20360] +Updated SQL API build to be compatible with SQLite 3.8.3.1. [#23178] -Fixed a bug that could cause the last page number stored on the metadata -page to be wrong after rolling forward a db->compact operation that freed -more pages than will fit in a single log record. [#20646] +Updated ADO.NET API to be compatible with System.Data.SQLite 1.0.91.0. [#23446] -Fixed a bug that could cause DB->stat to block on a mutex while holding a -lock on the metadata page. [#20770] +== Tcl-specific API Changes == -Fixed a bug that could cause DB->compact of a DB_HASH database to fail to -mark a page it updated as dirty. [#20778] +Exposed flag DB_SET_MUTEX_FAILCHK_TIMEOUT in Tcl API. [#23163] -Fixed a bug where internal HEAP structures were not rebuilt during database -handle refresh. [#20821] +Added msgfile and msgfile_close in the Tcl API. [#31881]. -Fixed a bug with secondary indices, off-page duplicates and -DB_READ_COMMITTED which could erroneously release the lock on the page -holding a returned record. [#20853] +== Java-specific API Changes == -Fixed a bug that could cause a hang or improperly report an empty queue when -the queue record numbers wrapped around at 2^32. [#20956] +Exposed DB->set_msgfile(), DB_ENV->set_msgfile() and all xxx_stat_print() in +Java API.[#22691] -Fixed a bug on Linux or Windows that could generate a checksum error -if a database file was being opened while the meta data page happened -to be flushed from the cache. [#20996] +Exposed flags DB_REPMGR_CONF_PREFMAS_MASTER and DB_REPMGR_CONF_PREFMAS_CLIENT +in Java API. [#23163] -== SQL API Changes == +Exposed new flag DB_LOG_NOSYNC in Java API. [#23191] -Fixed several memory leaks in the Online Backup API. [#19850] +Updated DPL changes from BDB JE. [#23251] -Fixed a bug in the SQL API when using large blob items and multiple concurrent -connections. [#19945] +Exposed new flag DB_EVENT_REP_INQUEUE_FULL in Java API. [#23280] -To avoid a race condition that could cause a snapshot reader to see a wrong -version it is now not permitted to open a DB handle specifying DB_MULTIVERSION -if that database is currently opened by a handle which did not specify -DB_MULTIVERSION. [#19940] +Fixed a bug that partition directories could not be set correctly via +Java API. [#23410] -Pragma replication=on can now enable replication on an existing database. -Turning replication off is now permanent. [#20180] +== C#-specific API Changes == -Fixed a bug in the SQL API where it was possible for a schema update to be -ignored when accessing a database from multiple processes. [#20319] +The class LockDetectMode has been removed. It was duplicating functionality +provided in other classes and not being used. [#21248] -Fixed a bug where aborting an exclusive transaction followed by an -auto-commit read operation causes an assert failure. [#20567] +Exposed DB_STAT_ALLOC in PrintLockingSystemStats(), PrintLoggingSystemStats(), +PrintMPoolSystemStats(), PrintMutexSystemStats(), PrintStats() and +PrintTransactionSystemStats(). [#22513] -Fixed a bug in the SQL API where using the journal_mode pragma could cause a -crash when used as the first operation in a connection on an existing -database. [#20620] +Exposed DB->set_msgcall(), DB->set_msgfile(), DB_ENV->set_msgcall() and +DB_ENV->set_msgfile() to C# API. [#22799] -Turn off the DBSQL encryption option on Windows/WinCE by default to match the -behavior on the other platforms. [#20671] +Exposed flags DB_REPMGR_CONF_PREFMAS_MASTER and DB_REPMGR_CONF_PREFMAS_CLIENT +in C# API. [#23163] -Renamed the BDBSQL_OMIT_SHARING preprocessor flag to -BDBSQL_SINGLE_PROCESS. [#20789] +Exposed new flag DB_LOG_NOSYNC in C# API. [#23191] -Fixed a bug dealing with handle lock modes not reflecting the correct state -which was causing a deadlock in the SQL API. [#20862] +Exposed new flag DB_EVENT_REP_INQUEUE_FULL in C# API. [#23280] -== Java-specific API changes == +Changed definition of all structs to make SWIG 2.0.12 can generate code +successfully. [#23295] -Added ReplicationManagerConnectionStatus class and -ReplicationManagerSiteInfo.getConnectionStatus(). Deprecated -ReplicationManagerSiteInfo.isConnected(). [#18068] +== C++-specific API Changes == -Updated EID_MASTER to be "public static final" so that it would be exposed -in Java docs. [#20184] +Fixed a bug that db_stl library could not build using gcc-4.7 or later +versions. [#22615] -Fixed a bug where calls that return Stat objects could cause a -segfault. [#20377] - == Replication Changes == -Fixed quorum computation when most sites are unelectable. [#15251] +Fixed a bug where, after some rare multiple-site failure scenarios +including transaction rollbacks, Replication Manager could have incorrectly +determined that new transactions fulfilled the acknowledgement policy. [#16624] + +Acknowledgements are counted more precisely when an unelectable client is first +joining the replication group and also when a master has been set to be +unelectable. [#20825] -Made Replication more resilient to random input on its port. [#15712] +If there is already a replication process running, do not require a flag +value when calling DB_ENV->repmgr_start() to start a subordinate +process. [#20980] -Fixed a bug where the datadir structure was not maintained during an -internal init. [#19041] +Fixed a bug that a site could not rejoin the replication group on Windows +after being removed from the group. [#22460] -Fixed a repmgr memory leak when using DB_PRIVATE. [#19363] +When a removed site rejoins a two-site replication group with +DB_REPMGR_CONF_2SITE_STRICT turned off, defer its election so that the +rejoining site does not prematurely elect itself master with only its own +vote when the other site is already master. [#22683] -Fixed a minor bug to handle ENOMEM when using an in-memory -temp database. [#20197] +Fixed a bug where a Replication Manager subordinate process could fail its +automatic takeover as the replication process because it is unnecessarily +waiting for acknowledgements from other sites before the connections to +these sites are properly established. [#22998] -Fixed a bug where multiple long running transactions across -checkpoints could cause Log Sequence errors on client systems. [#20421] +Fixed a bug where a client synchronization could get stuck because certain +error paths were failing to release an internal lockout. [#23169] -Fixed a bug where multiple Replication Manager processes would sometimes -not all conform to replication-group-aware log archiving. [#20342] +Fixed a bug where replication group-aware log archiving might have +unnecessarily kept log files after certain connection sequences between +sites. [#23420] == Locking Subsystem Changes == -Fixed a bug that could cause an early lock timeout if a previous error -left a lock timeout value set. [#19973] +None == Logging Subsystem Changes == -Fixed a bug which could cause an incompletely written log record to be -recognized as valid, resulting in recovery failing with the message "Illegal -record type <integer, usually 0> in log". [#17851] - -Fixed a bug where printlog would fail on in-memory heap databases. [#20269] +Avoid incrementing the statistic DB_LOG_STAT.st_scount +("Total log file flushes") when DB_LOG_NOSYNC is in effect. [#23945] == Memory Pool Subsystem Changes == -Fixed a bug which overstated the number of clean and dirty pages evicted from -the cache. [#20410] +None -Fixed a bug that left a small fragment at the end of a region when -extending. [#20414] +== Mutex Subsystem Changes == -Fixed a bug where the file bucket was always zero when creating a mpoolfile -using the mpool API. [#20468] +Removed an environment handle mutex which was no longer needed. [#23099] -Fixed a bug with multiversion concurrency control which could cause -versions of pages to remain in the cache even though they are no longer -needed. [#20570] +Removed the last source files of the defunct fcntl mutex +implementation. [#23119] -The memory pool allocator will now start freezing MVCC versions of buffers -if it sees more than 1/4 of the available buffers are taken up by -versions. [#20836] +== Transaction Subsystem Changes == -== Mutex Subsystem Changes == +None -Fixed a bug in which DB_ENV->mutex_set_align() could cause -DB_ENV->mutex_stat_print(dbenv, DB_STAT_ALL) to display only the -first mutex. [#20522] +== Test Suite Changes == -Fixed a bug with DB_ENV->mutex_stat_print() in which the information on -some mutexes would not be displayed, if any mutex had been freed and not -yet reallocated. [#20533] +None -== Transaction Subsystem Changes == +== Utility Changes == -Fixed a bug where a malloc failure could result in a segfault -when doing a put on a database with secondaries. [#20641] +None -== Utility Changes == +== Configuration, Documentation, Sample Apps, Portability and Build Changes == -Fixed a bug that would cause verify to call the wrong compare function if -there are user defined compare functions used and the database has multilevel -off page sorted duplicate trees. [#20284] +Fixed a bug that ex_rep_base could not quit gracefully after receiving 'exit' +command. [#16871] -Fixed a bug that could cause recovery to fail if DB->compact moved the meta -data page of a HASH subdatabase. [#20708] +Extended the ex_rep_mgr Replication Manager sample application to demonstrate +the use of a thread-specific structure to associate a DB_EVENT_REP_PERM_FAILED +event with its originating transaction. [#17686] -Fixed two problems with db_hotbackup's handling of transaction logs. A hotbackup -would always try to open the logs in the environment home, even if a log -directory had been specified. The second fix corrected an error path, in which -the memory was freed by the wrong function, possibly causing a guard byte error. -[#21313] +Parameter "-module" is removed from task libsqilte_jni in JDBC makefile. So +libsqlite_jni library could be built in '.dylib' format on Mac OS X. [#22937] -== Configuration, Documentation, Sample Apps, Portability and Build Changes == +Additional information about the cause of an error may now be displayed by +configuring with --enable-error_history. [#23119] -The DB_CONFIG configuration commands which specify directory pathnames -("set_data_dir", "set_lg_dir", and "set_tmp_dir") now accept names containing -whitespace characters. [#20158] +Add one public error code 'DB_META_CHKSUM_FAIL'. [#23304] -== Known Bugs == +Added build support on latest MinGW. [#23332] + +A configuration warning 'Ignoring --with-cryptography flag value' is added +for the non-crypto package. [#23333] + +Parameter LIBSQLSO_LIBS is added to the task libsqlso_target to workaround +a linking issue with the gcc 4.8.1 distributed by Ubuntu. [#23372] + +Extended the Mac OS X section in the chapter 7 of the installation +guide. [#23388] -If two SQL processes are concurrently altering the schema of the same tables -in a database, there is a race condition that can cause the application -to hang. [#20513] +Fixed PHP module to consistently use the ZEND_REGISTER_RESOURCE macro, +preventing a build failure with PHP 5.5. Updated INSTALL file +to note the changed location of sample output. [#23391] + +Fixed a few typos in the JDBC/ODBC sections of the Windows/Unix installation +guide. [#23404] + +== Example Changes == + +Added an example using BDB SQL with the JDBC driver and ADF. [#22569] + +== Miscellaneous Bug Fixes == + +Fixed a byte swapping bug with log file operations on blob files. +[#22215] + +Fixed test failures on QNX with small mutex regions. [#22310] + +Database containing BLOBS are now portable between machines of +opposite endianness. [#22455] + +Added a -D option to display output for db_dump and db_printlog. +This value takes priority over DB_ENV->set_data_len() if that +was called to set the length. [#22485] + +Updates to PHP API to handle functional changes in PHP 5.4. [#22549] + +Fixed heap databases so they can work on both big and little +endian machines. [#22929] + +Restructure the blob delete code to improve performance. [#22935] + +Properly clean up blob meta database after aborting the creation of its +parent database. [#23000] + +Fixed memory alignment issues with the DB_MPOOL stats. [#23150] + +Fixed a byte swapping bug with heap blob log records. [#23319] + +Fixed two race condition bugs with DB_ENV->failchk(). [#23347] + +Fixed memory alignment issue on Solaris. [#23571] + +Fixed a bug that using Visual Studio 2010 and JDK 1.5 could generate corrupted +jar files. [#23574] + +Fixed a bug that specifying --with-cryptography=yes did not build the jdbc +library correctly. [#23606] + +== Platform Certification Changes == + +Berkeley DB no longer tests or certifies Windows XP or Windows 2003. + +== Deprecated Features == + +The DB_AUTO_COMMIT flag is present in the DB_SEQUENCE APIs for Java and +C#. This flg is no longer meaningful for these APIs and will be +deprecated in the next release. + +== Known Bugs == -Replication groups including machines of different endianness do -not support the heap access method. [#21016] +[#23469] (Fixed in 12.1.6.1.20 -- see above.) +The SQL ORDER BY command on the primary key of a table can in +rare cases return the results out of order if an index search is used in +executing the query. For example: Create a single column table. Insert +two rows with identical values. A query on the row id and the column will +produce results in a different order depending on whether an index is used. -If a txn that is attempting to remove a region page from a heap database is -aborted and another txn is trying to update that same page then it can -cause the original txn to abort. This is timing dependant. [#20939] |