You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@uima.apache.org by nelson rivera <ne...@gmail.com> on 2016/11/08 15:00:08 UTC

Free instance of agreggate with cas multiplier in MultiprocessingAnalysisEngine

I have a aggregate analysis engine that contains a casmultiplier
annotator. I instantiate this aggregate with the interface
UIMAFramework.produceAnalysisEngine(specifier, 1, 0) for multithreaded
processing. The casmultiplier generate more than one cas for each
input CAS. The issue is that after first cas child, that i get with

 JCasIterator casIterator = analysisEngine.processAndOutputNewCASes(jcas);
while (casIterator.hasNext()) {
           JCas outCas = casIterator.next();
           ...
        outCas.release();
}

after this first cas child, the MultiprocessingAnalysisEngine_impl
assumes that the instance of
AggregateAnalysisEngine that processes the request has ended, Y
entonces esta instancia es libre para procesar otra solicitud de otro
hilo, and it is not true, because missing child cas, producing
concurrency errors.

What is the condition of a instance of MultiprocessingAnalysisEngine
that contains cas multiplier that generate many cas child for each
input Cas, for determine that it finish and is free?

Re: Free instance of agreggate with cas multiplier in MultiprocessingAnalysisEngine

Posted by nelson rivera <ne...@gmail.com>.
yes I will do that with pleasure of cooperate with this great project

2016-11-09 16:18 GMT-05:00, Eddie Epstein <ea...@gmail.com>:
> Sounds like a bug in MultiprocessingAnalysisEngine_impl. Any chance you
> could simplify your scenario and attach it to a Jira issue against UIMA?
>
> On Wed, Nov 9, 2016 at 1:24 PM, nelson rivera <ne...@gmail.com>
> wrote:
>
>> Not, for only one instance, the behavior is correct, and generate all
>> child cas required.
>>
>> 2016-11-09 9:40 GMT-05:00, Eddie Epstein <ea...@gmail.com>:
>> > Is behavior the same for single-threaded AnalysisEngine instantiation?
>> >
>> > On Tue, Nov 8, 2016 at 10:00 AM, nelson rivera
>> > <nelsonrivera12@gmail.com
>> >
>> > wrote:
>> >
>> >> I have a aggregate analysis engine that contains a casmultiplier
>> >> annotator. I instantiate this aggregate with the interface
>> >> UIMAFramework.produceAnalysisEngine(specifier, 1, 0) for multithreaded
>> >> processing. The casmultiplier generate more than one cas for each
>> >> input CAS. The issue is that after first cas child, that i get with
>> >>
>> >>  JCasIterator casIterator =
>> >> analysisEngine.processAndOutputNewCASes(jcas);
>> >> while (casIterator.hasNext()) {
>> >>            JCas outCas = casIterator.next();
>> >>            ...
>> >>         outCas.release();
>> >> }
>> >>
>> >> after this first cas child, the MultiprocessingAnalysisEngine_impl
>> >> assumes that the instance of
>> >> AggregateAnalysisEngine that processes the request has ended, Y
>> >> entonces esta instancia es libre para procesar otra solicitud de otro
>> >> hilo, and it is not true, because missing child cas, producing
>> >> concurrency errors.
>> >>
>> >> What is the condition of a instance of MultiprocessingAnalysisEngine
>> >> that contains cas multiplier that generate many cas child for each
>> >> input Cas, for determine that it finish and is free?
>> >>
>> >
>>
>

Re: Free instance of agreggate with cas multiplier in MultiprocessingAnalysisEngine

Posted by Eddie Epstein <ea...@gmail.com>.
Sounds like a bug in MultiprocessingAnalysisEngine_impl. Any chance you
could simplify your scenario and attach it to a Jira issue against UIMA?

On Wed, Nov 9, 2016 at 1:24 PM, nelson rivera <ne...@gmail.com>
wrote:

> Not, for only one instance, the behavior is correct, and generate all
> child cas required.
>
> 2016-11-09 9:40 GMT-05:00, Eddie Epstein <ea...@gmail.com>:
> > Is behavior the same for single-threaded AnalysisEngine instantiation?
> >
> > On Tue, Nov 8, 2016 at 10:00 AM, nelson rivera <nelsonrivera12@gmail.com
> >
> > wrote:
> >
> >> I have a aggregate analysis engine that contains a casmultiplier
> >> annotator. I instantiate this aggregate with the interface
> >> UIMAFramework.produceAnalysisEngine(specifier, 1, 0) for multithreaded
> >> processing. The casmultiplier generate more than one cas for each
> >> input CAS. The issue is that after first cas child, that i get with
> >>
> >>  JCasIterator casIterator =
> >> analysisEngine.processAndOutputNewCASes(jcas);
> >> while (casIterator.hasNext()) {
> >>            JCas outCas = casIterator.next();
> >>            ...
> >>         outCas.release();
> >> }
> >>
> >> after this first cas child, the MultiprocessingAnalysisEngine_impl
> >> assumes that the instance of
> >> AggregateAnalysisEngine that processes the request has ended, Y
> >> entonces esta instancia es libre para procesar otra solicitud de otro
> >> hilo, and it is not true, because missing child cas, producing
> >> concurrency errors.
> >>
> >> What is the condition of a instance of MultiprocessingAnalysisEngine
> >> that contains cas multiplier that generate many cas child for each
> >> input Cas, for determine that it finish and is free?
> >>
> >
>

Re: Free instance of agreggate with cas multiplier in MultiprocessingAnalysisEngine

Posted by nelson rivera <ne...@gmail.com>.
Not, for only one instance, the behavior is correct, and generate all
child cas required.

2016-11-09 9:40 GMT-05:00, Eddie Epstein <ea...@gmail.com>:
> Is behavior the same for single-threaded AnalysisEngine instantiation?
>
> On Tue, Nov 8, 2016 at 10:00 AM, nelson rivera <ne...@gmail.com>
> wrote:
>
>> I have a aggregate analysis engine that contains a casmultiplier
>> annotator. I instantiate this aggregate with the interface
>> UIMAFramework.produceAnalysisEngine(specifier, 1, 0) for multithreaded
>> processing. The casmultiplier generate more than one cas for each
>> input CAS. The issue is that after first cas child, that i get with
>>
>>  JCasIterator casIterator =
>> analysisEngine.processAndOutputNewCASes(jcas);
>> while (casIterator.hasNext()) {
>>            JCas outCas = casIterator.next();
>>            ...
>>         outCas.release();
>> }
>>
>> after this first cas child, the MultiprocessingAnalysisEngine_impl
>> assumes that the instance of
>> AggregateAnalysisEngine that processes the request has ended, Y
>> entonces esta instancia es libre para procesar otra solicitud de otro
>> hilo, and it is not true, because missing child cas, producing
>> concurrency errors.
>>
>> What is the condition of a instance of MultiprocessingAnalysisEngine
>> that contains cas multiplier that generate many cas child for each
>> input Cas, for determine that it finish and is free?
>>
>

Re: Free instance of agreggate with cas multiplier in MultiprocessingAnalysisEngine

Posted by Eddie Epstein <ea...@gmail.com>.
Is behavior the same for single-threaded AnalysisEngine instantiation?

On Tue, Nov 8, 2016 at 10:00 AM, nelson rivera <ne...@gmail.com>
wrote:

> I have a aggregate analysis engine that contains a casmultiplier
> annotator. I instantiate this aggregate with the interface
> UIMAFramework.produceAnalysisEngine(specifier, 1, 0) for multithreaded
> processing. The casmultiplier generate more than one cas for each
> input CAS. The issue is that after first cas child, that i get with
>
>  JCasIterator casIterator = analysisEngine.processAndOutputNewCASes(jcas);
> while (casIterator.hasNext()) {
>            JCas outCas = casIterator.next();
>            ...
>         outCas.release();
> }
>
> after this first cas child, the MultiprocessingAnalysisEngine_impl
> assumes that the instance of
> AggregateAnalysisEngine that processes the request has ended, Y
> entonces esta instancia es libre para procesar otra solicitud de otro
> hilo, and it is not true, because missing child cas, producing
> concurrency errors.
>
> What is the condition of a instance of MultiprocessingAnalysisEngine
> that contains cas multiplier that generate many cas child for each
> input Cas, for determine that it finish and is free?
>