hey, I was looking at my Dalamud logs for an unrelated issue and noticed a weird exception from Penumbra:
2023-06-26 14:50:17.134 +01:00 [INF] [LOCALPLUGIN] Loading Penumbra.dll
2023-06-26 14:50:17.216 +01:00 [INF] [Penumbra] Loading Penumbra Version 0.7.1.4, Commit #81891cf with Waiting For Plugins: True...
2023-06-26 14:50:17.493 +01:00 [ERR] [Penumbra] Error constructing Penumbra, Disposing again:
System.ArgumentOutOfRangeException: Specified argument was out of the range of valid values. (Parameter 'MaxDegreeOfParallelism')
at System.Threading.Tasks.ParallelOptions.set_MaxDegreeOfParallelism(Int32 value)
at Penumbra.Mods.Manager.ModManager.ScanMods() in D:\a\Penumbra\Penumbra\Penumbra\Mods\Manager\ModManager.cs:line 319
at Penumbra.Mods.Manager.ModManager.DiscoverMods() in D:\a\Penumbra\Penumbra\Penumbra\Mods\Manager\ModManager.cs:line 77
at System.RuntimeMethodHandle.InvokeMethod(Object target, Void** arguments, Signature sig, Boolean isConstructor)
at System.Reflection.ConstructorInvoker.Invoke(Object obj, IntPtr* args, BindingFlags invokeAttr)
at System.Reflection.RuntimeConstructorInfo.InvokeWithManyArguments(RuntimeConstructorInfo ci, Int32 argCount, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
at System.Reflection.RuntimeConstructorInfo.Invoke(BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitConstructor(ConstructorCallSite constructorCallSite, RuntimeResolverContext context)
at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor`2.VisitCallSiteMain(ServiceCallSite callSite, TArgument argument)
at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitRootCache(ServiceCallSite callSite, RuntimeResolverContext context)
at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor`2.VisitCallSite(ServiceCallSite callSite, TArgument argument)
at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.Resolve(ServiceCallSite callSite, ServiceProviderEngineScope scope)
at Microsoft.Extensions.DependencyInjection.ServiceProvider.CreateServiceAccessor(Type serviceType)
at System.Collections.Concurrent.ConcurrentDictionary`2.GetOrAdd(TKey key, Func`2 valueFactory)
at Microsoft.Extensions.DependencyInjection.ServiceProvider.GetService(Type serviceType, ServiceProviderEngineScope serviceProviderEngineScope)
at Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(IServiceProvider provider, Type serviceType)
at Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService[T](IServiceProvider provider)
at Penumbra.Penumbra..ctor(DalamudPluginInterface pluginInterface) in D:\a\Penumbra\Penumbra\Penumbra\Penumbra.cs:line 69
hey, I was looking at my Dalamud logs for an unrelated issue and noticed a weird exception from Penumbra:
If I had to guess, I'd assume that
Environment.ProcessorCount
is 1 for some reason (maybe https://github.com/dotnet/runtime/issues/12727 regressed again??), and dividing it by 2 is rounding it down to 0, which is apparently not a valid value for ParallelOptions.MaxDegreeOfParallelism.