December 21, 2020
- For a comprehensive summary of features in v20.1, see the v20.1 GA release notes.
- To upgrade to v20.1, see Upgrade to CockroachDB v20.1.
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),
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:
$ docker pull cockroachdb/cockroach:v20.1.10
- The file names for heap profile dumps are now
memprof.<date-and-time>.<heapsize>, where previously they were named
SQL language changes
- CockroachDB now better attempts to retain heap profile dumps after a crash due to an out-of-memory error. #55260
- CockroachDB now better attempts to retain memory statistics corresponding to increases in total memory usage, not just heap allocations. #55260
- Fixed a panic that could occur when running
SHOW STATISTICS USING JSONfor a table in which at least one of the columns contained all null values. #56515
- The file names for generated
goroutine, CPU and memory profiles were sometimes incorrect, resulting in repeated warnings like
strconv.ParseUint: parsing "txt": invalid syntaxin log files. This has been corrected. #55260
- Fixed a bug when the Pebble storage engine is used with encryption-at-rest that could result in data corruption in some fairly rare cases after a table drop, table truncate, or replica deletion. #56680
- Previously, dumps of tables with a
BITtype column would result in an error. This column type is now supported. #56452
- In 20.1.8, we attempted to fix
age's lack of normalization of
H:M:Sinto the years, months, and days field. However, this was also broken for values greater than 1 month, as well as breaking
a::timestamp(tz) - b::timestamp(tz)operators. This has now been resolved. #56769
- CockroachDB previously would crash when executing a query with an
AS OF SYSTEM TIMEclause that used a placeholder (note that it wasn't a prepared statement, it was an attempt to use an unspecified placeholder value on a non-prepared statement). This is now fixed. #56781
- CockroachDB previously could encounter an internal error when
TIMESTAMPTZvalues that used year 1 BC were sent between nodes for execution. Additionally, previously it was not possible to specify
TIMESTAMPTZvalues with year 1 BC without using AD/BC notation. This is now fixed. #56743
- Fixed internal error when collecting a statement diagnostic bundle in some cases where the query hits an error. #56785
- Some boolean session variables would only accept string (
"false") values. Now they also accept unquoted true or false values. #56814
- Fixed a bug which would prevent the dropping of hash sharded indexes if they were added prior to other columns. #55823
- Fixed a race condition in the
tpccworkload with the
--scatterflag where tables could be scattered multiple times or not at all. #56979
- Previously if a cluster backup that was taken during a schema change, a cluster restore of that backup would create duplicates of the ongoing schema changes. #56450
- Fixed a case where attempting to start a second
BACKUPto the same location while the first was running using passphrase-based encryption could overwrite the metadata required to decrypt it and thus render it unreadable. #57025
- Fixed an internal error when using aggregates and window functions in an
ORDER BYfor a
UNION or VALUESclause. #57522
CREATE TEMP TABLE ASstatement previously created a non-temporary table. Now it makes a temporary one. #57550
- Fixed a bug where schema change jobs to add foreign keys to existing tables, via
ALTER TABLE, could sometimes not be successfully reverted (either due to being canceled or having failed). #57810
- Fixed a bug where concurrent addition of a foreign key constraint and drop of a unique index could cause the foreign key constraint to be added with no unique constraint on the referenced columns. #57810
- Fixed a bug which can occur when canceling schema changes when there are multiple queued schema changes that could result in future schema changes being stuck. #55058
- Fixed a bug which can lead to canceled schema change jobs ending in the failed rather than canceled state. #55058
- Interactions between Raft heartbeats and the Raft
goroutinepool scheduler are now more efficient and avoid excessive mutex contention. This was observed to prevent instability on large machines (32+ vCPU) in clusters with many ranges (50k+ per node). #57009
- The reserved, non-documented cluster settings
server.heap_profile.xxxhave been renamed to
server.mem_profile.xxx. They now control collection of multiple sorts of memory profiles besides just Go heap allocations. #55260
This release includes 34 merged PRs by 16 authors.