Important

You are viewing the documentation of TiDB v6.0 (DMR). PingCAP does not provide bug fixes for v6.0. Any bugs will be fixed in future releases.

For general purposes, please use the latest LTS version of the TiDB database.

TiDB 4.0.16 Release Notes

Release date: December 17, 2021

TiDB version: 4.0.16

Compatibility changes

  • TiKV

    • Before v4.0.16, when TiDB converts an illegal UTF-8 string to a Real type, an error is reported directly. Starting from v4.0.16, TiDB processes the conversion according to the legal UTF-8 prefix in the string #11466
  • Tools

    • TiCDC

      • Change the default value of Kafka Sink max-message-bytes to 1 MB to prevent TiCDC from sending too large messages to Kafka clusters #2962
      • Change the default value of Kafka Sink partition-num to 3 so that TiCDC distributes messages across Kafka partitions more evenly #3337

Improvements

  • TiDB

    • Upgrade the Grafana version from 7.5.7 to 7.5.11
  • TiKV

    • Reduce disk space consumption by adopting the zstd algorithm to compress SST files when restoring data using Backup & Restore or importing data using Local-backend of TiDB Lightning #11469
  • Tools

    • Backup & Restore (BR)

      • Improve the robustness of restoring #27421
    • TiCDC

      • Add a tick frequency limit to EtcdWorker to prevent frequent etcd writes from affecting PD services #3112
      • Optimize rate limiting control on TiKV reloads to reduce gPRC congestion during changefeed initialization #3110

Bug fixes

  • TiDB

    • Fix the query panic caused by overflow in the statistics module when converting a range to points for cost estimation #23625
    • Fix wrong results of the control functions (such as IF and CASE WHEN) when using the ENUM type data as parameters of such functions #23114
    • Fix the issue that the GREATEST function returns inconsistent results due to different values of tidb_enable_vectorized_expression (on or off) #29434
    • Fix the panic when applying index join on prefix indexes in some cases #24547
    • Fix the issue that planner might cache invalid plans for join in some cases #28087
    • Fix a bug that TiDB cannot insert null into a non-null column when sql_mode is empty #11648
    • Fix the wrong result type of the GREATEST and LEAST functions #29019
    • Fix the privilege check fail error when performing the grant and revoke operations to grant and revoke global level privileges #29675
    • Fix the panic when using the CASE WHEN function on the ENUM data type #29357
    • Fix wrong results of the microsecond function in vectorized expressions #29244
    • Fix wrong results of the hour function in vectorized expression #28643
    • Fix the issue that optimistic transaction conflicts might cause transactions to block each other #11148
    • Fix the issue of incomplete log information from the auto analyze result #29188
    • Fix the issue that using an invalid default date does not report an error when the SQL_MODE is 'NO_ZERO_IN_DATE' #26766
    • Fix the issue that the Coprocessor Cache panel in Grafana does not display metrics. Now, Grafana displays the number of hits/miss/evict #26338
    • Fix the issue that concurrently truncating the same partition causes DDL statements to stuck #26229
    • Fix the issue that the length information is wrong when converting Decimal to String #29417
    • Fix the issue of an extra column in the query result when NATURAL JOIN is used to join multiple tables #29481
    • Fix the issue that TopN is wrongly pushed down to indexPlan when IndexScan uses a prefix index #29711
    • Fix the issue that retrying transactions with the auto-increment columns of DOUBLE type causes data corruption #29892
  • TiKV

    • Fix a panic issue that occurs when Region merge, ConfChange, and Snapshot happen at the same time in extreme conditions #11475
    • Fix the issue of negative sign when the decimal divide result is zero #29586
    • Fix the issue that the average latency of the by-instance gRPC requests is inaccurate in TiKV metrics #11299
    • Fix the issue of TiCDC panic that occurs when the downstream database is missing #11123
    • Fix the issue that the Raft connection is broken when the channel is full #11047
    • Fix the issue that TiDB cannot correctly identify whether the Int64 types in Max/Min functions are a signed integer or not, which causes the wrong calculation result of Max/Min #10158
    • Fix the issue that CDC adds scan retries frequently due to the Congest error #11082
  • PD

    • Fix a panic issue that occurs after the TiKV node is removed #4344
    • Fix slow leader election caused by stucked region syncer #3936
    • Support that the evict leader scheduler can schedule regions with unhealthy peers #4093
  • TiFlash

    • Fix the issue that TiFlash fails to start up on some platforms due to the absence of library nsl
  • Tools

    • TiDB Binlog

      • Fix the bug that Drainer exits when transporting a transaction greater than 1 GB #28659
    • TiCDC

      • Fix the negative value error in the changefeed checkpoint lag #3010
      • Fix OOM in container environments #1798
      • Fix the TiCDC replication interruption issue when multiple TiKVs crash or during a forced restart #3288
      • Fix the memory leak issue after processing DDLs #3174
      • Fix the issue that changefeed does not fail fast enough when the ErrGCTTLExceeded error occurs #3111
      • Fix the issue that TiCDC replication task might terminate when the upstream TiDB instance unexpectedly exits #3061
      • Fix the issue that TiCDC process might panic when TiKV sends duplicate requests to the same Region #2386
      • Fix the issue that the volume of Kafka messages generated by TiCDC is not constrained by max-message-size #2962
      • Fix the issue that tikv_cdc_min_resolved_ts_no_change_for_1m keeps alerting when there is no changefeed #11017
      • Fix the issue that TiCDC sync task might pause when an error occurs during writing a Kafka message #2978
      • Fix the issue that some partitioned tables without valid indexes might be ignored when force-replicate is enabled #2834
      • Fix the memory leak issue when creating a new changefeed #2389
      • Fix the issue that might cause inconsistent data due to Sink components advancing resolved ts early #3503
      • Fix the issue that scanning stock data might fail due to TiKV performing GC when scanning stock data takes too long #2470
      • Fix the issue that the changefeed update command does not recognize global command line parameters #2803
Was this page helpful?