UIMA
  1. UIMA
  2. UIMA-1770

UIMA AS Aggregate Client sends FreeCas requests to a wrong broker

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 2.3AS
    • Fix Version/s: 2.3.1AS
    • Component/s: Async Scaleout
    • Labels:
      None

      Description

      When a remote Cas Multiplier input queue is managed by a different broker than its aggregate client's input queue, requests to free CAS are sent to a wrong broker. The aggregate client attempts to send it to a broker that manages its input queue instead of the broker that manages the CM queues. The result of this attempt is an exception:

      4/23/10 4:52:37 PM - 51: org.apache.uima.adapter.jms.activemq.JmsEndpointConnection_impl.send: WARNING:
      javax.jms.InvalidDestinationException: Cannot publish to a deleted Destination: temp-queue://ID:bj-55263-1272055444334-0:2:1
      at org.apache.activemq.ActiveMQSession.send(ActiveMQSession.java:1597)
      at org.apache.activemq.ActiveMQMessageProducer.send(ActiveMQMessageProducer.java:227)
      at org.apache.activemq.ActiveMQMessageProducerSupport.send(ActiveMQMessageProducerSupport.java:300)
      at org.apache.uima.adapter.jms.activemq.JmsEndpointConnection_impl.send(JmsEndpointConnection_impl.java:552)
      at org.apache.uima.adapter.jms.activemq.JmsOutputChannel.sendRequest(JmsOutputChannel.java:564)
      at org.apache.uima.aae.controller.AggregateAnalysisEngineController_impl.finalStep(AggregateAnalysisEngineController_impl.java:1758)
      at org.apache.uima.aae.controller.AggregateAnalysisEngineController_impl.executeFlowStep(AggregateAnalysisEngineController_impl.java:2172)
      at org.apache.uima.aae.controller.AggregateAnalysisEngineController_impl.process(AggregateAnalysisEngineController_impl.java:1206)
      at org.apache.uima.aae.handler.HandlerBase.invokeProcess(HandlerBase.java:118)
      at org.apache.uima.aae.handler.input.ProcessResponseHandler.cancelTimerAndProcess(ProcessResponseHandler.java:109)
      at org.apache.uima.aae.handler.input.ProcessResponseHandler.handleProcessResponseWithCASReference(ProcessResponseHandler.java:381)
      at org.apache.uima.aae.handler.input.ProcessResponseHandler.handle(ProcessResponseHandler.java:645)
      at org.apache.uima.aae.handler.HandlerBase.delegate(HandlerBase.java:149)
      at org.apache.uima.aae.handler.input.ProcessRequestHandler_impl.handle(ProcessRequestHandler_impl.java:987)
      at org.apache.uima.aae.spi.transport.vm.UimaVmMessageListener.onMessage(UimaVmMessageListener.java:107)
      at org.apache.uima.aae.spi.transport.vm.UimaVmMessageDispatcher$1.run(UimaVmMessageDispatcher.java:70)
      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:619)

      Since the Free Cas requests are never delivered to a Cas Multiplier, the entire system hangs due to exhausted Cas Pool in the CM.

        Activity

        Hide
        Jerry Cwiklik added a comment -

        Modified code to use broker that manages Cas Multiplier's input queue when sending requests to free a CAS.
        Added a new testcase to test the scenario

        Show
        Jerry Cwiklik added a comment - Modified code to use broker that manages Cas Multiplier's input queue when sending requests to free a CAS. Added a new testcase to test the scenario

          People

          • Assignee:
            Jerry Cwiklik
            Reporter:
            Jerry Cwiklik
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development