scheduler error on 2.8: ERROR: update or delete on table "fileresource" violates foreign key constraint "fk_document_fileresourceid" on table "document"

hi,all

I got this on everyday scheduling task:

  • ERROR 2018-03-13 02:00:01,349 ERROR: update or delete on table “fileresource” violates foreign key constraint “fk_document_fileresourceid” on table “document” . ( detail:Key (fileresourceid)=(4168592) is still referenced from table “document” SqlExceptionHelper.java [taskScheduler-1])

  • ERROR 2018-03-13 02:00:01,474 HHH000346: Error during managed flush [org.hibernate.exception.ConstraintViolationException: could not execute statement] (ExceptionMapperStandardImpl.java [taskScheduler-1])

  • ERROR 2018-03-13 02:00:01,538 Unexpected error occurred in scheduled task. (TaskUtils.java [taskScheduler-1])

org.springframework.dao.DataIntegrityViolationException: could not execute statement; SQL [n/a]; constraint [fk_document_fileresourceid]; nested exception is org.hibernate.exception.ConstraintViolationException: could not execute statement

at org.springframework.orm.hibernate5.SessionFactoryUtils.convertHibernateAccessException(SessionFactoryUtils.java:241)

at org.springframework.orm.hibernate5.HibernateTransactionManager.convertHibernateAccessException(HibernateTransactionManager.java:755)

at org.springframework.orm.hibernate5.HibernateTransactionManager.doCommit(HibernateTransactionManager.java:594)

at org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:761)

at org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:730)

at org.springframework.transaction.interceptor.TransactionAspectSupport.commitTransactionAfterReturning(TransactionAspectSupport.java:504)

at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:292)

at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:96)

at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)

at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:213)

at com.sun.proxy.$Proxy607.deleteFileResource(Unknown Source)

at org.hisp.dhis.fileresource.FileResourceCleanUpTask.lambda$run$198(FileResourceCleanUpTask.java:64)

at java.util.ArrayList.forEach(ArrayList.java:1249)

at org.hisp.dhis.fileresource.FileResourceCleanUpTask.run(FileResourceCleanUpTask.java:62)

at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)

at org.springframework.scheduling.concurrent.ReschedulingRunnable.run(ReschedulingRunnable.java:81)

at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)

at java.util.concurrent.FutureTask.run(FutureTask.java:266)

at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)

at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)

at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)

at java.lang.Thread.run(Thread.java:745)

Caused by: org.hibernate.exception.ConstraintViolationException: could not execute statement

at org.hibernate.exception.internal.SQLStateConversionDelegate.convert(SQLStateConversionDelegate.java:112)

at org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:42)

at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:111)

at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:97)

at org.hibernate.engine.jdbc.internal.ResultSetReturnImpl.executeUpdate(ResultSetReturnImpl.java:208)

at org.hibernate.engine.jdbc.batch.internal.NonBatchingBatch.addToBatch(NonBatchingBatch.java:45)

at org.hibernate.persister.entity.AbstractEntityPersister.delete(AbstractEntityPersister.java:3315)

at org.hibernate.persister.entity.AbstractEntityPersister.delete(AbstractEntityPersister.java:3552)

at org.hibernate.action.internal.EntityDeleteAction.execute(EntityDeleteAction.java:99)

at org.hibernate.engine.spi.ActionQueue.executeActions(ActionQueue.java:589)

at org.hibernate.engine.spi.ActionQueue.executeActions(ActionQueue.java:463)

at org.hibernate.event.internal.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:337)

at org.hibernate.event.internal.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:39)

at org.hibernate.internal.SessionImpl.doFlush(SessionImpl.java:1435)

at org.hibernate.internal.SessionImpl.managedFlush(SessionImpl.java:491)

at org.hibernate.internal.SessionImpl.flushBeforeTransactionCompletion(SessionImpl.java:3201)

at org.hibernate.internal.SessionImpl.beforeTransactionCompletion(SessionImpl.java:2411)

at org.hibernate.engine.jdbc.internal.JdbcCoordinatorImpl.beforeTransactionCompletion(JdbcCoordinatorImpl.java:467)

at org.hibernate.resource.transaction.backend.jdbc.internal.JdbcResource

LocalTransactionCoordinatorImpl.beforeCompletionCallback(JdbcResourceLocalTransactionCoordinatorImpl.java:146)

at org.hibernate.resource.transaction.backend.jdbc.internal.JdbcResource

LocalTransactionCoordinatorImpl.access$100(JdbcResourceLocalTransactionCoordinatorImpl.java:38)

at org.hibernate.resource.transaction.backend.jdbc.internal.JdbcResource

LocalTransactionCoordinatorImpl$TransactionDriverControlImpl.commit(JdbcResourceLocalTransactionCoordinatorImpl.java:220)

at org.hibernate.engine.transaction.internal.TransactionImpl.commit(TransactionImpl.java:68)

at org.springframework.orm.hibernate5.HibernateTransactionManager.doCommit(HibernateTransactionManager.java:582)

… 20 more

Caused by: org.postgresql.util.PSQLException: ERROR: update or delete on table “fileresource” violates foreign key constraint “fk_document_fileresourceid” on table “document”

. detail:Key (fileresourceid)=(4168592) is still referenced from table “document”

at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2476)

at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:2189)

at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:300)

at org.postgresql.jdbc.PgStatement.executeInternal(PgStatement.java:428)

at org.postgresql.jdbc.PgStatement.execute(PgStatement.java:354)

at org.postgresql.jdbc.PgPreparedStatement.executeWithFlags(PgPreparedStatement.java:169)

at org.postgresql.jdbc.PgPreparedStatement.executeUpdate(PgPreparedStatement.java:136)

at com.mchange.v2.c3p0.impl.NewProxyPreparedStatement.executeUpdate(NewProxyPreparedStatement.java:384)

at org.hibernate.engine.jdbc.internal.ResultSetReturnImpl.executeUpdate(ResultSetReturnImpl.java:205)

… 38 more

  • INFO 2018-03-13 02:00:02,460 ‘system-process’ create org.hisp.dhis.datastatistics.DataStatistics, uid: OEs95wMjGdo (AuditLogUtil.java [taskScheduler-22])

  • INFO 2018-03-13 02:00:03,388 Saved data statistics snapshot (DataStatisticsTask.java [taskScheduler-22])

  • INFO 2018-03-13 05:00:00,009 Processing ProgramStageNotification messages: 00:00:00.000 (Clock.java [taskScheduler-11])

  • INFO 2018-03-13 05:00:00,044 Created and sent 0 messages in 00:00:00.034: 00:00:00.034 (Clock.java [taskScheduler-11])

why? not the first time

Thank.

···


此致

林晓东

莫愁前路无知己,天下谁人不识君。

Hi

Would you mind filling out a bug report at jira.dhis2.org ? including dhis info, etc

···

Morten Olav Hansen

Senior Engineer, DHIS 2

University of Oslo

http://www.dhis2.org

On Tue, Mar 13, 2018 at 10:56 AM, 林晓东 lin_xd@126.com wrote:

hi,all

I got this on everyday scheduling task:

  • ERROR 2018-03-13 02:00:01,349 ERROR: update or delete on table “fileresource” violates foreign key constraint “fk_document_fileresourceid” on table “document” . ( detail:Key (fileresourceid)=(4168592) is still referenced from table “document” SqlExceptionHelper.java [taskScheduler-1])
  • ERROR 2018-03-13 02:00:01,474 HHH000346: Error during managed flush [org.hibernate.exception.ConstraintViolationException: could not execute statement] (ExceptionMapperStandardImpl.java [taskScheduler-1])
  • ERROR 2018-03-13 02:00:01,538 Unexpected error occurred in scheduled task. (TaskUtils.java [taskScheduler-1])

org.springframework.dao.DataIntegrityViolationException: could not execute statement; SQL [n/a]; constraint [fk_document_fileresourceid]; nested exception is org.hibernate.exception.ConstraintViolationException: could not execute statement

at org.springframework.orm.hibernate5.SessionFactoryUtils.convertHibernateAccessException(SessionFactoryUtils.java:241)

at org.springframework.orm.hibernate5.HibernateTransactionManager.convertHibernateAccessException(HibernateTransactionManager.java:755)

at org.springframework.orm.hibernate5.HibernateTransactionManager.doCommit(HibernateTransactionManager.java:594)

at org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:761)

at org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:730)

at org.springframework.transaction.interceptor.TransactionAspectSupport.commitTransactionAfterReturning(TransactionAspectSupport.java:504)

at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:292)

at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:96)

at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)

at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:213)

at com.sun.proxy.$Proxy607.deleteFileResource(Unknown Source)

at org.hisp.dhis.fileresource.FileResourceCleanUpTask.lambda$run$198(FileResourceCleanUpTask.java:64)

at java.util.ArrayList.forEach(ArrayList.java:1249)

at org.hisp.dhis.fileresource.FileResourceCleanUpTask.run(FileResourceCleanUpTask.java:62)

at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)

at org.springframework.scheduling.concurrent.ReschedulingRunnable.run(ReschedulingRunnable.java:81)

at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)

at java.util.concurrent.FutureTask.run(FutureTask.java:266)

at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)

at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)

at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)

at java.lang.Thread.run(Thread.java:745)

Caused by: org.hibernate.exception.ConstraintViolationException: could not execute statement

at org.hibernate.exception.internal.SQLStateConversionDelegate.convert(SQLStateConversionDelegate.java:112)

at org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:42)

at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:111)

at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:97)

at org.hibernate.engine.jdbc.internal.ResultSetReturnImpl.executeUpdate(ResultSetReturnImpl.java:208)

at org.hibernate.engine.jdbc.batch.internal.NonBatchingBatch.addToBatch(NonBatchingBatch.java:45)

at org.hibernate.persister.entity.AbstractEntityPersister.delete(AbstractEntityPersister.java:3315)

at org.hibernate.persister.entity.AbstractEntityPersister.delete(AbstractEntityPersister.java:3552)

at org.hibernate.action.internal.EntityDeleteAction.execute(EntityDeleteAction.java:99)

at org.hibernate.engine.spi.ActionQueue.executeActions(ActionQueue.java:589)

at org.hibernate.engine.spi.ActionQueue.executeActions(ActionQueue.java:463)

at org.hibernate.event.internal.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:337)

at org.hibernate.event.internal.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:39)

at org.hibernate.internal.SessionImpl.doFlush(SessionImpl.java:1435)

at org.hibernate.internal.SessionImpl.managedFlush(SessionImpl.java:491)

at org.hibernate.internal.SessionImpl.flushBeforeTransactionCompletion(SessionImpl.java:3201)

at org.hibernate.internal.SessionImpl.beforeTransactionCompletion(SessionImpl.java:2411)

at org.hibernate.engine.jdbc.internal.JdbcCoordinatorImpl.beforeTransactionCompletion(JdbcCoordinatorImpl.java:467)

at org.hibernate.resource.transaction.backend.jdbc.internal.JdbcResource

LocalTransactionCoordinatorImpl.beforeCompletionCallback(JdbcResourceLocalTransactionCoordinatorImpl.java:146)

at org.hibernate.resource.transaction.backend.jdbc.internal.JdbcResource

LocalTransactionCoordinatorImpl.access$100(JdbcResourceLocalTransactionCoordinatorImpl.java:38)

at org.hibernate.resource.transaction.backend.jdbc.internal.JdbcResource

LocalTransactionCoordinatorImpl$TransactionDriverControlImpl.commit(JdbcResourceLocalTransactionCoordinatorImpl.java:220)

at org.hibernate.engine.transaction.internal.TransactionImpl.commit(TransactionImpl.java:68)

at org.springframework.orm.hibernate5.HibernateTransactionManager.doCommit(HibernateTransactionManager.java:582)

… 20 more

Caused by: org.postgresql.util.PSQLException: ERROR: update or delete on table “fileresource” violates foreign key constraint “fk_document_fileresourceid” on table “document”

. detail:Key (fileresourceid)=(4168592) is still referenced from table “document”

at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2476)

at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:2189)

at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:300)

at org.postgresql.jdbc.PgStatement.executeInternal(PgStatement.java:428)

at org.postgresql.jdbc.PgStatement.execute(PgStatement.java:354)

at org.postgresql.jdbc.PgPreparedStatement.executeWithFlags(PgPreparedStatement.java:169)

at org.postgresql.jdbc.PgPreparedStatement.executeUpdate(PgPreparedStatement.java:136)

at com.mchange.v2.c3p0.impl.NewProxyPreparedStatement.executeUpdate(NewProxyPreparedStatement.java:384)

at org.hibernate.engine.jdbc.internal.ResultSetReturnImpl.executeUpdate(ResultSetReturnImpl.java:205)

… 38 more

  • INFO 2018-03-13 02:00:02,460 ‘system-process’ create org.hisp.dhis.datastatistics.DataStatistics, uid: OEs95wMjGdo (AuditLogUtil.java [taskScheduler-22])
  • INFO 2018-03-13 02:00:03,388 Saved data statistics snapshot (DataStatisticsTask.java [taskScheduler-22])
  • INFO 2018-03-13 05:00:00,009 Processing ProgramStageNotification messages: 00:00:00.000 (Clock.java [taskScheduler-11])
  • INFO 2018-03-13 05:00:00,044 Created and sent 0 messages in 00:00:00.034: 00:00:00.034 (Clock.java [taskScheduler-11])

why? not the first time

Thank.


此致

林晓东

莫愁前路无知己,天下谁人不识君。


Mailing list: https://launchpad.net/~dhis2-users

Post to : dhis2-users@lists.launchpad.net

Unsubscribe : https://launchpad.net/~dhis2-users

More help : https://help.launchpad.net/ListHelp