March 23, 2020
This page lists additions and changes in v19.2.5 since v19.2.4.
- For a comprehensive summary of features in v19.2, see the v19.2 GA release notes.
- To upgrade to v19.2, see Upgrade to CockroachDB v19.2
A denial-of-service (DoS) vulnerability is present in CockroachDB v19.2.0 - v19.2.11 due to a bug in protobuf. This is resolved in CockroachDB v19.2.12 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 v19.2.0 - v19.2.12. 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 v20.2.8 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:v19.2.5
Security updates
- Non-licensed users are now able to add more principals to the special superuser role/group
admin
. Creation of additional roles is still a licensed feature. #45395
SQL language changes
- The SQL:2008 syntax
OFFSET <x> ROWS
andFETCH FIRST <y> ROWS ONLY
now accepts parameter values. #45166 - It is now possible to use
GRANT
andREVOKE
to add users to theadmin
role without a valid license. This change aims to enable use of the Admin UI and other privileged features without a license. #45395
Command-line changes
cockroach debug zip
now includes secondary log files (e.g., the RocksDB logs) in the main log directory. Log files in alternate log directories, if different from the main log directory, are not included. #45202cockroach debug zip
now displays its progress differently on the terminal. #45207cockroach debug zip
now properly supports special characters in database and table names. #45207cockroach debug zip
will now apply the--timeout
parameters to the SQL queries it performs. Previously, there was no timeout, which could causecockroach debug zip
to hang. #45207cockroach debug zip
is now able to tolerate more forms of cluster unavailability. In case system ranges are unavailable, we recommend runningcockroach debug zip
on each node's address, to maximize useful data collection. #45207- The
debug.zip
file generated bycockroach debug zip
now contains hex a representation of the marshaled jobs payload, progress, and table descriptors. #46040
Admin UI changes
- The "Log file list" endpoint now includes secondary log files (e.g., the RocksDB logs) in the main log directory. Log files in alternate log directories, if different from the main log directory, are not included. #45202
Bug fixes
- Fixed a "cannot map variable" error that could occur in rare cases involving joins. #44859
- Fixed a bug where
DROP INDEX
jobs waiting for GC TTL might be erroneously deleted early. Usually aDROP INDEX
job would appear as "waiting for GC TTL" to indicate that the data was still on disk. However, this bug might have caused the job to be deleted before the data was actually removed from disk. #44873 - Fixed occasional "concurrent map write" crash. #44874
- Previously, CockroachDB would return an internal error when a
substring
function with non-INT8
start and length arguments was executed with the vectorized execution engine. This is now fixed. #44902 - Fixed incorrect deduplication of impure expressions (e.g.,
gen_random_uuid
) in projections and default values. #44915 - Previously, CockroachDB could return an internal error on the queries that return
INT
columns when the default integer size has been changed. This is now fixed. #44980 - Previously, CockroachDB would return an internal error when a merge join operation was performed with the vectorized execution engine in the case when two sides of the join had comparable but different types in the equality columns (e.g.,
INT2
on the left andINT4
on the right). This is now fixed. #45032 - Previously, CockroachDB could crash when running
EXPLAIN (VEC)
in some edge cases. Now, an internal error is returned instead. #45004 - Fixed an internal error that could occur when
NULLIF
was called with one null argument. #45390 - Some vectorized execution plans that used lookup joins with
DECIMAL
s would previously return incorrect results. This is now fixed. #45548 - AbortSpan records are now cleaned up more aggressively when it is known to be safe. #45553
- It is now possible to create inverted indexes on columns whose names are mixed-case. #45660
- Fixed a bug causing distributed deadlock detection between transactions to stall and fail to resolve a deadlock. #45664
- Fixed a bug where large ranges with slow send rates would hit the timeout in several storage system queues by making the timeout dynamic based on the current rate limit and the size of the data being sent. This affects several storage system queues: the Raft snapshot queue, the replication queue, and the merge queue. #44952
- Previously, drivers that did not truncate trailing zeroes for decimals in the binary format end up having inaccuracies of up to 10^4 during the decode step. Trailing zeroes are now truncated as appropriate. This fixes known incorrect decoding cases with Postgrex in Elixir. #45670
- Range garbage collection will now trigger based on a large abort span, adding defense-in-depth against ranges growing large and eventually unstable. #45744
- Previously, an internal error could occur in CockroachDB when executing queries that contained unordered synchronizers with the vectorized execution engine. This is now fixed. #45739
- Previously, CockroachDB would crash when using a window function with the
RANGE
mode of framing anoffset PRECEDING
oroffset FOLLOWING
boundary where the single column in anORDER BY
clause was also in thePARTITION BY
clause. This is now fixed. #45805 - Previously, CockroachDB could crash when computing window functions with the
RANGE
mode of framing when one of the bounds was eitheroffset PRECEDING
oroffset FOLLOWING
and there wereNULL
values in the single column of anORDER BY
clause. Additionally,RANGE
mode bounds0 PRECEDING
and0 FOLLOWING
could have been handled incorrectly. This is now fixed. #45805 - When considering if a job should be orphaned, CockroachDB used to take the conservative approach when a descriptor ID pointing to non-existent descriptor was found. This caused jobs to hang and be garbage collected. We now disregard these IDs when considering if a job still has work to do. #45895
- The
--set
parameter forcockroach sql
andcockroach demo
is now able to properly override all client-side options, as advertised. #46130 - Expected errors from the vectorized execution engine are no longer mistakenly annotated as unexpected errors. #46092
Performance improvements
- Execution plans are now faster in some cases that involve
IN
/NOT IN
with an empty tuple, or= ANY
with an empty array. #45213 - Improved the selectivity estimation of some predicates containing
OR
, leading to better plan selection by the optimizer, in some cases. #45972 - Improved cardinality estimation in the optimizer for relations with a small number of rows. This may lead to the optimizer choosing a better query plan. #45972
Contributors
This release includes 36 merged PRs by 15 authors.