FIX: Server Unresponsive After Deadlocks Under Tempdb Stress

ID: Q245807


The information in this article applies to:
  • Microsoft SQL Server version 6.5 Service Pack 4 and later

BUG #: 18922 (SQLBUG_65)

SYMPTOMS

Under high stress in tempdb and heavy deadlocking, the server appears unresponsive to some client queries involving tempdb database. You may also see some processes in tempdb database being blocked by spid "-1" (as seen in the "blocked" column) in sysprocesses. Some Access Violations (AV) may also be recorded in the SQL Server Errorlog, along with some warning messages like:

WARNING:Pss found with open sdes;pspid 15,psuid 1,pcurdb 2,system table entry 0,sdesp 0x25d0f88,objid 2


CAUSE

Deadlocks between multiple processes creating temporary tables, or indexes on temporary tables results in partial cleanup during rollback of the victim process. This results in access violations and sometimes the process is partially cleaned up, showing as spid "-1" in the "blocked" column in sysprocesses. This partially rolled back process may hold locks on system tables, thereby blocking other processes, resulting in what appears to be a system hang.


RESOLUTION

A supported fix that corrects this problem is now available from Microsoft, but it has not been fully regression tested and should be applied only to systems experiencing this specific problem. If you are not severely affected by this specific problem, Microsoft recommends that you wait for the next SQL Server service pack that contains this fix.

To resolve this problem immediately, contact Microsoft Product Support Services to obtain the fix. For a complete list of Microsoft Product Support Services phone numbers and information on support costs, please go to the following address on the World Wide Web:

http://www.microsoft.com/support/supportnet/overview/overview.asp
The English version of this fix should have the following file attributes or later:

   File name     Platform
   ---------------------------------------------------------

   sql466i.exe   Intel
   sql466a.exe   Alpha 
NOTE: Due to file dependencies, the most recent hotfix or feature that contains the above files may also contain additional files.


STATUS

Microsoft has confirmed this to be a problem in SQL Server version 6.5 Service Pack 4 and above.


MORE INFORMATION

This problem occurs with SQL Server version 6.5 Service Pack 4 and later and does not occur in prior Service Packs. If you have Trace Flag 1204 turned ON, you can get the deadlock information in the errorlog and determine the process that was chosen as the victim. DBCC Outputbuffer on the victim process shows:


Your server command (process id %ld) was deadlocked with another process and  has been chosen as deadlock victim. Re-run your command.
Error while undoing log row in database '%.*s'.  Rid pageid is %S_RID. The SQL Server is terminating this process. 
The preceding error is not reported to the process or in the SQL Server errorlog.

Additional query words: corruption in tempdb, AV, stress, negative spid, -ve, deadlock

Keywords : kbSQLServ650bug
Version : winnt:6.5 Service Pack 4 and later
Platform : winnt
Issue type : kbbug


Last Reviewed: January 4, 2000
© 2000 Microsoft Corporation. All rights reserved. Terms of Use.