Symptoms
Assume that you run a query that loads data by using the BULK INSERT statement into a table that has both a nonclustered columnstore index and a clustered columnstore index in SQL Server 2016 and 2017. If the query is run at the same time through multiple connections and SQL Server doesn't grant sufficient memory to some connections, the BULK INSERT operation might fail, and you receive assertion errors that resemble the following:
Error: 17066, Severity: 16, State: 1.
SQL Server Assertion: File:< qsupdate.cpp>, line=902 Failed Assertion = 'nullptr != m_prsBulkInPhases'. This error may be timing-related. If the error persists after rerunning the statement, use DBCC CHECKDB to check the database for structural integrity, or restart the server to ensure in-memory data structures are not corrupted.
Error: 3624, Severity: 20, State: 1.
A system assertion check has failed. Check the SQL Server error log for details. Typically, an assertion failure is caused by a software bug or data corruption. To check for database corruption, consider running DBCC CHECKDB. If you agreed to send dumps to Microsoft during setup, a mini dump will be sent to Microsoft. An update might be available from Microsoft in the latest Service Pack or in a Hotfix from Technical Support.
Additionally, a dump file is generated by SQL Server.
Resolution
This fix is included in the following cumulative updates for SQL Server:
Cumulative Update 6 for SQL Server 2017
Cumulative Update 8 for SQL Server 2016 Service Pack 1.
About SQL Server builds
Each new build for SQL Server 2016 contains all the hotfixes and security fixes that were in the previous build. We recommend that you install the latest cumulative updates for SQL Server:
Status
Microsoft has confirmed that this is a problem in the Microsoft products that are listed in the "Applies to" section.
References
Learn about the terminology Microsoft uses to describe software updates.