KB3021757 - FIX: Duplicate sequence value is generated when you run sp_sequence_get_range in parallel with NEXT VALUE FOR function

Applies To
SQL Server 2012 Enterprise SQL Server 2012 Developer SQL Server 2012 Standard SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use)

Symptoms

Assume that you have defined sequence objects in Microsoft SQL Server 2012 or SQL Server 2014. When you execute sp_sequence_get_range system stored procedures and NEXT VALUE FOR function in parallel on the same sequence object (for example, in different concurrent connections or in multithreaded applications), duplicate sequence value is generated.

Cause

This issue occurs because of a race condition for sp_sequence_get_range system stored procedures and NEXT VALUE FOR function when they are executed in the same sequence object in parallel. Both of them read and write to the current value of the sequence generator. However, there is a lack of correct synchronization mechanism between them.

Resolution

Service pack information

To resolve this issue, obtain Service Pack 1 for SQL Server 2014.

For more information about SQL Server 2014 Service Pack 1 (SP1), see bugs that are fixed in SQL Server 2014 Service Pack 1 .

This issue was first fixed in the following cumulative update of SQL Server.

Cumulative Update 6 for SQL Server 2014 /en-us/help/3031047

Cumulative Update 4 for SQL Server 2012 SP2 /en-us/help/3007556

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.