What Does SQL Server 2019 Cumulative Update 6 Fix?

SQL Server 2019 Cumulative Update 6 (CU6) addresses several significant bugs affecting availability groups, UDF inlining, auditing, and SSIS XML validation. Released by Microsoft as KB5005106, it brings the build number to 15.0.4153.1. If you're running SQL Server 2019 in production, this update warrants serious attention, particularly if your environment uses Always On Availability Groups or scalar UDF inlining.

That said, CU6 comes with a frustration that's become something of a pattern with recent SQL Server updates: Microsoft chose not to publicly document a substantial portion of the included fixes. You get bug reference numbers that point to internal tracking systems with no public-facing detail. For organisations that need to assess risk before deploying any update, that's a real problem.

Why Microsoft's Limited Documentation Is a Genuine Concern

Patch management isn't just about clicking "install." In enterprise environments, every cumulative update goes through a testing and approval process. Change advisory boards want to know what's changing. DBAs need to assess whether a fix addresses something they're actually hitting, or whether it introduces risk to a stable system.

When Microsoft withholds documentation, that process becomes harder. You can't do a proper risk assessment on a bug fix you can't read. You're left making a judgement call based on incomplete information, which is exactly the kind of situation that leads to either unnecessary delays in patching or, worse, rushed deployments without adequate testing.

This isn't unique to CU6. It's been a recurring pattern across several SQL Server 2019 cumulative updates. The practical advice is to lean on the community, monitor SQL Server forums and blogs, and pay close attention to the fixes that are documented, since those tend to be the ones with the broadest impact.

What Are the Documented Fixes in SQL Server 2019 CU6?

Despite the documentation gaps, several important fixes are confirmed in CU6. Here's what Microsoft has disclosed:

Scalar UDF Inlining and Variable Assignment

One of the more subtle bugs addressed in CU6 involves unexpected results for variables when using multiple variable assignments from SELECT statements with scalar UDF inlining enabled. This is the kind of bug that can produce incorrect query results without throwing an error, which makes it particularly dangerous in reporting or data transformation workloads. If your environment uses scalar UDF inlining (introduced in SQL Server 2019 as a performance feature), this fix alone may justify the update.

High CPU on Availability Group Secondary Databases

This fix addresses high CPU consumption on AG secondary databases. Availability Group secondaries are supposed to be lightweight in terms of processing overhead, so abnormal CPU spikes on a secondary can indicate redo thread issues or other AG health problems. If you've been investigating unexplained CPU pressure on a secondary replica and haven't been able to pin it down, CU6 may resolve it.

Access Violation Exceptions During Auditing

CU6 fixes an access violation exception that occurs when auditing commands that require password masking. This is relevant to environments with SQL Server Audit configured to capture security events. Access violations in the audit subsystem can cause instability, so this is a meaningful fix for security-conscious deployments.

SCOM 2019 Errors After Upgrading from SQL Server 2016 or 2017

Organisations that upgraded to SQL Server 2019 CU5 from SQL Server 2016 or 2017 with UDF inlining enabled were encountering errors in System Center Operations Manager (SCOM) 2019. CU6 addresses this. If you're using SCOM for SQL Server monitoring and went through that specific upgrade path, this fix is directly relevant.

Plan Cache Access Violation Involving HA DMVs

An access violation error was identified when plan cache operations involved the dynamic management views sys.dm_hadr_ag_threads and sys.dm_hadr_db_threads. These DMVs are commonly queried in monitoring scripts and health check queries for Always On environments. An access violation in this context could cause broader instability, so this fix is significant for any shop running AG-based high availability.

Orphaned Spinlock Causing Repeated Log Messages

CU6 also resolves an issue where an orphaned spinlock, caused by an access violation, resulted in repeated messages being printed to the SQL Server error log. While this might sound like a cosmetic issue, log flooding from spinlock errors can obscure other important diagnostic messages and indicates an underlying concurrency problem that should be resolved.

SSIS XML Task Schema Validation

On the integration services side, CU6 includes improvements to XML validation in SSIS XML Tasks, specifically enabling validation of included schemas. This is a targeted fix for SSIS developers working with complex XML structures that reference external or included schema definitions.

Should You Install SQL Server 2019 CU6?

Yes, with appropriate testing first. The fixes in CU6 address real, impactful issues. The UDF inlining bug in particular has the potential to cause silent data correctness problems, which is the worst category of bug. The AG-related fixes are relevant to a large proportion of production SQL Server 2019 environments. And the access violation fixes improve overall server stability.

The standard guidance for cumulative update deployment applies here:

  1. Review the KB article (KB5005106) and all linked documentation before starting
  2. Test in a non-production environment that mirrors your production workload as closely as possible
  3. Pay particular attention to any workloads that use scalar UDF inlining, Always On Availability Groups, or SQL Server Audit
  4. If you're running SCOM 2019 and upgraded from SQL Server 2016 or 2017, treat this update as higher priority
  5. Schedule a maintenance window with a tested rollback plan before deploying to production
  6. Monitor error logs and performance metrics closely for 48-72 hours post-deployment

Microsoft's official KB article for CU6 is available at the Microsoft Support site under KB5005106. That should be your first stop before any deployment decision.

What About the Undocumented Fixes?

The honest answer is that you can't fully evaluate what you can't see. The practical approach is to monitor the SQL Server community closely after deploying CU6. The major SQL Server blogs, forums, and community MVPs tend to surface issues quickly when a cumulative update causes problems. If something in the undocumented fixes breaks a common scenario, it usually becomes visible within a few weeks of broad adoption.

That's not a perfect solution, but it's the reality of working with partially documented updates. The alternative, indefinitely delaying patching, carries its own risks. Staying on an older build means staying exposed to the known bugs that CU6 fixes.

Key Takeaways

  • SQL Server 2019 CU6 (KB5005106, build 15.0.4153.1) includes confirmed fixes for UDF inlining correctness issues, high CPU on AG secondaries, access violations in auditing and plan cache, SCOM 2019 compatibility, and SSIS XML validation.
  • Microsoft did not publicly document all fixes included in CU6, which complicates risk assessment but doesn't eliminate the case for installing the update.
  • The scalar UDF inlining bug is particularly serious because it can produce incorrect query results silently, without raising errors.
  • Always On Availability Group environments should treat CU6 as a priority update given the CPU and DMV-related fixes.
  • Follow a structured test-then-deploy process with a maintenance window and rollback plan before applying any cumulative update to production.

If you're not confident your SQL Server 2019 environment is fully patched and properly configured, DBA Services offers SQL Server health checks and managed support for Australian organisations. We assess your current patch level, identify known vulnerabilities, and provide clear recommendations based on your specific workload and risk profile. Get in touch to find out where your environment stands.