FIX: IRL can cause 3307, OS error 6, unhandled server level AV

Last reviewed: April 8, 1997
Article ID: Q153855

The information in this article applies to:
  • Microsoft SQL Server version 6.5

SYMPTOMS

If a table is set to enable Insert - Row Locking (IRL) with "sp_tableoption

'table_name', 'Insert row lock', true"  within a transaction and the user
fails to end the transaction with 'commit tran' or 'rollback tran' before exiting, it could cause 3307 "Process %ld was expected to hold logical lock on page %ld.", OS error 6, 602 "Could not find row in Sysindexes for dbid
'%d', object '%Id',index '%d'." and an unhandled server level access
violation (AV).

MORE INFORMATION

On a single processor computer, when the user exits without 'commit tran', it can cause the following error in the errorlog:

Error : 3307, Severity: 21, State: 1 Process 10 was expected to hold logical lock on page 336. WARNING: Process being freed while holding Dataserver semaphore udread: Operating system error 6(The handle is invalid.) on device

'C:\MSSQL\DATA\MASTER.DAT' (virtpage 0x000009a4).
udread: Operating system error 6(The handle is invalid.) on device
'C:\MSSQL\DATA\MASTER.DAT' (virtpage 0x00000394).
udread: Operating system error 6(The handle is invalid.) on device
'C:\MSSQL\DATA\MASTER.DAT' (virtpage 0x00000383).
Buffer 8d3b20 from database 'master' has page number 0 in the page header and page number 895 in the buffer header Recursive error 822 in ex_print mirrorproc: i/o error on primary device 'C:\MSSQL\DATA\MASTER.DAT'

SQL Server will terminate itself afterwards. When SQL Server is restarted and DBCC CHECKDB("pubs") is executed, the results sometimes report error 602: Could not find row in Sysindexes for dbid '%d', object '%Id',index

'%d'.

After a user exits on a multi-processor computer, sp_who shows the spid is still valid and the status shows 'spinloop', which does not allow you to kill the spid. DBCC CHECKDB or other queries will either hang, or become extremely slow. There will also be many bufwait() errors in the errorlog. Stopping SQL Server would either cause an AV or cause SQl Server to stop responding.

STATUS

Microsoft has confirmed this to be a problem in Microsoft SQL Server version 6.5. We are researching this problem and will post new information here in the Microsoft Knowledge Base as it becomes available.


Additional query words:
Keywords : kbbug6.50
Version : 6.5
Platform : WINDOWS


THE INFORMATION PROVIDED IN THE MICROSOFT KNOWLEDGE BASE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. MICROSOFT DISCLAIMS ALL WARRANTIES, EITHER EXPRESS OR IMPLIED, INCLUDING THE WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL MICROSOFT CORPORATION OR ITS SUPPLIERS BE LIABLE FOR ANY DAMAGES WHATSOEVER INCLUDING DIRECT, INDIRECT, INCIDENTAL, CONSEQUENTIAL, LOSS OF BUSINESS PROFITS OR SPECIAL DAMAGES, EVEN IF MICROSOFT CORPORATION OR ITS SUPPLIERS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. SOME STATES DO NOT ALLOW THE EXCLUSION OR LIMITATION OF LIABILITY FOR CONSEQUENTIAL OR INCIDENTAL DAMAGES SO THE FOREGOING LIMITATION MAY NOT APPLY.

Last reviewed: April 8, 1997
© 1998 Microsoft Corporation. All rights reserved. Terms of Use.