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

[jira] [Comment Edited] (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:comment-tabpanel&focusedCommentId=17071487#comment-17071487 ] 

ohaya edited comment on SYNCOPE-1550 at 3/31/20, 12:31 PM:
-----------------------------------------------------------

There were some "User cannot be created" errors before the JPA exception, but they were not immediately before, so I hadn't included them.  However, I have the entire core.log from that run, which I am attaching here.

 

NOTE: The first" Could not create USER uid21829" message appears about some time after the 20000th user had been processed.  The test users UIDs are sequential, so at least for that one run, specifically the 21829th user.


was (Author: ohaya):
There were some "User cannot be created" errors before the JPA exception, but they were not immediately before, so I hadn't included them.  However, I have the entire core.log from that run, which I am attaching here.

> 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
>         Attachments: core.log-A-40K-users-but-had-error
>
>
> 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)