June 29, 2020
This page lists additions and changes in v20.1.3 since v20.1.2.
- For a comprehensive summary of features in v20.1, see the v20.1 GA release notes.
- To upgrade to the latest production release of CockroachDB, see this article.
A denial-of-service (DoS) vulnerability is present in CockroachDB v20.1.0 - v20.1.10 due to a bug in protobuf. This is resolved in CockroachDB v20.1.11 and later releases. When upgrading is not an option, users should audit their network configuration to verify that the CockroachDB HTTP port is not available to untrusted clients. We recommend blocking the HTTP port behind a firewall.
For more information, including other affected versions, see Technical Advisory 58932.
Cockroach Labs has discovered a bug relating to incremental backups, for CockroachDB v20.1.0 - v20.1.13. If a backup coincides with an in-progress index creation (backfill), RESTORE
, or IMPORT
, it is possible that a subsequent incremental backup will not include all of the indexed, restored or imported data.
Users are advised to upgrade to v20.1.15 or later, which includes resolutions.
For more information, including other affected versions, see Technical Advisory 63162.
Get future release notes emailed to you:
Downloads
Docker image
$ docker pull cockroachdb/cockroach:v20.1.3
Security updates
Enterprise edition changes
- Full cluster restore is now more resilient to transient transaction retry errors during restore. #50004
- The default flush interval for changefeeds that do not specify a
RESOLVED
option is now 5s instead of 200ms to more gracefully handle higher-latency sinks. #50251
SQL language changes
- Previously, using
infinity
evaluated to a negative, i.e., "-292277022365-05-08T08:17:07Z". This has been fixed to be the maximum supported timestamp in PostgreSQL that is not infinity. Likewise,-infinity
is the smallest supported value. Note this does currently does not behave exactly likeinfinity
in PostgreSQL (this is a work in progress and may be resolved later). #50365
Bug fixes
- Previously,
extract(epoch from timestamptz)
from a session time zone not in UTC would return a value which was incorrectly offset by the session time zone. This is now fixed. #50075 - Previously, the parallel importer could get stuck due to a race between emitted import batches and checking for context cancellation (either due to an unforeseen error, or due to explicit context cancallation). This is now fixed. #50089
- Previously, using separate groups for producer and consumer could lead to a situation where consumer would exit (due to an error, or explicit context cancellation) without the producer realizing, leading to a deadlock. Producer and consumer are now correctly linked during data import. #50089
- Casting to width-limited strings now works correctly for strings containing Unicode characters. #50159
- Fixed some cases in which casting a string to a width-limited string array was not truncating the string. #50168
- Fixed a bug in which restarting CockroachDB with the Pebble storage engine after a crash during write-ahead logging could, in some rare cases, return an "unexpected EOF" error. #50282
- Previously, the Admin UI Statements page was incorrectly displaying information about whether or not a statement was distributed (it was always
Yes
). This is now fixed. #50347 - Fixed a RocksDB bug that could result in inconsistencies in rare circumstances. #50397
- Fixed a bug that broke the data distribution Advanced Debug page in the Admin UI on clusters that had upgraded from 19.2 to 20.1. #49987
- Previously, when a changefeed would fail to set up its flows due to a node draining, the changefeed would be marked as failed. These errors are now retryable. #50088
Performance improvements
- CockroachDB now optimizes reading of files when doing backups and storage-level compactions of files. This should deliver a performance improvement for some read-heavy operations on an IOPS-constrained device. #50105
- Limited
SELECT
statements now do a better job avoiding unnecessary contention withUPDATE
andSELECT FOR UPDATE
statements. #50119 - Improved the optimizer's estimation of the selectivity of some filters involving a disjunction (
OR
) of predicates over multiple columns. This results in more accurate cardinality estimation and enables the optimizer to choose better query plans in some cases. #50470
Build changes
- Release Docker images are now built on Debian 9.12. #50482
Doc updates
- Updated guidance on node decommissioning. #7304
- Added node density guidance to the Production Checklist. #7514
- Renamed "whitelist/blacklist" terminology to "allowlist/blocklist". #7535
- Updated the Releases navigation in the sidebar to expose the latest Production and Testing releases. #7550
- Fixed scrollbar visibility on Chrome. #7487
Contributors
This release includes 22 merged PRs by 15 authors.