Symptoms
Consider the following scenario:
-
Assume that you have partitioned tables in Microsoft SQL Server and they are part of Change Data Capture (CDC) or Transactional Replication. You switch-in or switch-out partition from these tables.
-
After partition switch when you perform Data Manipulation Language (DML) operations, you may notice that an EXCEPTION_ACCESS_VIOLATION occurs and a memory dump file is generated.
Date/Time ***Stack Dump being sent to FilePath\FileName
Date/Time SqlDumpExceptionHandler: Process ProcessID generated fatal exception c0000005 EXCEPTION_ACCESS_VIOLATION. SQL Server is terminating this process. Date/Time * ******************************************************************************* Date/Time * Date/Time * BEGIN STACK DUMP: Date/Time * Date/Time * Date/Time * Date/Time * Date/Time * Exception Address = 000007FEE724BD80 Module(sqllang+00000000015BBD80) Date/Time * Exception Code = c0000005 EXCEPTION_ACCESS_VIOLATION Date/Time * Access Violation occurred reading address 000000000000002A Date/Time * Input Buffer 70 bytes Date/Time * sys.sp_MScdc_capture_job Date/Time *Date/Time ***Stack Dump being sent to FilePath\FileName
Date/Time SqlDumpExceptionHandler: Process PID generated fatal exception c0000005 EXCEPTION_ACCESS_VIOLATION. SQL Server is terminating this process. Date/Time * ******************************************************************************* Date/Time * Date/Time * BEGIN STACK DUMP: Date/Time * Date/TimeSPID Date/Time * Date/Time * Date/Time * Exception Address = 000007FEE9D26640 Module(sqllang+0000000001586640) Date/Time * Exception Code = c0000005 EXCEPTION_ACCESS_VIOLATION Date/Time * Access Violation occurred reading address 000000000000002A Date/Time * Input Buffer 109 bytes - Date/Time * 16 00 00 00 12 00 00 00 02 00 00 00 00 00 00 00 00 00 Date/Time * s p _ r e p 01 00 00 00 0b 00 73 00 70 00 5f 00 72 00 65 00 70 00 Date/Time * l c m d s & ô 6c 00 63 00 6d 00 64 00 73 00 00 00 00 00 26 04 04 f4 Date/Time * & & ÿ 01 00 00 00 00 26 04 04 00 00 00 00 00 00 26 04 04 ff Date/Time * ÿÿÿ ¥ & ff ff ff 00 00 a5 0a 00 00 00 00 00 26 04 04 8f 13 00 Date/Time * & & ¡ 00 00 00 26 04 04 00 00 00 00 00 00 26 04 04 20 a1 07 Date/Time * 00-
If you run the following query against destination table then you may notice that the is_replicated column's value will be marked as '1' for non-clustered index which is not correct.
select index_id, partition_number, * from sys.system_internals_partition_columns pc with(nolock)
JOIN sys.partitions p with(nolock)
ON p.partition_id = pc.partition_id
where p.object_id = object_id ('PartitionTable')
order by 2
Resolution
This issue is fixed in the following cumulative updates for SQL Server:
Cumulative Update 1 for SQL Server 2017
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:
Latest cumulative update for SQL Server 2017
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 terminologythat Microsoft uses to describe software updates.