Details
-
Bug
-
Resolution: Obsolete
-
Medium
-
None
-
2.3
-
None
-
Tomcat5, Postgres, 2 node cluster
Description
Occasionally Hibernate finds an inconsistency relating to the foreign key from the external links table (extrnlnks) and the content table.
For example the following stack trace occurred when removing a page.
2006-12-29 11:42:15,164 ERROR [http-12300-Processor24] [sf.hibernate.util.JDBCExceptionReporter] logExceptions Batch entry 0 delete from CONTENT where CONTENTID=164138 was aborted. Call getNextException to see the cause.
2006-12-29 11:42:15,164 ERROR [http-12300-Processor24] [sf.hibernate.util.JDBCExceptionReporter] logExceptions Batch entry 0 delete from CONTENT where CONTENTID=164138 was aborted. Call getNextException to see the cause.
2006-12-29 11:42:15,165 ERROR [http-12300-Processor24] [sf.hibernate.util.JDBCExceptionReporter] logExceptions ERROR: update or delete on "content" violates foreign key constraint "fk97c10fe78dd41734" on "extrnlnks"
Detail: Key (contentid)=(164138) is still referenced from table "extrnlnks".
2006-12-29 11:42:15,165 ERROR [http-12300-Processor24] [sf.hibernate.util.JDBCExceptionReporter] logExceptions ERROR: update or delete on "content" violates foreign key constraint "fk97c10fe78dd41734" on "extrnlnks"
Detail: Key (contentid)=(164138) is still referenced from table "extrnlnks".
2006-12-29 11:42:15,168 ERROR [http-12300-Processor24] [sf.hibernate.util.JDBCExceptionReporter] logExceptions Batch entry 0 delete from CONTENT where CONTENTID=164138 was aborted. Call getNextException to see the cause.
2006-12-29 11:42:15,168 ERROR [http-12300-Processor24] [sf.hibernate.util.JDBCExceptionReporter] logExceptions Batch entry 0 delete from CONTENT where CONTENTID=164138 was aborted. Call getNextException to see the cause.
2006-12-29 11:42:15,169 ERROR [http-12300-Processor24] [sf.hibernate.util.JDBCExceptionReporter] logExceptions ERROR: update or delete on "content" violates foreign key constraint "fk97c10fe78dd41734" on "extrnlnks"
Detail: Key (contentid)=(164138) is still referenced from table "extrnlnks".
2006-12-29 11:42:15,169 ERROR [http-12300-Processor24] [sf.hibernate.util.JDBCExceptionReporter] logExceptions ERROR: update or delete on "content" violates foreign key constraint "fk97c10fe78dd41734" on "extrnlnks"
Detail: Key (contentid)=(164138) is still referenced from table "extrnlnks".
2006-12-29 11:42:15,171 ERROR [http-12300-Processor24] [sf.hibernate.impl.SessionImpl] execute Could not synchronize database state with session
2006-12-29 11:42:15,171 ERROR [http-12300-Processor24] [sf.hibernate.impl.SessionImpl] execute Could not synchronize database state with session
java.lang.reflect.InvocationTargetException
at sun.reflect.GeneratedMethodAccessor343.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at com.atlassian.confluence.rpc.auth.TokenAuthenticationInvocationHandler.handleAuthenticatedMethod(TokenAuthenticationInvocationHandler.java:99)
at com.atlassian.confluence.rpc.auth.TokenAuthenticationInvocationHandler.invoke(TokenAuthenticationInvocationHandler.java:58)
at $Proxy60.nukeForTests(Unknown Source)
at sun.reflect.GeneratedMethodAccessor439.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.apache.xmlrpc.Invoker.execute(Invoker.java:130)
at org.apache.xmlrpc.XmlRpcWorker.invokeHandler(XmlRpcWorker.java:84)
at org.apache.xmlrpc.XmlRpcWorker.execute(XmlRpcWorker.java:146)
at org.apache.xmlrpc.XmlRpcServer.execute(XmlRpcServer.java:139)
at org.apache.xmlrpc.XmlRpcServer.execute(XmlRpcServer.java:114)
at com.atlassian.confluence.rpc.xmlrpc.XmlRpcServer.serviceXmlRpcRequest(XmlRpcServer.java:87)
at com.atlassian.confluence.rpc.xmlrpc.XmlRpcServer.service(XmlRpcServer.java:61)
at com.atlassian.confluence.servlet.SpringManagedServlet.service(SpringManagedServlet.java:64)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at com.atlassian.core.filters.ServletContextThreadLocalFilter.doFilter(ServletContextThreadLocalFilter.java:21)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at com.atlassian.seraph.filter.SecurityFilter.doFilter(SecurityFilter.java:182)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at com.atlassian.seraph.filter.LoginFilter.doFilter(LoginFilter.java:159)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at com.atlassian.confluence.util.ClusterHeaderFilter.doFilter(ClusterHeaderFilter.java:35)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at com.atlassian.core.filters.gzip.GzipFilter.doFilter(GzipFilter.java:61)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:541)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
at java.lang.Thread.run(Thread.java:595)
Caused by: org.springframework.dao.DataIntegrityViolationException: (Hibernate operation): data integrity violated by SQL ''; nested exception is java.sql.BatchUpdateException: Batch entry 0 delete from CONTENT where CONTENTID=164138 was aborted. Call getNextException to see the cause.
at org.springframework.jdbc.support.SQLStateSQLExceptionTranslator.translate(SQLStateSQLExceptionTranslator.java:93)
at org.springframework.orm.hibernate.HibernateAccessor.convertJdbcAccessException(HibernateAccessor.java:249)
at org.springframework.orm.hibernate.HibernateAccessor.convertHibernateAccessException(HibernateAccessor.java:231)
at org.springframework.orm.hibernate.HibernateTemplate.execute(HibernateTemplate.java:317)
at org.springframework.orm.hibernate.HibernateTemplate.executeFind(HibernateTemplate.java:293)
at com.atlassian.confluence.pages.persistence.dao.hibernate.HibernatePageDao.getDescendents(HibernatePageDao.java:449)
at com.atlassian.confluence.pages.DefaultPageManager.getDescendents(DefaultPageManager.java:153)
at com.atlassian.confluence.pages.DefaultPageManager.removePageFromAncestorCollections(DefaultPageManager.java:180)
at com.atlassian.confluence.pages.Page.remove(Page.java:192)
at com.atlassian.confluence.pages.Page$$FastClassByCGLIB$$b75f5c02.invoke(<generated>)
at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:149)
at net.sf.hibernate.proxy.CGLIBLazyInitializer.intercept(CGLIBLazyInitializer.java:108)
at com.atlassian.confluence.pages.Page$$EnhancerByCGLIB$$64cf1222.remove(<generated>)
at com.atlassian.confluence.pages.DefaultPageManager.removeAllPages(DefaultPageManager.java:200)
at sun.reflect.GeneratedMethodAccessor453.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:284)
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:155)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:122)
at com.atlassian.spring.interceptors.SpringProfilingInterceptor.invoke(SpringProfilingInterceptor.java:20)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:144)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:56)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:144)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:174)
at $Proxy19.removeAllPages(Unknown Source)
at com.atlassian.confluence.spaces.DefaultSpaceManager.removeSpace(DefaultSpaceManager.java:120)
at sun.reflect.GeneratedMethodAccessor452.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:284)
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:155)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:122)
at com.atlassian.spring.interceptors.SpringProfilingInterceptor.invoke(SpringProfilingInterceptor.java:20)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:144)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:56)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:144)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:174)
at $Proxy25.removeSpace(Unknown Source)
at com.atlassian.confluence.test.rpc.FuncTestRpcHandlerImpl.nukeForTests(FuncTestRpcHandlerImpl.java:108)
at sun.reflect.GeneratedMethodAccessor343.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:284)
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:155)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:122)
at com.atlassian.spring.interceptors.SpringProfilingInterceptor.invoke(SpringProfilingInterceptor.java:20)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:144)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:56)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:144)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:174)
at $Proxy57.nukeForTests(Unknown Source)
at com.atlassian.confluence.test.rpc.FuncTestRpcDelegator.nukeForTests(FuncTestRpcDelegator.java:19)
... 48 more
Caused by: java.sql.BatchUpdateException: Batch entry 0 delete from CONTENT where CONTENTID=164138 was aborted. Call getNextException to see the cause.
at org.postgresql.jdbc2.AbstractJdbc2Statement$BatchResultHandler.handleError(AbstractJdbc2Statement.java:2478)
at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1298)
at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:347)
at org.postgresql.jdbc2.AbstractJdbc2Statement.executeBatch(AbstractJdbc2Statement.java:2540)
at com.mchange.v2.c3p0.impl.NewProxyPreparedStatement.executeBatch(NewProxyPreparedStatement.java:1723)
at net.sf.hibernate.impl.BatchingBatcher.doExecuteBatch(BatchingBatcher.java:54)
at net.sf.hibernate.impl.BatcherImpl.executeBatch(BatcherImpl.java:128)
at net.sf.hibernate.impl.SessionImpl.executeAll(SessionImpl.java:2438)
at net.sf.hibernate.impl.SessionImpl.execute(SessionImpl.java:2397)
at net.sf.hibernate.impl.SessionImpl.autoFlushIfRequired(SessionImpl.java:1821)
at net.sf.hibernate.impl.SessionImpl.findBySQL(SessionImpl.java:3863)
at net.sf.hibernate.impl.SQLQueryImpl.list(SQLQueryImpl.java:52)
at com.atlassian.confluence.pages.persistence.dao.hibernate.HibernatePageDao$4.doInHibernate(HibernatePageDao.java:459)
at org.springframework.orm.hibernate.HibernateTemplate.execute(HibernateTemplate.java:312)
... 97 more