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 EA2AC2009F9 for ; Mon, 23 May 2016 20:42:14 +0200 (CEST) Received: by cust-asf.ponee.io (Postfix) id E8CBE160A05; Mon, 23 May 2016 18:42:14 +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 1CEC4160A24 for ; Mon, 23 May 2016 20:42:13 +0200 (CEST) Received: (qmail 93694 invoked by uid 500); 23 May 2016 18:42:13 -0000 Mailing-List: contact dev-help@synapse.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@synapse.apache.org Delivered-To: mailing list dev@synapse.apache.org Received: (qmail 93564 invoked by uid 99); 23 May 2016 18:42:13 -0000 Received: from arcas.apache.org (HELO arcas) (140.211.11.28) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 23 May 2016 18:42:13 +0000 Received: from arcas.apache.org (localhost [127.0.0.1]) by arcas (Postfix) with ESMTP id E7B5E2C1F6B for ; Mon, 23 May 2016 18:42:12 +0000 (UTC) Date: Mon, 23 May 2016 18:42:12 +0000 (UTC) From: "Senduran (JIRA)" To: dev@synapse.apache.org Message-ID: In-Reply-To: References: Subject: [jira] [Commented] (SYNAPSE-1015) Message building fails at high concurrency when the outsequence is content aware MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394 archived-at: Mon, 23 May 2016 18:42:15 -0000 [ https://issues.apache.org/jira/browse/SYNAPSE-1015?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15296852#comment-15296852 ] Senduran commented on SYNAPSE-1015: ----------------------------------- Reason for this is, Pipe class has two variables(inBufferInputMode, outBufferInputMode) which are corresponding to its buffer and outputBuffer's read/write flag. And setting the read / write mode is happening by passing the AtomicBoolean and buffer. Even though we have used compare and set. at high concurrency this does not behave as expected. Making the buffer self contained with its corresponding read / write flag eliminates this issue. As a fix I have wrapped the ByteBuffer with an atomic boolean (called ControlledByteBuffer), and using it instead of bytebuffer, setting to read mode / write mode logic is written in controlledByteBuffer. > Message building fails at high concurrency when the outsequence is content aware > --------------------------------------------------------------------------------- > > Key: SYNAPSE-1015 > URL: https://issues.apache.org/jira/browse/SYNAPSE-1015 > Project: Synapse > Issue Type: Bug > Components: Core, Transports > Affects Versions: 2.1 > Reporter: Senduran > Assignee: Hiranya Jayathilaka > > When invoke the following proxy at a concurrency (around 200) > {code:xml} > name="HelloProxy" > transports="https,http" > statistics="disable" > trace="disable" > startOnLoad="true"> > > > > >
> > > > > > > a > > > > > > > > > > {code} > Following exception occurs after a while, > {code} > 2016-05-23 23:51:09,455 [-] [PassThroughMessageProcessor-30] ERROR RelayUtils Error while building PassThrough stream > org.apache.axiom.om.DeferredParsingException: com.ctc.wstx.exc.WstxUnexpectedCharException: Illegal character (NULL, unicode 0) encountered: not valid in any content > at [row,col {unknown-source}]: [1,1] > at org.apache.axiom.om.impl.builder.StAXOMBuilder.parserNext(StAXOMBuilder.java:681) > at org.apache.axiom.om.impl.builder.StAXOMBuilder.next(StAXOMBuilder.java:184) > at org.apache.axiom.core.CoreParentNodeSupport.ajc$interMethod$org_apache_axiom_core_CoreParentNodeSupport$org_apache_axiom_core_CoreParentNode$buildNext(CoreParentNodeSupport.aj:96) > at org.apache.axiom.om.impl.llom.OMDocumentImpl.buildNext(OMDocumentImpl.java:1) > at org.apache.axiom.core.CoreParentNodeSupport.ajc$interMethodDispatch1$org_apache_axiom_core_CoreParentNodeSupport$org_apache_axiom_core_CoreParentNode$buildNext(CoreParentNodeSupport.aj) > at org.apache.axiom.core.CoreParentNodeSupport.ajc$interMethod$org_apache_axiom_core_CoreParentNodeSupport$org_apache_axiom_core_CoreParentNode$coreGetFirstChild(CoreParentNodeSupport.aj:113) > at org.apache.axiom.om.impl.llom.OMDocumentImpl.coreGetFirstChild(OMDocumentImpl.java:1) > at org.apache.axiom.core.CoreParentNodeSupport.ajc$interMethodDispatch1$org_apache_axiom_core_CoreParentNodeSupport$org_apache_axiom_core_CoreParentNode$coreGetFirstChild(CoreParentNodeSupport.aj) > at org.apache.axiom.core.CoreDocumentSupport.ajc$interMethod$org_apache_axiom_core_CoreDocumentSupport$org_apache_axiom_core_CoreDocument$coreGetDocumentElement(CoreDocumentSupport.aj:42) > at org.apache.axiom.om.impl.llom.OMDocumentImpl.coreGetDocumentElement(OMDocumentImpl.java:1) > at org.apache.axiom.om.impl.common.AxiomDocumentSupport.ajc$interMethod$org_apache_axiom_om_impl_common_AxiomDocumentSupport$org_apache_axiom_om_impl_intf_AxiomDocument$getOMDocumentElement(AxiomDocumentSupport.aj:32) > at org.apache.axiom.om.impl.llom.OMDocumentImpl.getOMDocumentElement(OMDocumentImpl.java:1) > at org.apache.axiom.om.impl.builder.StAXOMBuilder.getDocumentElement(StAXOMBuilder.java:557) > at org.apache.axiom.om.impl.builder.StAXOMBuilder.getDocumentElement(StAXOMBuilder.java:553) > at org.apache.axis2.builder.SOAPBuilder.processDocument(SOAPBuilder.java:53) > at org.apache.synapse.transport.passthru.util.DeferredMessageBuilder.getDocument(DeferredMessageBuilder.java:114) > at org.apache.synapse.transport.passthru.util.RelayUtils.buildMessage(RelayUtils.java:146) > at org.apache.synapse.transport.passthru.util.RelayUtils.buildMessage(RelayUtils.java:86) > at org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:62) > at org.apache.synapse.mediators.base.SequenceMediator.mediate(SequenceMediator.java:114) > at org.apache.synapse.core.axis2.Axis2SynapseEnvironment.injectMessage(Axis2SynapseEnvironment.java:230) > at org.apache.synapse.core.axis2.SynapseCallbackReceiver.handleMessage(SynapseCallbackReceiver.java:444) > at org.apache.synapse.core.axis2.SynapseCallbackReceiver.receive(SynapseCallbackReceiver.java:221) > at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:169) > at org.apache.synapse.transport.passthru.ClientWorker.run(ClientWorker.java:221) > at org.apache.axis2.transport.base.threads.NativeWorkerPool$1.run(NativeWorkerPool.java:173) > at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) > at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) > at java.lang.Thread.run(Thread.java:745) > Caused by: com.ctc.wstx.exc.WstxUnexpectedCharException: Illegal character (NULL, unicode 0) encountered: not valid in any content > at [row,col {unknown-source}]: [1,1] > at com.ctc.wstx.sr.StreamScanner.constructNullCharException(StreamScanner.java:630) > at com.ctc.wstx.sr.StreamScanner.throwInvalidSpace(StreamScanner.java:660) > at com.ctc.wstx.sr.StreamScanner.throwInvalidSpace(StreamScanner.java:651) > at com.ctc.wstx.sr.BasicStreamReader.readSpacePrimary(BasicStreamReader.java:4965) > at com.ctc.wstx.sr.BasicStreamReader.nextFromProlog(BasicStreamReader.java:2008) > at com.ctc.wstx.sr.BasicStreamReader.next(BasicStreamReader.java:1134) > at org.apache.axiom.util.stax.wrapper.XMLStreamReaderWrapper.next(XMLStreamReaderWrapper.java:225) > at org.apache.axiom.util.stax.dialect.DisallowDoctypeDeclStreamReaderWrapper.next(DisallowDoctypeDeclStreamReaderWrapper.java:34) > at org.apache.axiom.util.stax.wrapper.XMLStreamReaderWrapper.next(XMLStreamReaderWrapper.java:225) > at org.apache.axiom.om.impl.builder.StAXOMBuilder.parserNext(StAXOMBuilder.java:666) > ... 28 more > {code} -- This message was sent by Atlassian JIRA (v6.3.4#6332) --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscribe@synapse.apache.org For additional commands, e-mail: dev-help@synapse.apache.org