Crash when selecting 'All changesets since last successful build'


Hi,

I'm using version 1.0.0.1250 and get a crash when selecting 'All changesets since last successful build' on the 'Queue Options' dialog when attempting to queue a build.

I'm attempting to perform a build with multiple repositories (though the error still occurs if I disable all but one). If I use the 'Most Recent Changesets' option then I get the message 'No changeset associated with build for repository: looksoftware-trunk-client'

Heres the stack trace:

System.AggregateException: A Task's exception(s) were not observed either by Waiting on the Task or accessing its Exception property. As a result, the unobserved exception was rethrown by the finalizer thread. ---> NHibernate.Exceptions.GenericADOException: could not update: [Continua.Modules.Builds.Build#15][SQL: UPDATE builds_build SET BuildNumber = ?, Version = ?, Started = ?, Finished = ?, Queued = ?, Pinned = ?, PinComment = ?, Priority = ?, SummaryState = ?, BuildSuccess = ?, OnlyNotifyTriggeringUsers = ?, QuietPeriodLength = ?, QuietPeriodExpiry = ?, TimeOnQueue = ?, IsFeatureBranchBuild = ?, UsesDefaultBranch = ?, CleanedUp = ?, HasNewChanges = ?, Branches = ?, ConfigurationVersionId = ?, ConfigurationId = ?, WorkspaceId = ?, UserId = ?, PinUserId = ?, TriggerId = ?, VariableNamespaceId = ?, StatusId = ? WHERE Id = ?] ---> Npgsql.NpgsqlException: ERROR: 22001: value too long for type character varying(1024) 
at Npgsql.NpgsqlState.d__a.MoveNext() 
at Npgsql.ForwardsOnlyDataReader.GetNextResponseObject() 
at Npgsql.ForwardsOnlyDataReader.GetNextRowDescription() 
at Npgsql.ForwardsOnlyDataReader.NextResult() 
at Npgsql.ForwardsOnlyDataReader..ctor(IEnumerable`1 dataEnumeration, CommandBehavior behavior, NpgsqlCommand command, NotificationThreadBlock threadBlock, Boolean synchOnReadError) 
at Npgsql.NpgsqlCommand.GetReader(CommandBehavior cb) 
at Npgsql.NpgsqlCommand.ExecuteNonQuery() 
at NHibernate.AdoNet.AbstractBatcher.ExecuteNonQuery(IDbCommand cmd) 
at NHibernate.AdoNet.NonBatchingBatcher.AddToBatch(IExpectation expectation) 
at NHibernate.Persister.Entity.AbstractEntityPersister.Update(Object id, Object[] fields, Object[] oldFields, Object rowId, Boolean[] includeProperty, Int32 j, Object oldVersion, Object obj, SqlCommandInfo sql, ISessionImplementor session) 
--- End of inner exception stack trace --- 
at NHibernate.Persister.Entity.AbstractEntityPersister.Update(Object id, Object[] fields, Object[] oldFields, Object rowId, Boolean[] includeProperty, Int32 j, Object oldVersion, Object obj, SqlCommandInfo sql, ISessionImplementor session) 
at NHibernate.Persister.Entity.AbstractEntityPersister.UpdateOrInsert(Object id, Object[] fields, Object[] oldFields, Object rowId, Boolean[] includeProperty, Int32 j, Object oldVersion, Object obj, SqlCommandInfo sql, ISessionImplementor session) 
at NHibernate.Persister.Entity.AbstractEntityPersister.Update(Object id, Object[] fields, Int32[] dirtyFields, Boolean hasDirtyCollection, Object[] oldFields, Object oldVersion, Object obj, Object rowId, ISessionImplementor session) 
at NHibernate.Action.EntityUpdateAction.Execute() 
at NHibernate.Engine.ActionQueue.Execute(IExecutable executable) 
at NHibernate.Engine.ActionQueue.ExecuteActions(IList list) 
at NHibernate.Engine.ActionQueue.ExecuteActions() 
at NHibernate.Event.Default.AbstractFlushingEventListener.PerformExecutions(IEventSource session) 
at NHibernate.Event.Default.DefaultFlushEventListener.OnFlush(FlushEvent event) 
at NHibernate.Impl.SessionImpl.Flush() 
at NHibernate.Transaction.AdoTransaction.Commit() 
at Continua.Shared.Data.Hibernate.NHibernateDatabase.SaveChanges() 
at Continua.Modules.Builds.BuildManager.AssociateChangeSets(Build build, BuildChangesetAssociationOptions associationOptions) 
at Continua.Modules.Builds.BuildManager.AssociateChangeSets(Int32 buidId, BuildChangesetAssociationOptions associationOptions) 
at Continua.Modules.Builds.BuildManager.<>c__DisplayClass3a.<>c__DisplayClass40.b__36() 
at Continua.Modules.Builds.Repositories.RepositoryMonitor.WaitForRepositoriesToBeChecked(DateTime comparison, IEnumerable`1 repositoryIds, Action onCheckComplete, Action`1 onCheckFailed, Action`1 onWaitingOnRepository) 
at Continua.Modules.Builds.BuildManager.<>c__DisplayClass3a.b__33(Object x) 
at System.Threading.Tasks.Task.Execute() 
--- End of inner exception stack trace --- 
at System.Threading.Tasks.TaskExceptionHolder.Finalize() 
---> (Inner Exception #0) NHibernate.Exceptions.GenericADOException: could not update: [Continua.Modules.Builds.Build#15][SQL: UPDATE builds_build SET BuildNumber = ?, Version = ?, Started = ?, Finished = ?, Queued = ?, Pinned = ?, PinComment = ?, Priority = ?, SummaryState = ?, BuildSuccess = ?, OnlyNotifyTriggeringUsers = ?, QuietPeriodLength = ?, QuietPeriodExpiry = ?, TimeOnQueue = ?, IsFeatureBranchBuild = ?, UsesDefaultBranch = ?, CleanedUp = ?, HasNewChanges = ?, Branches = ?, ConfigurationVersionId = ?, ConfigurationId = ?, WorkspaceId = ?, UserId = ?, PinUserId = ?, TriggerId = ?, VariableNamespaceId = ?, StatusId = ? WHERE Id = ?] ---> Npgsql.NpgsqlException: ERROR: 22001: value too long for type character varying(1024) 
at Npgsql.NpgsqlState.d__a.MoveNext() 
at Npgsql.ForwardsOnlyDataReader.GetNextResponseObject() 
at Npgsql.ForwardsOnlyDataReader.GetNextRowDescription() 
at Npgsql.ForwardsOnlyDataReader.NextResult() 
at Npgsql.ForwardsOnlyDataReader..ctor(IEnumerable`1 dataEnumeration, CommandBehavior behavior, NpgsqlCommand command, NotificationThreadBlock threadBlock, Boolean synchOnReadError) 
at Npgsql.NpgsqlCommand.GetReader(CommandBehavior cb) 
at Npgsql.NpgsqlCommand.ExecuteNonQuery() 
at NHibernate.AdoNet.AbstractBatcher.ExecuteNonQuery(IDbCommand cmd) 
at NHibernate.AdoNet.NonBatchingBatcher.AddToBatch(IExpectation expectation) 
at NHibernate.Persister.Entity.AbstractEntityPersister.Update(Object id, Object[] fields, Object[] oldFields, Object rowId, Boolean[] includeProperty, Int32 j, Object oldVersion, Object obj, SqlCommandInfo sql, ISessionImplementor session) 
--- End of inner exception stack trace --- 
at NHibernate.Persister.Entity.AbstractEntityPersister.Update(Object id, Object[] fields, Object[] oldFields, Object rowId, Boolean[] includeProperty, Int32 j, Object oldVersion, Object obj, SqlCommandInfo sql, ISessionImplementor session) 
at NHibernate.Persister.Entity.AbstractEntityPersister.UpdateOrInsert(Object id, Object[] fields, Object[] oldFields, Object rowId, Boolean[] includeProperty, Int32 j, Object oldVersion, Object obj, SqlCommandInfo sql, ISessionImplementor session) 
at NHibernate.Persister.Entity.AbstractEntityPersister.Update(Object id, Object[] fields, Int32[] dirtyFields, Boolean hasDirtyCollection, Object[] oldFields, Object oldVersion, Object obj, Object rowId, ISessionImplementor session) 
at NHibernate.Action.EntityUpdateAction.Execute() 
at NHibernate.Engine.ActionQueue.Execute(IExecutable executable) 
at NHibernate.Engine.ActionQueue.ExecuteActions(IList list) 
at NHibernate.Engine.ActionQueue.ExecuteActions() 
at NHibernate.Event.Default.AbstractFlushingEventListener.PerformExecutions(IEventSource session) 
at NHibernate.Event.Default.DefaultFlushEventListener.OnFlush(FlushEvent event) 
at NHibernate.Impl.SessionImpl.Flush() 
at NHibernate.Transaction.AdoTransaction.Commit() 
at Continua.Shared.Data.Hibernate.NHibernateDatabase.SaveChanges() 
at Continua.Modules.Builds.BuildManager.AssociateChangeSets(Build build, BuildChangesetAssociationOptions associationOptions) 
at Continua.Modules.Builds.BuildManager.AssociateChangeSets(Int32 buidId, BuildChangesetAssociationOptions associationOptions) 
at Continua.Modules.Builds.BuildManager.<>c__DisplayClass3a.<>c__DisplayClass40.b__36() 
at Continua.Modules.Builds.Repositories.RepositoryMonitor.WaitForRepositoriesToBeChecked(DateTime comparison, IEnumerable`1 repositoryIds, Action onCheckComplete, Action`1 onCheckFailed, Action`1 onWaitingOnRepository) 
at Continua.Modules.Builds.BuildManager.<>c__DisplayClass3a.b__33(Object x) 
at System.Threading.Tasks.Task.Execute()<---

I think I may have found the cause. Do you know roughly how many changesets since the last successful build? I suspect it’s the list of branches on the build, the dev who wrote that code forgot to dedupe the list. I’m running a build with that fix now, I’ll post here when it’s uploaded.


Hi Vincent,

I know there should be at least 6 changesets (in the looksoftware-trunk) since I ran a build yesturday but I only see the latest changeset in the list and no other changes.

There are no changesets in the looksoftware-trunk-client.

NOTE: The 'looksoftware-trunk-client' tree is under the 'looksoftware-trunk' branch. I'm not sure it that's an issue. I was looking for ways to conditionally build the 'looksoftware-trunk-client' tree but only if it had changed.

Thx,

Simon. K

Hi Simon

Please try this build (1264):


32-bit Continua Server Installer

64-bit Continua Server Installer

Hi Vincent,

That build fixes the crash and now I see all changes (when selecting ‘All changes since last successful build’).

I’m still confused about this ‘No changeset associated with build for repository:’.

It would appear that if you have multiple repositories associated with a project then the project will only build if all repositories have changed. Is this correct? I can see no way to get the build going if only one has changed.

Thanks,

Simon. K

It doesn’t need new changes for every repository, however each repository must have at registered at least one changeset (that’s how we know which version of the source to copy to the build workspace). Not sure why you have a repository with no changes detected, what repository type is it? It might be worth checking if that repository is reporting any errors, failing that, delete the repository and re-create it. Also, is this a completely new install or did you have these repositories defined with an earlier install?