Skip to content

Releases: mongodb/mongo-c-driver

mongo-c-driver 1.2.0

13 Oct 18:59

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

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

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

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

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

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

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

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

Mongo-c-driver 1.1.7

09 Jun 21:15

Choose a tag to compare

mongo-c-driver 1.1.7

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

This is a patch release with bug fixes:

  • Thread-safe use of Cyrus SASL library.
  • Experimental support for building with CMake and SASL.
  • Faster reconnection to replica set with some hosts down.
  • Crash iterating a cursor after reconnecting to a replica set.
  • Unchecked errors decoding invalid UTF-8 in MongoDB URIs.
  • Fix error reporting from mongoc_client_get_database_names.

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

  • A. Jesse Jiryu Davis
  • Jason Carey
  • Hannes Magnusson

Peace,

A. Jesse Jiryu Davis

Mongo-c-driver 1.1.6

18 May 22:10

Choose a tag to compare

mongo-c-driver 1.1.6

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

This is a patch release with performance enhancements and bug fixes:

  • mongoc_bulk_operation_execute now coalesces consecutive update operations
    into a single message to a MongoDB 2.6+ server, yielding huge performance
    gains. Same for remove operations. (Inserts were always coalesced.)
  • Large numbers of insert operations are now properly batched according to
    number of documents and total data size.
  • GSSAPI / Kerberos auth now works.
  • The driver no longer tries three times in vain to reconnect to a primary,
    so socketTimeoutMS and connectTimeoutMS now behave closer to what you
    expect for replica sets with down members. A full fix awaits 1.2.0.

I snuck in a feature:

  • mongoc_matcher_t now supports basic subdocument and array matching

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

  • A. Jesse Jiryu Davis
  • Jason Carey
  • Kai Mast
  • Matt Cotter

Peace,

A. Jesse Jiryu Davis