Releases: mongodb/mongo-c-driver
mongo-c-driver 1.2.3
This release fixes the CMake build, which I broke in the 1.2.2 release.
-- A. Jesse Jiryu Davis
mongo-c-driver 1.3.0-rc0
It is my pleasure to announce to you the first release candidate of MongoDB C
driver 1.3.0. It includes additive ABI changes and bugfixes, and support for
the upcoming MongoDB 3.2. It is compatible with MongoDB 2.4 and later.
New features and changes since 1.3.0-beta0:
- If the driver is compiled without SSL support but a URI with "ssl=true"
is passed to mongoc_client_new, mongoc_client_new_from_uri, or
mongoc_client_pool_new, the function logs an error and returns NULL. Before,
the driver would attempt a non-SSL connection. - New functions to copy database and collection handles:
- mongoc_collection_copy
- mongoc_database_copy
- If a GridFS chunk is missing, mongoc_gridfs_file_readv sets file->error to
domain MONGOC_ERROR_GRIDFS and a new code MONGOC_ERROR_GRIDFS_CHUNK_MISSING. - Use electionId to detect a stale replica set primary during a network split.
- Disconnect from replica set members whose "me" field does not match the
connection address. - The client side matching feature, mongoc_matcher_t and related functions,
are deprecated and scheduled for removal in version 2.0. - New CMake options ENABLE_SSL, ENABLE_SASL, ENABLE_TESTS, and ENABLE_EXAMPLES.
- The build system is refactored to declare the current version and latest
release in one place.
Other fixes:
- Memory leaks in mongoc_database_has_collection and mongoc_cursor_next.
- Report writeConcern failures from findAndModify and from legacy writes.
Thanks to everyone who contributed to this release candidate.
- A. Jesse Jiryu Davis
- Hannes Magnusson
- Matt Cotter
- Claudio Canella
- Victor Leschuk
- Flavio Medeiros
- Christopher Wang
Peace,
A. Jesse Jiryu Davis
mongo-c-driver 1.2.2
It is my pleasure to announce to you the MongoDB C driver 1.2.2.
This release fixes a rare bug where the driver can direct reads to hidden
secondaries unintentionally. It also includes fixes and improvements to the
build system.
Peace,
A. Jesse Jiryu Davis
mongo-c-driver 1.3.0-beta0
It is my pleasure to announce to you the beta of MongoDB C driver 1.3.0.
This beta includes additive ABI changes and bugfixes, and support for
the upcoming MongoDB 3.2. It is compatible with MongoDB 2.4 and later.
New features and changes:
- mongoc_collection_find_and_modify will now apply the mongoc_collection_t's
write_concern_t when talking to MongoDB 3.2. - Support for MongoDB 3.2's "readConcern" feature for queries, counts, and
aggregations. The option "readConcernLevel" is now accepted in the MongoDB
URI. New struct mongoc_read_concern_t, and functions operating on it:- mongoc_client_get_read_concern
- mongoc_client_set_read_concern
- mongoc_database_get_read_concern
- mongoc_database_set_read_concern
- mongoc_collection_get_read_concern
- mongoc_collection_set_read_concern
- mongoc_read_concern_copy
- mongoc_read_concern_destroy
- mongoc_read_concern_get_level
- mongoc_read_concern_new
- mongoc_read_concern_set_level
- mongoc_uri_get_read_concern
- Support for MongoDB 3.2's "bypassDocumentValidation" option for writes.
- New struct mongoc_bulk_write_flags_t and related functions:
- mongoc_bulk_operation_set_bypass_document_validation
- mongoc_bulk_operation_set_flags
- New struct mongoc_find_and_modify_opts_t and related functions:
- mongoc_find_and_modify_opts_new
- mongoc_find_and_modify_opts_destroy
- mongoc_find_and_modify_opts_set_sort
- mongoc_find_and_modify_opts_set_update
- mongoc_find_and_modify_opts_set_fields
- mongoc_find_and_modify_opts_set_flags
- mongoc_find_and_modify_opts_set_bypass_document_validation
- mongoc_collection_find_and_modify_with_opts
- Configurable wait time on tailable cursors with MongoDB 3.2:
- mongoc_cursor_get_max_await_time_ms
- mongoc_cursor_set_max_await_time_ms
- Support for MongoDB 3.2 wire protocol: use commands in place of OP_QUERY,
OP_GETMORE, and OP_KILLCURSORS messages. - To explain a query plan with MongoDB 3.2, you must now call the "explain"
command, instead of including the "$explain" key in a mongoc_collection_find
query. See the mongoc_collection_find documentation page for details. - Use constant-time comparision when verifying credentials
- Combine environment's CFLAGS with configure options when building.
- Improved man page output and "whatis" entries
Extensive bugfixes and improvements in GridFS, including:
- Handle seeking, reading, and writing past the end of a GridFS file.
- Better error reporting if a GridFS file has missing chunks.
- Optimization for long seeks forward with mongoc_gridfs_file_seek.
Other fixes:
- Memory leak in mongoc_database_find_collections.
- Set OP_QUERY's nToReturn from the provided limit.
- Fix compiler warnings and errors, especially with Visual Studio 2015,
GCC 4.8, and IBM XL C. - Include missing build script FindSASL2.cmake in distribution tarball
- Bugs and typos in tutorial examples
Thanks to everyone who contributed to this version of libmongoc.
- A. Jesse Jiryu Davis
- Hannes Magnusson
- Kyle Suarez
- Jose Sebastian Battig
- Jeremy Mikola
- Iago Rubio
- Matt Cotter
- alexeyvo
Peace,
A. Jesse Jiryu Davis
mongo-c-driver 1.2.1
It is my pleasure to announce to you the MongoDB C driver 1.2.1.
This release includes critical bugfixes for SSL connections with
mongoc_client_pool_t, and for Unix domain socket connections.
The documentation is updated for a change introduced in version 1.2.0:
mongoc_client_set_ssl_opts and mongoc_client_pool_set_ssl_opts now configure
the driver to require an SSL connection to the server, even if "ssl=true" is
omitted from the MongoDB URI. Before, SSL options were ignored unless
"ssl=true" was included in the URI.
The build instructions are improved, including the steps to build with OpenSSL
on OS X El Capitan. Build errors and warnings are fixed for clang in gnu99
mode and MinGW.
Thanks to everyone who contributed to this version of libmongoc.
- A. Jesse Jiryu Davis
- Hannes Magnusson
- Tamas Nagy
Peace,
A. Jesse Jiryu Davis
mongo-c-driver 1.2.0
It is my pleasure to announce to you the MongoDB C driver 1.2.0.
This is a stable release with additive ABI changes and bugfixes. It is
compatible with MongoDB version 2.4 and later.
The following notes summarize changes since the previous stable release,
1.1.11, including changes in the 1.2.0 betas and release candidate.
This version rewrites mongoc_client_t's internals to match two important new
specs for MongoDB drivers: the Server Discovery And Monitoring Spec and the
Server Selection Spec. The rewritten client has many advantages:
- All replica set members or mongos servers are discovered and periodically
checked in parallel. The driver's performance is dramatically better and
more predictable with multi-server deployments, or with a flaky network,
or when some servers are slow or down. - Clients from the same mongoc_client_pool_t share a background thread that
discovers and monitors all servers in parallel. - Unnecessary round trips for server checks and pings are eliminated.
- Behavior is documented in the specs, and consistent with other drivers,
even in complex or unusual scenarios. - The URI's "replicaSet" option is enforced: the driver now refuses to connect
to a server unless it is a member of a replica set with the correct setName. - Many race conditions related to changing deployment conditions are fixed.
To conform to the new specs, the client now accepts these options in the
MongoDB URI; see the mongoc_uri_t documentation for details:
- heartbeatFrequencyMS
- serverSelectionTimeoutMS
- serverSelectionTryOnce
- socketCheckIntervalMS
Other features:
- All timeouts that can be configured in the URI now interpret 0 to mean "use
the default value for this timeout". - The client's read preference can be configured in the URI with the new
options "readPreference" and "readPreferenceTags"; see the mongoc_uri_t
documentation. - The new mongoc_uri_get_read_prefs_t function retrieves both the read mode
and tags from a mongoc_uri_t. - New accessors mongoc_gridfs_file_get_id, mongoc_client_get_default_database,
and mongoc_bulk_operation_get_write_concern. - Debug tracing can be controlled at runtime with mongoc_log_trace_enable and
mongoc_log_trace_disable. - Set mongoc_client_pool_t's size with mongoc_client_pool_min_size()
and mongoc_client_pool_max_size().
Other changes:
- Enable runtime asserts in release build.
- The libbson submodule's URL now uses the recommended https://, not git://
- mongoc_client_kill_cursor is now deprecated and will be removed in 2.0.
- The write concern "w=-1" is documented as obsolete.
These notable bugs have been fixed since 1.1.11:
- The driver now uses the server's maxWireVersion to avoid an error and
extra round-trip when executing aggregations on MongoDB 2.4 and older. - Much improved reporting of network errors, unavailable servers, and
authentication failure - Off-by-one error in mongoc_gridfs_file_seek with mode SEEK_END
- The writeConcernErrors field of bulk results is properly formatted.
- A cursor with a server "hint" sets slaveOkay and / or $readPreference.
- Destroying an exhaust cursor must close its socket
- "wtimeoutms" was ignored for write concerns besides "majority".
- Bulk write operations might fail in mixed-version sharded clusters with
some pre-2.6 mongos servers. - A variety of bugs and incorrect results in mongoc_bulk_operation_execute.
- Numerous compiler warnings and build failures on various platforms.
- Copious refinements to the documentation.
Thanks to everyone who contributed to this version of libmongoc.
- Jason Carey
- Samantha Ritter
- A. Jesse Jiryu Davis
- Hannes Magnusson
- Kyle Suarez
- Jeremy Mikola
- Remi Collet
- Jose Sebastian Battig
- Derick Rethans
- Yuchen Xie
- Manuel Schoenlaub
- Sujan Dutta
- Lloyd Zhou
- rubicks
- Pawel Szczurko
- Yuval Hager
Peace,
A. Jesse Jiryu Davis
mongo-c-driver 1.2.0-rc0
It is my pleasure to announce the release candidate of the MongoDB C driver
1.2.0. It includes features and bugfixes developed since 1.2.0-beta1.
Notable bugs fixed:
- Much improved reporting of network errors, unavailable servers, and authentication failure
- Destroying an exhaust cursor must close its socket
- Various bugs in server reconnection logic
- mongoc_collection_aggregate returned invalid cursor after failure
- Wrong error message after failed network write on Sparc
- Missing JSON test files in release tarball
Other changes:
- Enable runtime asserts in release build.
- mongoc_client_kill_cursor is now deprecated and will be removed in version 2.0.
This release candidate also includes all bugfixes from 1.1.11.
Version 1.2.0 final will be a stable release with additive ABI changes and
bugfixes. It is compatible with MongoDB version 2.4 and later.
Thanks to everyone who contributed to this version of libmongoc.
- A. Jesse Jiryu Davis
- Hannes Magnusson
- Kyle Suarez
- rubicks
- Jose Sebastian Battig
- Jason Carey
- Remi Collet
- Yuval Hager
Peace,
-- A. Jesse Jiryu Davis
mongo-c-driver 1.1.11
It is my pleasure to announce to you the MongoDB C driver 1.1.11.
This is a patch release with bug fixes:
- Undetected network errors when sending messages to the server
- Off-by-one error in mongoc_gridfs_file_seek with mode SEEK_END
- Memory leak parsing a URI that contains an invalid option
- The libbson submodule's URL now uses the recommended https://, not git://
Thanks to everyone who contributed to the development of this point release for
libmongoc.
- A. Jesse Jiryu Davis
- Hannes Magnusson
- Jason Carey
- Jose Sebastian Battig
- rubicks
Peace,
A. Jesse Jiryu Davis
mongo-c-driver 1.2.0-beta1
It is my pleasure to announce the second beta release of the MongoDB C driver
1.2.0. It includes features and bugfixes developed since 1.2.0-beta.
New features:
- Set mongoc_client_pool_t's size with mongoc_client_pool_min_size()
and mongoc_client_pool_max_size(). - The write concern "w=-1" is now documented as obsolete.
- Abundant fixes and additions to the documentation, beyond those in the
previous beta.
Notable bugs fixed:
- Crashes and races in several replica set scenarios.
- The driver now uses the server's maxWireVersion to avoid an error and
extra round-trip when executing aggregations on MongoDB 2.4 and older. - Fixed network error handling in multiple code paths.
- connectTimeoutMS limits the time the driver can spend reconnecting to
servers in single-threaded (non-pooled) mode with serverSelectionTryOnce.
Version 1.2.0 final will be a stable release with additive ABI changes and
bugfixes. It is compatible with MongoDB version 2.4 and later.
Thanks to everyone who contributed to this version of libmongoc.
- A. Jesse Jiryu Davis
- Hannes Magnusson
- Manuel Schoenlaub
- Kyle Suarez
- Remi Collet
Peace,
A. Jesse Jiryu Davis
mongo-c-driver 1.2.0-beta
It is my pleasure to announce to you the first beta release of the MongoDB C driver 1.2.0.
This release is a stable release with additive ABI changes and bugfixes. It is compatible with MongoDB version 2.4 and later.
Version 1.2.0 rewrites mongoc_client_t's internals to match two important new specs for MongoDB drivers: the Server Discovery And Monitoring Spec and the Server Selection Spec. The rewritten client has many advantages:
- All replica set members or mongoses are discovered and periodically
checked in parallel. The driver's performance is dramatically better and
more predictable with multi-server deployments, or with a flaky network,
or when some servers are slow or down. - Clients from the same mongoc_client_pool_t share a background thread that
discovers and monitors all servers in parallel. - Unnecessary round trips for server checks and pings are eliminated.
- Behavior is documented in the specs, and consistent with other drivers, even
in complex or unusual scenarios. - The URI's "replicaSet" option is enforced: the driver now refuses to connect
to a server unless it is a member of a replica set with the right setName. - Many race conditions related to changing deployment conditions are fixed.
To conform to the new specs, the client now accepts these options in the MongoDB URI; see the mongoc_uri_t documentation for details:
- heartbeatFrequencyMS
- serverSelectionTimeoutMS
- serverSelectionTryOnce
- socketCheckIntervalMS
Other features:
- All timeouts that can be configured in the URI now interpret 0 to mean "use the default value for this timeout".
- The client's read preference can be configured in the URI with the new
options "readPreference" and "readPreferenceTags", see the mongoc_uri_t
documentation. - The new mongoc_uri_get_read_prefs_t function retrieves both the read mode
and tags from a mongoc_uri_t. - New accessors mongoc_gridfs_file_get_id, mongoc_client_get_default_database,
and mongoc_bulk_operation_get_write_concern. - Debug tracing can be controlled at runtime with mongoc_log_trace_enable and
mongoc_log_trace_disable.
Notable bugs fixed:
- "wtimeoutms" was ignored for write concerns besides "majority".
- Bulk write operations might fail in mixed-version sharded clusters with
some pre-2.6 mongos servers. - Normal operations were logged during startup and could not be silenced.
- A variety of bugs and incorrect results in mongoc_bulk_operation_execute.
- Numerous compiler warnings and build failures on various platforms.
- Copious refinements to the documentation.
Thanks to everyone who contributed to this version of libmongoc.
- A. Jesse Jiryu Davis
- Sujan Dutta
- Jason Carey
- Hannes Magnusson
- Jeremy Mikola
- Derick Rethans
- Samantha Ritter
- Yuchen Xie
- Lloyd Zhou
Peace,
A. Jesse Jiryu Davis