OutOfMemoryException when saving newly generated WIX project #5441

Open
mediawolf opened this Issue Nov 26, 2016 · 3 comments

Projects

None yet

3 participants

@mediawolf

WIX 3.10.3.3007
VS 2015 Update 3
.NET Framework 4.6.1

Steps:

  1. Start VS 2015
  2. Create new project -> Windows Installer XML -> Bootstrapper Project
  3. File -> Save All
  4. Specify some project name in 'Save Project' dialog
  5. And click 'Save'
    From this moment devenv.exe will start consuming more and more memory. When memory consumption is around 3.5 GB, a message box appears with 'Out of memory' error message.
    Callstack:

Microsoft.Build.dll!Microsoft.Build.Collections.RetrievableEntryHashSet<Microsoft.Build.Evaluation.ProjectProperty>.IncreaseCapacity() Unknown
Microsoft.Build.dll!Microsoft.Build.Collections.RetrievableEntryHashSet<Microsoft.Build.Evaluation.ProjectProperty>.AddEvenIfPresent(Microsoft.Build.Evaluation.ProjectProperty value = "HarvestFileTransforms"="" ["$(HarvestTransforms)"]) Unknown
Microsoft.Build.dll!Microsoft.Build.Collections.PropertyDictionary<Microsoft.Build.Evaluation.ProjectProperty>.Set(Microsoft.Build.Evaluation.ProjectProperty projectProperty) Unknown
Microsoft.Build.dll!Microsoft.Build.Evaluation.Project.Data.SetProperty(Microsoft.Build.Construction.ProjectPropertyElement propertyElement, string evaluatedValueEscaped, Microsoft.Build.Evaluation.ProjectProperty predecessor) Unknown
Microsoft.Build.dll!Microsoft.Build.Evaluation.Evaluator<Microsoft.Build.Evaluation.ProjectProperty, Microsoft.Build.Evaluation.ProjectItem, Microsoft.Build.Evaluation.ProjectMetadata, Microsoft.Build.Evaluation.ProjectItemDefinition>.EvaluatePropertyElement(Microsoft.Build.Construction.ProjectPropertyElement propertyElement) Unknown
Microsoft.Build.dll!Microsoft.Build.Evaluation.Evaluator<Microsoft.Build.Evaluation.ProjectProperty, Microsoft.Build.Evaluation.ProjectItem, Microsoft.Build.Evaluation.ProjectMetadata, Microsoft.Build.Evaluation.ProjectItemDefinition>.EvaluatePropertyGroupElement(Microsoft.Build.Construction.ProjectPropertyGroupElement propertyGroupElement) Unknown
Microsoft.Build.dll!Microsoft.Build.Evaluation.Evaluator<Microsoft.Build.Evaluation.ProjectProperty, Microsoft.Build.Evaluation.ProjectItem, Microsoft.Build.Evaluation.ProjectMetadata, Microsoft.Build.Evaluation.ProjectItemDefinition>.PerformDepthFirstPass(Microsoft.Build.Construction.ProjectRootElement currentProjectOrImport = "C:\Program Files (x86)\MSBuild\Microsoft\WiX\v3.x\wix2010.targets" #Children=189 DefaultTargets="Build" ToolsVersion="" InitialTargets="CheckForInvalidConfigurationAndPlatform;\r\n CheckRequiredProperties" ExplicitlyLoaded=true) Unknown
Microsoft.Build.dll!Microsoft.Build.Evaluation.Evaluator<Microsoft.Build.Evaluation.ProjectProperty, Microsoft.Build.Evaluation.ProjectItem, Microsoft.Build.Evaluation.ProjectMetadata, Microsoft.Build.Evaluation.ProjectItemDefinition>.EvaluateImportElement(string directoryOfImportingFile, Microsoft.Build.Construction.ProjectImportElement importElement = Project="$(WixVersionTargetsPath)" Condition="") Unknown
Microsoft.Build.dll!Microsoft.Build.Evaluation.Evaluator<Microsoft.Build.Evaluation.ProjectProperty, Microsoft.Build.Evaluation.ProjectItem, Microsoft.Build.Evaluation.ProjectMetadata, Microsoft.Build.Evaluation.ProjectItemDefinition>.PerformDepthFirstPass(Microsoft.Build.Construction.ProjectRootElement currentProjectOrImport = "C:\Program Files (x86)\MSBuild\Microsoft\WiX\v3.x\Wix.targets" #Children=2 DefaultTargets="" ToolsVersion="" InitialTargets="" ExplicitlyLoaded=true) Unknown
Microsoft.Build.dll!Microsoft.Build.Evaluation.Evaluator<Microsoft.Build.Evaluation.ProjectProperty, Microsoft.Build.Evaluation.ProjectItem, Microsoft.Build.Evaluation.ProjectMetadata, Microsoft.Build.Evaluation.ProjectItemDefinition>.EvaluateImportElement(string directoryOfImportingFile, Microsoft.Build.Construction.ProjectImportElement importElement = Project="$(WixTargetsPath)" Condition="") Unknown
Microsoft.Build.dll!Microsoft.Build.Evaluation.Evaluator<Microsoft.Build.Evaluation.ProjectProperty, Microsoft.Build.Evaluation.ProjectItem, Microsoft.Build.Evaluation.ProjectMetadata, Microsoft.Build.Evaluation.ProjectItemDefinition>.PerformDepthFirstPass(Microsoft.Build.Construction.ProjectRootElement currentProjectOrImport = "E:\Dev\Bootstrapper1\Bootstrapper1.wixproj" #Children=6 DefaultTargets="Build" ToolsVersion="4.0" InitialTargets="" ExplicitlyLoaded=true) Unknown
Microsoft.Build.dll!Microsoft.Build.Evaluation.Evaluator<Microsoft.Build.Evaluation.ProjectProperty, Microsoft.Build.Evaluation.ProjectItem, Microsoft.Build.Evaluation.ProjectMetadata, Microsoft.Build.Evaluation.ProjectItemDefinition>.Evaluate() Unknown
Microsoft.Build.dll!Microsoft.Build.Evaluation.Evaluator<Microsoft.Build.Evaluation.ProjectProperty, Microsoft.Build.Evaluation.ProjectItem, Microsoft.Build.Evaluation.ProjectMetadata, Microsoft.Build.Evaluation.ProjectItemDefinition>.Evaluate(Microsoft.Build.Evaluation.IEvaluatorData<Microsoft.Build.Evaluation.ProjectProperty, Microsoft.Build.Evaluation.ProjectItem, Microsoft.Build.Evaluation.ProjectMetadata, Microsoft.Build.Evaluation.ProjectItemDefinition> data, Microsoft.Build.Construction.ProjectRootElement root, Microsoft.Build.Evaluation.ProjectLoadSettings loadSettings, int maxNodeCount, Microsoft.Build.Collections.PropertyDictionary<Microsoft.Build.Execution.ProjectPropertyInstance> environmentProperties, Microsoft.Build.BackEnd.Logging.ILoggingService loggingService, Microsoft.Build.Evaluation.IItemFactory<Microsoft.Build.Evaluation.ProjectItem, Microsoft.Build.Evaluation.ProjectItem> itemFactory, Microsoft.Build.Evaluation.IToolsetProvider toolsetProvider, Microsoft.Build.Evaluation.ProjectRootElementCache projectRootElementCache, Microsoft.Build.Framework.BuildEventContext buildEventContext, Microsoft.Build.Execution.ProjectInstance projectInstanceIfAnyForDebuggerOnly) Unknown
Microsoft.Build.dll!Microsoft.Build.Evaluation.Project.ReevaluateIfNecessary(Microsoft.Build.BackEnd.Logging.ILoggingService loggingServiceForEvaluation = {Microsoft.Build.BackEnd.Logging.LoggingService}) Unknown
votive2010.dll!Microsoft.VisualStudio.Package.ProjectElement.RefreshProperties() Unknown
votive2010.dll!Microsoft.VisualStudio.Package.ProjectElement.Rename(string newPath) Unknown
votive2010.dll!Microsoft.VisualStudio.Package.ProjectNode.RenameAllChildren(Microsoft.VisualStudio.Package.HierarchyNode node) Unknown
votive2010.dll!Microsoft.VisualStudio.Package.ProjectNode.RenameAllChildren(Microsoft.VisualStudio.Package.HierarchyNode node) Unknown

votive2010.dll!Microsoft.VisualStudio.Package.ProjectNode.SaveProjectToLocation(string pszProjectFilename = "E:\Dev\Bootstrapper1\Bootstrapper1.wixproj") Unknown
[Native to Managed Transition]
msenv.dll!DoPermanentSave(unsigned short const *,unsigned short const *) Unknown
msenv.dll!SavePermanentlyDialogProc(struct HWND
*,unsigned int,unsigned int,long) Unknown
msenv.dll!DlgPreProc(struct HWND__ *,unsigned int,unsigned int,long) Unknown
user32.dll!_InternalCallWinProc@20�() Unknown
user32.dll!_UserCallDlgProcCheckWow@32�() Unknown
user32.dll!_DefDlgProcWorker@24�() Unknown
user32.dll!_DefDlgProcW@16�() Unknown
user32.dll!_InternalCallWinProc@20�() Unknown
user32.dll!_UserCallWinProcCheckWow@32�() Unknown
user32.dll!SendMessageWorker@24�() Unknown
user32.dll!SendMessageW@16�() Unknown
comctl32.dll!Button_NotifyParent(struct tagBUTN *,unsigned int) Unknown
comctl32.dll!Button_ReleaseCapture(struct tagBUTN *,int) Unknown
comctl32.dll!Button_WndProc(struct HWND
*,unsigned int,unsigned int,long) Unknown
user32.dll!_InternalCallWinProc@20�() Unknown
user32.dll!_UserCallWinProcCheckWow@32�() Unknown
user32.dll!_DispatchMessageWorker@8�() Unknown
user32.dll!DispatchMessageW@4�() Unknown
user32.dll!IsDialogMessageW@8�() Unknown
user32.dll!DialogBox2@16�() Unknown
user32.dll!InternalDialogBox@24�() Unknown
user32.dll!DialogBoxIndirectParamAorW@24�() Unknown
user32.dll!DialogBoxIndirectParamW@20�() Unknown
msenv.dll!`anonymous namespace'::ManagedExceptionSafeDialogBox() Unknown
msenv.dll!DlgBoxParamPVoid(void ) Unknown
msenv.dll!VBDialogCover2(int (
)(void *),void *,struct HWND
* *,int) Unknown
msenv.dll!VBDialogBoxParam(struct HINSTANCE
,unsigned long,int ()(struct HWND
*,unsigned int,unsigned int,long),long) Unknown
msenv.dll!CheckAndDoPermanentSave(unsigned long) Unknown
msenv.dll!HrExecSaveAll(void) Unknown
msenv.dll!HrShellExec(struct _GUID const *,unsigned long,unsigned long,struct tagVARIANT *,struct tagVARIANT *) Unknown
msenv.dll!CVSCommandTarget::ExecCmd(class CIcmdGuidCmdId const *,struct _GUID const *,unsigned long,unsigned long,struct tagVARIANT *,struct tagVARIANT *,struct _GUID *) Unknown
msenv.dll!FTranslateAcceleratorEx(struct tagMSG *,int,unsigned long *,unsigned long *,int,int,unsigned long const *,int *) Unknown
msenv.dll!FTranslateAccelerator(struct tagMSG *,int,unsigned long *,unsigned long *) Unknown
msenv.dll!CMsoComponent::MainFTranslateMessage(struct tagMSG *,unsigned long) Unknown
msenv.dll!CMsoComponent::FPreTranslateMessage(struct tagMSG *) Unknown
msenv.dll!SCMI::FPreTranslateMessage(struct tagMSG *) Unknown
msenv.dll!SCM_MsoStdCompMgr::FPreTranslateMessage(struct tagMSG *) Unknown
msenv.dll!MainMessageLoop::ProcessMessage(struct IMsoStdComponentMgr *,struct IVsWindowManager *,struct tagMSG &) Unknown
msenv.dll!CMsoCMHandler::EnvironmentMsgLoop(void) Unknown
msenv.dll!CMsoCMHandler::FPushMessageLoop(unsigned long) Unknown
msenv.dll!SCM::FPushMessageLoop(class SCMI *,unsigned long,void *) Unknown
msenv.dll!SCM_MsoCompMgr::FPushMessageLoop(unsigned long,unsigned long,void *) Unknown
msenv.dll!CMsoComponent::PushMsgLoop(unsigned long) Unknown
msenv.dll!VStudioMainLogged(void) Unknown
msenv.dll!_VStudioMain�() Unknown
devenv.exe!util_CallVsMain(struct MAINPARAM *,int *) Unknown
devenv.exe!CDevEnvAppId::Run(unsigned short *,int) Unknown
devenv.exe!_WinMain@16�() Unknown
devenv.exe!__scrt_common_main_seh() Unknown
kernel32.dll!@BaseThreadInitThunk@12�() Unknown
ntdll.dll!___RtlUserThreadStart@8�() Unknown
ntdll.dll!__RtlUserThreadStart@8�() Unknown

Generated project:
Bootstrapper1.zip

Dump file is not attached for obvious reason. However VS and 32-bit WinDbg failed to debug it due to its size. I've used two VS instances, where one instance debugged another one, to catch OutOfMemory condition.

@barnson
Member
barnson commented Nov 26, 2016

No repro: There's no prompt for a project name because I gave it while creating the project. Is there a step missing?

@mediawolf

Probably it's affected by "Save new projects when created" which I turned off in "Project and Solutions" settings.

@barnson
Member
barnson commented Nov 26, 2016

Yep, that's the trick.

@rseanhall rseanhall added the bug label Dec 6, 2016
@rseanhall rseanhall added this to the v3.x milestone Dec 6, 2016
@rseanhall rseanhall added the votive label Dec 6, 2016
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment