Releases: mongodb/mongo-go-driver
MongoDB Go Driver 1.9.4
The MongoDB Go Driver Team is pleased to release version 1.9.4 of the official Go driver.
Release Notes
This release contains a bugfix for heartbeat buildup with streaming protocol when the Go driver process is paused in an FAAS environment (e.g. AWS Lambda).
For a full list of tickets included in this release, please see the links below:
Documentation for the Go driver can be found on pkg.go.dev and the MongoDB documentation site. BSON library documentation is also available on pkg.go.dev. Questions and inquiries can be asked on the MongoDB Developer Community. Bugs can be reported in the Go Driver project in the MongoDB JIRA where a list of current issues can be found. Your feedback on the Go driver is greatly appreciated!
P.S. We want to hear about how Go developers use MongoDB and the MongoDB Go Driver! If you haven't already, please take the 2022 MongoDB Go Developer Survey.
MongoDB Go Driver 1.11.0
⚠️ Retracted
This release has been retracted due to a bug that can cause undefined behavior when reading the Raw
field on database error types, including CommandError
and WriteException
.
Please use version 1.11.3 or higher.
The MongoDB Go Driver Team is pleased to release version 1.11.0 of the official Go driver.
Release Notes
This release improves the Timeout
API and behavior, reduces memory allocations when running most operations, and fixes several bugs. It also removes support for some legacy versions of MongoDB and Go. See below for more details.
Improve Timeout API and Behavior
Setting Timeout
on a mongo.Client
to enable a client-level default operation timeout is a feature added in version 1.10.0 of the driver. Various improvements have been made to this API. In particular:
- If
Timeout
is set, the driver will now retry as many times as possible before the context's deadline instead of just once. This should improve application resiliency when usingTimeout
. - The
mongo.IsTimeout
error helper has been extended to catch more timeout errors. - New GridFS methods have been added that take contexts instead of using
SetReadDeadline
andSetWriteDeadline
.
This feature will remain a provisional API while we gather feedback on its design and solidify our specification.
Reduce Memory Allocations
Reduce memory allocations in several critical paths in operation execution.
Fix SRV Polling
Fix a severe bug in SRV polling which may prevent changes in SRV records from updating the servers that the Go driver attempts to connect to when the MongoDB connection string includes a username and password.
Remove Support for Legacy MongoDB Versions
As of this release, the Go driver now requires MongoDB 3.6 or newer.
Remove Support for Legacy Go Versions
As of this release, the Go driver now requires Go 1.13 or newer.
Additional Features and Improvements
- Improve server-side resource cleanup when using the
Cursor.All
andSession.WithTransaction
functions. - Add support for GCP service accounts when using GCP KMS.
- Allow specifying the
SERVICE_HOST
Kerberos authentication parameter in theauthMechanismProperties
connection string option. - Improve error message when operations fail due to context cancellation.
For a full list of tickets included in this release, please see the links below:
Documentation for the Go driver can be found on pkg.go.dev and the MongoDB documentation site. BSON library documentation is also available on pkg.go.dev. Questions and inquiries can be asked on the MongoDB Developer Community. Bugs can be reported in the Go Driver project in the MongoDB JIRA where a list of current issues can be found. Your feedback on the Go driver is greatly appreciated!
MongoDB Go Driver 1.9.3
The MongoDB Go Driver Team is pleased to release version 1.9.3 of the official Go driver.
Release Notes
This release fixes a severe bug in SRV polling which may prevent changes in SRV records from updating the servers that the Go Driver attempts to connect to when the MongoDB connection string includes a username and password.
For a full list of tickets included in this release, please see the links below:
Documentation for the Go driver can be found on pkg.go.dev and the MongoDB documentation site. BSON library documentation is also available on pkg.go.dev. Questions and inquiries can be asked on the MongoDB Developer Community. Bugs can be reported in the Go Driver project in the MongoDB JIRA where a list of current issues can be found. Your feedback on the Go driver is greatly appreciated!
MongoDB Go Driver 1.8.6
The MongoDB Go Driver Team is pleased to release version 1.8.6 of the official Go driver.
Release Notes
This release fixes a severe bug in SRV polling which may prevent changes in SRV records from updating the servers that the Go Driver attempts to connect to when the MongoDB connection string includes a username and password.
For a full list of tickets included in this release, please see the links below:
Documentation for the Go driver can be found on pkg.go.dev and the MongoDB documentation site. BSON library documentation is also available on pkg.go.dev. Questions and inquiries can be asked on the MongoDB Developer Community. Bugs can be reported in the Go Driver project in the MongoDB JIRA where a list of current issues can be found. Your feedback on the Go driver is greatly appreciated!
MongoDB Go Driver 1.10.4
The MongoDB Go Driver Team is pleased to release version 1.10.4 of the official Go driver.
Release Notes
This release contains several bugfixes. One of the bugfixes removes a severe bug in SRV polling which may prevent changes in SRV records from updating the servers that the Go Driver attempts to connect to when the MongoDB connection string includes a username and password.
For a full list of tickets included in this release, please see the links below:
Documentation for the Go driver can be found on pkg.go.dev and the MongoDB documentation site. BSON library documentation is also available on pkg.go.dev. Questions and inquiries can be asked on the MongoDB Developer Community. Bugs can be reported in the Go Driver project in the MongoDB JIRA where a list of current issues can be found. Your feedback on the Go driver is greatly appreciated!
MongoDB Go Driver 1.10.3
The MongoDB Go Driver Team is pleased to release version 1.10.3 of the official Go driver.
Release Notes
This release contains several bugfixes.
For a full list of tickets included in this release, please see the links below:
Documentation for the Go driver can be found on pkg.go.dev and the MongoDB documentation site. BSON library documentation is also available on pkg.go.dev. Questions and inquiries can be asked on the MongoDB Developer Community. Bugs can be reported in the Go Driver project in the MongoDB JIRA where a list of current issues can be found. Your feedback on the Go driver is greatly appreciated!
MongoDB Go Driver 1.9.2
The MongoDB Go Driver Team is pleased to release version 1.9.2 of the official Go driver.
Release Notes
This release contains a bugfix: MinPoolSize
can no longer be set to exceed the value of MaxPoolSize
.
For a full list of tickets included in this release, please see the links below:
Documentation for the Go driver can be found on pkg.go.dev and the MongoDB documentation site. BSON library documentation is also available on pkg.go.dev. Questions and inquiries can be asked on the MongoDB Developer Community. Bugs can be reported in the Go Driver project in the MongoDB JIRA where a list of current issues can be found. Your feedback on the Go driver is greatly appreciated!
MongoDB Go Driver 1.10.2
The MongoDB Go Driver Team is pleased to release version 1.10.2 of the official Go driver.
Release Notes
This release stops treating context errors as retryable network errors where possible.
For a full list of tickets included in this release, please see the links below:
Documentation for the Go driver can be found on pkg.go.dev and the MongoDB documentation site. BSON library documentation is also available on pkg.go.dev. Questions and inquiries can be asked on the MongoDB Developer Community. Bugs can be reported in the Go Driver project in the MongoDB JIRA where a list of current issues can be found. Your feedback on the Go driver is greatly appreciated!
MongoDB Go Driver 1.10.1
The MongoDB Go Driver Team is pleased to release version 1.10.1 of the official Go driver.
Release Notes
This release, along with the libmongocrypt v1.5.2 release, fixes a potential encryption key corruption bug in ClientEncryption.RewrapManyDataKey
that can lead to encrypted data corruption when rotating encryption keys backed by GCP or Azure key services.
This release also removes potentially confusing deprecation warnings added to some existing timeout mechanisms in the v1.10.0 release.
Fix for potential data corruption when rotating encryption keys
Fixes a potential encryption key corruption bug in ClientEncryption.RewrapManyDataKey
that can lead to encrypted data corruption when rotating encryption keys backed by GCP or Azure key services. See the libmongocrypt v1.5.2 release notes for more details about the bug. ClientEncryption.RewrapManyDataKey
will now return an error if the linked version of libmongocrypt
is less than 1.5.2.
For a full list of tickets included in this release, please see the links below:
Documentation for the Go driver can be found on pkg.go.dev and the MongoDB documentation site. BSON library documentation is also available on pkg.go.dev. Questions and inquiries can be asked on the MongoDB Developer Community. Bugs can be reported in the Go Driver project in the MongoDB JIRA where a list of current issues can be found. Your feedback on the Go driver is greatly appreciated!
MongoDB Go Driver 1.10.0
⚠️ Retracted
This release has been retracted due to a potential encryption key corruption bug in ClientEncryption.RewrapManyDataKey
that can lead to encrypted data corruption when rotating encryption keys backed by GCP or Azure key services.
Please use version 1.10.1 or higher.
The MongoDB Go Driver Team is pleased to release version 1.10.0 of the official Go driver.
Release Notes
This release supports several new features introduced in MongoDB v6.0, including the following notable changes.
Queryable Encryption Support
This release includes new options to AutoEncryptionOpts
and EncryptOpts
to support Queryable Encryption. Queryable Encryption support requires MongoDB server 6.0 or newer, and libmongocrypt 1.5.0 or newer.
Automatic Encryption Shared Library
Add support for the new encryption helper, crypt_shared
, referred to as the Shared Library. The shared library replacesmongocryptd
and does not require spawning a new process.
Key Management API Operations
Add ClientEncryption entity operations for Key Management API with the purpose of
- creating data keys
- rewrapping data keys
- deleting data keys
- adding and removing alternative names to data keys
- getting data keys
Warning There is a severe bug when calling RewrapManyDataKey with libmongocrypt versions less than 1.5.2. This bug may result in data corruption. Please use libmongocrypt 1.5.2 or higher when calling RewrapManyDataKey.
Patch for Decoding Empty Types
A patch is implemented for defaulting data to either primitive.M
or primitive.D
when decoding empty types.
Encoding Atypical Map Key Types
Allow encoding atypical map key types for data that can unmarshal into a textual representation of itself, i.e. TextMarshaler
and TextUnmarshaler
.
Improvement of Full Document Request
Add the ability to request the full document both before and after an update in Change Stream events.
PRN and UUID Generation Refactoring
Refactor the pseudo-random number and UUID generation to improve performance and reduce conflict.
Reducing memory consumption when compressing wire messages
Refactor the Zstd compression to reduce memory consumption.
Provisional API for Timeout
The new Timeout
client option can be used to set a default context timeout for every operation sent through that client. SetTimeout
represents unstable, provisional API; the behavior of the driver when a Timeout
is specified is subject to change.
Troubleshooting Documentation
The Go Driver team will start supporting a docs/common-issues.md
file for troubleshooting frequently encountered issues.
For a full list of tickets included in this release, please see the links below:
Documentation for the Go driver can be found on pkg.go.dev and the MongoDB documentation site. BSON library documentation is also available on pkg.go.dev. Questions and inquiries can be asked on the MongoDB Developer Community. Bugs can be reported in the Go Driver project in the MongoDB JIRA where a list of current issues can be found. Your feedback on the Go driver is greatly appreciated!