You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@syncope.apache.org by "Francesco Chicchiriccò (Jira)" <ji...@apache.org> on 2020/03/31 05:36:00 UTC

[jira] [Closed] (SYNCOPE-1550) Getting "JpaSystemException: The transaction cannot be committed, because it was already marked for rollback only."

     [ https://issues.apache.org/jira/browse/SYNCOPE-1550?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Francesco Chicchiriccò closed SYNCOPE-1550.
-------------------------------------------
    Resolution: Cannot Reproduce

Errors like the one reported above suggest that there is some other error occurring before raising an uncaught exception.

I'd suggest to look at the logs more carefully to find the originating error, fix and try again.

> Getting "JpaSystemException: The transaction cannot be committed, because it was already marked for rollback only."
> -------------------------------------------------------------------------------------------------------------------
>
>                 Key: SYNCOPE-1550
>                 URL: https://issues.apache.org/jira/browse/SYNCOPE-1550
>             Project: Syncope
>          Issue Type: Bug
>          Components: core
>    Affects Versions: 2.1.5
>            Reporter: ohaya
>            Priority: Critical
>
> I have a task that is importing users from a CSV file and then creating users in a realm in Syncope 2.1.5.  This task works fine when there are only a few users in the CSV file, but if the CSV file is large (e.g., > 30K users), we are getting errors like the following in the core.log:
>  
> {code}
> 15:04:29.529 ERROR org.apache.syncope.core.provisioning.java.job.TaskJob - While executing task 6cef6cfd-4c73-4224-af6c-fd4c733224c7
> org.springframework.orm.jpa.JpaSystemException: The transaction cannot be committed, because it was already marked for rollback only.  The transaction will be rolled back instead. The cause of the rollback-only status is reported in the embedded stack.; nested exception is <openjpa-3.1.0-rafcec21a1d489dff682a3ce7986fac6a1c80e8e0 fatal general error> org.apache.openjpa.persistence.PersistenceException: The transaction cannot be committed, because it was already marked for rollback only.  The transaction will be rolled back instead. The cause of the rollback-only status is reported in the embedded stack.
>         at org.springframework.orm.jpa.EntityManagerFactoryUtils.convertJpaAccessExceptionIfPossible(EntityManagerFactoryUtils.java:407) ~[spring-orm-5.1.9.RELEASE.jar:5.1.9.RELEASE]
>         at org.springframework.orm.jpa.DefaultJpaDialect.translateExceptionIfPossible(DefaultJpaDialect.java:127) ~[spring-orm-5.1.9.RELEASE.jar:5.1.9.RELEASE]
>         at org.springframework.orm.jpa.JpaTransactionManager.doCommit(JpaTransactionManager.java:536) ~[spring-orm-5.1.9.RELEASE.jar:5.1.9.RELEASE]
>         at org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:746) ~[spring-tx-5.1.9.RELEASE.jar:5.1.9.RELEASE]
>         at org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:714) ~[spring-tx-5.1.9.RELEASE.jar:5.1.9.RELEASE]
>         at org.springframework.transaction.interceptor.TransactionAspectSupport.commitTransactionAfterReturning(TransactionAspectSupport.java:534) ~[spring-tx-5.1.9.RELEASE.jar:5.1.9.RELEASE]
>         at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:305) ~[spring-tx-5.1.9.RELEASE.jar:5.1.9.RELEASE]
>         at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:98) ~[spring-tx-5.1.9.RELEASE.jar:5.1.9.RELEASE]
>         at org.apache.syncope.core.persistence.jpa.spring.DomainTransactionInterceptor.invoke(DomainTransactionInterceptor.java:60) ~[syncope-core-persistence-jpa-2.1.5.jar:2.1.5]
>         at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.1.9.RELEASE.jar:5.1.9.RELEASE]
>         at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:212) ~[spring-aop-5.1.9.RELEASE.jar:5.1.9.RELEASE]
>         at com.sun.proxy.$Proxy351.execute(Unknown Source) ~[?:?]
>         at org.apache.syncope.core.provisioning.java.job.TaskJob.lambda$execute$0(TaskJob.java:87) ~[syncope-core-provisioning-java-2.1.5.jar:2.1.5]
>         at org.apache.syncope.core.spring.security.AuthContextUtils.execWithAuthContext(AuthContextUtils.java:117) ~[syncope-core-spring-2.1.5.jar:2.1.5]
>         at org.apache.syncope.core.provisioning.java.job.TaskJob.execute(TaskJob.java:76) ~[syncope-core-provisioning-java-2.1.5.jar:2.1.5]
>         at org.quartz.core.JobRunShell.run(JobRunShell.java:202) ~[quartz-2.3.1.jar:?]
>         at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:573) ~[quartz-2.3.1.jar:?]
> Caused by: org.apache.openjpa.persistence.PersistenceException: The transaction cannot be committed, because it was already marked for rollback only.  The transaction will be rolled back instead. The cause of the rollback-only status is reported in the embedded stack.
>         at org.apache.openjpa.kernel.LocalManagedRuntime.commit(LocalManagedRuntime.java:92) ~[openjpa-kernel-3.1.0.jar:3.1.0]
>         at org.apache.openjpa.kernel.BrokerImpl.commit(BrokerImpl.java:1600) ~[openjpa-kernel-3.1.0.jar:3.1.0]
>         at org.apache.openjpa.kernel.DelegatingBroker.commit(DelegatingBroker.java:1035) ~[openjpa-kernel-3.1.0.jar:3.1.0]
>         at org.apache.openjpa.persistence.EntityManagerImpl.commit(EntityManagerImpl.java:669) ~[openjpa-persistence-3.1.0.jar:3.1.0]
>         at org.springframework.orm.jpa.JpaTransactionManager.doCommit(JpaTransactionManager.java:532) ~[spring-orm-5.1.9.RELEASE.jar:5.1.9.RELEASE]
>         ... 14 more
> Caused by: org.apache.openjpa.persistence.ArgumentException
>         at org.apache.openjpa.kernel.BrokerImpl.setRollbackOnly(BrokerImpl.java:1726) ~[openjpa-kernel-3.1.0.jar:3.1.0]
>         at org.apache.openjpa.kernel.DelegatingBroker.setRollbackOnly(DelegatingBroker.java:1080) ~[openjpa-kernel-3.1.0.jar:3.1.0]
>         at org.apache.openjpa.persistence.EntityManagerImpl.setRollbackOnly(EntityManagerImpl.java:732) ~[openjpa-persistence-3.1.0.jar:3.1.0]
>         at org.springframework.orm.jpa.JpaTransactionManager$JpaTransactionObject.setRollbackOnly(JpaTransactionManager.java:682) ~[spring-orm-5.1.9.RELEASE.jar:5.1.9.RELEASE]
>         at org.springframework.orm.jpa.JpaTransactionManager.doSetRollbackOnly(JpaTransactionManager.java:581) ~[spring-orm-5.1.9.RELEASE.jar:5.1.9.RELEASE]
>         at org.springframework.transaction.support.AbstractPlatformTransactionManager.processRollback(AbstractPlatformTransactionManager.java:847) ~[spring-tx-5.1.9.RELEASE.jar:5.1.9.RELEASE]
>         at org.springframework.transaction.support.AbstractPlatformTransactionManager.rollback(AbstractPlatformTransactionManager.java:812) ~[spring-tx-5.1.9.RELEASE.jar:5.1.9.RELEASE]
>         at org.springframework.transaction.interceptor.TransactionAspectSupport.completeTransactionAfterThrowing(TransactionAspectSupport.java:552) ~[spring-tx-5.1.9.RELEASE.jar:5.1.9.RELEASE]
>         at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:299) ~[spring-tx-5.1.9.RELEASE.jar:5.1.9.RELEASE]
>         at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:98) ~[spring-tx-5.1.9.RELEASE.jar:5.1.9.RELEASE]
>         at org.apache.syncope.core.persistence.jpa.spring.DomainTransactionInterceptor.invoke(DomainTransactionInterceptor.java:60) ~[syncope-core-persistence-jpa-2.1.5.jar:2.1.5]
>         at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.1.9.RELEASE.jar:5.1.9.RELEASE]
>         at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:212) ~[spring-aop-5.1.9.RELEASE.jar:5.1.9.RELEASE]
>         at com.sun.proxy.$Proxy86.getUserTO(Unknown Source) ~[?:?]
>         at org.apache.syncope.core.provisioning.java.pushpull.DefaultUserPullResultHandler.getAnyTO(DefaultUserPullResultHandler.java:62) ~[syncope-core-provisioning-java-2.1.5.jar:2.1.5]
>         at org.apache.syncope.core.provisioning.java.pushpull.DefaultUserPullResultHandler.doCreate(DefaultUserPullResultHandler.java:80) ~[syncope-core-provisioning-java-2.1.5.jar:2.1.5]
>         at org.apache.syncope.core.provisioning.java.pushpull.AbstractPullResultHandler.create(AbstractPullResultHandler.java:272) ~[syncope-core-provisioning-java-2.1.5.jar:2.1.5]
>         at org.apache.syncope.core.provisioning.java.pushpull.AbstractPullResultHandler.provision(AbstractPullResultHandler.java:236) ~[syncope-core-provisioning-java-2.1.5.jar:2.1.5]
>         at org.apache.syncope.core.provisioning.java.pushpull.AbstractPullResultHandler.doHandle(AbstractPullResultHandler.java:816) ~[syncope-core-provisioning-java-2.1.5.jar:2.1.5]
>         at org.apache.syncope.core.provisioning.java.pushpull.AbstractPullResultHandler.handle(AbstractPullResultHandler.java:123) ~[syncope-core-provisioning-java-2.1.5.jar:2.1.5]
>         at sun.reflect.GeneratedMethodAccessor749.invoke(Unknown Source) ~[?:?]
>         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_222]
>         at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_222]
>         at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:343) ~[spring-aop-5.1.9.RELEASE.jar:5.1.9.RELEASE]
>         at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:198) ~[spring-aop-5.1.9.RELEASE.jar:5.1.9.RELEASE]
>         at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) ~[spring-aop-5.1.9.RELEASE.jar:5.1.9.RELEASE]
>         at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:295) ~[spring-tx-5.1.9.RELEASE.jar:5.1.9.RELEASE]
>         at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:98) ~[spring-tx-5.1.9.RELEASE.jar:5.1.9.RELEASE]
>         at org.apache.syncope.core.persistence.jpa.spring.DomainTransactionInterceptor.invoke(DomainTransactionInterceptor.java:60) ~[syncope-core-persistence-jpa-2.1.5.jar:2.1.5]
>         at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.1.9.RELEASE.jar:5.1.9.RELEASE]
>         at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:212) ~[spring-aop-5.1.9.RELEASE.jar:5.1.9.RELEASE]
>         at com.sun.proxy.$Proxy353.handle(Unknown Source) ~[?:?]
>         at org.apache.syncope.core.provisioning.java.ConnectorFacadeProxy$1.handle(ConnectorFacadeProxy.java:340) ~[syncope-core-provisioning-java-2.1.5.jar:2.1.5]
>         at org.apache.syncope.core.provisioning.java.ConnectorFacadeProxy$2.handle(ConnectorFacadeProxy.java:464) ~[syncope-core-provisioning-java-2.1.5.jar:2.1.5]
>         at org.identityconnectors.framework.impl.api.StreamHandlerUtil$ObjectStreamHandlerAdapter.handle(StreamHandlerUtil.java:101) ~[connector-framework-internal-1.5.0.1.jar:?]
>         at org.identityconnectors.framework.impl.api.BufferedResultsProxy.invoke(BufferedResultsProxy.java:262) ~[connector-framework-internal-1.5.0.1.jar:?]
>         at org.identityconnectors.framework.impl.api.DelegatingTimeoutProxy.invoke(DelegatingTimeoutProxy.java:94) ~[connector-framework-internal-1.5.0.1.jar:?]
>         at com.sun.proxy.$Proxy354.search(Unknown Source) ~[?:?]
>         at org.identityconnectors.framework.impl.api.AbstractConnectorFacade.search(AbstractConnectorFacade.java:183) ~[connector-framework-internal-1.5.0.1.jar:?]
>         at org.apache.syncope.core.provisioning.java.ConnectorFacadeProxy.search(ConnectorFacadeProxy.java:454) ~[syncope-core-provisioning-java-2.1.5.jar:2.1.5]
>         at org.apache.syncope.core.provisioning.java.ConnectorFacadeProxy.filteredReconciliation(ConnectorFacadeProxy.java:331) ~[syncope-core-provisioning-java-2.1.5.jar:2.1.5]
>         at org.apache.syncope.core.provisioning.java.ConnectorFacadeProxy.fullReconciliation(ConnectorFacadeProxy.java:313) ~[syncope-core-provisioning-java-2.1.5.jar:2.1.5]
>         at org.apache.syncope.core.provisioning.java.pushpull.PullJobDelegate.doExecuteProvisioning(PullJobDelegate.java:349) ~[syncope-core-provisioning-java-2.1.5.jar:2.1.5]
>         at org.apache.syncope.core.provisioning.java.pushpull.PullJobDelegate.doExecuteProvisioning(PullJobDelegate.java:67) ~[syncope-core-provisioning-java-2.1.5.jar:2.1.5]
>         at org.apache.syncope.core.provisioning.java.pushpull.AbstractProvisioningJobDelegate.doExecute(AbstractProvisioningJobDelegate.java:553) ~[syncope-core-provisioning-java-2.1.5.jar:2.1.5]
>         at org.apache.syncope.core.provisioning.java.job.AbstractSchedTaskJobDelegate.execute(AbstractSchedTaskJobDelegate.java:122) ~[syncope-core-provisioning-java-2.1.5.jar:2.1.5]
>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_222]
>         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_222]
>         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_222]
>         at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_222]
>         at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:343) ~[spring-aop-5.1.9.RELEASE.jar:5.1.9.RELEASE]
>         at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:198) ~[spring-aop-5.1.9.RELEASE.jar:5.1.9.RELEASE]
>         at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) ~[spring-aop-5.1.9.RELEASE.jar:5.1.9.RELEASE]
>         at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:295) ~[spring-tx-5.1.9.RELEASE.jar:5.1.9.RELEASE]
>         ... 10 more
> {code}
>  
> I don't really understand why this error is happening, but from googling, and threads such as:
>  
> [https://stackoverflow.com/questions/25322658/could-not-commit-jpa-transaction-transaction-marked-as-rollbackonly]
>  
> that seems to indicate that the problem might be a problem with Syncope code (but I don't understand why it would only happen with larger CSV files)?
>  
> Is there something that we can do, configuration-wise, to avoid this problem?



--
This message was sent by Atlassian Jira
(v8.3.4#803005)