KB3042135 – POPRAVKA: kršenje pravila pristupa i greška "Ovaj kôd ne bi trebao podizati izuzetke" javlja se kada koristite SQL Server 2012 ili SQL Server 2014

Primenjuje se na
SQL Server 2012 Developer SQL Server 2012 Enterprise 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)

Simptomi

Pretpostavimo da koristite Microsoft SQL Server 2012 ili SQL Server 2014. Kada dođe do mrtve tačke u sistemu SQL Server, dobijate sledeće kršenje pristupa koje je izazvalo nadgledanje mrtve tačke:

Napomena

SQLDK! CSlotGroup::P shRelease
SQLDK! CSlotPageMgr::Release
sqllang!CommonDelete
sqllang!delete[]
SQLng! CTraceDataSTVF::InternalReleaseResources
SQLng! TTableBase<CTraceDataSTVFInfo>::ReleaseResources
SQLng! CTraceDataSTVF::{dtor}
SQLng! CTraceDataSTVF::'skalarno brisanje destruktora'
SQLMIN! CSTVFInternal::Otpuštanje
SQLMIN! CQueryExecContext::~CQueryExecContext
SQLMIN! CQueryInstance::ShutdownQueryExecContext
SQLMIN! CQueryScan::ShutdownQueryExecContext
SQLMIN! CQueryScan::D estroyQueryOnException
SQLng! CXStmtQuery::ShutdownOnException
SQLng! CXStmtQuery::FinishOnExceptionImp
SQLng! GetInterruptTicks
SQLng! InterruptTicks<unsigned __int64>::LoadTicks
SQLng! SOS_Ticks<InterruptTicks<unsigned __int64>,-3>::LoadTicks
sqllang!'CMsqlExecContext::FExecute'::'1'::catch$3
msvcr100!_CallSettingFrame
msvcr100!__CxxCallCatchBlock
NTDLL! Konsolidacija RCFrame-a
SQLng! CMsqlExecContext::FExecute
SQLng! CSQLSource::Izvršiti
SQLng! CStmtExecProc::XretLocalExec
SQLng! CStmtExecProc::XretExecExecute
SQLng! CXStmtExecProc::XretExecute
SQLng! CExecStmtLoopVars::ExecuteXStmtAndSetXretReturn
SQLng! CMsqlExecContext:: ExecuteStmts<1,0>
SQLng! CMsqlExecContext::FExecute
SQLng! CSQLSource::Izvršiti
SQLng! Preuzmite
SQLng! CSpecProc :: EkecutSpecial
SQLng! CSpecProc::Execute
SQLng!process_request
sqllang!process_commands
SQLDK! SOS_Task::P aram::Execute
SQLDK! SOS_Scheduler::RunTask
SQLDK! SOS_Scheduler::P rocessTasks
SQLDK! SchedulerManager::WorkerEntryPoint
SQLDK! SystemThread::RunWorker
SQLDK! SystemThreadDispatcher::P rocessWorker
SQLDK! SchedulerManager::ThreadEntryPoint
kernel32! BaseThreadInitThunk
NTDLL! RtlUserThreadStart

Nakon kršenja pravila pristupa, dobijate sledeću poruku o grešci iz evidencije grešaka za SQL Server:

Napomena

< Datum><Vreme> spid<ID> Korišćenje 'dbghelp.dll' verzije '4.0.5'
< Datum><Vreme> spid<ID> **Dump nit - spid = <ID,> EC = 0x0000007F8608E160
< Datum><Vreme> spid<ID> ***Stack Dump being sent to <File Path>\<Dump FileName>.txt
< Datum><Vreme> spid<ID> * *******************************************************************************
< Datum><Vreme> ID spid<*>
< Datum><Vreme> spid<id *> begin stack dump:
< Datum><Vreme>spid< ID > * <Datum><Vreme>spid< ID>
< Datum><Vreme> ID spid<*>
< Datum><Vreme>ID> spida< * Lokacija: qxcntxt.cpp:1143
< Datum><Vreme> spid<ID> * Izraz: !" Ovaj kôd ne bi trebao podizati izuzetke"
< Datum><Vreme> spid<ID> * SPID: <ID>
< Datum><Vreme>ID> spida< * ID procesa: 3556
< Datum><Vreme> ID spid<*>
< Datum><Vreme> spid<ID> * Ulazni bafer 37 bajtova -
< Datum><Vreme> PID<ID *> 16 00 00 00 12 00 00 00 02 00 00 00 00 00 00 00 00 00 00 00 00
< Datum><Vreme> spid<ID> * ÿ & 01 00 00 00 ff ff 0c 00 00 00 00 00 26 04 04 05 00 00
< Datum><Vreme> spid<ID> * 00
< Datum><Vreme> ID spid<*>
< Datum><Vreme> ID spid<*>
...
< Datum><Vreme> spid<ID> Potpis steka za prikaz je 0x000000014202549F
< Datum><Vreme> spid<ID> [INFO] Identitet počinje kraj | State Result Error Spekulacije Pripremljeno LazyCommit samo za čitanje | TransactionDatabase ThreadId | ReadSet WriteSet ScanSet Savepoint LogSizeRq | CommitDep TotalComm Dependent 0 Dependent 1 Dependent 2 Dependent 3 Dependent 4 Dependent 5 Dependent 6 Dependent 7 | Lokacija oblasti |
< Datum><Vreme> spid<ID> Vremensko ograničenje čekanja za spoljni dump proces 11800.

< Datum><Vreme> spid<ID> Greška: 17066, Ozbiljnost: 16, Stanje: 1.
< Datum><Vreme> spid<ID> SQL Server Tvrdnja: Datoteka: <qxcntxt.cpp>, line=1143 Neuspešna tvrdnja = '!" Ovaj kôd ne bi trebao podnositi nikakve izuzetke"'. Ova greška je možda povezana sa vremenom. Ako se greška nastavi pojavljivati i posle ponovnog pokretanja instrukcije, koristite DBCC CHECKDB da biste proverili strukturni integritet baze podataka ili ponovo pokrenite server da biste se uverili da strukture podataka u memoriji nisu oštećene.

      

Rešenje

Informacije o kumulativnom ažuriranju

Problem je prvi put rešen u sledećoj kumulativnoj ispravci sistema SQL Server.

Preporuka: Instalirajte najnoviju kumulativnu ispravku za SQL Server

Svaka nova kumulativna ispravka za SQL Server sadrži sve hitne ispravke i sve bezbednosne ispravke koje su uključene u prethodnu kumulativnu ispravku. Preporučujemo da preuzmete i instalirate najnovije kumulativne ispravke za SQL Server:

      

Status

Microsoft je potvrdio da je ovo problem u Microsoft proizvodima koji su navedeni u odeljku „Odnosi se na“.