Hi Dushan,

Have we committed these changes into wso2esb-4.6.0? I am getting this error
when load testing.

thank you.


On Thu, Nov 29, 2012 at 11:39 AM, Dushan Abeyruwan <dus...@wso2.com> wrote:

> Hi
>   During the iterator operation for larger message observed following
> error, this is repeatable for NIO as well as PT,  while investigating the
> issue found out its due to  Linked list modification happens at different
> phases [1] [2] the problem has resolved once we introduced 
> *ConcurrentLinkedQueue
>  instad LinkedQueue any thoughts on the changers....?*
>
>
> At the AxisEngine
>
>   [1]   * @throws AxisFault
>      */
>     private static InvocationResponse invoke(MessageContext msgContext,
> boolean resuming)
>             throws AxisFault {
>
>         if (msgContext.getCurrentHandlerIndex() == -1) {
>             msgContext.setCurrentHandlerIndex(0);
>         }
>
>         InvocationResponse pi = InvocationResponse.CONTINUE;
>
>         while (msgContext.getCurrentHandlerIndex() <
> msgContext.getExecutionChain().size()) {
>             Handler currentHandler = (Handler)
> msgContext.getExecutionChain().
>                     get(msgContext.getCurrentHandlerIndex());
>
>             try {
>                 if (!resuming) {
>                     msgContext.addExecutedPhase(currentHandler);
>                 } else {
>                     /* If we are resuming the flow, we don't want to add
> the phase
>                     * again, as it has already been added.
>                     */
>                     resuming = false;
>                 }
>                 pi = currentHandler.invoke(msgContext);
>             }
>
>
> ---------------------------------------------------------------------------------------
>
>     [2].    private static void flowComplete(MessageContext msgContext) {
>         Iterator<Handler> invokedPhaseIterator =
> msgContext.getExecutedPhases();
>
>         while (invokedPhaseIterator.hasNext()) {
>             Handler currentHandler = ((Handler)
> invokedPhaseIterator.next());
>             currentHandler.flowComplete(msgContext);
>         }
>
>         /*This is needed because the OutInAxisOperation currently invokes
>         * receive() even when a fault occurs, and we will have already
> executed
>         * the flowComplete on those before receiveFault() is called.
>         */
>         msgContext.resetExecutedPhases();
>     }
>
>
>  a
>
>
>     /**
>      * Add a Phase to the collection of executed phases for the path.
>      * Phases will be inserted in a LIFO data structure.
>      *
>      * @param phase The phase to add to the list.
>      */
>     public void addExecutedPhase(Handler phase) {
>         if (executedPhases == null) {
>             executedPhases = new LinkedList<Handler>();
>         }
>         executedPhases.addFirst(phase);
>     }
>
>     /**
>      * Remove the first Phase in the collection of executed phases
>      */
>     public void removeFirstExecutedPhase() {
>         if (executedPhases != null) {
>             executedPhases.removeFirst();
>         }
>     }
>
> 43/carbon/
> [2012-11-29 10:55:45,570]  INFO - TimeoutHandler This engine will expire
> all callbacks after : 120 seconds, irrespective of the timeout action,
> after the specified or optional timeout
> Listening for transport dt_socket at address: 8888
> [2012-11-29 10:55:48,369] ERROR - NativeWorkerPool Uncaught exception
> java.util.ConcurrentModificationException
> at java.util.LinkedList$ListItr.checkForComodification(LinkedList.java:761)
>  at java.util.LinkedList$ListItr.next(LinkedList.java:696)
> at org.apache.axis2.engine.AxisEngine.flowComplete(AxisEngine.java:293)
>  at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:182)
> at
> org.apache.synapse.transport.passthru.ClientWorker.run(ClientWorker.java:217)
>  at
> org.apache.axis2.transport.base.threads.NativeWorkerPool$1.run(NativeWorkerPool.java:172)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
>  at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
> at java.lang.Thread.run(Thread.java:662)
> [2012-11-29 10:55:55,462] ERROR - NativeWorkerPool Uncaught exception
> java.util.ConcurrentModificationException
> at java.util.LinkedList$ListItr.checkForComodification(LinkedList.java:761)
>  at java.util.LinkedList$ListItr.next(LinkedList.java:696)
> at org.apache.axis2.engine.AxisEngine.flowComplete(AxisEngine.java:293)
>  at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:182)
> at
> org.apache.synapse.transport.passthru.ClientWorker.run(ClientWorker.java:217)
>  at
> org.apache.axis2.transport.base.threads.NativeWorkerPool$1.run(NativeWorkerPool.java:172)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
>  at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
> at java.lang.Thread.run(Thread.java:662)
> [2012-11-29 10:55:55,484] ERROR - NativeWorkerPool Uncaught exception
> java.util.ConcurrentModificationException
> at java.util.LinkedList$ListItr.checkForComodification(LinkedList.java:761)
>  at java.util.LinkedList$ListItr.next(LinkedList.java:696)
> at org.apache.axis2.engine.AxisEngine.flowComplete(AxisEngine.java:293)
>  at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:182)
> at
> org.apache.synapse.transport.passthru.ClientWorker.run(ClientWorker.java:217)
>  at
> org.apache.axis2.transport.base.threads.NativeWorkerPool$1.run(NativeWorkerPool.java:172)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
>  at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
> at java.lang.Thread.run(Thread.java:662)
> [2012-11-29 10:55:56,040] ERROR - NativeWorkerPool Uncaught exception
> java.util.ConcurrentModificationException
> at java.util.LinkedList$ListItr.checkForComodification(LinkedList.java:761)
>  at java.util.LinkedList$ListItr.next(LinkedList.java:696)
> at org.apache.axis2.engine.AxisEngine.flowComplete(AxisEngine.java:293)
>  at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:182)
> at
> org.apache.synapse.transport.passthru.ClientWorker.run(ClientWorker.java:217)
>  at
> org.apache.axis2.transport.base.threads.NativeWorkerPool$1.run(NativeWorkerPool.java:172)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
>  at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
> at java.lang.Thread.run(Thread.java:662)
> [2012-11-29 10:55:56,263] ERROR - NativeWorkerPool Uncaught exception
> java.util.ConcurrentModificationException
> at java.util.LinkedList$ListItr.checkForComodification(LinkedList.java:761)
>  at java.util.LinkedList$ListItr.next(LinkedList.java:696)
> at org.apache.axis2.engine.AxisEngine.flowComplete(AxisEngine.java:293)
>  at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:182)
> at
> org.apache.synapse.transport.passthru.ClientWorker.run(ClientWorker.java:217)
>  at
> org.apache.axis2.transport.base.threads.NativeWorkerPool$1.run(NativeWorkerPool.java:172)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
>  at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
> a
>
>
>
> cheers,
> Dushan Abeyruwan
> *Senior Software Engineer*
> *Integration Technologies Team*
> *WSO2 Inc. http://wso2.com/*
> *Mobile:(+94)714408632*
>
>
> _______________________________________________
> Dev mailing list
> Dev@wso2.org
> http://wso2.org/cgi-bin/mailman/listinfo/dev
>
>


-- 
Manjula Rathnayaka
Software Engineer
WSO2, Inc.
Mobile:+94 77 743 1987
_______________________________________________
Dev mailing list
Dev@wso2.org
http://wso2.org/cgi-bin/mailman/listinfo/dev

Reply via email to