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), 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.10
Backward-incompatible changes
- The file names for heap profile dumps are now
memprof.<date-and-time>.<heapsize>
, where previously they were namedmemprof.<heapsize>.<date-and-time>
. #55260
SQL language changes
Command-line 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
Bug fixes
- Fixed a panic that could occur when running
SHOW STATISTICS USING JSON
for 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 likestrconv.ParseUint: parsing "txt": invalid syntax
in 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
BIT
type 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 ofH:M:S
into the years, months, and days field. However, this was also broken for values greater than 1 month, as well as breakinga::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 TIME
clause 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
DATE
,TIMESTAMP
, orTIMESTAMPTZ
values that used year 1 BC were sent between nodes for execution. Additionally, previously it was not possible to specifyDATE
,TIMESTAMP
, orTIMESTAMPTZ
values 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 (
"true"
or"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
tpcc
workload with the--scatter
flag 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
BACKUP
to 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 BY
for aUNION or VALUES
clause. #57522 - The
CREATE TEMP TABLE AS
statement 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
Performance improvements
- Interactions between Raft heartbeats and the Raft
goroutine
pool 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
Backward-compatible change
- The reserved, non-documented cluster settings
server.heap_profile.xxx
have been renamed toserver.mem_profile.xxx
. They now control collection of multiple sorts of memory profiles besides just Go heap allocations. #55260
Contributors
This release includes 34 merged PRs by 16 authors.