Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
2.6.0AS
-
None
Description
The UIMA-AS uses a custom thread pool to enable pinning of threads to specific AE instances. This is needed to enforce a design where a thread used to initialize AE instance is also used for calling process() on that instance.
The thread pool is plugged in to the jms listener (for the input queue). The pool is configured with a fixed number of threads (=scaleout factor).
Due to a bug in the uima-as failover code, a thread (from the pool) was exiting (due to connectivity problem). The problem was replicated by using a bad broker URL on the top level service.Since the thread pool was told to maintain a fixed number of threads, the exit of a thread caused
a new thread creation and subsequent attempt to initialize another AE instance which then led to a call to defineCasPool() again. The uima core doesnt allow multiple calls to define cas pool and throws an exception.