ODE
  1. ODE
  2. ODE-644

INTERNAL ERROR: No ENTRY for RESPONSE CHANNEL [xy]

    Details

    • Type: Bug Bug
    • Status: Resolved
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 1.3.2, 2.0
    • Fix Version/s: 1.3.3, 2.0
    • Component/s: BPEL Runtime
    • Labels:
      None

      Description

      When a receive activity is repeated for the same partner link and operation (for example a pick activity inside of a while loop) the second message with often result inINTERNAL ERROR: No ENTRY for RESPONSE CHANNEL [xy] where xy ends up being the id of the old channel used for the first receive. In the JPA case this is because org.apache.ode.dao.jpa.CorrelatorDAOImpl removeLocalRoutes calls EntityManager remove but since it is using managed transactions these changes are not necessarily committed immediately.

      The mem dao should be unaffected by this, still need to test hibernate but it appears safe.

      1. responsechannel_hib_1x.diff
        1 kB
        William McCusker
      2. responsechannel_hib_trunk.diff
        1 kB
        William McCusker
      3. responsechannel_jpa_1x.diff
        0.9 kB
        William McCusker
      4. responsechannel_trunk_jpa.diff
        0.9 kB
        William McCusker

        Activity

        Hide
        William McCusker added a comment -

        patch for 1x jpa

        Show
        William McCusker added a comment - patch for 1x jpa
        Hide
        William McCusker added a comment -

        jpa patch for trunk

        Show
        William McCusker added a comment - jpa patch for trunk
        Hide
        William McCusker added a comment -

        Looking back in the user mailing list I see someone did report seeing this same issue with hibernate.

        Show
        William McCusker added a comment - Looking back in the user mailing list I see someone did report seeing this same issue with hibernate.
        Hide
        William McCusker added a comment -

        I have not been able to reproduce this issue using hibernate with the embedded derby database, however the theory is the same as for jpa. Hibernate does not guarantee when statements as flushed which is most likely why this is difficult to reproduce. Explicitly calling Session.flush should ensure that old routes are not reused when they are scheduled to be removed.

        Show
        William McCusker added a comment - I have not been able to reproduce this issue using hibernate with the embedded derby database, however the theory is the same as for jpa. Hibernate does not guarantee when statements as flushed which is most likely why this is difficult to reproduce. Explicitly calling Session.flush should ensure that old routes are not reused when they are scheduled to be removed.
        Hide
        Alex Boisvert added a comment -

        Patches applied. Thanks Bill!!

        boisvert@sixtine:~/svn/ode/1.1$ svn commit -m "ODE-644: INTERNAL ERROR: No ENTRY for RESPONSE CHANNEL [xy]"
        Sending dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/CorrelatorDaoImpl.java
        Sending dao-jpa/src/main/java/org/apache/ode/dao/jpa/CorrelatorDAOImpl.java
        Transmitting file data ..
        Committed revision 802257.

        boisvert@sixtine:~/svn/ode/trunk$ svn commit -m "ODE-644: INTERNAL ERROR: No ENTRY for RESPONSE CHANNEL [xy]"
        Sending dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/CorrelatorDaoImpl.java
        Sending dao-jpa/src/main/java/org/apache/ode/dao/jpa/CorrelatorDAOImpl.java
        Transmitting file data ..
        Committed revision 802258.

        Show
        Alex Boisvert added a comment - Patches applied. Thanks Bill!! boisvert@sixtine:~/svn/ode/1.1$ svn commit -m " ODE-644 : INTERNAL ERROR: No ENTRY for RESPONSE CHANNEL [xy] " Sending dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/CorrelatorDaoImpl.java Sending dao-jpa/src/main/java/org/apache/ode/dao/jpa/CorrelatorDAOImpl.java Transmitting file data .. Committed revision 802257. boisvert@sixtine:~/svn/ode/trunk$ svn commit -m " ODE-644 : INTERNAL ERROR: No ENTRY for RESPONSE CHANNEL [xy] " Sending dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/CorrelatorDaoImpl.java Sending dao-jpa/src/main/java/org/apache/ode/dao/jpa/CorrelatorDAOImpl.java Transmitting file data .. Committed revision 802258.
        Hide
        William McCusker added a comment -

        Welcome.

        Show
        William McCusker added a comment - Welcome.
        Hide
        William Liu added a comment -

        Hi, All!

        Sorry to bother again! But have this bug been fixed in 1.3.3? I'm still facing the same error just in the scenario as William described: When a receive activity is repeated for the same partner link and operation (for example a pick activity inside of a while loop) the second message with often result inINTERNAL ERROR: No ENTRY for RESPONSE CHANNEL [xy]

        To fix this bug, do I need to download 1.x sources and apply your patches and build ODE myself?

        Thank you very much!

        Show
        William Liu added a comment - Hi, All! Sorry to bother again! But have this bug been fixed in 1.3.3? I'm still facing the same error just in the scenario as William described: When a receive activity is repeated for the same partner link and operation (for example a pick activity inside of a while loop) the second message with often result inINTERNAL ERROR: No ENTRY for RESPONSE CHANNEL [xy] To fix this bug, do I need to download 1.x sources and apply your patches and build ODE myself? Thank you very much!
        Hide
        Phil added a comment -

        Hi,

        I just stumpled upon this issue using ODE 2.0 beta2. So I guess this not fixed there yet, or have I found a new problem?

        In my case, the error occurs after a receive from the outside, but unfortunately not always. A second message with the same content then usually works.

        DEBUG - GeronimoLog.debug(66) | handleWorkEvent: MYROLE_INVOKE event for process instance 152
        FATAL - GeronimoLog.fatal(116) | INTERNAL ERROR: No ENTRY for RESPONSE CHANNEL 180
        ERROR - GeronimoLog.error(108) | Work for instance

        {http://www.example.com/exampleProcess}

        ExampleProcess-1#152 in thread Thread[ODEServerImpl-10,5,main] resulted in an exception.
        org.apache.ode.bpel.iapi.BpelEngineException: java.lang.IllegalArgumentException: INTERNAL ERROR: No ENTRY for RESPONSE CHANNEL 180
        at org.apache.ode.bpel.engine.Contexts.execTransaction(Contexts.java:92)

        The instance mentioned (152) is in fact the wrong one; it has already terminated.

        What is the status of this bug?

        Thanks.

        Phil

        Show
        Phil added a comment - Hi, I just stumpled upon this issue using ODE 2.0 beta2. So I guess this not fixed there yet, or have I found a new problem? In my case, the error occurs after a receive from the outside, but unfortunately not always. A second message with the same content then usually works. DEBUG - GeronimoLog.debug(66) | handleWorkEvent: MYROLE_INVOKE event for process instance 152 FATAL - GeronimoLog.fatal(116) | INTERNAL ERROR: No ENTRY for RESPONSE CHANNEL 180 ERROR - GeronimoLog.error(108) | Work for instance {http://www.example.com/exampleProcess} ExampleProcess-1#152 in thread Thread [ODEServerImpl-10,5,main] resulted in an exception. org.apache.ode.bpel.iapi.BpelEngineException: java.lang.IllegalArgumentException: INTERNAL ERROR: No ENTRY for RESPONSE CHANNEL 180 at org.apache.ode.bpel.engine.Contexts.execTransaction(Contexts.java:92) The instance mentioned (152) is in fact the wrong one; it has already terminated. What is the status of this bug? Thanks. Phil
        Hide
        Thomas Haitzer added a comment -

        Hi,

        I just got this error in ODE 1.3.4 by having a implemented a counter-example with exactly the pick activity inside a while loop.

        Calling the method for the first time always works for me but when I try to call the same or another method with the same correlation set ... it will always result in this error:

        java.lang.IllegalArgumentException: INTERNAL ERROR: No ENTRY for RESPONSE CHANNEL

        I am not very experienced with ODE, but since it works for the first call .. I see no point why it should not for the second.

        The instance where it dispatches to is still ACTIVE.

        I do think this bug is in some form still active.

        Greetings ThoHai

        Show
        Thomas Haitzer added a comment - Hi, I just got this error in ODE 1.3.4 by having a implemented a counter-example with exactly the pick activity inside a while loop. Calling the method for the first time always works for me but when I try to call the same or another method with the same correlation set ... it will always result in this error: java.lang.IllegalArgumentException: INTERNAL ERROR: No ENTRY for RESPONSE CHANNEL I am not very experienced with ODE, but since it works for the first call .. I see no point why it should not for the second. The instance where it dispatches to is still ACTIVE. I do think this bug is in some form still active. Greetings ThoHai

          People

          • Assignee:
            Unassigned
            Reporter:
            William McCusker
          • Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development