<< Back to previous view

[QB-489] Sometimes dependent builds fail.
Created: 21/Dec/09  Updated: 21/Dec/09

Status: Resolved
Project: QuickBuild
Component/s: None
Affects Version/s: None
Fix Version/s: None

Type: Bug Priority: Critical
Reporter: Pini Reznik Assigned To: Robin Shen
Resolution: Won't Fix Votes: 0
Remaining Estimate: Unknown Time Spent: Unknown
Original Estimate: Unknown
Environment: System Date and Time 2009-12-21 15:01:51
Operating System Windows 2003 5.2, x86
JVM Java HotSpot(TM) Client VM 14.2-b01, Sun Microsystems Inc.
QuickBuild Version 2.0.11 - Tue Dec 08 09:15:33 IST 2009
Total Memory 127 MB
Used Memory 105 MB
Memory Usage
85%
OS User Name packaging


 Description   
Hello,
I'm currently evaluating QuickBuild for my company (Zend Technologies).
I have about 20 different configurations with active dependencies (using QuickBuild repositories) and source repositories (using File System repositories).
Sometimes, when I run all 20 configurations which gradually execute each other, I get following errors:

14:54:11,1 [co code@vm-quickbuild:8810] ERROR - Step 'co code' is failed.
    org.hibernate.exception.GenericJDBCException: Could not execute JDBC batch update
        at org.hibernate.exception.SQLStateConverter.handledNonSpecificException(SQLStateConverter.java:103)
        at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:91)
        at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
        at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:253)
        at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:237)
        at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:142)
        at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:298)
        at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:27)
        at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1000)
        at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:338)
        at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:106)
        at com.pmease.quickbuild.persistence.TransactionInterceptor.invoke(TransactionInterceptor.java:56)
        at com.google.inject.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:66)
        at com.google.inject.InterceptorStackCallback.intercept(InterceptorStackCallback.java:45)
        at com.pmease.quickbuild.entitymanager.impl.DefaultBuildManager$$EnhancerByGuice$$b86c5ead.save(<generated>)
        at com.pmease.quickbuild.entitymanager.impl.DefaultBuildManager.save(DefaultBuildManager.java:1)
        at com.pmease.quickbuild.DefaultBuildEngine.stepStatusChanged(DefaultBuildEngine.java:1133)
        at com.pmease.quickbuild.stepsupport.Step.setStatus(Step.java:400)
        at com.pmease.quickbuild.plugin.basis.checkout.CheckoutStep$$EnhancerByCGLIB$$cfe19d45.CGLIB$setStatus$14(<generated>)
        at com.pmease.quickbuild.plugin.basis.checkout.CheckoutStep$$EnhancerByCGLIB$$cfe19d45$$FastClassByCGLIB$$387b511b.invoke(<generated>)
        at net.sf.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:167)
        at com.pmease.quickbuild.DefaultExpressionManager$Interpolator.intercept(DefaultExpressionManager.java:280)
        at com.pmease.quickbuild.plugin.basis.checkout.CheckoutStep$$EnhancerByCGLIB$$cfe19d45.setStatus(<generated>)
        at com.pmease.quickbuild.stepsupport.Step.execute(Step.java:509)
        at com.pmease.quickbuild.stepsupport.StepJob.execute(StepJob.java:37)
        at com.pmease.quickbuild.grid.GridJob.run(GridJob.java:114)
        at java.lang.Thread.run(Unknown Source)
    Caused by: org.h2.jdbc.JdbcBatchUpdateException: Timeout trying to lock table QB_BUILD; SQL statement:
    /* update com.pmease.quickbuild.model.Build */ update QB_BUILD set QB_BEGIN_DATE=?, QB_CONFIGURATION_ID=?, QB_DURATION=?, QB_ERROR_MESSAGE=?, QB_PROMOTION_SOURCE_ID=?, QB_REPOSITORYDOMS=?, QB_REQUEST_DATE=?, QB_SCHEDULED=?, QB_STATUS=?, QB_STATUS_DATE=?, QB_STEPDOMS=?, QB_USER_ID=?, QB_VERSION=? where QB_ID=? [50200-115]
        at org.h2.jdbc.JdbcPreparedStatement.executeBatch(JdbcPreparedStatement.java:1067)
        at com.mchange.v2.c3p0.impl.NewProxyPreparedStatement.executeBatch(NewProxyPreparedStatement.java:1723)
        at org.hibernate.jdbc.BatchingBatcher.doExecuteBatch(BatchingBatcher.java:48)
        at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:246)
        ... 23 more




14:54:10,6 [zwas-zdo@vm-quickbuild:8810] ERROR - Step 'zwas-zdo' is failed.
    org.hibernate.exception.GenericJDBCException: could not load an entity: [com.pmease.quickbuild.model.Build#1139]
        at org.hibernate.exception.SQLStateConverter.handledNonSpecificException(SQLStateConverter.java:103)
        at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:91)
        at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
        at org.hibernate.loader.Loader.loadEntity(Loader.java:1874)
        at org.hibernate.loader.entity.AbstractEntityLoader.load(AbstractEntityLoader.java:48)
        at org.hibernate.loader.entity.AbstractEntityLoader.load(AbstractEntityLoader.java:42)
        at org.hibernate.persister.entity.AbstractEntityPersister.load(AbstractEntityPersister.java:3044)
        at org.hibernate.event.def.DefaultLoadEventListener.loadFromDatasource(DefaultLoadEventListener.java:395)
        at org.hibernate.event.def.DefaultLoadEventListener.doLoad(DefaultLoadEventListener.java:375)
        at org.hibernate.event.def.DefaultLoadEventListener.load(DefaultLoadEventListener.java:139)
        at org.hibernate.event.def.DefaultLoadEventListener.onLoad(DefaultLoadEventListener.java:98)
        at org.hibernate.impl.SessionImpl.fireLoad(SessionImpl.java:878)
        at org.hibernate.impl.SessionImpl.immediateLoad(SessionImpl.java:836)
        at org.hibernate.proxy.AbstractLazyInitializer.initialize(AbstractLazyInitializer.java:66)
        at org.hibernate.Hibernate.initialize(Hibernate.java:306)
        at com.pmease.quickbuild.entitymanager.impl.AbstractEntityManager.load(AbstractEntityManager.java:74)
        at com.pmease.quickbuild.entitymanager.impl.DefaultBuildManager$$EnhancerByGuice$$b86c5ead.CGLIB$load$32(<generated>)
        at com.pmease.quickbuild.entitymanager.impl.DefaultBuildManager$$EnhancerByGuice$$b86c5ead$$FastClassByGuice$$9bc4fa8b.invoke(<generated>)
        at com.google.inject.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:187)
        at com.google.inject.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:66)
        at com.pmease.quickbuild.persistence.TransactionInterceptor.invoke(TransactionInterceptor.java:50)
        at com.google.inject.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:66)
        at com.google.inject.InterceptorStackCallback.intercept(InterceptorStackCallback.java:45)
        at com.pmease.quickbuild.entitymanager.impl.DefaultBuildManager$$EnhancerByGuice$$b86c5ead.load(<generated>)
        at com.pmease.quickbuild.dependency.QuickbuildRepository.getChangesBetween(QuickbuildRepository.java:311)
        at com.pmease.quickbuild.dependency.QuickbuildRepository$$EnhancerByCGLIB$$d4996816.CGLIB$getChangesBetween$16(<generated>)
        at com.pmease.quickbuild.dependency.QuickbuildRepository$$EnhancerByCGLIB$$d4996816$$FastClassByCGLIB$$e36bfa6.invoke(<generated>)
        at net.sf.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:167)
        at com.pmease.quickbuild.DefaultExpressionManager$Interpolator.intercept(DefaultExpressionManager.java:280)
        at com.pmease.quickbuild.dependency.QuickbuildRepository$$EnhancerByCGLIB$$d4996816.getChangesBetween(<generated>)
        at com.pmease.quickbuild.dependency.QuickbuildRepository.getChangesBetween(QuickbuildRepository.java:1)
        at com.pmease.quickbuild.dependency.QuickbuildRepository$$EnhancerByCGLIB$$d4996816.CGLIB$getChangesBetween$15(<generated>)
        at com.pmease.quickbuild.dependency.QuickbuildRepository$$EnhancerByCGLIB$$d4996816$$FastClassByCGLIB$$e36bfa6.invoke(<generated>)
        at net.sf.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:167)
        at com.pmease.quickbuild.DefaultExpressionManager$Interpolator.intercept(DefaultExpressionManager.java:280)
        at com.pmease.quickbuild.dependency.QuickbuildRepository$$EnhancerByCGLIB$$d4996816.getChangesBetween(<generated>)
        at com.pmease.quickbuild.repositorysupport.Repository.getChangesSince(Repository.java:394)
        at com.pmease.quickbuild.dependency.QuickbuildRepository$$EnhancerByCGLIB$$d4996816.CGLIB$getChangesSince$44(<generated>)
        at com.pmease.quickbuild.dependency.QuickbuildRepository$$EnhancerByCGLIB$$d4996816$$FastClassByCGLIB$$e36bfa6.invoke(<generated>)
        at net.sf.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:167)
        at com.pmease.quickbuild.DefaultExpressionManager$Interpolator.intercept(DefaultExpressionManager.java:280)
        at com.pmease.quickbuild.dependency.QuickbuildRepository$$EnhancerByCGLIB$$d4996816.getChangesSince(<generated>)
        at com.pmease.quickbuild.repositorysupport.Repository.getChanges(Repository.java:350)
        at com.pmease.quickbuild.dependency.QuickbuildRepository$$EnhancerByCGLIB$$d4996816.CGLIB$getChanges$30(<generated>)
        at com.pmease.quickbuild.dependency.QuickbuildRepository$$EnhancerByCGLIB$$d4996816$$FastClassByCGLIB$$e36bfa6.invoke(<generated>)
        at net.sf.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:167)
        at com.pmease.quickbuild.DefaultExpressionManager$Interpolator.intercept(DefaultExpressionManager.java:280)
        at com.pmease.quickbuild.dependency.QuickbuildRepository$$EnhancerByCGLIB$$d4996816.getChanges(<generated>)
        at com.pmease.quickbuild.repositorysupport.Repository.getChanges(Repository.java:340)
        at com.pmease.quickbuild.dependency.QuickbuildRepository$$EnhancerByCGLIB$$d4996816.CGLIB$getChanges$31(<generated>)
        at com.pmease.quickbuild.dependency.QuickbuildRepository$$EnhancerByCGLIB$$d4996816$$FastClassByCGLIB$$e36bfa6.invoke(<generated>)
        at net.sf.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:167)
        at com.pmease.quickbuild.DefaultExpressionManager$Interpolator.intercept(DefaultExpressionManager.java:280)
        at com.pmease.quickbuild.dependency.QuickbuildRepository$$EnhancerByCGLIB$$d4996816.getChanges(<generated>)
        at com.pmease.quickbuild.plugin.basis.checkout.CheckoutStep.run(CheckoutStep.java:85)
        at com.pmease.quickbuild.plugin.basis.checkout.CheckoutStep$$EnhancerByCGLIB$$cfe19d45.CGLIB$run$0(<generated>)
        at com.pmease.quickbuild.plugin.basis.checkout.CheckoutStep$$EnhancerByCGLIB$$cfe19d45$$FastClassByCGLIB$$387b511b.invoke(<generated>)
        at net.sf.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:167)
        at com.pmease.quickbuild.DefaultExpressionManager$Interpolator.intercept(DefaultExpressionManager.java:280)
        at com.pmease.quickbuild.plugin.basis.checkout.CheckoutStep$$EnhancerByCGLIB$$cfe19d45.run(<generated>)
        at com.pmease.quickbuild.stepsupport.Step.execute(Step.java:498)
        at com.pmease.quickbuild.stepsupport.StepJob.execute(StepJob.java:37)
        at com.pmease.quickbuild.grid.GridJob.run(GridJob.java:114)
        at java.lang.Thread.run(Unknown Source)
    Caused by: org.h2.jdbc.JdbcSQLException: Timeout trying to lock table QB_BUILD; SQL statement:
    /* load com.pmease.quickbuild.model.Build */ select build0_.QB_ID as QB1_1_0_, build0_.QB_BEGIN_DATE as QB2_1_0_, build0_.QB_CONFIGURATION_ID as QB13_1_0_, build0_.QB_DURATION as QB3_1_0_, build0_.QB_ERROR_MESSAGE as QB4_1_0_, build0_.QB_PROMOTION_SOURCE_ID as QB14_1_0_, build0_.QB_REPOSITORYDOMS as QB5_1_0_, build0_.QB_REQUEST_DATE as QB6_1_0_, build0_.QB_SCHEDULED as QB7_1_0_, build0_.QB_STATUS as QB8_1_0_, build0_.QB_STATUS_DATE as QB9_1_0_, build0_.QB_STEPDOMS as QB10_1_0_, build0_.QB_USER_ID as QB12_1_0_, build0_.QB_VERSION as QB11_1_0_ from QB_BUILD build0_ where build0_.QB_ID=? [50200-115]
        at org.h2.message.Message.getSQLException(Message.java:105)
        at org.h2.message.Message.getSQLException(Message.java:116)
        at org.h2.message.Message.getSQLException(Message.java:75)
        at org.h2.table.TableData.doLock(TableData.java:435)
        at org.h2.table.TableData.lock(TableData.java:373)
        at org.h2.table.TableFilter.lock(TableFilter.java:110)
        at org.h2.command.dml.Select.queryWithoutCache(Select.java:549)
        at org.h2.command.dml.Query.query(Query.java:234)
        at org.h2.command.CommandContainer.query(CommandContainer.java:82)
        at org.h2.command.Command.executeQueryLocal(Command.java:142)
        at org.h2.command.Command.executeQuery(Command.java:123)
        at org.h2.jdbc.JdbcPreparedStatement.executeQuery(JdbcPreparedStatement.java:98)
        at com.mchange.v2.c3p0.impl.NewProxyPreparedStatement.executeQuery(NewProxyPreparedStatement.java:76)
        at org.hibernate.jdbc.AbstractBatcher.getResultSet(AbstractBatcher.java:186)
        at org.hibernate.loader.Loader.getResultSet(Loader.java:1787)
        at org.hibernate.loader.Loader.doQuery(Loader.java:674)
        at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:236)
        at org.hibernate.loader.Loader.loadEntity(Loader.java:1860)
        ... 60 more

 Comments   
Comment by Robin Shen [ 21/Dec/09 02:10 PM ]
This error can be avoided by switching to an external database (such as MySQL). The embedded H2 database is only used for demonstration purpose and does not work well well under heavy load. Please follow this guide on how to migrate your data to an external database:

http://wiki.pmease.com/display/qb2/Data+Management
Comment by Pini Reznik [ 21/Dec/09 06:47 PM ]
After connecting to MySQL it's working well.
Thanks
Generated at Tue Oct 14 20:01:11 UTC 2025 using JIRA 189.