Leaked record detected with address …, name (unknown), and thread local refcount
The following error is generated by a PowerShell script:
Leaked record detected with address 000000001D5ED488, name (unknown), and thread local refcount 73. To see AddRef/Release callstacks for this leak, run stsadm -o setproperty -pn refcountcallstacktrackingenabled -pv true.
First we looked into when this error occurred and identified the PowerShell in question.
I found this article showing the same error:
However this wasn’t our problem.
I ran the PowerShell script in question in the ISE PowerShell Debugger and found the problem with this code:
foreach ($item in $List.Items)
Suddenly this was filling up my memory.
$List.Items loads all the list items and for a list with about 5000 items that is not a good idea. Running something like this is a better idea:
$spqQuery = New-Object Microsoft.SharePoint.SPQuery
$spqQuery.ViewFields = “<FieldRef Name=’ID’ /><FieldRef Name=’Title’ />”
$spqQuery.ViewFieldsOnly = $true
$splListItems = $ulsList.GetItems($spqQuery)
foreach ($splListItem in $splListItems)