CORRECÇÃO: Violação de acesso e "sem excepções devem ser aumentadas por este código" erro ocorrem quando utiliza o SQL Server 2012 ou 2014 do SQL Server

BUGS #: do 218021 (Manutenção do conteúdo) VSTS:4073547

Sintomas

Suponha que utilize 2012 do Microsoft SQL Server ou SQL Server 2014. Quando ocorre um impasse do SQL Server, recebe a seguinte violação de acesso que é causada pelo monitor de impasse:

sqldk!CSlotGroup::PshRelease
sqldk!CSlotPageMgr::Release
sqllang!commondelete
sqllang! eliminar]
sqllang!CTraceDataSTVF::InternalReleaseResources
sqllang!TTableBase<CTraceDataSTVFInfo>::ReleaseResources
sqllang! CTraceDataSTVF:: {dtor}
sqllang! CTraceDataSTVF:: 'Eliminar o processo de destruição escalar'
sqlmin!CSTVFInternal::Release
sqlmin!CQueryExecContext::~CQueryExecContext
sqlmin!CQueryInstance::ShutdownQueryExecContext
sqlmin!CQueryScan::ShutdownQueryExecContext
sqlmin!CQueryScan::DestroyQueryOnException
sqllang!CXStmtQuery::ShutdownOnException
sqllang!CXStmtQuery::FinishOnExceptionImp
sqllang!GetInterruptTicks
sqllang! InterruptTicks < não assinados __int64 >:: LoadTicks
sqllang! SOS_Ticks < InterruptTicks < não assinados __int64 >, -3 >:: LoadTicks
sqllang!`CMsqlExecContext::FExecute'::`1'::catch$3
msvcr100!_CallSettingFrame
msvcr100!__CxxCallCatchBlock
ntdll!RcFrameConsolidation
sqllang!CMsqlExecContext::FExecute
sqllang!CSQLSource::Execute
sqllang!CStmtExecProc::XretLocalExec
sqllang!CStmtExecProc::XretExecExecute
sqllang!CXStmtExecProc::XretExecute
sqllang!CExecStmtLoopVars::ExecuteXStmtAndSetXretReturn
sqllang!CMsqlExecContext::ExecuteStmts<1,0>
sqllang!CMsqlExecContext::FExecute
sqllang!CSQLSource::Execute
sqllang!ExecuteSql
sqllang!CSpecProc::ExecuteSpecial
sqllang!CSpecProc::Execute
sqllang!process_request
sqllang!process_commands
sqldk!SOS_Task::Param::Execute
sqldk!SOS_Scheduler::RunTask
sqldk!SOS_Scheduler::ProcessTasks
sqldk!SchedulerManager::WorkerEntryPoint
sqldk!SystemThread::RunWorker
sqldk!SystemThreadDispatcher::ProcessWorker
sqldk!SchedulerManager::ThreadEntryPoint
kernel32!BaseThreadInitThunk
ntdll!RtlUserThreadStart

Após a violação de acesso, recebe a seguinte mensagem de erro do registo de erros do SQL Server:

<Datada ><vezda > spid <ID> utilizando 'dbghelp. dll' versão '4.0.5'
Spid <datada ><tempo> <ID> * * copiar thread - spid = <ID> CE = 0x0000007F8608E160
Spid <datada ><tempo> <ID> * * * pilha de informação a ser enviada para <Caminho do ficheiro> \ <NomeFicheiro Dump>. txt
<Date> <Time> spid<ID> * *******************************************************************************
<Date> <Time> spid<ID> *
Spid <datada ><tempo> <ID> * começar a copiar de pilha:
Spid <datada ><tempo> <ID> * <datada ><tempo> spid <ID>
<Date> <Time> spid<ID> *
Spid <datada ><tempo> <ID> * localização: qxcntxt.cpp:1143
Spid <datada ><tempo> <ID> * expressão:! " Sem excepções devem ser aumentadas por este código"
Spid <datada ><tempo> <ID> * SPID: <ID>
Spid <datada ><tempo> <ID> * ID do processo: 3556
<Date> <Time> spid<ID> *
Spid <datada ><tempo> <ID> * bytes 37 da memória intermédia de entrada -
Spid <datada ><tempo> <ID> * 16 00 00 00 12 00 00 00 02 00 00 00 00 00 00 00 00 00
Spid <datada ><tempo> <ID> * ÿÿ & 01 00 00 00 ff ff 0c 00 00 00 00 00 26 04 04 05 00 00
Spid <datada ><tempo> <ID> * 00
<Date> <Time> spid<ID> *
<Date> <Time> spid<ID> *
...
<Datada ><tempo> spid <IDda > assinatura da pilha para a informação de estado é 0x000000014202549F
<IDda > [INFO] identidade inicial de spid <datada ><tempo> fim | Erro de estado resultado Speculate preparados LazyCommit ReadOnly | ThreadId de base de dados de transacção | LogSizeRq de ponto de salvaguarda de ScanSet ReadSet WriteSet | CommitDep TotalComm dependentes 0 dependentes 1 dependentes 2 dependentes 3 dependentes 4 dependentes 5 dependentes 6 dependentes 7 | Localização para a área |
Spid <datada ><tempo> <ID> tempo de espera aguardar que o processo de informação de sistema externo 11800.

Spid <datada ><tempo> <IDda > erro: 17066, gravidade: 16, estado: 1.
Spid <datada ><tempo> <IDda > Declaração do SQL Server: ficheiro: < qxcntxt.cpp >, linha = 1143 falha na asserção = '! " Sem excepções devem ser aumentadas por este código"'. Este erro pode ser relacionado com a temporização. Se o erro persistir depois de voltar a executar a instrução, utilize DBCC CHECKDB para verificar a base de dados para integridade estrutural ou reinicie o servidor para assegurar a estruturas de dados na memória não estão danificadas.


Resolução

Informações sobre a actualização cumulativa

O problema foi corrigido pela primeira vez na actualização cumulativa do SQL Server.

Cada nova actualização cumulativa para o SQL Server contém todas as correcções e todas as correcções de segurança que foram incluídas na anterior actualização cumulativa. Recomendamos que transfira e instale as ultimas actualizações cumulativas para o SQL Server:


Mais informações

Informações de pilha de chamadas0:000> dt this dps 0x00000000`c621c060Local var @ rdi Type CTraceDataSTVF*
+0x000 __VFN_table : 0x000007fb`99800c80
+0x008 m_cParams : 2
+0x010 m_rgpxvarParams : 0x00000000`c621d1d0 -> 0x00000000`c621d1f8 CXVariant
+0x018 m_rgptiParams : 0x00000025`36c902b0 -> 0x00000025`36c902d0 CTypeInfo
+0x020 m_cColumns : 3
+0x028 m_rgpxvarColumns : 0x00000000`c621d3c0 -> 0x00000000`c621d3f8 CXVariant
+0x030 m_rgptiColumns : 0x00000025`36c901f0 -> 0x00000025`36c90210 CTypeInfo
+0x038 m_pstvfpi : (null)
+0x040 m_eHasViewServerStatePerm : 0 ( eStreamTVFPermCheck_Initial )
+0x048 m_pmo : 0x00000008`80364060 IMemObj
+0x050 m_pmoScratch : (null)
+0x058 m_cRef : 0
+0x060 __VFN_table : 0x000007fb`99800d10
+0x068 m_outputColumns : [3] 0x00000000`c621d3f8 CXVariant
+0x080 m_inputColumns : [3] PushdownPredicate
+0x0c8 m_pInfo : 0x00000025`36c90310 CTraceDataSTVFInfo
+0x0d0 m_pmoExec : 0x00000008`80364060 IMemObj
+0x0d8 m_cUserArguments : 2
+0x0e0 m_ilb : [3] CAutoP<CShortConstLockBytesSS>
=000007fb`99500000 s_cbDefaultBuffer : ??
+0x0f8 m_iTrace : 0n2
+0x0fc m_iRecords : 0
+0x100 m_cRecordsSent : 0
+0x108 m_prreq : (null)
+0x110 m_iColid : 0n1
+0x114 m_iLen : 0n45076
+0x118 m_pbRecord : 0x00000010`7c6c0040 "???"
+0x120 m_pbData : 0x00000010`7c6cb064 "--- memory read error at address 0x00000010`7c6cb064 ---"
+0x128 m_cbData : 0n205
+0x12c m_hrError : 0
+0x130 m_beginRec : TrcBeginRecordData
+0x138 m_fLastRow : 0y0
+0x138 m_fSetError : 0y0
+0x138 m_fSendSkipped : 0y0
+0x138 m_fSentNOP : 0y0
+0x138 m_fBufferAllocated : 0y1
+0x13c m_rgbDefaultBuffer : [4096] "???"


0:000> dt sqldk!CSlotPageMgr
+0x000 m_pmoOwner : Ptr64 IMemObj
+0x008 m_cbSlotMax : Uint2B
+0x00a m_cbSlotInc : Uint2B
+0x010 m_psiPages : Ptr64 CSlotInfo
+0x018 m_rgpsgGroups : Ptr64 Ptr64 CSlotGroup
+0x020 m_pshFreeHdrs : Ptr64 CSlotHdr
+0x028 m_cTotalPages : Int8B
+0x030 m_cMaxTotalPages : Int8B
0:000> dt sqldk!CSlotPageMgr 000000107c6c0000
+0x000 m_pmoOwner : 0x00000010`7c6b0000 IMemObj
+0x008 m_cbSlotMax : 0x40
+0x00a m_cbSlotInc : 0xe4f
+0x010 m_psiPages : 0x00000010`7c6c0000 CSlotInfo
+0x018 m_rgpsgGroups : 0x00000000`0000c000 -> ???? ===========èthis is not valid address, and therefore AVs.

+0x020 m_pshFreeHdrs : 0x000000b3`63384360 CSlotHdr
+0x028 m_cTotalPages : 0n0
+0x030 m_cMaxTotalPages : 0n4

Estado

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

Autor: harvch
Writer: v-juwang
Revisor técnico: mikez; satyem; ajayj; sureshka; harvch;
Editor: v-xhua

Precisa de mais ajuda?

Aumente os seus conhecimentos
Explore as formações
Seja o primeiro a obter novas funcionalidades
Aderir ao Microsoft insiders

As informações foram úteis?

Obrigado pelos seus comentários!

Obrigado pelo seu feedback! Parece que poderá ser benéfico reencaminhá-lo para um dos nossos agentes de suporte do Office.

×