Team System Developer Center > Visual Studio Team System Forums > Team Foundation Server - Build Automation > Receiving MSB4018 OutOfMemoryException while using TeamBuild
Ask a questionAsk a question
 

AnswerReceiving MSB4018 OutOfMemoryException while using TeamBuild

  • Tuesday, October 27, 2009 9:23 AMefegok Users MedalsUsers MedalsUsers MedalsUsers MedalsUsers Medals
     
    Hi,

    I'm receiving following error when I try to build our solution:

    error MSB4018: The "MSBuild" task failed unexpectedly.
    System.OutOfMemoryException: Exception of type 'System.OutOfMemoryException' was thrown.
       at System.String.GetStringForStringBuilder(String value, Int32 startIndex, Int32 length, Int32 capacity)
       at System.Text.StringBuilder.GetNewString(String currentString, Int32 requiredLength)
       at System.Text.StringBuilder.Append(String value)
       at Microsoft.Build.BuildEngine.ItemExpander.ExpandItemVector(Match itemVector)
       at System.Text.RegularExpressions.RegexReplacement.Replace(MatchEvaluator evaluator, Regex regex, String input, Int32 count, Int32 startat)
       at System.Text.RegularExpressions.Regex.Replace(String input, MatchEvaluator evaluator, Int32 count, Int32 startat)
       at System.Text.RegularExpressions.Regex.Replace(String input, MatchEvaluator evaluator)
       at Microsoft.Build.BuildEngine.ItemExpander.ExpandEmbeddedItemVectors(String s, XmlNode parentNode, ReadOnlyLookup readOnlyLookup)
       at Microsoft.Build.BuildEngine.Expander.ExpandItemsIntoStringLeaveEscaped(String expression, XmlNode expressionNode)
       at Microsoft.Build.BuildEngine.Expander.ExpandAllIntoStringLeaveEscaped(String expression, XmlNode expressionNode)
       at Microsoft.Build.BuildEngine.StringExpressionNode.GetExpandedValue(ConditionEvaluationState state)
       at Microsoft.Build.BuildEngine.StringExpressionNode.CanNumericEvaluate(ConditionEvaluationState state)
       at Microsoft.Build.BuildEngine.MultipleComparisonNode.BoolEvaluate(ConditionEvaluationState state)
       at Microsoft.Build.BuildEngine.GenericExpressionNode.Evaluate(ConditionEvaluationState state)
       at Microsoft.Build.BuildEngine.Utilities.EvaluateCondition(String condition, XmlAttribute conditionAttribute, Expander expander, Hashtable conditionedPropertiesTable, ParserOptions itemListOptions, EngineLoggingServices loggingServices, BuildEventContext buildEventContext)
       at Microsoft.Build.BuildEngine.Target.Build(ProjectBuildState buildContext)
       at Microsoft.Build.BuildEngine.Project.ExecuteNextActionForProjectContext(ProjectBuildState buildContext, Boolean initialCall)
       at Microsoft.Build.BuildEngine.Project.CalculateNextActionForProjectContext(ProjectBuildState buildContext)
       at Microsoft.Build.BuildEngine.Project.ContinueBuild(ProjectBuildState buildContext, TaskExecutionContext taskExecutionContext)
       at Microsoft.Build.BuildEngine.Project.BuildInternal(BuildRequest buildRequest)
       at Microsoft.Build.BuildEngine.Engine.BuildProjectInternalInitial(BuildRequest buildRequest, Project project)
       at Microsoft.Build.BuildEngine.Engine.BuildProjectInternal(BuildRequest buildRequest, ProjectBuildState buildContext, TaskExecutionContext taskExecutionContext, Boolean initialCall)
       at Microsoft.Build.BuildEngine.Engine.BuildProjectFileInternal(BuildRequest buildRequest)
       at Microsoft.Build.BuildEngine.Engine.EngineBuildLoop(BuildRequest terminatingBuildRequest)
       at Microsoft.Build.BuildEngine.TaskExecutionModule.BuildProjectFile(Int32 handleId, String[] projectFileNames, String[] targetNames, IDictionary[] globalPropertiesPerProject, IDictionary[] targetOutputsPerProject, EngineLoggingServices loggingServices, String[] toolsVersions, Boolean useResultsCache, Boolean unloadProjectsOnCompletion, BuildEventContext taskContext)
       at Microsoft.Build.BuildEngine.EngineProxy.BuildProjectFilesInParallel(String[] projectFileNames, String[] targetNames, IDictionary[] globalProperties, IDictionary[] targetOutputsPerProject, String[] toolsVersions, Boolean useResultsCache, Boolean unloadProjectsOnCompletion)
       at Microsoft.Build.Tasks.MSBuild.ExecuteTargets(ITaskItem[] projects, Hashtable propertiesTable, ArrayList targetLists, Boolean stopOnFirstFailure, Boolean rebaseOutputs, IBuildEngine2 buildEngine, TaskLoggingHelper log, ArrayList targetOutputs, Boolean useResultsCache, Boolean unloadProjectsOnCompletion, String toolsVersion)
       at Microsoft.Build.Tasks.MSBuild.BuildProjectsInParallel(Hashtable propertiesTable, ArrayList targetLists, Boolean success, Boolean[] skipProjects)
       at Microsoft.Build.Tasks.MSBuild.Execute()
       at Microsoft.Build.BuildEngine.TaskEngine.ExecuteInstantiatedTask(EngineProxy engineProxy, ItemBucket bucket, TaskExecutionMode howToExecuteTask, ITask task, Boolean& taskResult)

    Build process ends up after receiving this error. Solution that I try to build consists of 45 projects and includes hierarchically project output reference dependencies. I start build via using Visual Studio 2008 Team Explorer. Build server has 3GB memory and msbuild process which is running during build uses up to 1.6-1.7GB of them. So, there is still at least 1GB of memory available to use during build. I can't post example project or any other information regarding project here because of security situations.

    What should I do to handle this error? Is there any hotfix or workaround?

    Thanks in advance,

    --efe

Answers

  • Friday, November 06, 2009 11:57 AMefegok Users MedalsUsers MedalsUsers MedalsUsers MedalsUsers Medals
     Answer
    Hi Ruiz,

    I found the solution here and get the hotfix via MS Technical Support. Because of not providing a resolution to the issue, I unmarked your reply that you marked as answer.

    Thanks.
    • Marked As Answer byefegok Friday, November 06, 2009 12:01 PM
    •  

All Replies

  • Thursday, October 29, 2009 3:06 AMRuiz YiModeratorUsers MedalsUsers MedalsUsers MedalsUsers MedalsUsers Medals
     
    Hi efegok,

    On 32bit system, each process has 2 GB memory(physical memory and virtual memory) at most.  Please refer to this article for detail. http://support.microsoft.com/default.aspx?scid=kb;en-us;820108. You can use 4GT RAM Tuning to address more memory for a process.

    Best Regards,
    Ruiz
    Please remember to click “Mark as Answer” on the post that helps you, and to click “Unmark as Answer” if a marked post does not actually answer your question. This can be beneficial to other community members reading the thread. Sincerely, Ruiz Yi
    • Marked As Answer byRuiz YiModeratorMonday, November 02, 2009 5:04 AM
    • Unmarked As Answer byefegok Friday, November 06, 2009 11:58 AM
    •  
  • Thursday, November 05, 2009 9:21 AMefegok Users MedalsUsers MedalsUsers MedalsUsers MedalsUsers Medals
     
    So, should I assume that a msbuild process could use 1.7GB of memory while Visual Studio builds same solution using ~300MB of memory? Is this normal behavior of team build?
  • Friday, November 06, 2009 11:57 AMefegok Users MedalsUsers MedalsUsers MedalsUsers MedalsUsers Medals
     Answer
    Hi Ruiz,

    I found the solution here and get the hotfix via MS Technical Support. Because of not providing a resolution to the issue, I unmarked your reply that you marked as answer.

    Thanks.
    • Marked As Answer byefegok Friday, November 06, 2009 12:01 PM
    •