Details
-
Bug
-
Status: Resolved
-
Major
-
Resolution: Abandoned
-
2.3.1SDK
-
None
-
Window XP
Description
If you have this remote Vinci cas processor (configured to continue in case of error) in a CPE (that has 4 processing pipelines):
<casProcessors casPoolSize="5" processingUnitThreadCount="4"> <casProcessor deployment="remote" name="Analytics2"> <descriptor> <include href="Default_Analytics2.xml"/> </descriptor> <deploymentParameters> <parameter name="vnsHost" type="string" value="localhost"/> <parameter name="vnsPort" type="string" value="9000"/> <parameter name="service-access" type="string" value="exclusive"/> </deploymentParameters> <errorHandling> <errorRateThreshold action="continue" value="3/1000"/> <maxConsecutiveRestarts action="continue" value="5" waitTimeBetweenRetries="30000"/> <timeout max="2700000" default="-1"/> </errorHandling> <checkpoint batch="1" time="1000ms"/> </casProcessor>
When the corresponding Vinci service is restarted during the CPE execution, the CPE cannot correctly reconnect the 4 pipelines to the 4 instances of the Vinci service. This happens only in a multiple processing units environment.
This is due to the fact that, in case of error, the failed CasProcessors are put in a list of failed processors and that processors are never removed from this list. The consequence is the CPE always try to fix the first processor.
The problem seems to be located in:
uimaj-cpe/src/main/java/org/apache/uima/collection/impl/cpm/container/deployer/vinci/VinciCasProcessorDeployer.java
Patch proposal attached.