No deployables. I resolved the issue by making a trivial edit of a configuration file with no key value pairs.
antony.booth_1029
@antony.booth_1029
Best posts made by antony.booth_1029
Latest posts made by antony.booth_1029
-
RE: Buildmaster Version 7.0.9 (Build 2): Probable defect
-
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()
-
RE: Buildmaster Version 7.0.9 (Build 2) keeps suffering database timeouts
Thanks for the reply.
I really can't remember the previous version of Buildmaster, although it was 6.something
After some time, I think it may be network related, as I had tried stopping Buildmaster service and web site, with no effect, rebooting the server with no effect, checking CPU and memory, with no issues.Having recently checked the server again, the pages are more responsive, returning results before the 30 second timeout, without pre-filtering the result set with the query parameters you suggested.
Both the database (AWS RDS) and the server (AWS EC2) are hosted in the same VPC, in the same region, so shouldn't be having bandwidth or other network issues, however as the performance has changed with no changes to the Buildmaster environment, I conclude the issue is/was with AWS itself. Either the VM hosting or internal networking.
Thanks for the suggestions.
-
Buildmaster Version 7.0.9 (Build 2) keeps suffering database timeouts
I know you hate these words (we all do), but after the upgrade, navigating from Applications to Releases, times out on a server that only I am accessing.
The problem is; the SQL queries are timing out. The server as an AWS MSSQL server instance.
It isn't reporting any issues and as the Buildmaster web site does connect, it isn't that the server is unreachable.I can connect to the database from the Buildmaster hosted server via Management Studio, using the same credentials and can execute simple queries on the database that do not execute slowly: -
SELECT [Application_Id] ,[Release_Number] ,[ReleaseStatus_Name] ,[Notes_Text] ,[CreatedBy_User_Name] ,[CreatedOn_Date] ,[ModifiedBy_User_Name] ,[ModifiedOn_Date] ,[CancelledBy_User_Name] ,[CancelledReason_Text] ,[CancelledOn_Date] ,[Release_Sequence] ,[Release_Id] ,[Furthest_Build_Number] ,[ReleaseTemplate_Name] ,[Pipeline_Name] FROM [BuildMaster].[dbo].[Releases]
The logged message: -
Message: An error occurred in the web application: Execution Timeout Expired. The timeout period elapsed prior to completion of the operation or the server is not responding.
The redacted database connection string, as set in the Inedo hub configuration section, is below and hasn't been changed recently: -
Data Source=servername.someuid.region.rds.amazonaws.com;Initial Catalog=BuildMaster;User ID=database-user;Password=someRandomString;Network Library=dbmssocn
Below is the rest of the log entry, including the stack trace: -
Details: URL: http://buildmaster.domain.extension/releases
Referrer: http://buildmaster.domain.extension/all-applications
User: some-user-name
User Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.159 Safari/537.36
Stack Trace:-
at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction) at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose) at System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady) at System.Data.SqlClient.SqlDataReader.TrySetMetaData(_SqlMetaDataSet metaData, Boolean moreInfo) at System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady) at System.Data.SqlClient.SqlDataReader.TryConsumeMetaData() at System.Data.SqlClient.SqlDataReader.get_MetaData() at System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString, Boolean isInternal, Boolean forDescribeParameterEncryption, Boolean shouldCacheForAlwaysEncrypted) at System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async, Int32 timeout, Task& task, Boolean asyncWrite, Boolean inRetry, SqlDataReader ds, Boolean describeParameterEncryptionRequest) at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, TaskCompletionSource`1 completion, Int32 timeout, Task& task, Boolean& usedCache, Boolean asyncWrite, Boolean inRetry) at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method) at System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method) at Inedo.Data.DatabaseContext.ExecuteInternal(String storedProcName, GenericDbParameter[] parameters) at Inedo.Data.SqlServerDatabaseContext.ExecuteInternal(String storedProcName, GenericDbParameter[] parameters) at Inedo.Data.StrongDataReader.<Read>d__9`1.MoveNext() at System.Collections.Generic.List`1..ctor(IEnumerable`1 collection) at System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source) at Inedo.BuildMaster.Web.WebApplication.Controls.ReleaseList.<.ctor>b__1_0() at System.Lazy`1.CreateValue() at System.Lazy`1.LazyInitValue() at Inedo.BuildMaster.Web.WebApplication.Controls.ReleaseList.<InitializeAsync>d__33.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at Inedo.Web.Controls.SimplePageControl.<InitializeAsync>d__18.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at Inedo.Web.Controls.SimplePageControl.<InitializeAsync>d__18.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.Web.PageFree.SimplePageBase.<InitializeAsync>d__59.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.Web.WebApplication.Pages.BuildMasterSimplePage.<InitializeAsync>d__9.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.Web.PageFree.SimplePageBase.<ExecutePageLifeCycleAsync>d__57.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.Web.PageFree.SimplePageBase.<ProcessRequestAsync>d__56.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 System.Web.TaskAsyncHelper.EndTask(IAsyncResult ar) at Inedo.Web.Handlers.AsyncHandlerWrapper.EndProcessRequest(IAsyncResult result) at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() at System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep step) at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)
-
RE: Buildmaster Version 6.2.27 (Build 6): Error 500 saving Config files
I didn't have the problem the next day, so I can no longer replicate it.
If it happens again, I'll re-post with logging details. Consider it closed.Thanks.
-
Buildmaster Version 6.2.27 (Build 6): Error 500 saving Config files
After making changes to a Configuration file (Key Value Pair) and clicking save, the "Save Changes To Application" dialog appears. Clicking Save again and all the content in the dialog disappears, then, after a significant wait of about a minute, the dialog disappears and the edit view remains, with the sections changed, still denoted with asterisks, that indicate a change.
Opening the config editor again and no changes were saved. Looking at the network traffic in developer tools when saving, it is failing on a HTTP post to: -
http://server.domain.com/0x44/BuildMaster.Web.WebApplication/Inedo.BuildMaster.Web.WebApplication.Pages.ConfigFiles.EditConfigurationFilePage/SaveConfigFile.I have used Chrome and Vivaldi browsers (Chromium), both with the same results. The error is not a javascript error, but a server response.
-
Buildmaster: Get Build Id from within a script
I used to be able to create a url to a release using built in variables $ReleaseNumber and $BuildNumber
Example: http://buildmaster.server.domain/applications/123/builds/build?releaseNumber=16&buildNumber=2
When I try that on version 6.2.21, I will get an error 500: The parameter "buildId" is missing.
From Buildmaster documentation, I can not determine what variable corresponds to buildid, if any.
From the API, I can't find anything to invoke that will list built in variables that include buildIdThe equivalent url now is: -
http://buildmaster.server.domain/applications/123/builds/build?buildId=678How can I build this url, without knowing the buildid?
-
RE: Bug: Buildmaster Version 6.2.14 (Build 17). Manual configuration deployment modal not showing Preview
Thanks, but I can wait. I reported it again, because I had added it to an existing report, rather than a post of it's own.
Does the fix include css changes so the dialog is proportional to screen size, rather than fixed pixel sizes?
I did not supply the exact css that would apply for any screen size, because it looks like you're using jQuery to inline the style. Typically, I create a reusable css class and if need be, use a javascript framework like jQuery to add or remove the class as necessary.
$dialog.addClass('dialog-size-to-fit fade-in dialog-modal').show();
-
RE: Bug: Buildmaster Version 6.2.14 (Build 17). Manual configuration deployment modal not showing Preview
More information on dialog sizes: -
Screen resolution is: 1920 x 1009. Sizes are set as inline CSS of: -
div.ui-dialog.ui-widget.ui-widget-content[role='dialog'] position: fixed; height: auto; width: 320px; top: 385.5px; left: 796px; display: block; z-index: 101;
It works better as percentages: -
div.ui-dialog.ui-widget.ui-widget-content[role='dialog'] position: fixed; height: 70%; width: 70%; top: 15%; left: 15%; display: block; z-index: 101; div.ui-dialog.ui-widget[role='dialog'] iframe.ui-dialog-content width: 100%; min-height: 0px; max-height: none; height: 100%; padding: 0px;
Result: -