1. UIMA
  2. UIMA-1743

UIMA AS aggregate may hang when one of its primitive delgates fails during initialization


    • 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:


      There is a race condition in UIMA AS that may lead to a hang while trying to stop an aggregate service with multiple primitive delegates. If one of the delegates fails during initialization and the DD says to terminate, the aggregate sends STOP event to each delegate to force clean shutdown. When a primitive is instantiating AE via produceAnalysisEngine() call and the STOP comes on another thread, the state of the service is changed to stopped. When the AE is finally initialized and produceAnalysisEngine() returns, the code does not check for service status and proceeds to call postInitialize() which spins a cleanup thread and marks the service as initialized successfully. There are two problems:
      1) Primitive service doesnt check if it has been stopped after produceAnalysisEngine() returns
      2) In postInitialize(), the primitive service always starts a cleanup thread no matter what the status of the service is. This cleanup thread is never stopped and leads to a hang.


        Jerry Cwiklik created issue -
        Jerry Cwiklik made changes -
        Field Original Value New Value
        Status Open [ 1 ] Closed [ 6 ]
        Resolution Fixed [ 1 ]
        Marshall Schor made changes -
        Fix Version/s 2.3.1AS [ 12315335 ]


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


            • Created: