FIX: SQL Server 2000 Service Pack 4 stops responding after you close a SQL Server connection on a computer that is running Windows Server 2003 Service Pack 1

Support for Windows Server 2003 ended on July 14, 2015

Microsoft ended support for Windows Server 2003 on July 14, 2015. This change has affected your software updates and security options. Learn what this means for you and how to stay protected.

This article has been archived. It is offered "as is" and will no longer be updated.
Symptoms
Microsoft SQL Server 2000 Service Pack 4 (SP4) stops responding (hangs) after you close a SQL Server connection. This problem occurs on a computer that is running Microsoft Windows Server 2003 Service Pack 1 (SP1). Additionally, SQL Server does not accept any connection requests. When this problem occurs, the following error message may be logged in the SQL Server error log:
Date Time server Error: 17883, Severity: 1, State: 0
Date Time server Process 2:0 (b58) UMS Context 0x21D17050 appears to be non-yielding on Scheduler 1.
Cause
This problem occurs because a Dbnetlib.dll file transfers an invalid socket handle to the closesocket function when you close a SQL Server connection. This invalid socket handle blocks TCP/IP activity. Therefore, SQL Server stops responding and does not accept any connection requests.
Resolution

Service pack information

To resolve this problem, obtain the latest service pack for Windows Server 2003. For more information, click the following article number to view the article in the Microsoft Knowledge Base:
889100 How to obtain the latest service pack for Windows Server 2003

Software update information

This update has been superseded by another update. For more information about the replacement update, click the following article number to view the article in the Microsoft Knowledge Base:
931303 SQL Server 2000 Service Pack 4 stops responding after you close a SQL Server connection on a computer that is running Windows Server 2003 Service Pack 1
Status
Microsoft has confirmed that this is a problem in the Microsoft products that are listed in the "Applies to" section. This problem was first corrected in Windows Server 2003 Service Pack 2.
More information
To reproduce this problem in SQL Server 2000 SP4, load the Dbnetlib.dll file into the SQL Server process space.

Call stack information

The blocking thread may have a call stack that resembles the following:
mswsock!SockImportHandle+0x1f0mswsock!SockFindAndReferenceSocket+0x140mswsock!WSPGetSockOpt+0xe0ws2_32!DSOCKET::FindIFSSocket+0x210ws2_32!DSOCKET::GetCountedDSocketFromSocket+0x70ws2_32!closesocket+0xc0dbnetlib!CloseEnumServers+0x60sqlsrv32!BrowseNetworkEx+0x2d0sqlsrv32!SQLBrowseConnectW+0xd50odbc32!SQLBrowseConnectW+0xe30odbc32!SQLBrowseConnect+0x560w95scm!EnumServer+0x540w95scm!IsSQLSvrClustered+0x210w95scm!SQLSCMGetServiceStateNT+0xc90w95scm!SQLSCMGetServiceStateW+0x190xpstar!xp_servicecontrol+0x16c0sqlservr!FCallRpcDLL+0xb10sqlservr!CXProc::Execute+0x3b0sqlservr!CSQLSource::Execute+0xb80sqlservr!CStmtExec::XretLocalExec+0x270
The threads that are blocked when they are waiting for the critical section may have a call stack that resembles the following:
ntdll!RtlpWaitOnCriticalSection+0x430ntdll!RtlEnterCriticalSection+0x1f0mswsock!SockAcquireRwLockShared+0x80mswsock!SockCloseSocket+0x6f0mswsock!WSPCloseSocket+0x100ws2_32!closesocket+0x110SSnetlib!ConnectionClose+0x160sqlservr!close_server_side+0x100sqlservr!release_srvproc+0x110sqlservr!process_commands+0xc10sqlservr!ProcessWorkRequests+0xa40sqlservr!ThreadStartRoutine+0x150msvcrt!_threadstart+0x210kernel32!BaseThreadStart+0xc0
Properties

Article ID: 926940 - Last Review: 11/02/2013 15:24:00 - Revision: 5.0

Microsoft Windows Server 2003 Service Pack 1

  • kbnosurvey kbarchive kbwinserv2003sp2fix kbfix kbwinserv2003presp2fix kbqfe KB926940
Feedback