You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@uima.apache.org by "Jerry Cwiklik (JIRA)" <de...@uima.apache.org> on 2014/02/21 21:59:19 UTC

[jira] [Closed] (UIMA-3630) Fix UIMA-AS race condition in JmsAnalysisEngineServiceStub

     [ https://issues.apache.org/jira/browse/UIMA-3630?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Jerry Cwiklik closed UIMA-3630.
-------------------------------

    Resolution: Fixed

Misdiagnosed. Code in place seems ok., There should not be a race condition as each AE is initialized sequentially. 

> Fix UIMA-AS race condition in JmsAnalysisEngineServiceStub
> ----------------------------------------------------------
>
>                 Key: UIMA-3630
>                 URL: https://issues.apache.org/jira/browse/UIMA-3630
>             Project: UIMA
>          Issue Type: Bug
>          Components: Async Scaleout
>    Affects Versions: 2.4.2AS
>            Reporter: Jerry Cwiklik
>            Assignee: Jerry Cwiklik
>             Fix For: 2.5.0AS
>
>
> There is a race condition in the JmsAnalysisEngineServiceStub related to a recent code change where there is a single instance of uima-as client per jvm. All threads share this instance now.
> The race happens when the process starts up. One thread is initializing uima-as client which takes some time. The code creates an instance of uima-as client, places it in Map under broker url key and begins initializing the client. Another thread checks if there is a instance of a client for a giving key, finds it and proceeds to calling sendAndReceive().
> Since the client is still initializing, the sendAndReceive() throws Not Ready exception.
> Add CountDownLatch to prevent threads from calling sendAndReceive() until the uima-as client initializes (latch down)



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)