FIX: Assertion Failure when you change the type of a column in SQL Server 2014

Symptoms

Assume that you have a table that has a clustered columnstore index in Microsoft SQL Server 2014. You run a DDL query against the table to change the data type of an existing column. For example, you update the data type for Column_1 of Table_1 from VARCHAR (499) to NVARCHAR (500) by running the following command:
ALTER TABLE Table_1 ALTER COLUMN Column_1 NVARCHAR(500) NOT NULL
In this situation, multiple assertion failures occur, and you receive the following error message:
Location: <File Path>\xmcolenc.inl:413
Expression: PF_CURRENT_STATUS == PFS_OK
(in XMColumnEncoder<unsigned char *>::EncodeValueForSecondary)
SPID: <SPID>
Process ID: <Process ID >
Description: hr: 0x0

Location: <File Path>\xmerror.cpp:43
Expression: 0
(in PFSetLastError)
SPID: <SPID>
Process ID: <Process ID>
Description: hr: 0x0

Additionally, multiple memory dump files are generated in the SQL Server Error Log folder, and multiple error messages that resemble the following are logged in the SQL Server Error log:
<Date Time> spid<ID> ***Stack Dump being sent to <Disk Name>:\Program Files\Microsoft SQL Server\MSSQL12.SQL2014\MSSQL\LOG\SQLDump0002.txt
<Date Time> spid<ID> * *******************************************************************************
<Date Time> spid<ID>*
<Date Time> spid<ID>* BEGIN STACK DUMP:
<Date Time> spid<ID>* <Date Time> spid<ID>
<Date Time> spid<ID>* Private server build.
<Date Time> spid<ID>*
<Date Time> spid<ID>* Location: <File Path>\xmcolenc.inl:413
<Date Time> spid<ID>* Expression: PF_CURRENT_STATUS == PFS_OK
<Date Time> spid<ID>* (in XMColumnEncoder<unsigned char *>::EncodeValueForSecondary)
<Date Time> spid<ID>* SPID: 60
<Date Time> spid<ID>* Process ID: 3680
<Date Time> spid<ID>* Description: hr: 0x0
<Date Time> spid<ID>*
<Date Time> spid<ID>* Input Buffer 136 bytes -
<Date Time> spid<ID>* ALTER TABLE Table_1 ALTER COLUMN COL1 NVARCHAR(500) NOT NULL;

Resolution

After you apply this hotfix, you may receive the following new error message when the DDL query fails:
ALTER TABLE statement failed because a secondary dictionary reached the maximum size limit. Consider dropping the columnstore index, altering the column, then creating a new columnstore index

This fix also prevents the memory dump files from being generated in SQL Server Error Log.

The issue was first fixed in the following cumulative updates of SQL Server:
Recommendation: Install the latest cumulative update for SQL Server

Status

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

Properties

Article ID: 3098529 - Last Review: Mar 14, 2016 - Revision: 1

Microsoft SQL Server 2014 Developer, Microsoft SQL Server 2014 Developer, Microsoft SQL Server 2014 Developer, Microsoft SQL Server 2014 Developer, Microsoft SQL Server 2014 Developer, Microsoft SQL Server 2014 Developer, Microsoft SQL Server 2014 Developer, Microsoft SQL Server 2014 Developer, Microsoft SQL Server 2014 Enterprise, Microsoft SQL Server 2014 Enterprise, Microsoft SQL Server 2014 Enterprise, Microsoft SQL Server 2014 Enterprise, Microsoft SQL Server 2014 Enterprise, Microsoft SQL Server 2014 Enterprise, Microsoft SQL Server 2014 Enterprise, Microsoft SQL Server 2014 Enterprise, Microsoft SQL Server 2014 Standard, Microsoft SQL Server 2014 Standard, Microsoft SQL Server 2014 Standard, Microsoft SQL Server 2014 Standard, Microsoft SQL Server 2014 Standard, Microsoft SQL Server 2014 Standard, Microsoft SQL Server 2014 Standard, Microsoft SQL Server 2014 Standard, Microsoft SQL Server 2014 Service Pack 1, Microsoft SQL Server 2014 Developer, Microsoft SQL Server 2014 Developer, Microsoft SQL Server 2014 Developer, Microsoft SQL Server 2014 Developer, Microsoft SQL Server 2014 Developer, Microsoft SQL Server 2014 Developer, Microsoft SQL Server 2014 Developer, Microsoft SQL Server 2014 Developer, Microsoft SQL Server 2014 Enterprise, Microsoft SQL Server 2014 Enterprise, Microsoft SQL Server 2014 Enterprise, Microsoft SQL Server 2014 Enterprise, Microsoft SQL Server 2014 Enterprise, Microsoft SQL Server 2014 Enterprise, Microsoft SQL Server 2014 Enterprise, Microsoft SQL Server 2014 Enterprise, Microsoft SQL Server 2014 Standard, Microsoft SQL Server 2014 Standard, Microsoft SQL Server 2014 Standard, Microsoft SQL Server 2014 Standard, Microsoft SQL Server 2014 Standard, Microsoft SQL Server 2014 Standard, Microsoft SQL Server 2014 Standard, Microsoft SQL Server 2014 Standard

Feedback