History | Log In     View a printable version of the current page.  
Issue Details (XML | Word | Printable)

Key: CIB-1008
Type: Bug Bug
Status: Resolved Resolved
Resolution: Fixed
Priority: Major Major
Assignee: jason
Reporter: jason
Votes: 0
Watchers: 0
Operations

If you were logged in you would be able to see more operations.
Pulse

Race condition matching changelists

Created: 14/Mar/07 03:05 AM   Updated: 14/Mar/07 04:12 AM
Component/s: None
Affects Version/s: 1.2.18
Fix Version/s: 1.2.19


 Description  « Hide
When a change affects multiple builds, Pulse will detect and reuse an existing changelist. There is currently a race in this detection, which can lead to duplicate changelists. If a third build detects the same change, it will then get an exception:

SEVERE: query did not return a unique result: 2
org.springframework.dao.IncorrectResultSizeDataAccessException: query
did not return a unique result: 2
       at org.springframework.orm.hibernate3.SessionFactoryUtils.convertHibernateAccessException(SessionFactoryUtils.java:658)
       at org.springframework.orm.hibernate3.HibernateAccessor.convertHibernateAccessException(HibernateAccessor.java:408)
       at org.springframework.orm.hibernate3.HibernateTemplate.execute(HibernateTemplate.java:367)
       at org.springframework.orm.hibernate3.HibernateTemplate.execute(HibernateTemplate.java:328)
       at com.zutubi.pulse.model.persistence.hibernate.HibernateChangelistDao.findByRevision(HibernateChangelistDao.java:116)
       at sun.reflect.GeneratedMethodAccessor830.invoke(Unknown Source)
       at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
       at java.lang.reflect.Method.invoke(Unknown Source)
       at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:318)
       at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:203)
       at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:162)
       at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:107)
       at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185)
       at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:209)
       at $Proxy7.findByRevision(Unknown Source)
       at com.zutubi.pulse.model.DefaultBuildManager.getChangelistByRevision(DefaultBuildManager.java:332)
       at sun.reflect.GeneratedMethodAccessor829.invoke(Unknown Source)
       at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
       at java.lang.reflect.Method.invoke(Unknown Source)

 All   Comments   Change History      Sort Order:
jason - 14/Mar/07 04:12 AM
Fixed in change 3123, including upgrade to fix existing data.