FIX: "A system assertion check has failed" error when a procedure call is made from CLR with an OUTPUT large object argument

Applies to: SQL Server 2017 Developer on WindowsSQL Server 2017 Enterprise Core on WindowsSQL Server 2017 Enterprise on Windows

Symptoms


Assume that your application makes a chain of multiple storedprocedure calls, with one of the participants being a common language runtime (CLR) stored procedure that calls a T-SQL stored procedure with an OUTPUT large object argument([N]VARCHAR(max) or VARBINARY(max)). In certain circumstances, this CLR callmay result in an error that resembles the following:
Msg 3624, Level 20, State 1, Procedure ProcA, Line 0[Batch Start Line LineNumber]
A system assertion check has failed. Check the SQL Servererror log for details. Typically, an assertion failure is caused by a softwarebug or data corruption. To check for database corruption, consider running DBCCCHECKDB. If you agreed to send dumps to Microsoft during setup, a mini dumpwill be sent to Microsoft. An update might be available from Microsoft in thelatest Service Pack or in a Hotfix from Technical Support.

Msg 596, Level 21, State 1, Line LineNumber
Cannot continue the execution because the session is inthe kill state.

Msg 0, Level 20, State 0, Line LineNumber
A severe error occurred on the current command. Theresults, if any, should be discarded.

Status


Microsoft has confirmed that this is a problem in the Microsoft products that are listed in the "Applies to" section. 

Resolution


This issue is fixed in the following cumulative updates for SQL Server:
About cumulative updates for SQL Server:
Each new cumulative update for SQL Server contains all the hotfixes and all the security fixes that were included with the previous cumulative update. Check out the latest cumulative updates for SQL Server:

References


Learn about the terminology that Microsoft uses to describe software updates.