Skip to content

Releases: mongodb/mongo-c-driver

mongo-c-driver 1.3.0-beta0

18 Nov 22:24
Compare
Choose a tag to compare
Pre-release

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

30 Oct 00:57
Compare
Choose a tag to compare

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

13 Oct 18:59
Compare
Choose a tag to compare

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

01 Oct 22:08
Compare
Choose a tag to compare
Pre-release

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

23 Sep 20:37
Compare
Choose a tag to compare

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

03 Sep 20:47
Compare
Choose a tag to compare
Pre-release

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

11 Aug 01:49
Compare
Choose a tag to compare
Pre-release

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

mongo-c-driver 1.1.10

22 Jul 01:32
Compare
Choose a tag to compare

It is my pleasure to announce to you the MongoDB C driver 1.1.10.

This is a patch release with bug fixes:

  • Occasional crash reconnecting to replica set.
  • Queries sent to recovering replica set members.
  • Memory leak when calling ismaster on replica set members.

Thanks to everyone who contributed to the development of this point release for
libmongoc.

  • A. Jesse Jiryu Davis
  • Daniil Zaitsev
  • Jason Carey
  • Jeremy Mikola

Peace,

A. Jesse Jiryu Davis

mongo-c-driver 1.1.9

29 Jun 03:49
Compare
Choose a tag to compare

It is my pleasure to announce to you the MongoDB C driver 1.1.9.

This release fixes a common crash in 1.1.8, which itself was introduced while
fixing a rare crash in 1.1.7. For further details:

https://jira.mongodb.org/browse/CDRIVER-721
https://jira.mongodb.org/browse/CDRIVER-695

Thanks to everyone who contributed to the development of this point release for
libmongoc.

Peace,

A. Jesse Jiryu Davis

mongo-c-driver 1.1.8

21 Jun 07:58
Compare
Choose a tag to compare

Update: this release suffers from a severe regression, CDRIVER-721, so I'm removing it.

It is my pleasure to announce to you the 1.1.8 release of the MongoDB C driver.

This is a patch release with bug fixes:

  • Crash freeing client after a replica set auth error.
  • Compile error in strict C89 mode.

Thanks to everyone who contributed to the development of this point release for
libmongoc.

Peace,

A. Jesse Jiryu Davis