No deployables. I resolved the issue by making a trivial edit of a configuration file with no key value pairs.
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: -
-
Bug: Buildmaster Version 6.2.14 (Build 17). Manual configuration deployment modal not showing Preview
Reported in a previous post it was stated the fix would be in BuildMaster 6.2.14 later in the week, however the issue persists.
Additionally, the issue occurs in Chrome Version 83.0.4103.116 and the following error is thrown when the modal dialog launches: -
I'm not sure whether this is related, but the initial size of the dialog is tiny.
-
Bug: Buildmaster 6.2.14 (Build 17) Configuration Template Values containing equals character
Entering a value containing an equals sign '=' will trim all remaining characters, including the equals character.
So: -
abcdefghijklmnopqrstuvwxyz1234567890=== becomes abcdefghijklmnopqrstuvwxyz1234567890 (All the equals trimmed)
abcdefghijklmnopqrstuvwxyz=1234567890 becomes abcdefghijklmnopqrstuvwxyz (all the numbers and equals trimmed)This is problematic if you want to store something like a base64 encoded string that terminates with 2 equals. E.g: -
abcdefghijklmnopqrstuvwxyz1234567890== becomes abcdefghijklmnopqrstuvwxyz1234567890
The workaround for base 64 is to omit the '==' and keep it in the template. I.E: -
<something key="MyKey" value="${variable}==" />
However, this wouldn't work for something ,like a connection string: -
<connection name="theServer" connectionString="ServerName=${server}; user=${username}; password=${somePasswordThatMightHaveAnEqualsInIt};" />
-
Bug: Buildmaster 6.2.13 (Build 2): Selecting a build link from /releases returns HTTP status 404
Bug -> The "Latest Build" links on route /releases are broken.
The issue is the url contains application id: 0 for all builds, instead of the correct application id.Example: -
http://release-management.tld.com/applications/2/builds/build?buildId=123
http://release-management.tld.com/applications/0/builds/build?buildId=123 -
RE: Bug: Buildmaster 6.2.13 (Build 2). Parsing templated configuration files.
@atripp Thanks. That resolved the issue. On a related, minor note; deploying a config file no longer shows a preview.
-
Bug: Buildmaster 6.2.13 (Build 2). Parsing templated configuration files.
Attempting to deploy a Template based configuration file for NLog, Buildmaster fails with exception: -
Unhandled exception: System.FormatException: "$" is an invalid variable name.This is because NLog is an XML document that contains 'renderers', such as ${shortdate} that use a dollar and braces to denote a replaceable tag. See example below.
According to Buildmaster documentation, to escape a dollar, it is supposed to be preceded with another dollar. The parser can handle something like $$Alpha, but not $${Alpha} as the variable name becomes '$'
I have a hacky workaround of instead of escaping dollars with another dollar, instead create a variable called $Dollar containing '$' and replacing something like ${shortdate} with $Dollar{shortdate} instead of $${shortdate}
<?xml version="1.0" encoding="utf-8" ?> <nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.nlog-project.org/schemas/NLog.xsd NLog.xsd" autoReload="true" throwExceptions="false" internalLogLevel="Off" internalLogFile="C:\logs\relay\nlog-internal.log"> <extensions> <add assembly="NLog.Web.AspNetCore"/> </extensions> <variable name="logRoot" value="C:\logs\relay" /> <variable name="fileNamePrefix" value="$${var:logRoot}/$${shortdate}" /> </nlog>
-
Buildmaster Legacy Features .bmx, .inedox extension will no longer be supported
Indeo documentation is still showing that creating a custom extension uses an '.inedox' suffix, yet the Detect Legacy Features section in the administration page states the extension is no longer supported and Buildmaster can not be upgraded to 6.2.13 until all legacy issues have been resolved, so what do I do differently with custom extensions to make them compatible with 6.2.13
-
RE: Execute SQL scripts on Agent Server
The SQL server and the application are both on server 'Production' and the application is successfully retrieving data from the SQL server. The connection string used in the application configuration is the same connection string being used in the SQL connection in Buildmaster. It is using a SQL account, so not integrated.
Here is a redacted connection string: -
Data Source=*************;Initial Catalog=*************;User Id=*************;Password=*************;MultipleActiveResultSets=true;
-
Execute SQL scripts on Agent Server
I am trying to run a deployment plan that executes sql scripts on a Production database, via the agent on a Production server. I know the Production server can connect to SQL server, because it's working.
The Buildmaster server has no rights to connect to the database server directly, which is why the action is nested within an agent context.
The connection string has been verified, but I still get an error: -
ERROR: 2019-01-25 20:17:46Z - Unhandled exception: System.Data.SqlClient.SqlException (0x80131904): A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: Named Pipes Provider, error: 40 - Could not open a connection to SQL Server) ---> System.ComponentModel.Win32Exception (0x80004005): The network path was not found at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Inedo.Agents.InedoAgentClientBase.<SendMessageAsync>d__28.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.Agents.InedoAgentClientBase.<ExecuteCommandAsync>d__26`1.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.Operations.Database.ExecuteChangeScriptsOperation.<ExecuteAsync>d__8.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.PlanExecuter.BuildMasterExecuter.<ExecuteActionAsync>d__41.MoveNext() ClientConnectionId:00000000-0000-0000-0000-000000000000
The error indicates the server is unreachable. It shouldn't be unreachable from the Production server, so my question is; Regardless of the location of the action withing the workflow, do sql script always execute from the Buildmaster server and not on an Agent?
for server Production { with async { # Does this actually run on server: 'Production', because it doesn't appear to! Execute-ChangeScripts ( Connection: Production Server, InitializeDatabase: true ); } }
Product: BuildMaster
Version: 6.1.0 -
Extension errors
Hello,
for some reason, INEDOBMSVC was not running, but was fine, yesterday. After I restarted it, workflow execution failed, unable to recognize the extension methods. Editing the plans would default to text mode, displaying an error, such as below: -There were one or more errors processing your script: [Error] Line 20: Unknown operation "Copy-Files". [Error] Line 39: Unknown operation "Delete-Files".
An example of an execution error is below: -
The execution failed before it could start: Error processing deployment plan "Retrieve Build" (ID=6) specified in pipeline "API" stage "Initialization" for target environment "". Reason(s): Line 4: Error: Unknown operation "Jenkins::Import-Artifact".
The extensions are installed: -
Chocolatey 1.0.4 1.0.4 Contains operations for working with Chocolatey. Inedo SDK 1.0.6 - Universal SDK for BuildMaster, ProGet, Otter, and Hedgehog. InedoCore 1.0.11 1.0.11 Contains core functionality for Inedo products. Jenkins 1.0.2 1.0.2 Contains operations to get artifacts and trigger builds in Jenkins. JIRA 1.0.0 1.0.0 Issue Tracking integration for JIRA 5 and later. Linux 1.0.2 1.0.2 Contains operations to interact with Linux servers. SQL Server 6.0.0 6.0.0 Contains a database provider for Microsoft SQL Server. Windows 1.0.11 1.0.11 Contains operations to interact with Windows features, including IIS and services.
Product: BuildMaster
Version: 6.0.12