What's New in v21.1.8

August 30, 2021


This patch release has been withdrawn due to this technical advisory. All the changes listed as part of this release will be in the next release. Do not upgrade to this release.

Get future release notes emailed to you:

Downloads and Docker image


This release was withdrawn, and we've removed the links to the downloads and Docker image.

Security updates

  • The node status retrieval endpoints over HTTP (/_status/nodes, /_status/nodes/<N>, and the DB Console /#/reports/nodes) have been updated to require the admin role from the requesting user. This ensures that operational details such as network addresses and command-line flags do not leak to unprivileged users. #67068

General changes

  • A recent release removed parts of some queries from the debugging traces of those queries. This information (i.e. the execution of some low-level RPCs) has been re-included in the traces. #68923

Enterprise edition changes

SQL language changes

  • Added a new EXPLAIN flag, MEMO, to be used with EXPLAIN (OPT). When the MEMO flag is passed, a representation of the optimizer memo will be printed along with the best plan. The MEMO flag can be used in combination with other flags such as CATALOG and VERBOSE. For example, EXPLAIN (OPT, MEMO, VERBOSE) will print the memo along with verbose output for the best plan. #67778
  • Some queries with lookup joins and/or top K sorts are now more likely to be executed in a "local" manner with the distsql=auto session variable when the newly introduced sql.distsql.prefer_local_execution.enabled cluster setting is set to true (false is the default). #68613

Operational changes

  • Introduced the bulkio.index_backfill.checkpoint_interval cluster setting to control the rate at which backfills checkpoint their progress. Useful for controlling the backfill rate on large tables. #68287

Command-line changes

  • cockroach debug zip no longer retrieves database and table details into separate files. The schema information is collected by means of system.descriptors and crdb_internal.create_statements. #68984

DB Console changes

Bug fixes

  • Fixed missing foreign key checks in some cases when there are multiple checks and the inserted data contains a NULL for one of the checks. #68520
  • Fixed a bug where using ST_segmentize on coordinates that are infinite would error with a crash. #67848
  • Fixed the COPY CSV command so that it handles multiple records separated by newline characters. #68623
  • Fixed a bug that caused incorrect query results when querying tables with multiple column families and unique secondary indexes. The bug only occurred if 1) vectorized execution was enabled for the query, 2) the query scanned a unique secondary index that contained columns from more than one column family, and 3) the rows fetched by the query contained NULL values for some of the indexed columns. This bug was present since version v20.1. #68238
  • Fixed a crash in the /debug/closedts-{sender,receiver} advanced debug pages if the last message of the closed timestamp side transport buffer was removed before rendering. #68669
  • Fixed an issue where terminating a CockroachDB process early in its startup routine might cause it to fail to start again, falsely reporting write-ahead log corruption. #68897
  • Fixed a regression in the optimizer's cost model that could cause it to choose sub-optimal plans when choosing between two non-unique index scans with different numbers of columns per index. #68991
  • Fixed a bug where CockroachDB could incorrectly evaluate LIKE expressions when the pattern contained the escape characters \ if the expressions were executed via the vectorized execution engine. #68353
  • File logs now respect the max-group-size configuration parameter again. This parameter had incorrectly become ignored in v21.1, resulting in arbitrarily large log directories. #69007
  • Fixed a bug in EXPORT where concurrent exports could overwrite each other. #68392

Performance improvements

  • Jobs no longer hold exclusive locks during the duration of their checkpointing transactions which could result in long wait times when trying to run SHOW JOBS. #68244
  • Lookup joins on indexes with virtual columns are now considered by the optimizer. This should result in more efficient queries in many cases. Most notably, post-query uniqueness checks for unique indexes on virtual columns in REGIONAL BY ROW tables can now use the unique index rather than perform a full-table scan. #68423


This release includes 40 merged PRs by 26 authors.

YesYes NoNo