Project: YugabyteDB (App Definition and Development / Database)
File: v2.4.md

title: What's new in the v2.4 release series headerTitle: What's new in the v2.4 release series linkTitle: v2.4 series description: Enhancements, changes, and resolved issues in the v2.4 release series. menu: preview_releases: parent: end-of-life identifier: v2.4 weight: 2940 aliases: /preview/releases/release-notes/v2.4/ rightNav: hideH4: true type: docs Included here are the release notes for all releases in the v2.4 release series. Content will be added as new notable features and changes are available in the patch releases of the v2.4 release series. {{< warning title="Use v2.4.4.0 or later" >}} YugabyteDB version 2.4.4.0 contains an important fix for a bug in a downstream dependency (the `gperftools` package). This `tcmalloc` memory allocation bug could lead to process crashes. If you're using a version higher than 2.4.0.0, please upgrade as soon as possible. Refer to for details. This bug does not affect version 2.4.0.0. {{< /warning >}} Build: `2.4.8.0-b16` <ul class="nav yb-pills"> <li> <a href="https://downloads.yugabyte.com/releases/2.4.8.0/yugabyte-2.4.8.0-b16-darwin-x86_64.tar.gz"> <i class="fa-brands fa-apple"></i><span>macOS</span> </a> </li> <li> <a href="https://downloads.yugabyte.com/releases/2.4.8.0/yugabyte-2.4.8.0-b16-linux-x86_64.tar.gz"> <i class="fa-brands fa-linux"></i><span>Linux</span> </a> </li> </ul> ```sh docker pull yugabytedb/yugabyte:2.4.8.0-b16 ``` ] Add Transaction Cleanup to CREATE INDEX ] ] [YSQL] Inherit default PGSQL proxy bind address from RPC bind address ] Add logs purge threshold option to zippurgeyb_logs.sh [PLAT-1662] Root cert rotation support through UI for both self-signed and custom certs ] Do not link with system libpq ] Fix bootstrapping with preallocated log segment ] [DocDB] Add null check to MasterServiceImpl::GetTabletLocations [PLAT-1724] Full move fails midway if system tablet takes more than 2 mins to bootstrap [PLAT-2315] Fix backup failures after root cert rotation [UI] NFS config failed in 2.4 Build: `2.4.7.0-b7` <ul class="nav yb-pills"> <li> <a href="https://downloads.yugabyte.com/releases/2.4.7.0/yugabyte-2.4.7.0-b7-darwin-x86_64.tar.gz"> <i class="fa-brands fa-apple"></i><span>macOS</span> </a> </li> <li> <a href="https://downloads.yugabyte.com/releases/2.4.7.0/yugabyte-2.4.7.0-b7-linux-x86_64.tar.gz"> <i class="fa-brands fa-linux"></i><span>Linux</span> </a> </li> </ul> ```sh docker pull yugabytedb/yugabyte:2.4.7.0-b7 ``` ] ] [YCQL] Run operations within a transaction block in serial ] [DocDB] Introduce aggregation function for metrics ] [YSQL] log failed DocDB requests on client side N/A ] [YSQL] [Backup] Partial index syntax error in the ysql_dump output ] [YCQL] Honour token() conditions for all partition keys from IN clause ] [Platform] New Universe creation gets public IP assigned even with flag = false <ul class="nav yb-pills"> <li> <a href="https://downloads.yugabyte.com/releases/2.4.6.0/yugabyte-2.4.6.0-b10-darwin-x86_64.tar.gz"> <i class="fa-brands fa-apple"></i><span>macOS</span> </a> </li> <li> <a href="https://downloads.yugabyte.com/releases/2.4.6.0/yugabyte-2.4.6.0-b10-linux-x86_64.tar.gz"> <i class="fa-brands fa-linux"></i><span>Linux</span> </a> </li> </ul> ```sh docker pull yugabytedb/yugabyte:2.4.6.0-b10 ``` ] Small master perf tweaks ] docdb: Increase thresholds for master long lock warnings ] Add support for certificate chaining in platform/yb-client. ] Platform: Update "preflight_checks.sh" from ping to tcp check. ] Fix missing conflict when creating row using multiple inserts ] Check capability before sending graceful cleanup ] [YCQL] Fixing ALTER TABLE which resets table properties like istransactional. ] Platform: Revert ] Use more recent centos-7 base image for GCP universe VMs. ] Platform: Alert spam for message "Clock Skew Alert Resolved" <ul class="nav yb-pills"> <li> <a href="https://downloads.yugabyte.com/releases/2.4.5.0/yugabyte-2.4.5.0-b20-darwin-x86_64.tar.gz"> <i class="fa-brands fa-apple"></i><span>macOS</span> </a> </li> <li> <a href="https://downloads.yugabyte.com/releases/2.4.5.0/yugabyte-2.4.5.0-b20-linux-x86_64.tar.gz"> <i class="fa-brands fa-linux"></i><span>Linux</span> </a> </li> </ul> ```sh docker pull yugabytedb/yugabyte:2.4.5.0-b20 ``` N/A ] Allow editing of backup config

(#8535) ] ] [DocDB] disabled bloom filters for master tablet and fixed DocDbAwareV2FilterPolicy compatibility for range-partitioned co-located tables ] [YSQL] Fix crash during bootstrap when replaying WAL of deleted colocated table ] Fix timeout handling when getting safe time in a RF1 cluster ] ] release) ] [Ybase] GetLoadMoveCompletionPercent returns an incorrect 100% if tservers haven't heartbeated their tablet reports ] Fix NPE Handling for indexedtableid ] [DocDB] Add protection against missing UserFrontiers in older SST files during intents cleanup ] Add limit to customer task API. (#8700) ] Fix '< 1 min' uptime shown intermittently ] Fix Add instance modal form to allow for adding instances in isolated region case. ] Remove hard coded cert filepath, and add Python module to use the system temporary directory ] Enable edit backup configuration for the active tab only. (#8674) ] Reset the values on cancel. (#8627) ] Edit Configuration button was only working intermittently. (#8975) ] Allow ReadOnly and BackupAdmin roles to change their password. <ul class="nav yb-pills"> <li> <a href="https://downloads.yugabyte.com/releases/2.4.4.0/yugabyte-2.4.4.0-b7-darwin-x86_64.tar.gz"> <i class="fa-brands fa-apple"></i><span>macOS</span> </a> </li> <li> <a href="https://downloads.yugabyte.com/releases/2.4.4.0/yugabyte-2.4.4.0-b7-linux-x86_64.tar.gz"> <i class="fa-brands fa-linux"></i><span>Linux</span> </a> </li> </ul> ```sh docker pull yugabytedb/yugabyte:2.4.4.0-b7 ``` ] YSQL: Always listen on UNIX domain socket ] [DocDB] - Initialize block cache for master/sys_catalog ] [DocDB] - Refactor memory management for tablets into a separate class ] Platform: Scrape platform prometheus metrics in replicated ] ysql: prevent temp indexes from using lsm ] Downgrade gperftools to 2.7 N/A <ul class="nav yb-pills"> <li> <a href="https://downloads.yugabyte.com/releases/2.4.3.0/yugabyte-2.4.3.0-b6-darwin-x86_64.tar.gz"> <i class="fa-brands fa-apple"></i><span>macOS</span> </a> </li> <li> <a href="https://downloads.yugabyte.com/releases/2.4.3.0/yugabyte-2.4.3.0-b6-linux-x86_64.tar.gz"> <i class="fa-brands fa-linux"></i><span>Linux</span> </a> </li> </ul> ```sh docker pull yugabytedb/yugabyte:2.4.3.0-b6 ``` ] Add ability to configure cipher list ] Fixing the error message when the get host info call to gcp fails ] Yugabyte Platform (YugaWare) creates zombie ssh process ] GCP universes don't have correct nproc system settings. ] ] Fix preceding op id in case of empty ops sent to the follower ] Correctly handling a failure to create a priority thread pool worker thread ] Unable to reuse On-premise instance incase previouse universe failed / deleted (#8263) <ul class="nav yb-pills"> <li> <a href="https://downloads.yugabyte.com/releases/2.4.2.0/yugabyte-2.4.2.0-b45-darwin-x86_64.tar.gz"> <i class="fa-brands fa-apple"></i><span>macOS</span> </a> </li> <li> <a href="https://downloads.yugabyte.com/releases/2.4.2.0/yugabyte-2.4.2.0-b45-linux-x86_64.tar.gz"> <i class="fa-brands fa-linux"></i><span>Linux</span> </a> </li> </ul> ```sh docker pull yugabytedb/yugabyte:2.4.2.0-b45 ``` ] docdb: LB should not move tablets right after splitting ] YSQL: Make row key share lock less restrictive ] Adaptive Heartbeat Reporting ] docdb: Master should rebuild YCQL system.partitions on a background thread ] ] YSQL: Improve configuration and defaults for client to server encryption ] ysql: check backfill bad connection status ] [YCQL] Update index from transaction with cross-key statements. ] YCQL: Fix checks in index update path that determine full row removal. ] ysql: prioritize internal HBA config ] [YSQL] YSQL dump should always include HASH/ASC/DESC modifier for indexes/pkey. ] Support platform backup/restore on Kubernetes ] Fix conflict resolution while adding read intents ] ] ] ] YCQL system.partition bug fixes ] docdb - Register ScopedRWOperation when accessing doc_db data in StillHasParentDataAfterSplit ] Explicitly clear the global PgMemctx map in YBCDestroyPgGate ] Fix wrong propagated safe time ] Tablet splitting: Crash during generating TSHeartbeat report after split ] Don't crash when trying to append ValueType::kTombstone to a key ] [Platform] Fixing the error message when the get host info call to cloud providers fails ] ] Platform: Cascade delete alert and alert_definition ] [Platform] Add conditional checks for hiding specific platform elements in non-platform

] [Platform] Use the correct SSH user for on-prem node preflight checks ] [Platform] Missing package for s3cmd dependency for airgapped GCP VMs ] [Platform] Preflight checks should handle sudo passwords when given ] [Platform] parsing of df output is fragile and may fail in case of "safe" error in df ] [Platform] Insufficient user feedback in platform for Task Retry ] [Platform] Changed default port of On-Prem provider to 22 (#7599) ] [Platform] Use more recent CentOS-7 base image for GCP universe VMs ] [Platform] Add python modules to PYTHONPATH in non-replicated installations ] [Platform] Use the correct SSH user + port for onprem workflow. ] [Platform] Custom SMTP Configuration API returns unmasked SMTP password ] [Platform] Can't send email for custom SMTP settings without authentication (empty username) ] [Platform] Backup to S3 fails using Platform instance's IAM role ] Prevent adding on-prem node instance with duplicate IP ] [Platform] A lot of exceptions in logs "Error querying for alerts..." ] [Platform] Make backup deletion independent of schedule ] [Platform] Update SMTP configuration for health check emails ] [Platform] Fix issue with signature could not be verified for google-cloud-sdk for GCP VMs ] [Platform] Add US-West2 GCP metadata to Platform ] [Platform] Backup deletion script shouldn't cause retries <ul class="nav yb-pills"> <li> <a href="https://downloads.yugabyte.com/releases/2.4.1.1/yugabyte-2.4.1.1-b4-darwin-x86_64.tar.gz"> <i class="fa-brands fa-apple"></i><span>macOS</span> </a> </li> <li> <a href="https://downloads.yugabyte.com/releases/2.4.1.1/yugabyte-2.4.1.1-b4-linux-x86_64.tar.gz"> <i class="fa-brands fa-linux"></i><span>Linux</span> </a> </li> </ul> ```sh docker pull yugabytedb/yugabyte:2.4.1.1-b4 ``` ] Fix wrong propagated safe time ] Platform: Missing package for s3cmd dependency for airgapped GCP VMs <ul class="nav yb-pills"> <li> <a href="https://downloads.yugabyte.com/releases/2.4.1.0/yugabyte-2.4.1.0-b25-darwin-x86_64.tar.gz"> <i class="fa-brands fa-apple"></i><span>macOS</span> </a> </li> <li> <a href="https://downloads.yugabyte.com/releases/2.4.1.0/yugabyte-2.4.1.0-b25-linux-x86_64.tar.gz"> <i class="fa-brands fa-linux"></i><span>Linux</span> </a> </li> </ul> ```sh docker pull yugabytedb/yugabyte:2.4.1.0-b25 ``` When creating/restoring backups, use the local UNIX socket to connect to YSQL instead of the hostname if authentication is enabled ] On universe creation, platform checks that clocks are synchronized ] Health Check generates alerts if it isn't running ] Manual provisioning now runs the same preflight checks as regular provisioning ] Retrying a failed task now provides visual feedback ] Removed the "Transactions" plot line from YSQL Ops and Latency graphs ] You can now specify a minimum TLS version for Platform ], ] Health checks now default to TLS 1.2 ] The YB-TServer metrics output (for example, on ) now shows the total affected rows for each operation. ] YSQL: Backup for colocated databases ] Optimizations to the YSQL layer to apply empty deletes only when required ] Backup: Fix restore of colocated table with `table_oid` already set ] Metrics thread now start after the first replication stream is created ] The YB-TServer metrics output (for example, on ) now shows transaction BEGIN, COMMIT, and ROLLBACK statements. ] Restore now preserves the exact partitioning of the source tablets ] Enabled a sanity check to ensure that the tablet lookup result matches the partition key ] Release instance was not an option for a node if an install failed because of SSH access ] Backup-related tasks (schedules, restores, deletes) failed when the storage configuration was deleted ] VPC cross-linking failed during creation of an AWS provider ] Fixes to YSQL backups with node-to-node TLS encryption enabled ] Add certs flags to `ysql_dump` when backing up a node-to-node TLS-enabled universe Corrected an error when backing up multiple YSQL namespaces in a universe that is encrypted at rest ] Fixed a syntax error in replicated.yml ] Fixed an issue preventing health checks from using an appropriate TLS version ] YSQL: Fix calculation for transaction counts in YSQL

] ybase: a blacklisted TS' initial load was not replicated during master failover ] The CREATE INDEX statement generated by ysql_dump now uses SPLIT INTO syntax ] YCQL: Fixed a bug with an index update on a list after an overwrite ] Fixed a bug in YSQL for online index backfill capabilities, to ensure deletes to an index are persisted during backfill ] YCQL: Fixed various issues for literals of collection datatypes ], ] The permissions map is now rebuilt after all ALTER ROLE operations ] Fixes to Async Replication 2DC capabilities, including a bug fix for a race condition on consumer with smaller batch sizes ] <ul class="nav yb-pills"> <li> <a href="https://downloads.yugabyte.com/releases/2.4.0.0/yugabyte-2.4.0.0-b60-darwin-x86_64.tar.gz"> <i class="fa-brands fa-apple"></i><span>macOS</span> </a> </li> <li> <a href="https://downloads.yugabyte.com/releases/2.4.0.0/yugabyte-2.4.0.0-b60-linux-x86_64.tar.gz"> <i class="fa-brands fa-linux"></i><span>Linux</span> </a> </li> </ul> ```sh docker pull yugabytedb/yugabyte:2.4.0.0-b60 ``` Data encryption in-transit enhancements: Support for bringing your own CA certificates for an on-premise cloud provider () Support for rotating custom CA certificates () Displaying the certificate name in the YB Platform Universe editor Moving of the Certificates page to Cloud Config > Security > Encryption in Transit Moving of TLS In-Transit Certificates to Cloud > Security Config Support for Rolling restart of a universe () Support for VMware Tanzu as a new cloud provider () Alerts for backup tasks () Introducing support for audit logging in YCQL and YSQL API (,,) Ability to log slow running queries in YSQL () Introducing support for LDAP integration in YSQL API () Support for Transactional tables and Cross Cluster Async Replication topology () Support for very large transactions and stability improvements () Displaying an entire query in the detailed view of the live queries tab () Not returning Hashes and Tokens in API responses () Authentication of proxy requests against a valid platform session () Disabling of the unused API endpoint run_query () Improved error handling for user-created concurrent backup tasks () Performance improvements for live queries () Pre-flight checks for Create Universe, Edit Universe, and Add Node operations for an on-premise provider () Disabling of the unused API endpoint runinshell () Disabling of the unused API endpoint createdbcredentials () Input validation for Kubernetes configuration path () Input validation for the access_keys API endpoint () Input path validation for backup target paths () Timeout support for busybox () Enabling of CORS policy by default () Deleting backups for TLS-enabled universes () DDL consistency (,,) DDL performance improvements (,) ALTER versions for ORM support () Online index backfill GA (,,) Table partitioning (,) SQL support improvements: Support for the FROM clause in UPDATE () Support for the USING clause in DELETE () SQL/JSON path language ) Performance improvements: Sequence cache min-value flag (,) Foreign-key batching () YSQL usability improvements: COPY FROM rows-per-txn option (,) COPY / ysql_dump OOM (,,) Large DML OOM () Updating pkey values () Restarting write-txns on conflict () YSQL statement execution statistics () Improved raft leader stepdown operations, by waiting for the target follower to catch up. This reduces the unavailability window during cluster operations. () Improved performance during cluster overload: Improved throttling for user-level YCQL RPC () Lower YCQL live RPC memory usage () Improved throttling for internal master level RPCs () Improved performance for YCQL and many connections: Cache for generic YCQL system queries () Cache for auth information for YCQL () Speedup system.partitions queries () Improved DNS handling: Process-wide cache for DNS queries () Avoid duplicate DNS requests during YCQL

queries () Improved master-level load balancer (LB) operations: Throttle tablet moves per table () New global optimization for tablet balancing -- this also allows the LB to work with colocation () New global optimization for leader balancing () Delay LB on master leader failover () Register temporary TS on master failover to prevent invalid LB operations () Configurable option to disallow TLS v1.0 and v1.1 protocols () Skip loading deleted table metadata into master memory () Edit Universe did not display the TLS certificate used Multi-zone K8s universe creation failed () Tasks page reported an incorrect status of a failed backup () K8s universe upgrade did not wait for each pod to update before moving to the next () Changing node count by AZ was doing a full move () Enabling Encryption-at-Rest without KMS configuration caused create Universe to fail silently () Missing SST size in the Nodes page of a universe with read replicas () Incorrect link in the Live queries dashboard node name () Failure to create a TLS-enabled universe with a custom home directory setting with on-premise provider () Database node health liveliness check was blocked indefinitely () Critical fixes for transaction cleanup applicable to aborted transactions (observed frequently as servers reaching soft memory limit) Main raft fixes: Incorrect tracking of flushed op id in case of aborted operations () Various fixes and potential crashes on tablet bootstrap (,,,,) Avoid running out of threads due to FailureDetector () Metrics reporting could be inconsistent due to regular and intent rocksdb using the same statistics object () Various issues with the rocksdb snapshot mechanism used for backup/restore (,,) Fixes in the YCQL API: Fix parser typo when scanning binary values () Omit where clause if there is no range column () Fix JSONB operator execution when applying to NULL objects () Fix range deletes to start and end at specified primary key bounds () Fixes in the YSQL API: Fix crash for large DDL transaction () Fixed SIGSERV in YBPreloadRelCache () Fix backup-restore issues when source table was altered before (,,) Fix backup-restore failure due to unexpected NULLABLE column attribute. () Retry on SSLERRORWANT_WRITE () Azure IaaS orchestration (in beta status): No pricing information () No support for regions with zero availability zones (AZs) () Automatic Tablet Splitting: While a tablet split is occurring, in-flight operations for both YCQL and YSQL APIs would currently receive errors. These would currently have to be retried at the application level currently. In the future, these will be transparently handled underneath the hood. The immediate impact for this would be that certain tools like TPCC or sysbench would fail while tablet splitting is happening. {{< note title="New release versioning" >}} Starting with v2.2, Yugabyte release versions follow a . The preview release series, denoted by `MAJOR.ODD`, incrementally introduces new features and changes and is intended for development and testing only. Revision releases, denoted by `MAJOR.ODD.REVISION` versioning, can include new features and changes that might break backwards compatibility. {{< /note >}} {{< note title="Upgrading from 1.3" >}} Prior to v2.0, YSQL was still in beta. Upon release of v2.0, a backward-incompatible file format change was made for YSQL. For existing clusters running pre-2.0 release with YSQL enabled, you cannot upgrade to v2.0 or later. Instead, export your data from existing clusters and then import the data into a new cluster (v2.0 or later). {{< /note >}}