Can't process a dimension that uses rigid attribute relationships in SQL Server Analysis Services

Symptoms
When you perform a processing operation on a dimension in SQL Server Analysis Services, and the service is under memory pressure, the dimension can't be processed, and the data may become corrupted.

Note This issue occurs in a relatively rare race condition that's not pervasive. When this issue occurs, you may experience incorrect dimension relationships or ProcessUpdate failures.

This issue has been observed under the following conditions:
  • Analysis Services memory usage exceeds the high memory limit configured for the service during the processing operation, causing Analysis Services to aggressively clean memory pages.
  • There is no error or message logged about the problem during processing, and dimension processing does not fail. Instead, processing is completed, and corrupted data is written to the dimension file.
  • The issue is most likely to appear as incorrect dimension attribute relationships for newly added dimension members. For example: a member in the Product dimension appears under the incorrect category or subcategory.
  • Another way this corruption may reveal itself: as a subsequent ProcessUpdate on a dimension that contains rigid attribute relationships, dimension processing fails with the following error message:
    Rigid relationships between attributes cannot be changed during incremental processing of a dimension.

    Note This error may also occur for legitimate reasons, such as changes in the underlying data source. However, if the underlying data in the table or view that serves as the source for the dimension has not changed, this could be the cause of the error. 

  • The issue does not always occur when the server is under memory pressure but sometimes occurs if the cleaner thread evicts a data page for newly added dimension members before the dimension processing is complete. This is a relatively rare race condition between the dimension processing thread and the memory cleaner threads in the Analysis Services service.
  • After this fix is installed, the issue will no longer occur, but the affected objects must be reprocessed to resolve the issue.
    • A ProcessUpdate on an impacted dimension when the server is not under memory pressure will correct corruption that has been caused by this issue for all flexible relationships. For an affected dimension that has one or more rigid attribute relationships the processing will fail with the error mentioned above.
    • To correct the issue for dimensions that contain rigid relationships, change the attribute relationships for the affected dimension on the server and run a ProcessUpdate. The attribute relationship can then be changed back to rigid, and the indexes for the measure groups that use the dimension can be rebuilt.

Resolution
This problem was first 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:

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.
Properties

Article ID: 3163991 - Last Review: 07/19/2016 00:07:00 - Revision: 3.0

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

  • kbqfe kbfix kbexpertiseinter kbsurveynew KB3163991
Feedback