Skip to content

Commit

Permalink
[release/2.2] Backport memory leak fix from 3.0 (#13840)
Browse files Browse the repository at this point in the history
  • Loading branch information
jkotalik authored and analogrelay committed Oct 1, 2019
1 parent 3bb7be1 commit 59bdc34
Show file tree
Hide file tree
Showing 2 changed files with 7 additions and 4 deletions.
1 change: 1 addition & 0 deletions eng/PatchConfig.props
Expand Up @@ -78,6 +78,7 @@ Later on, this will be checked using this condition:
</PropertyGroup>
<PropertyGroup Condition=" '$(VersionPrefix)' == '2.2.8' ">
<PackagesInPatch>
Microsoft.AspNetCore.DataProtection.EntityFrameworkCore;
</PackagesInPatch>
</PropertyGroup>
</Project>
Expand Up @@ -42,8 +42,10 @@ public virtual IReadOnlyCollection<XElement> GetAllElements()
{
using (var scope = _services.CreateScope())
{
var context = scope.ServiceProvider.GetRequiredService<TContext>();
return context.DataProtectionKeys.AsNoTracking().Select(key => TryParseKeyXml(key.Xml)).ToList().AsReadOnly();
var context = scope.ServiceProvider.GetRequiredService<TContext>();
// Put logger in a local such that `this` isn't captured.
var logger = _logger;
return context.DataProtectionKeys.AsNoTracking().Select(key => TryParseKeyXml(key.Xml, logger)).ToList().AsReadOnly();
}
}

Expand All @@ -65,15 +67,15 @@ public void StoreElement(XElement element, string friendlyName)
}
}

private XElement TryParseKeyXml(string xml)
private static XElement TryParseKeyXml(string xml, ILogger logger)
{
try
{
return XElement.Parse(xml);
}
catch (Exception e)
{
_logger?.LogExceptionWhileParsingKeyXml(xml, e);
logger?.LogExceptionWhileParsingKeyXml(xml, e);
return null;
}
}
Expand Down

0 comments on commit 59bdc34

Please sign in to comment.