MongoDB C driver 1.17.0 released

I’m pleased to announce version 1.17.0 of libbson and libmongoc,
the libraries constituting the MongoDB C Driver.
For more information, see the 1.17.0 release on GitHub.

libmongoc
Features:

  • Support streamable server monitoring to reduce recovery time when the server topology changes.
  • Support the MONGODB-AWS authentication mechanism.
  • Support Online Certificate Status Protocol (OCSP).
  • Support configuring hedged reads in read preferences.
  • Reduce the number of round trips necessary for SCRAM and X509 authentication.
  • Monitor servers in parallel when using a mongoc_client_pool_t instead of doing serial scans.
  • Support the “hint” option in operations using the update, replace, delete, and findAndModify commands.
  • Improve behavior for retryable writes.
  • Improve resuming behavior of change streams on server errors.
  • Remove restriction of 255 character collection namespaces.

Bug fixes:

  • Fix criteria for resumable errors in change streams.
  • Fix rare crashes when server is invalidated during authentication.
  • Reject client session for mongoc_collection_estimated_document_count.
  • Fix behavior of a SecondaryPreferred read preference for exhaust cursor operations against a sharded cluster. Prior to the fix, a nonzero maxStalenessSeconds would not trigger sending the read preference.
  • Fix SRV polling. Prior to the fix, SRV polling did not properly apply newly discovered results.
  • Fix checks for existing GridFS indexes to handle indexes created by the MongoDB shell.
  • Fix possible use of invalidated streams during an unordered OP_QUERY bulk write, and when ending many pooled sessions at client destruction.
  • Fix a crash when setting the crl_file TLS option for Secure Channel.
  • Avoid emitting duplicate ServerChanged events when no change is observed during monitoring.
  • Properly handle large SASL messages instead of erroring.

Notes:

  • Deprecated “lib” prefixed artifacts are no longer produced when building on Windows.

libbson
Features:

  • Add the cmake option ENABLE_PIC to build static libraries with position independent code.

Bug fixes:

  • Fix possible int32 overflow when comparing and constructing large bson_t’s.
  • Fix pedantic compiler warnings.