What's New in v19.2.5

March 23, 2020

This page lists additions and changes in v19.2.5 since v19.2.4.

Warning:

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.

Warning:

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

icon/buttons/copy
$ docker pull cockroachdb/cockroach:v19.2.5

Security updates

SQL language changes

  • The SQL:2008 syntax OFFSET <x> ROWS and FETCH FIRST <y> ROWS ONLY now accepts parameter values. #45166
  • It is now possible to use GRANT and REVOKE to add users to the admin 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. #45202
  • cockroach debug zip now displays its progress differently on the terminal. #45207
  • cockroach debug zip now properly supports special characters in database and table names. #45207
  • cockroach debug zip will now apply the --timeout parameters to the SQL queries it performs. Previously, there was no timeout, which could cause cockroach debug zip to hang. #45207
  • cockroach debug zip is now able to tolerate more forms of cluster unavailability. In case system ranges are unavailable, we recommend running cockroach debug zip on each node's address, to maximize useful data collection. #45207
  • The debug.zip file generated by cockroach 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 a DROP 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 and INT4 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 DECIMALs 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 an offset PRECEDING or offset FOLLOWING boundary where the single column in an ORDER BY clause was also in the PARTITION 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 either offset PRECEDING or offset FOLLOWING and there were NULL values in the single column of an ORDER BY clause. Additionally, RANGE mode bounds 0 PRECEDING and 0 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 for cockroach sql and cockroach 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.


Yes No

Yes No