Saturday, February 25, 2012

c0000005 EXCEPTION_ACCESS_VIOLATION on Linked server access

Hi,
My server is running SQL Server 7.00.1063 on Windows 2000 Server SP3. A cou
ple of linked server are configured on this server. These linked servers co
nnect to SQL 7 servers, and also SQL 2000 servers.
If I try to use one of these linked servers in a SELECT query, I always get
an access violation. System tables or user tables in any database, it don't
work. A simple query like SELECT * from LINK1.master.dbo.sysprocesses cras
hes. Even a query on a non
-existing table (i.e. SELECT * FROM LINK1.my_db.dbo.unknowntable) crashes wi
th an acces violation. I tried to create a new linked server, but this new
one still don't work. Even worse: if I try SELECT * FROM A.B.C.D, It crash
ed with an access violation
instead of raising an error telling that A is not in sysservers...
I tried to reboot the server, but that didn't solve anything.
I ran a DBCC CHECKDB on all databases, but no error was found.
If this can helps to identify the problem, this is the Short Stack Dump foun
d in the SQL000000.dmp files:
0x780011cd Module(MSVCRT+11cd) (wcslen+4)
0x005ec588 Module(sqlservr+1ec588) (FEqWsz+20)
0x00540ae6 Module(sqlservr+140ae6) (FOpenRange+ce)
0x004406f6 Module(sqlservr+406f6) (colnames+dac)
0x00440388 Module(sqlservr+40388) (colnames+7a)
0x004402d6 Module(sqlservr+402d6) (CProchdr::NormQuery+30)
0x00532811 Module(sqlservr+132811) (CProchdr::FCompile+1bf)
0x0040e1c8 Module(sqlservr+e1c8) (CSQLSource::FTransform+234)
0x00537769 Module(sqlservr+137769) (CSQLObject::FTransform2+31c)
0x0046b90d Module(sqlservr+6b90d) (CSQLObject::FGetFromDisk+627)
0x0041ff1c Module(sqlservr+1ff1c) (CSQLObject::FTransform+21a)
0x0060737b Module(sqlservr+20737b) (CSQLObject::PtrGetCmd+3e)
0x00636b94 Module(sqlservr+236b94) (FGetViewColumns+f6)
0x00540dcb Module(sqlservr+140dcb) (FOpenRange+412)
0x004406f6 Module(sqlservr+406f6) (colnames+dac)
0x00440388 Module(sqlservr+40388) (colnames+7a)
0x004402d6 Module(sqlservr+402d6) (CProchdr::NormQuery+30)
0x0043df13 Module(sqlservr+3df13) (CProchdr::FCompile+23f)
0x0040e1c8 Module(sqlservr+e1c8) (CSQLSource::FTransform+234)
0x00420394 Module(sqlservr+20394) (CSQLObject::FTransform2+1ab)
0x0046b90d Module(sqlservr+6b90d) (CSQLObject::FGetFromDisk+627)
0x0041ff1c Module(sqlservr+1ff1c) (CSQLObject::FTransform+21a)
0x0040dd22 Module(sqlservr+dd22) (CSQLSource::Execute+11d)
0x004ff1e3 Module(sqlservr+ff1e3) (CStmtExec::XretLocalExec+127)
0x004ff0a2 Module(sqlservr+ff0a2) (CStmtExec::XretExecute+253)
0x0040e9ab Module(sqlservr+e9ab) (CMsqlExecContext::ExecuteStmts+11b)
0x0040e4c0 Module(sqlservr+e4c0) (CMsqlExecContext::Execute+1bb)
This server has been built a year ago, and linked servers had always worked
as expected until today...
Does anyone have an idea on how to solve this?
Thank you very much.
Eric PrevostHi,
I solved my problem. @.@.servername was returning NULL instead of server name
. I used sp_dropserver / sp_addserver and restarted SQL Server. The proble
m is gone.

No comments:

Post a Comment