SQL SERVER 2025 CU4 (Cumulative Update 4) Is OUT! A Hot Take on the New Features for DBAs
SQL SERVER 2025 CU4 Is OUT! A Hot Take on the New Features
👉 If you missed my latest posts on the new SSMS 22.5:
- Test Day 2: SSMS 22.5 Copilot & Extended Events (Stop Digging into .XEL Files!)
- Test Day 1: SSMS 22.5 Copilot vs. Complex Execution Plans (Spoiler: It saves you hours)
💡 The Hook
SQL Server 2025 CU4 IS OUT.
In this post, I’ll start to break down what really matters in this CU. What can break or save your production environment. So, if you care about stability, parallelism bugs, and hidden engine fixes… you MUST read this.
⚡ TL;DR
✔️ 11 critical fixes targeting engine stability, HA, and JSON behavior 🛠️
✔️ Dangerous bug in SESSION_CONTEXT with parallel plans ⚠️
✔️ Improvements in SQLPAL, Full-Text Search, and replication reliability 🔧
✔️ Multiple fixes that prevent crashes, hangs, and memory corruption 💣
🧠 Intro
Hi SQL SERVER Guys,
The CU releases are where real stability lives, stability doesn't live in RTM! and this SQL Server 2025 Cumulative update 4 is a classic example:
- Nothing flashy ❌
- Everything critical ✔️
👉 This is the kind of update that quietly prevents outages.
Today, we’ll start walking through the key fixes and why they matter. Then, in the next posts, we’ll break each of them down in detail—what they fix, why they happen, and how they impact real workloads.
Stay tuned.
💣 The Dangerous One: SESSION_CONTEXT + Parallelism
Let’s start with the most critical issue addressed by this CU4, which we have already discussed in greater detail here:
👉 Queries using SESSION_CONTEXT can return WRONG results or crash under parallel plans.
What it really is:
SESSION_CONTEXT is not thread-safe in certain parallel execution scenarios.
👉 When SQL Server reuses sessions and distributes work across threads:
- Data inconsistency may occur ❌
- Access violations (AV dumps) may occur 💣
This is NOT a minor bug resolved, this is: correctness + stability.
👉 Official Microsoft reference:
⚙️ Engine Fixes That Actually Matter
Let’s go straight to the impactful ones:
🧠 Non-yielding scheduler fix
- Fix for lazy writer I/O issues
- Prevents scheduler stalls
- Eliminates random freezes under load
💣 If you saw unexplained hangs → this is your fix.
🔁 Replication stability
- Fixes non-yielding scheduler errors
- Improves high I/O reliability
🧬 Memory corruption (HA)
- Fix in contained availability groups
- Critical for audit reliability
💣 Memory corruption = silent data risk.
📦 JSON Behavior Change (IMPORTANT)
Fix ID: 5029490
👉 JSON_CONTAINS now supports ONLY:
- 0 → exact match
- 1 → pattern match
Default = 0
👉 This is a behavior restriction, not just a fix.
If you relied on previous undocumented behavior:
- Your queries may change results ⚠️
- Your logic may silently break 💣
📨 Database Mail Fix (YES, finally!)
Fix ID: 4954486
Contained AG + sp_RunMailQuery issue:
- Emails sent WITHOUT attachments ❌
- Now FIXED ✔️
👉 If you automate reporting → this was painful.
🔐 Security & Permissions Fix
Fix ID: 5000227
- Permissions in msdb could disappear after upgrade
- Unexpected access issues
💣 This is the kind of bug that breaks production silently.
🐧 Linux Engine Improvement
Fix ID: 5001765
Fix in SQLPAL (the layer in SQL Server that abstracts OS-level operations, enabling the engine to run consistently across different platforms like Windows and Linux)
- Threads no longer block incorrectly
- Uses spin-wait instead
👉 Translation:
- Better concurrency ✔️
- Less risk of deadlocks/hangs ✔️
🔍 Full-Text Search Fixes
- Fix for fdhost.exe hangs
- Fix for inflectional search errors
👉 If you use FREETEXT / FORMSOF → upgrade.
🧪 List of the Improvement and Fixes in SQL SERVER 2025 CU4
| Bug Reference | Description | Fix Area | Component | Platform |
|---|---|---|---|---|
| 4954486 | Fixes an issue in contained availability groups that causes DatabaseMail to send email messages without attachments when using sp_RunMailQuery. | SQL Server Client Tools | Database Mail | All |
| 5000227 | Fixes an issue where permissions on stored procedures and other objects in msdb are lost during SQL Server upgrade, causing unexpected permission removal. | SQL Server Engine | Management Services | Windows |
| 5001765 | Fixes an issue where the server enters unintended wait states on threads that do not support suspension. Now uses spin-wait instead of blocking. | SQL Server on Linux | SQLPAL | Linux |
| 5003709 | Fixes an issue where DTSWizard.exe does not open if SQL Server is installed without SSIS features. | Integration Services | Integration Services | Windows |
| 5008479 | Fixes an issue where indexing certain Word 6.0 documents via Full-Text Search causes fdhost.exe to stop responding. | SQL Server Engine | Search | All |
| 5019346 | Fixes a memory corruption issue in audit functionality for contained availability groups. | SQL Server Engine | High Availability and Disaster Recovery | All |
| 5028791 | Fixes an access violation when querying sys.dm_xe_session_targets on Windows Server 2025. | SQL Server Engine | SQL OS | Windows |
| 5029490 | Limits Json_contains comparison mode to 0 (exact match) or 1 (pattern match). Default is 0. | SQL Server Engine | JSON | All |
| 5033606 | Restricts adding databases to the current contained availability group and enforces database owner matching. | SQL Server Engine | High Availability and Disaster Recovery | All |
| 5063278 | Fixes non-yielding scheduler errors and dump issues during heavy lazy writer I/O. | SQL Server Engine | Replication | All |
| 5071334 | Fixes inflectional Full-Text Search failures for languages without IStemmer support. | SQL Server Engine | Search | All |
🚀 My REAL Strategy
No theory. Just what I actually do in production:
- ✔️ Apply CU4 immediately on systems using SESSION_CONTEXT
- ✔️ Test JSON logic regression (very important)
- ✔️ Monitor wait stats after upgrade
- ✔️ Validate msdb permissions post-update
- ✔️ Always benchmark before/after
👉 CU4 is NOT optional if you run critical workloads.
📚 Official Sources
📢 Support the Blog: Did you find this deep-dive helpful? The ads you see here are selected to reflect your interests. If a partner's offer catches your eye, give it a look! Your engagement helps me continue publishing premium SQL Server content for the community.
Biondi Luca @2026 - Sharing over 25 years of Gained Knowledge for Passion. Share if you like my posts!

Comments
Post a Comment