SYMPTOMS
A stored procedure that performs the following actions:
- creates a temporary table
- inserts data into the table
- creates a cursor for read-only access that is then used to update the
contents of the temporary table
- drops the cursor
- 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):