KB5011644 - Cumulative Update 16 for SQL Server 2019
Release Date:
4/18/2022
Version:
15.0.4223.1
Summary
This article describes Cumulative Update package 16 (CU16) for Microsoft SQL Server 2019. This update contains 43 fixes that were issued after the release of SQL Server 2019 Cumulative Update 15, and it updates components in the following builds:
-
SQL Server - Product version: 15.0.4223.1, file version: 2019.150.4223.1
-
Analysis Services - Product version: 15.0.35.23, file version: 2018.150.35.23
Known issues in this update
SQL Server 2019 CU14 introduced a fix to address wrong results in parallel plans returned by built-in SESSION_CONTEXT. However, this fix could cause Access Violation dump files while resetting the SESSION for reuse. To mitigate this issue, you can disable the original fix, and disable the parallelism for built-in SESSION_CONTEXT to avoid wrong results. To do this, use the following trace flags:
-
11042 - This trace flag disables the parallelism for built-in SESSION_CONTEXT.
-
9432 - This trace flag disables the fix introduced in SQL Server 2019 CU14.
Microsoft is working on a fix for this issue that will be available in a future CU.
Improvements and fixes included in this update
Important: Transparent Data Encryption (TDE)-compressed backups that are created with previous CU versions of SQL Server 2019 can be restored on SQL Server 2019 CU 16 and later versions.
However, because of the backup format improvement in SQL Server 2019 CU 16, TDE-compressed backups that are created with SQL Server 2019 CU 16 or later versions cannot be restored on SQL Server 2019 CU 15 or earlier versions.
For more information, see FIX: Error 3241 occurs during executing RESTORE DATABASE OR RESTORE LOG.
A downloadable Excel workbook that contains a summary list of builds, together with their current support lifecycle, is available. The Excel file also contains detailed fix lists for SQL Server 2019 and SQL Server 2017. Click to download this Excel file now.
Note: Individual entries in the following table can be referenced directly through a bookmark. If you select any bug reference ID in the table, a bookmark tag is added to the URL by using the "#bkmk_NNNNNNNN" format. You can then share this URL with others so that they can jump directly to the desired fix in the table.
For more information about the bugs that are fixed and enhancements that are included in this cumulative update, see the following Microsoft Knowledge Base articles.
Bug reference |
KB article number |
Description |
Fix area |
Platform |
|
---|---|---|---|---|---|
In SQL Server 2019 Master Data Services, the child nodes don't open in the derived hierarchy when a child entity is joined with a recursive hierarchy. |
Data Quality Services (DQS) |
Windows |
|||
The AlwaysOn_Health extended event doesn't set STARTUP_STATE to ON after installing a SQL Server Cumulative Update. |
High Availability |
Windows |
|||
The function sys.fn_hadr_backup_is_preferred_replica returns different results on primary or secondary replicas of read-scale availability groups (Cluster_Type=None) when running on standalone machines or cluster nodes. |
High Availability |
Windows |
|||
The database recovery process is chosen as the deadlock victim on Availability Group (AG) failover under certain circumstances. The following error message is generated: <DateTime> Error: 1205, Severity: 13, State: 51. |
High Availability |
Windows |
|||
An "Out of memory" error occurs when you take a log backup frequently and Stolen Server Memory grows at a synchronous secondary in Availability Groups. |
High Availability |
Windows |
|||
Resolves stalled I/O completion port (IOCP) issues when a heavily used service broker is configured on an availability group database. |
High Availability |
Windows |
|||
SQL Server 2019 using XTP UserDB for staging tables has a steady growing trend for "VARHEAP\Storage internal heap" in dm_db_xtp_memory_consumers that leads to OOM/41805 errors over time and requires proactive restart/failover to retain stability. |
In-Memory OLTP |
Windows |
|||
Improves the dynamic management view (DMV) to help debug the out-of-memory (OOM) issues. |
In-Memory OLTP |
Windows |
|||
Memory-Optimized TempDB Metadata keeps consuming memory under VARHEAP: LOB Page Allocator, which causes out-of-memory (OOM) exceptions like error 701 or FAIL_PAGE_ALLOCATION. |
In-Memory OLTP |
Windows |
|||
Supports more flexible cleanup and merge operations by changing In-Memory during restore operations. |
In-Memory OLTP |
Windows |
|||
Improves the response time of the Sqldumpr.exe utility when in-memory objects are used in SQL Server or once existed. |
In-Memory OLTP |
All |
|||
An assertion failure occurs in tempdb during the rollback of transactions, and triggers a server shutdown. The following dump file is generated: <DateTime> **Dump thread - spid = 0, EC = 0x000004849143B870 |
In-Memory OLTP |
Windows |
|||
A memory dump and assertion failure "Dependencies.CommitDepCountOut >= 1" may occur after a transaction rolls back if in-memory tempdb is enabled. |
In-Memory OLTP |
Windows |
|||
Removes log4j2 used by SQL Server 2019 Integration Services (SSIS) to avoid any potential security issues. |
Integration Services |
All |
|||
The sqlcmd utility crashes when the batch_terminator parameter "-c" is set to ";" in SQL Server 2019. |
Management Tools |
Windows |
|||
The bulk insert is blocked when the lock of the target table is held by another session, and the session of the bulk insert will remain in SQL Server until its lock is released even if the client application disconnects or exits. This issue causes the session to leak and other requests to be blocked if the leaked sessions are accumulated too many. |
SQL connectivity |
Windows |
|||
5012964 |
Improvement: Add an XEvent for tracking manual user plan forcing and unforcing |
SQL Engine |
All |
||
5014047 |
Improvement: Make the change tracking table lock escalation policy be the same as the base table's |
SQL Engine |
Windows |
||
5014136 |
Improvement: Make the EO-compliant ML service CAB packages available for SQL Server 2019 |
SQL Engine |
All |
||
5014137 |
SQL Engine |
All |
|||
4530955 |
SQL Engine |
All |
|||
5014298 |
FIX: Error 3241 occurs during executing RESTORE LOG or RESTORE DATABASE |
SQL Engine |
Windows |
||
4538688 |
SQL Engine |
All |
|||
5013391 |
SQL Engine |
Linux |
|||
Restoring transaction logs from a compressed backup of a TDE-enabled database may cause a "misaligned I/O" message to be logged in the SQL Server error log: <DateTime> There have been <IOCount> misaligned log IOs which required falling back to synchronous IO. The current IO is on file <FilePath>. |
SQL Engine |
Windows |
|||
A database freezes its I/O during a VSS backup but never thaws the I/O. This can lead to latch timeouts. |
SQL Engine |
Windows |
|||
An access violation dump occurs when the query runs for a long time in parallel and tries to determine the version of the rowgroup for the particular transactions to read. |
SQL Engine |
All |
|||
The logon trigger may fail unexpectedly for the pooled connections even when the criteria are not met during the connection reset, and causes the following error: Error:17892, Severity: 20, State: 1. Logon failed for login '<LoginName>' due to trigger execution. |
SQL Engine |
Windows |
|||
Dropping temp tables in some rare cases causes an unresolved deadlock and dump. |
SQL Engine |
Windows |
|||
An access violation occurs if a query on sys.database_scoped_configurations is waiting for a shared lock on the database while another thread holds the exclusive lock to drop the same database. |
SQL Engine |
Windows |
|||
Running DBCC CHECKDB will report "corruption" errors when you use SQL Server graph databases that have edge constraints. |
SQL Engine |
All |
|||
An assertion failure, lck_sufficient (lckMode, LCK_M_IX) || lck_sufficient (lckMode, LCK_M_BU), occurs when you use Accelerated Database Recovery (ADR). |
SQL Engine |
All |
|||
Restoring from a compressed backup that contains filestream objects randomly fails if the process is run through the Virtual Device Interface (VDI) client. Here is the error message: Msg 3241, Level 16, State 18, Line <LineNumber> The media family on device '<backup file name>' is incorrectly formed. SQL Server cannot process this media family. Unexpected termination: x80770004 |
SQL Engine |
Windows |
|||
Calling CMEDScan::EvaluateCmpResult to evaluate filter predicates for the current metadata scan misses the "NE" predicate, which causes an "INVALID_SWITCH_VALUE" exception. |
SQL Engine |
Windows |
|||
Assume that you have tables with data on the peers and then you set a peer-to-peer publication by using a last-writer conflict detection policy. The distribution agent occurs the following conflict if you delete a row that was present before the publication was created: A conflict of type 'Delete-Update' was detected at peer 1 between peer 100 (incoming), transaction id <tranid> and peer (null) (on disk), transaction id (null) for Table <TableName> with Primary Key(s): PK values, Current Version '(null)', Pre-Version '(null)' and Post-Version <VersionNumber>. |
SQL Engine |
Windows |
|||
Exposes the option 'ldaphostcanon' by the mssql-conf tool so that you don't have to manually edit the mssql.conf file to enable or disable ldaphostcanon. |
SQL Engine |
Linux |
|||
A "Non-yielding Scheduler" issue and dump occur during a backup operation because of concurrent Page Free Space (PFS) updates. |
SQL Engine |
All |
|||
Adds two new Extended Events, iam_page_range_cache_invalidation and iam_page_range_cache_population, to respectively capture Index Allocation Map (IAM) page range cache invalidation and population. |
SQL Engine |
All |
|||
4538581 |
SQL Engine |
All |
|||
SQL Server disconnects a session when it gets an attention and INTERLEAVED_EXECUTION_TVF is enabled. |
SQL performance |
Windows |
|||
The query processor can't produce a query plan if the USE PLAN hint specifies a query plan that has a left outer join and an inner join. |
SQL performance |
Windows |
|||
Executing a query where the plan contains an adaptive join may fail together with the following error: Msg 8624, Level 16, State 21, Procedure <ProcedureName>, <Line LineNumber> [Batch Start Line 0] |
SQL performance |
Windows |
|||
A view, created in a table that has an XML index, cannot return the correct result because of missing '%' in LIKE predicate on columns hidden for xml_index_nodes table. |
XML |
All |
How to obtain or download this or the latest cumulative update package
The following update is available from the Microsoft Download Center:
Download the latest cumulative update package for SQL Server 2019 now
Notes:
-
Microsoft Download Center will always present the latest SQL Server 2019 CU release.
-
If the download page does not appear, contact Microsoft Customer Service and Support to obtain the cumulative update package.
The following update is available from the Microsoft Update Catalog:
Download the cumulative update package for SQL Server 2019 CU16 now
Notes:
-
Microsoft Update Catalog contains this SQL Server 2019 CU and previously released SQL Server 2019 CU releases.
-
This CU is also available through Windows Server Update Services (WSUS).
-
We recommend that you always install the latest cumulative update that is available.
To update SQL Server 2019 on Linux to the latest CU, you must first have the Cumulative Update repository configured. Then, update your SQL Server packages by using the appropriate platform-specific update command.
For installation instructions and direct links to the CU package downloads, see the SQL Server 2019 Release Notes.
To upgrade Microsoft SQL Server 2019 Big Data Clusters (BDC) on Linux to the latest CU, see the Big Data Clusters Deployment Guidance.
Starting in SQL Server 2019 CU1, you can perform in-place upgrades for Big Data Clusters from the production supported releases (SQL Server 2019 GDR1). For more information, see How to upgrade SQL Server Big Data Clusters.
For additional information, see the Big Data Clusters release notes.
File information
You can verify the download by computing the hash of the SQLServer2019-KB5011644-x64.exe file through the following command:
- certutil -hashfile SQLServer2019-KB5011644-x64.exe SHA256
File name |
SHA256 hash |
---|---|
SQLServer2019-KB5011644-x64.exe |
E1CE2B473829D7E2C69CBFA15D75435FDB32017972EE1439BF3D50E3132F7FEF |
The English version of this package has the file attributes (or later file attributes) that are listed in the following table. The dates and times for these files are listed in Coordinated Universal Time (UTC). When you view the file information, it is converted to local time. To find the difference between UTC and local time, use the Time Zone tab in the Date and Time item in Control Panel.
x64-based versions SQL Server 2019 Analysis Services
SQL Server 2019 Database Services Common Core
SQL Server 2019 sql_dreplay_client
SQL Server 2019 sql_dreplay_controller
SQL Server 2019 Database Services Core Instance
SQL Server 2019 Database Services Core Shared
SQL Server 2019 sql_extensibility
SQL Server 2019 Full-Text Engine
SQL Server 2019 sql_inst_mr
SQL Server 2019 Integration Services
SQL Server 2019 sql_polybase_core_inst
SQL Server 2019 sql_shared_mr
SQL Server 2019 sql_tools_extensions
|
Notes for this update
To apply this cumulative update package, you must be running SQL Server 2019.
You might have to restart the computer after you apply this cumulative update package.
To use one of the hotfixes in this package, you do not have to make any changes to the registry.
This article also provides the following important information:
Analysis Services CU build version
Beginning in Microsoft SQL Server 2017, the Analysis Services build version number and SQL Server Database Engine build version number do not match. For more information, see Verify Analysis Services cumulative update build version.
Cumulative updates (CU)
-
Each new CU contains all the fixes that were included with the previous CU for the installed version of SQL Server.
-
SQL Server CUs are certified to the same levels as service packs, and should be installed at the same level of confidence.
-
We recommend ongoing, proactive installation of CUs as they become available according to these guidelines:
-
Historical data shows that a significant number of support cases involve an issue that has already been addressed in a released CU.
-
CUs may contain added value over and above hotfixes. This includes supportability, manageability, and reliability updates.
-
-
We recommend that you test SQL Server CUs before you deploy them to production environments.
When you deploy an update to a hybrid environment (such as AlwaysOn, replication, cluster, and mirroring), we recommend that you refer to the following articles before you deploy the update:
-
SQL Server failover cluster rolling update and service pack process
Notes: If you do not want to use the rolling update process, follow these steps to apply an update:
-
Install the update on the passive node.
-
Install the update on the active node (requires a service restart).
-
-
Upgrade and update of availability group servers that use minimal downtime and data loss
Note: If you enabled AlwaysOn together with SSISDB catalog, see the information about SSIS with AlwaysOn for more information about how to apply an update in these environments.
-
How to apply a hotfix for SQL Server in a transactional replication and database mirroring topology
-
How to apply a hotfix for SQL Server in a replication topology
SQL Server CUs are currently multilingual. Therefore, this CU package is not specific to one language. It applies to all supported languages.
One CU package includes all available updates for all SQL Server 2019 components (features). However, the cumulative update package updates only those components that are currently installed on the SQL Server instance that you select to be serviced. If a SQL Server feature (for example, Analysis Services) is added to the instance after this CU is applied, you must re-apply this CU to update the new feature to this CU.
If additional issues occur, or if any troubleshooting is required, you might have to create a service request. The usual support costs will apply to additional support questions and to issues that do not qualify for this specific cumulative update package. For a complete list of Microsoft Customer Service and Support telephone numbers, or to create a separate service request, go to the Microsoft support website.
How to uninstall this update
-
In Control Panel, open the Programs and Features item, and then select View installed updates.
-
Locate the entry that corresponds to this cumulative update package under SQL Server 2019.
-
Press and hold (or right-click) the entry, and then select Uninstall.
To uninstall this CU on Linux, you must roll back the package to the previous version. For more information about how to roll back the installation, see Rollback SQL Server.
References
-
Announcing updates to the SQL Server Incremental Servicing Model (ISM)
-
SQL Server Service Packs are discontinued starting from SQL Server 2017
-
Determining which version and edition of SQL Server Database Engine is running
-
Naming schema and Fix area descriptions for SQL Server software update packages
-
Description of the standard terminology that is used to describe Microsoft software updates