FIX: Checkpoint Process Deadlock Results in Errors 603, 3314

ID: Q153954


The information in this article applies to:


SYMPTOMS

A stored procedure that performs the following actions:

  1. creates a temporary table


  2. inserts data into the table


  3. creates a cursor for read-only access that is then used to update the contents of the temporary table


  4. drops the cursor


  5. drops the temporary table


can, if executed by multiple users, result in the Checkpoint Process being chosen as a deadlock victim (spid 3). In this case, the following message will come up three times:
Your server command (process id 3) was deadlocked with another process and has been chosen as a deadlock victim. Re-run your command.

The message will be followed by the following errors:
603: There are not enough system session descriptors available to run this query. The maximum number available to a process is %d. Split query and rerun.

3314: Error while undoing log row in database '%.*s'. %S_RID.

A thread-level Access Violation will also be displayed.

If you run sp_who prior to receiving 1105 errors in tempdb, the Checkpoint Process is not present, and if the client processes continue to run, the result is that tempdb eventually fills because the log is not being truncated.


STATUS

Microsoft has confirmed this to be a problem in Microsoft SQL Server version 6.5. This problem was corrected in the latest Microsoft SQL Server U.S. Service Pack. For information on obtaining the Service Pack, query on the following word in the Microsoft Knowledge Base (without the spaces):

S E R V P A C K

Additional query words: sp1


Keywords          : kbnetwork SSrvStProc 
Version           : 6.5
Platform          : WINDOWS 
Issue type        : 

Last Reviewed: March 31, 1999