Return-Path: X-Original-To: archive-asf-public-internal@cust-asf2.ponee.io Delivered-To: archive-asf-public-internal@cust-asf2.ponee.io Received: from cust-asf.ponee.io (cust-asf.ponee.io [163.172.22.183]) by cust-asf2.ponee.io (Postfix) with ESMTP id AC115200D60 for ; Fri, 1 Dec 2017 11:44:05 +0100 (CET) Received: by cust-asf.ponee.io (Postfix) id AA63D160BFB; Fri, 1 Dec 2017 10:44:05 +0000 (UTC) Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by cust-asf.ponee.io (Postfix) with SMTP id C9B73160C18 for ; Fri, 1 Dec 2017 11:44:04 +0100 (CET) Received: (qmail 62364 invoked by uid 500); 1 Dec 2017 10:44:04 -0000 Mailing-List: contact dev-help@syncope.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@syncope.apache.org Delivered-To: mailing list dev@syncope.apache.org Received: (qmail 62250 invoked by uid 99); 1 Dec 2017 10:44:03 -0000 Received: from pnap-us-west-generic-nat.apache.org (HELO spamd3-us-west.apache.org) (209.188.14.142) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 01 Dec 2017 10:44:03 +0000 Received: from localhost (localhost [127.0.0.1]) by spamd3-us-west.apache.org (ASF Mail Server at spamd3-us-west.apache.org) with ESMTP id 0D3B11807B2 for ; Fri, 1 Dec 2017 10:44:03 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at spamd3-us-west.apache.org X-Spam-Flag: NO X-Spam-Score: -100.002 X-Spam-Level: X-Spam-Status: No, score=-100.002 tagged_above=-999 required=6.31 tests=[RP_MATCHES_RCVD=-0.001, SPF_PASS=-0.001, USER_IN_WHITELIST=-100] autolearn=disabled Received: from mx1-lw-us.apache.org ([10.40.0.8]) by localhost (spamd3-us-west.apache.org [10.40.0.10]) (amavisd-new, port 10024) with ESMTP id z034xo_CVOto for ; Fri, 1 Dec 2017 10:44:01 +0000 (UTC) Received: from mailrelay1-us-west.apache.org (mailrelay1-us-west.apache.org [209.188.14.139]) by mx1-lw-us.apache.org (ASF Mail Server at mx1-lw-us.apache.org) with ESMTP id 12DF95F1BA for ; Fri, 1 Dec 2017 10:44:01 +0000 (UTC) Received: from jira-lw-us.apache.org (unknown [207.244.88.139]) by mailrelay1-us-west.apache.org (ASF Mail Server at mailrelay1-us-west.apache.org) with ESMTP id 8562BE0A6D for ; Fri, 1 Dec 2017 10:44:00 +0000 (UTC) Received: from jira-lw-us.apache.org (localhost [127.0.0.1]) by jira-lw-us.apache.org (ASF Mail Server at jira-lw-us.apache.org) with ESMTP id 46D5E21065 for ; Fri, 1 Dec 2017 10:44:00 +0000 (UTC) Date: Fri, 1 Dec 2017 10:44:00 +0000 (UTC) From: =?utf-8?Q?Francesco_Chicchiricc=C3=B2_=28JIRA=29?= To: dev@syncope.apache.org Message-ID: In-Reply-To: References: Subject: [jira] [Created] (SYNCOPE-1241) Under high load propagation after pull might fail MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394 archived-at: Fri, 01 Dec 2017 10:44:05 -0000 Francesco Chicchiricc=C3=B2 created SYNCOPE-1241: ----------------------------------------------- Summary: Under high load propagation after pull might fail Key: SYNCOPE-1241 URL: https://issues.apache.org/jira/browse/SYNCOPE-1241 Project: Syncope Issue Type: Bug Components: core Affects Versions: 2.0.6 Reporter: Francesco Chicchiricc=C3=B2 Assignee: Francesco Chicchiricc=C3=B2 Fix For: 2.0.7, 2.1.0 The [PriorityPropagationTaskExecutor|https://github.com/apache/syncope/blob= /2_0_X/core/provisioning-java/src/main/java/org/apache/syncope/core/provisi= oning/java/propagation/PriorityPropagationTaskExecutor.java] is designed to= run the assigned PropagationTask instance via a {{CompletionService}}, e.g= . potentially in a separate thread. Dach PropagationTask instance carries a reference to ExternalResource, and = in the end to the underlying JDBC connection (via OpenJPA); given what said= above, it might happen that a PropagationTask is executed in a different t= hread than the one it was created in, resulting in errors as follows: {code} ERROR org.apache.syncope.core.provisioning.api.propagation.PropagationTaskE= xecutor - Exception during provision on resource USERSCHED-write org.apache.openjpa.persistence.PersistenceException: This statement has bee= n closed. at org.apache.openjpa.jdbc.sql.DBDictionary.narrow(DBDictionary.jav= a:5003) ~[openjpa-jdbc-2.4.2.jar:2.4.2] at org.apache.openjpa.jdbc.sql.DBDictionary.newStoreException(DBDic= tionary.java:4963) ~[openjpa-jdbc-2.4.2.jar:2.4.2] at org.apache.openjpa.jdbc.sql.SQLExceptions.getStore(SQLExceptions= .java:133) ~[openjpa-jdbc-2.4.2.jar:2.4.2] at org.apache.openjpa.jdbc.sql.SQLExceptions.getStore(SQLExceptions= .java:115) ~[openjpa-jdbc-2.4.2.jar:2.4.2] at org.apache.openjpa.jdbc.sql.SQLExceptions.getStore(SQLExceptions= .java:67) ~[openjpa-jdbc-2.4.2.jar:2.4.2] at org.apache.openjpa.jdbc.kernel.JDBCStoreManager.load(JDBCStoreMa= nager.java:687) ~[openjpa-jdbc-2.4.2.jar:2.4.2] at org.apache.openjpa.kernel.DelegatingStoreManager.load(Delegating= StoreManager.java:117) ~[openjpa-kernel-2.4.2.jar:2.4.2] at org.apache.openjpa.datacache.DataCacheStoreManager.load(DataCach= eStoreManager.java:462) ~[openjpa-kernel-2.4.2.jar:2.4.2] at org.apache.openjpa.kernel.DelegatingStoreManager.load(Delegating= StoreManager.java:117) ~[openjpa-kernel-2.4.2.jar:2.4.2] at org.apache.openjpa.kernel.ROPStoreManager.load(ROPStoreManager.j= ava:78) ~[openjpa-kernel-2.4.2.jar:2.4.2] at org.apache.openjpa.kernel.StateManagerImpl.loadFields(StateManag= erImpl.java:3145) ~[openjpa-kernel-2.4.2.jar:2.4.2] at org.apache.openjpa.kernel.StateManagerImpl.loadField(StateManage= rImpl.java:3225) ~[openjpa-kernel-2.4.2.jar:2.4.2] at org.apache.openjpa.kernel.StateManagerImpl.beforeAccessField(Sta= teManagerImpl.java:1690) ~[openjpa-kernel-2.4.2.jar:2.4.2] at org.apache.openjpa.kernel.StateManagerImpl.accessingField(StateM= anagerImpl.java:1624) ~[openjpa-kernel-2.4.2.jar:2.4.2] at org.apache.syncope.core.persistence.jpa.entity.resource.JPAExter= nalResource.pcGetorgUnit(JPAExternalResource.java) ~[syncope-core-persisten= ce-jpa-2.0.6.jar:2.0.6] at org.apache.syncope.core.persistence.jpa.entity.resource.JPAExter= nalResource.getOrgUnit(JPAExternalResource.java:238) ~[syncope-core-persist= ence-jpa-2.0.6.jar:2.0.6] at org.apache.syncope.core.provisioning.java.propagation.AbstractPr= opagationTaskExecutor.execute(AbstractPropagationTaskExecutor.java:389) ~[s= yncope-core-provisioning-java-2.0.6.jar:2.0.6] at org.apache.syncope.core.provisioning.java.propagation.DefaultPro= pagationTaskCallable.call(DefaultPropagationTaskCallable.java:89) ~[syncope= -core-provisioning-java-2.0.6.jar:2.0.6] at org.apache.syncope.core.provisioning.java.propagation.DefaultPro= pagationTaskCallable.call(DefaultPropagationTaskCallable.java:38) ~[syncope= -core-provisioning-java-2.0.6.jar:2.0.6] at sun.reflect.GeneratedMethodAccessor798.invoke(Unknown Source) ~[= ?:?] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethod= AccessorImpl.java:43) ~[?:1.8.0_151] at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_151] at org.springframework.aop.support.AopUtils.invokeJoinpointUsingRef= lection(AopUtils.java:333) ~[spring-aop-4.3.11.RELEASE.jar:4.3.11.RELEASE] at org.springframework.aop.framework.ReflectiveMethodInvocation.inv= okeJoinpoint(ReflectiveMethodInvocation.java:190) ~[spring-aop-4.3.11.RELEA= SE.jar:4.3.11.RELEASE] at org.springframework.aop.framework.ReflectiveMethodInvocation.pro= ceed(ReflectiveMethodInvocation.java:157) ~[spring-aop-4.3.11.RELEASE.jar:4= .3.11.RELEASE] at org.springframework.transaction.interceptor.TransactionIntercept= or$1.proceedWithInvocation(TransactionInterceptor.java:99) ~[spring-tx-4.3.= 11.RELEASE.jar:4.3.11.RELEASE] at org.springframework.transaction.interceptor.TransactionAspectSup= port.invokeWithinTransaction(TransactionAspectSupport.java:282) ~[spring-tx= -4.3.11.RELEASE.jar:4.3.11.RELEASE] at org.springframework.transaction.interceptor.TransactionIntercept= or.invoke(TransactionInterceptor.java:96) ~[spring-tx-4.3.11.RELEASE.jar:4.= 3.11.RELEASE] at org.apache.syncope.core.persistence.jpa.spring.DomainTransaction= Interceptor.invoke(DomainTransactionInterceptor.java:64) ~[syncope-core-per= sistence-jpa-2.0.6.jar:2.0.6] at org.springframework.aop.framework.ReflectiveMethodInvocation.pro= ceed(ReflectiveMethodInvocation.java:179) ~[spring-aop-4.3.11.RELEASE.jar:4= .3.11.RELEASE] at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkD= ynamicAopProxy.java:213) ~[spring-aop-4.3.11.RELEASE.jar:4.3.11.RELEASE] at com.sun.proxy.$Proxy295.call(Unknown Source) ~[?:?] at java.util.concurrent.FutureTask.run(FutureTask.java:266) ~[?:1.8= .0_151] at java.util.concurrent.Executors$RunnableAdapter.call(Executors.ja= va:511) ~[?:1.8.0_151] at java.util.concurrent.FutureTask.run(FutureTask.java:266) ~[?:1.8= .0_151] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExec= utor.java:1149) ~[?:1.8.0_151] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExe= cutor.java:624) ~[?:1.8.0_151] at java.lang.Thread.run(Thread.java:748) [?:1.8.0_151] Caused by: org.postgresql.util.PSQLException: This statement has been close= d. at org.postgresql.jdbc.PgStatement.checkClosed(PgStatement.java:647= ) ~[postgresql-42.1.1.jar:42.1.1] {code} Such errors are observed especially when, as a result of a PullTask executi= on, several PropagationTasks are generated and executed. -- This message was sent by Atlassian JIRA (v6.4.14#64029)