Welcome to the Inedo Forums! Check out the Forums Guide for help getting started.

If you are experiencing any issues with the forum software, please visit the Contact Form on our website and let us know!

Buildmaster Version 7.0.9 (Build 2): Probable defect



  • I had a persistent error, but after making edits, can no longer replicate. I'm creating this post to provide you the information so you may choose whether to add a defect to your backlog.

    I created a new app from an existing one that contained a template configuration file (web.config), edited the new apps' deployment pipeline and executed a new release that included a step to deploy the web.config, but failed.

    The web,config configuration file was unedited from the application it was cloned from and is a template with key value pairs (e.g: aaa=bbb) for each environment, but as yet, there are no environment specific values, so each environment section was blank. The original application, having the same configuration file, works fine, but trying to deploy the new app's config file either from a release pipeline or manually from the deploy command throws an exception.

    I resolved the issue by editing the configuration file and putting junk in each environment, saving, then removing the junk and saving again. After this, the error didn't occur.

    Looking at the stack trace, I suspect a data row or a document node was not created when cloning, because the environment values were null, but a non null or empty value is expected when loading the configuration data from the data source.

    To replicate, create an app, add a template config with a template, but empty environment contents. Clone the app and attempt to deploy the config file from the cloned app without any edits.

    Stack trace:

    Unhandled exception: System.ArgumentNullException: Buffer cannot be null.
    Parameter name: buffer
       at System.IO.MemoryStream..ctor(Byte[] buffer, Boolean writable)
       at Inedo.BuildMaster.ConfigurationFiles.ConfigurationFileDeployer.<ReadTemplateValues>d__12.MoveNext()
    --- End of stack trace from previous location where exception was thrown ---
       at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
       at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
       at Inedo.BuildMaster.ConfigurationFiles.ConfigurationFileDeployer.<DeployInternalAsync>d__10.MoveNext()
    --- End of stack trace from previous location where exception was thrown ---
       at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
       at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
       at Inedo.BuildMaster.Extensibility.ManualExecutions.DeployConfigFileExecution.<ExecuteAsync>d__24.MoveNext()
    --- End of stack trace from previous location where exception was thrown ---
       at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
       at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
       at Inedo.BuildMaster.Windows.ServiceApplication.Executions.ActiveGeneralExecution.<ExecuteAsync>d__8.MoveNext()
    

  • inedo-engineer

    Hi @antony-booth_1029 ,

    I'm having trouble recreating this issue. Do you have Deployables configured with the different configuration environments? Also do you see the correct environment selected when you look at each configuration instance's settings?

    Thanks,
    Dan



  • No deployables. I resolved the issue by making a trivial edit of a configuration file with no key value pairs.


  • inedo-engineer

    Thanks @antony-booth_1029 !

    This should get fixed via BM-3740 in the next maintenance release of BuildMaster


Log in to reply
 

Inedo Website HomeSupport HomeCode of ConductForums GuideDocumentation