NuGet / Home

Repo for NuGet Client issues
Other
1.5k stars 253 forks source link

StackOverflow when installing package t4mvc #539

Closed feiling closed 9 years ago

feiling commented 9 years ago

This is a bug found by a customer.

Repro steps:

<?xml version="1.0" encoding="utf-8"?>
<packages>
  <package id="51Degrees.mobi" version="2.1.15.1" targetFramework="net4" userInstalled="true" />
  <package id="AspNetMvc" version="4.0.20710.0" targetFramework="net45" userInstalled="true" />
  <package id="AttributeRouting" version="3.5.6" targetFramework="net4" userInstalled="true" />
  <package id="AttributeRouting.Core" version="3.5.6" targetFramework="net4" userInstalled="true" />
  <package id="AttributeRouting.Core.Web" version="3.5.6" targetFramework="net4" userInstalled="true" />
  <package id="AutoMapper" version="3.3.1" targetFramework="net45" userInstalled="true" />
  <package id="Castle.Core" version="1.1.0" targetFramework="net4" userInstalled="true" />
  <package id="Castle.DynamicProxy" version="2.1.0" targetFramework="net4" userInstalled="true" />
  <package id="Clay" version="1.0" targetFramework="net4" userInstalled="true" />
  <package id="colorbox" version="1.4.29" targetFramework="net45" userInstalled="true" />
  <package id="elmah" version="1.2.0.1" userInstalled="true" />
  <package id="elmah.corelibrary" version="1.2" userInstalled="true" />
  <package id="EntityFramework" version="6.1.3" targetFramework="net45" userInstalled="true" />
  <package id="fasterflect" version="2.1.0" userInstalled="true" />
  <package id="foolproof" version="0.9.4517" targetFramework="net45" userInstalled="true" />
  <package id="Glimpse" version="0.87" userInstalled="true" />
  <package id="Glimpse.Elmah" version="0.9.3" userInstalled="true" />
  <package id="Glimpse.Mvc3" version="0.87" userInstalled="true" />
  <package id="jQuery" version="1.4.1" targetFramework="net45" userInstalled="true" />
  <package id="knockout.mapper.TypeScript.DefinitelyTyped" version="0.0.4" targetFramework="net45" userInstalled="true" />
  <package id="Knockout.Mapping" version="2.4.0" targetFramework="net45" userInstalled="true" />
  <package id="knockout.mapping.TypeScript.DefinitelyTyped" version="0.0.9" targetFramework="net45" userInstalled="true" />
  <package id="knockout.TypeScript.DefinitelyTyped" version="0.5.1" targetFramework="net45" userInstalled="true" />
  <package id="Knockout.Validation" version="1.0.1" targetFramework="net45" userInstalled="true" />
  <package id="knockoutjs" version="2.0.0" targetFramework="net45" userInstalled="true" />
  <package id="LINQtoCSV" version="1.2.0.0" targetFramework="net4" userInstalled="true" />
  <package id="log4net" version="2.0.3" targetFramework="net45" userInstalled="true" />
  <package id="Microsoft.AspNet.Mvc" version="4.0.40804.0" targetFramework="net45" userInstalled="true" />
  <package id="Microsoft.AspNet.Razor" version="2.0.30506.0" targetFramework="net45" userInstalled="true" />
  <package id="Microsoft.AspNet.WebPages" version="2.0.30506.0" targetFramework="net45" userInstalled="true" />
  <package id="Microsoft.Web.Infrastructure" version="1.0.0.0" userInstalled="true" />
  <package id="MiniProfiler" version="3.1.1.140" targetFramework="net45" userInstalled="true" />
  <package id="MiniProfiler.EF6" version="3.0.11" targetFramework="net45" userInstalled="true" />
  <package id="MiniProfiler.MVC4" version="3.0.11" targetFramework="net45" userInstalled="true" />
  <package id="Mvc3CodeTemplatesCSharp" version="3.0.11214.0" userInstalled="true" />
  <package id="MvcDiagnostics" version="3.0.10714.0" userInstalled="true" />
  <package id="Newtonsoft.Json" version="6.0.8" targetFramework="net45" userInstalled="true" />
  <package id="Ninject" version="3.2.2.0" targetFramework="net45" userInstalled="true" />
  <package id="Ninject.Web.Common" version="3.2.3.0" targetFramework="net45" userInstalled="true" />
  <package id="OpenPop.NET" version="2.0.5.1063" targetFramework="net45" userInstalled="true" />
  <package id="PreMailer.Net" version="1.1.2" targetFramework="net4" userInstalled="true" />
  <package id="Rejuicer" version="1.3.0" targetFramework="net45" userInstalled="true" />
  <package id="T4MVCExtensions" version="3.15.2" targetFramework="net46" userInstalled="true" />
  <package id="T4MvcJs" version="1.0.13" targetFramework="net45" userInstalled="true" />
  <package id="Twia.ReSharper" version="9.0.0" targetFramework="net45" userInstalled="true" />
  <package id="valueinjecter" version="2.3.3" targetFramework="net45" userInstalled="true" />
  <package id="WebActivator" version="1.5" userInstalled="true" />
  <package id="YUICompressor.NET" version="1.6.0.2" targetFramework="net45" userInstalled="true" />
</packages>
NuGet.Protocol.Core.v3.dll!NuGet.Protocol.Core.v3.DependencyInfo.ResolverMetadataClient.InlineDependencies(System.Net.Http.HttpClient httpClient, NuGet.Protocol.Core.v3.DependencyInfo.RegistrationInfo registrationInfo, NuGet.Frameworks.NuGetFramework projectFramework, System.Collections.Concurrent.ConcurrentDictionary<System.Uri, Newtonsoft.Json.Linq.JObject> sessionCache, System.Func<System.Collections.Generic.IDictionary<NuGet.Versioning.NuGetVersion, System.Collections.Generic.HashSet<string>>, System.Collections.Generic.IDictionary<NuGet.Versioning.NuGetVersion, System.Collections.Generic.HashSet<string>>> filter)

This looks to me that there are somehow circular dependencies and our code doesn't detect this scenario.

emgarten commented 9 years ago

If this is due to a circular dependency then it should be fixed for RTM already with: https://github.com/NuGet/Home/issues/171

feiling commented 9 years ago

This bug repros with the current dev branch.

johnataylor commented 9 years ago

This code has been removed so this can't repo on the latest build.

However, this indicates a logical loop in the data we are serving from nuget.org that shouldn't be there. NuGet doesn't detect these problems on the server but it should.

Leaving this issues open for today because we need to verify a recent build and investigate the problem in the data.

yishaigalatzer commented 9 years ago

Please verify https://github.com/NuGet/Home/issues/571 and https://github.com/NuGet/Home/issues/544 when this bug is fixed.

johnataylor commented 9 years ago

we now understand and prioritize listed/unlisted correctly in the resolver and include these in the v3 feed. we need to verify this particular case against the registration1 set of registration blobs (because they contain the field "listed" instead of the cryptic not-published-in-1900 logic

johnataylor commented 9 years ago

571 and this bug both look good on the latest bits in dev.

We're adding addition tests at the NuGet.PackageManager level to catch these issues.