AWS CDK — как исправить фатальный процесс OOM из-за нехватки памяти, чтобы создать ошибку изоляции?

Я пытаюсь работать с некоторыми примерами с AWS CDK, используя C # в качестве языка. Моя платформа — Windows 10. Правка: забыл упомянуть, что я использую 64-разрядную версию Windows 10 и 16 ГБ оперативной памяти.

Я следовал инструкциям по началу работы здесь: Начало работы с AWS CDK, включая проверку наличия всех предварительных условий.

Я могу создать проект, но когда я пытаюсь использовать синтезатор или деплой, я получаю следующее:

Unhandled exception. Amazon.JSII.Runtime.JsiiException: Child process exited unexpectedly:
#
# Fatal process OOM in insufficient memory to create an Isolate
#


   at Amazon.JSII.Runtime.Services.Runtime.ReadResponse()
   at Amazon.JSII.Runtime.Services.Client.ReceiveResponse[TResponse]()
   at Amazon.JSII.Runtime.Services.Client.Hello()
   at Amazon.JSII.Runtime.Services.ServiceContainer.BuildServiceProvider(ILoggerFactory loggerFactoryOverride)
   at Amazon.JSII.Runtime.Services.ServiceContainer.<>c.<.cctor>b__8_0()
   at System.Lazy`1.ViaFactory(LazyThreadSafetyMode mode)
   at System.Lazy`1.ExecutionAndPublication(LazyHelper executionAndPublication, Boolean useDefaultConstructor)
   at System.Lazy`1.CreateValue()
   at System.Lazy`1.get_Value()
   at Amazon.JSII.Runtime.Services.ServiceContainer.get_ServiceProvider()
   at Amazon.JSII.Runtime.Deputy.JsiiTypeAttributeBase.Load(Assembly assembly)
   at Amazon.JSII.Runtime.Deputy.JsiiTypeAttributeBase.Load(Assembly assembly)
   at Amazon.JSII.Runtime.Deputy.JsiiTypeAttributeBase..ctor(Type nativeType, String fullyQualifiedName)
   at Amazon.JSII.Runtime.Deputy.JsiiClassAttribute..ctor(Type nativeType, String fullyQualifiedName, String parametersJson)
   at System.Reflection.CustomAttribute._CreateCaObject(RuntimeModule pModule, RuntimeType type, IRuntimeMethodInfo pCtor, Byte** ppBlob, Byte* pEndBlob, Int32* pcNamedArgs)
   at System.Reflection.CustomAttribute.CreateCaObject(RuntimeModule module, RuntimeType type, IRuntimeMethodInfo ctor, IntPtr& blob, IntPtr blobEnd, Int32& namedArgs)
   at System.Reflection.CustomAttribute.AddCustomAttributes(ListBuilder`1& attributes, RuntimeModule decoratedModule, Int32 decoratedMetadataToken, RuntimeType attributeFilterType, Boolean mustBeInheritable, ListBuilder`1 derivedAttributes)
   at System.Reflection.CustomAttribute.GetCustomAttributes(RuntimeModule decoratedModule, Int32 decoratedMetadataToken, Int32 pcaCount, RuntimeType attributeFilterType)
   at System.Reflection.CustomAttribute.GetCustomAttributes(RuntimeType type, RuntimeType caType, Boolean inherit)
   at System.RuntimeType.GetCustomAttributes(Type attributeType, Boolean inherit)
   at System.Attribute.GetCustomAttributes(MemberInfo element, Type type, Boolean inherit)
   at System.Attribute.GetCustomAttribute(MemberInfo element, Type attributeType, Boolean inherit)
   at System.Reflection.CustomAttributeExtensions.GetCustomAttribute[T](MemberInfo element)
   at Amazon.JSII.Runtime.ReflectionUtils.GetClassAttribute(Type type)
   at Amazon.JSII.Runtime.Deputy.DeputyBase..ctor(DeputyProps props)
   at Amazon.CDK.Construct..ctor(DeputyProps props)
   at Amazon.CDK.App..ctor(IAppProps props)
   at CdkHello.Program.Main(String[] args) in C:\VSTS\Sandbox\Hampson\cdk-hello\src\CdkHello\Program.cs:line 12
Subprocess exited with error 3762504530

Program.cs, строка 12 — это сгенерированная строка, неизмененная по сравнению с исходной формой.

Я неоднократно искал эту ошибку, и все результаты поиска указывают на node.js. Но ни одно из решений (все они включают в себя какую-то форму настройки max-old-space-size) не работают, чтобы очистить это для меня. Насколько я могу судить, все мои установки Node и JS, а также установка CDK обновлены.

Я могу многократно дублировать это, создавая новый проект, а затем пытаясь запустить синтезатор или развернуть его:

cdk init app --language csharp
cdk synth

Я боролся с этим в течение нескольких дней, и у меня больше нет идей. Любые предложения будут приветствоваться.


person ahampson    schedule 12.02.2020    source источник
comment
Некоторые отчеты указывают на проблемы, связанные с использованием › 3 ГБ (см. set NODE_OPTIONS=--max-old-space-size) на 32-разрядной версии или иным образом слишком высоким значением.   -  person user2864740    schedule 12.02.2020
comment
Это более подробно касается «Максимального размера старого пространства» - stackoverflow.com/q/48387040/2864740 Моя гипотеза такова. задано слишком высокое для целевой машины и должно быть возвращено: ..если вы установите слишком высокое значение, то дополнительное использование кучи, которое позволит V8, может привести к перегрузке всей системы памяти.. [или выдавать ошибки выделения памяти, если не удается получить память из ОС].   -  person user2864740    schedule 12.02.2020
comment
Эта ссылка имеет отличное объяснение. Раньше я пробовал set NODE_OPTIONS=--max-old-space-size= от 1024 до 8192, безрезультатно.   -  person ahampson    schedule 12.02.2020
comment
Просто чтобы было ясно, это не решено для меня. Так что если у кого есть другие идеи, пишите.   -  person ahampson    schedule 25.02.2020