KB4039089 - CORREÇÃO: erro EXCEPTION_ACCESS_VIOLATION ao executar o procedimento armazenado sys.sp_MScdc_capture_job no SQL Server

Aplica-se a
SQL Server 2016 Developer - duplicate (do not use) SQL Server 2016 Enterprise - duplicate (do not use) SQL Server 2016 Enterprise Core - duplicate (do not use) SQL Server 2016 Standard - duplicate (do not use) SQL Server 2016 Service Pack 1 SQL Server 2017 on Windows (all editions) SQL Server 2017 on Linux (all editions) SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Enterprise Core - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use)

Sintomas

Considere o seguinte cenário:

  • Suponha que você tenha tabelas particionadas no Microsoft SQL Server e elas façam parte da CDC (Captura de Dados de Alteração) ou da Replicação Transacional. Você alterna ou troca a partição dessas tabelas.
  • Após a alternância de partição, ao executar operações DML (Linguagem de Manipulação de Dados), você pode observar que ocorre um EXCEPTION_ACCESS_VIOLATION e um arquivo de despejo de memória é gerado.

Observação

Data/Hora ***Despejo de pilha sendo enviado para FilePath\FileName
Data/Hora SqlDumpExceptionHandler: ProcessID do processo gerou a exceção fatal c0000005 EXCEPTION_ACCESS_VIOLATION. O SQL Server está encerrando esse processo.
Data/Hora * *******************************************************************************
Data/Hora
Data/Hora * BEGIN STACK DUMP:
Data/Hora
Data/Hora
Data/Hora *
Data/Hora
Data/Hora * Endereço de exceção = 000007FEE724BD80 module(sqllang+00000000015BBD80)
Data/Hora * Código de exceção = c0000005 EXCEPTION_ACCESS_VIOLATION
Data/Hora * Ocorreu Violação de Acesso ao ler o endereço 000000000000002A
Data/Hora * Buffer de Entrada 70 bytes
Data/Hora * sys.sp_MScdc_capture_job
Data/Hora *

Observação

Data/Hora ***Despejo de pilha sendo enviado para FilePath\FileName
Data/Hora SqlDumpExceptionHandler: PID do processo gerado exceção fatal c0000005 EXCEPTION_ACCESS_VIOLATION. O SQL Server está encerrando esse processo.
Data/Hora * *******************************************************************************
Data/Hora *
Data/Hora * BEGIN STACK DUMP:
Data/Hora * Data/HoraSPID
Data/Hora *
Data/Hora *
Data/Hora * Endereço de Exceção = 000007FEE9D26640 Módulo(sqllang+0000000001586640)
Data/Hora * Código de exceção = c0000005 EXCEPTION_ACCESS_VIOLATION
Data/Hora * Ocorreu Violação de Acesso ao ler o endereço 000000000000002A
Data/Hora * Buffer de Entrada 109 bytes –
Data/Hora * 16 00 00 00 00 12 00 00 00 02 00 00 00 00 00 00 00 00 00 00
Data/Hora * s p _ r e p 01 00 00 00 0b 00 73 00 70 00 5f 00 72 00 65 00 70 00
Data/Hora * l c m d s & ô 6c 00 63 00 6d 00 64 00 73 00 00 00 00 00 00 26 04 04 f4
Data/hora * & & ÿ 01 00 00 00 00 00 26 04 04 00 00 00 00 00 00 00 26 04 04 ff
Data/Hora * ÿÿÿ ¥ & ff ff ff ff 00 00 a5 0a 00 00 00 00 00 00 26 04 04 8f 13 00
Data/hora * & & ¡ 00 00 00 00 26 04 04 00 00 00 00 00 00 00 26 04 04 20 A1 07
Data/Hora * 00

  • Se você executar a consulta a seguir na tabela de destino, poderá observar que o valor da coluna is_replicated será marcado como "1" para o índice não clusterizado, o que não está correto.

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

Resolução

Esse problema é corrigido nas seguintes atualizações cumulativas para o SQL Server:

Atualização cumulativa 1 para o SQL Server 2017

Atualização cumulativa 5 para o SQL Server 2016 SP1

Atualização cumulativa 8 para o SQL Server 2014 SP2

Sobre atualizações cumulativas para o SQL Server:

Cada nova atualização cumulativa do SQL Server contém todos os hotfixes e todas as correções de segurança incluídas na atualização cumulativa anterior. Confira as atualizações cumulativas mais recentes para o SQL Server:

Atualização cumulativa mais recente do SQL Server 2017

Atualização cumulativa mais recente do SQL Server 2016

Atualização cumulativa mais recente do SQL Server 2014

Status

A Microsoft confirmou que este é um problema nos produtos da Microsoft listados na seção "Aplica-se a".

Referências

Saiba mais sobre a terminologia que a Microsoft usa para descrever atualizações de software.