[
https://issues.apache.org/jira/browse/UIMA-2392?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13266876#comment-13266876
]
Peter Parente commented on UIMA-2392:
-------------------------------------
Follow-up reading of the logs. Output CASes wind up in 3 situations:
1. Service produces output CAS and sends it back to the client via the client's
temporary response queue. Client receives the CAS. Client sends a free CAS
message to the service. The service releases the CAS back into the pool.
2. Service produces an output CAS and fails to send it back to the client
because the client's temp response queue has closed (timeout, shutdown, etc).
The service releases the CAS back into the pool.
3. Service produces an output CAS and sends it back to the client via the
client's temporary response queue. Client is no longer listening to the queue
(timeout, crash, etc.) and so never receives it nor sends a free message. The
service, which successfully put it on the response queue, doesn't know that it
should be released. The CAS is lost in the ether.
Hit #3 too many times and you hang when the CAS pool is exhausted.
> UIMA-AS CAS multiplier hangs fetching empty CAS after client timeouts
> ---------------------------------------------------------------------
>
> Key: UIMA-2392
> URL: https://issues.apache.org/jira/browse/UIMA-2392
> Project: UIMA
> Issue Type: Bug
> Components: Async Scaleout
> Affects Versions: 2.3.1AS
> Environment: RedHat Enterprise Linux 6.0, Mac OSX Lion 10.7.3
> Reporter: Peter Parente
> Labels: ibm
> Attachments: logs.zip, uima-hang.zip
>
>
> I'm attaching a test case that reproduces the hang. See the README inside the
> zip about how to execute it.
> The annotator (ForwardJCas) consists of a simple CAS multiplier with delays
> in it scaled out in its own thread within 2 levels of aggregates. It receives
> a CAS, sleeps for 3 seconds, gets a new empty CAS, copies information into
> it, sleeps again, and then returns the CAS. The unit test (UimaAsTest)
> initializes 40 UIMA-AS clients with a timeout of 8 seconds, send 1 CAS from
> each to the service, and then waits. After 1-2 runs, the CAS multiplier winds
> up hanging on the getEmptyCas() call in the scaled out annotator.
> What appears to be happening is that free CAS messages are not being sent
> from the client to the service in all cases when the timeouts occur. A
> similar defect (https://issues.apache.org/jira/browse/UIMA-1786) was fixed in
> 2.3.1 with slightly different symptoms.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira