BUG: Freeing Dynamic-Linked Libraries (DLLs) Fails to Unload Them When a Path Is Specified (300965)



The information in this article applies to:

  • Microsoft SQL Server 2000 (all editions)

This article was previously published under Q300965
BUG #: 351442 (SHILOH_BUGS)

SYMPTOMS

If you specify a path when you register extended procedures, they cannot be freed by using DBCC DLLNAME (FREE).

CAUSE

The DLL cannot be unloaded because it cannot be found in the xproc lookup hash table. The lookup for DBCC DLLNAME (FREE) assumes DLLNAME with no path, but the DLL was added to the table with full path information.

WORKAROUND

When you register extended procedures, do not specify the path. Instead, place the DLL in the SQL\BINN folder and register as follows:
use master
go
exec sp_addextendedproc 'xp_cmdshell', 'xplog70.dll'
				
If the procedures are registered in this way, DBCC DLLNAME (FREE) should work correctly.

STATUS

Microsoft has confirmed that this is a problem in the Microsoft products that are listed at the beginning of this article.

Modification Type:MajorLast Reviewed:10/3/2003
Keywords:kbBug kbpending KB300965