You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@uima.apache.org by "Adam Lally (JIRA)" <ui...@incubator.apache.org> on 2007/04/05 15:42:32 UTC
[jira] Created: (UIMA-367) Deadlock can occur in
MultiprocessingAnalysisEngine_impl.setResultSpecification
Deadlock can occur in MultiprocessingAnalysisEngine_impl.setResultSpecification
-------------------------------------------------------------------------------
Key: UIMA-367
URL: https://issues.apache.org/jira/browse/UIMA-367
Project: UIMA
Issue Type: Bug
Components: Core Java Framework
Affects Versions: 2.1
Reporter: Adam Lally
Assigned To: Adam Lally
Fix For: 2.2
User reports unit test frequently hangs at the following location:
----------------
Thread [Thread-1] (Suspended)
Object.wait(long) line: not available [native method]
ResourcePool.getResource(long) line: 166
AnalysisEnginePool.setResultSpecification(ResultSpecification) line:
155
MultiprocessingAnalysisEngine_impl.setResultSpecification(ResultSpecification)
line: 122
MultiprocessingAnalysisEngine_impl(AnalysisEngineImplBase).process(CAS,
ResultSpecification) line: 200
MultiprocessingAnalysisEngine_implTest$ProcessThread.run() line: 363
-------------------
I took a look at the code for
AnalysisEnginePool.setResultSpecification. It tries to set the result
specification of all AEs in the pool. To do this it attempts to check
out all instances from the pool, set their result spec, and then
releases them all. If this method is executed simultaneously from two
threads, it can easily result in deadlock (each thread has some
portion of the instances checked out and is trying to check out the
remainder of them, and both will wait forever).
And this method is called from the process(CAS, ResultSpecification)
method, called in this test case from multiple threads.
This design is broken and must be fixed.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
[jira] Closed: (UIMA-367) Deadlock can occur in
MultiprocessingAnalysisEngine_impl.setResultSpecification
Posted by "Marshall Schor (JIRA)" <ui...@incubator.apache.org>.
[ https://issues.apache.org/jira/browse/UIMA-367?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Marshall Schor closed UIMA-367.
-------------------------------
Resolution: Fixed
> Deadlock can occur in MultiprocessingAnalysisEngine_impl.setResultSpecification
> -------------------------------------------------------------------------------
>
> Key: UIMA-367
> URL: https://issues.apache.org/jira/browse/UIMA-367
> Project: UIMA
> Issue Type: Bug
> Components: Core Java Framework
> Affects Versions: 2.1
> Reporter: Adam Lally
> Assigned To: Marshall Schor
> Fix For: 2.2
>
>
> User reports unit test frequently hangs at the following location:
> ----------------
> Thread [Thread-1] (Suspended)
> Object.wait(long) line: not available [native method]
> ResourcePool.getResource(long) line: 166
> AnalysisEnginePool.setResultSpecification(ResultSpecification) line:
> 155
> MultiprocessingAnalysisEngine_impl.setResultSpecification(ResultSpecification)
> line: 122
> MultiprocessingAnalysisEngine_impl(AnalysisEngineImplBase).process(CAS,
> ResultSpecification) line: 200
> MultiprocessingAnalysisEngine_implTest$ProcessThread.run() line: 363
> -------------------
> I took a look at the code for
> AnalysisEnginePool.setResultSpecification. It tries to set the result
> specification of all AEs in the pool. To do this it attempts to check
> out all instances from the pool, set their result spec, and then
> releases them all. If this method is executed simultaneously from two
> threads, it can easily result in deadlock (each thread has some
> portion of the instances checked out and is trying to check out the
> remainder of them, and both will wait forever).
> And this method is called from the process(CAS, ResultSpecification)
> method, called in this test case from multiple threads.
> This design is broken and must be fixed.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
[jira] Assigned: (UIMA-367) Deadlock can occur in
MultiprocessingAnalysisEngine_impl.setResultSpecification
Posted by "Marshall Schor (JIRA)" <ui...@incubator.apache.org>.
[ https://issues.apache.org/jira/browse/UIMA-367?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Marshall Schor reassigned UIMA-367:
-----------------------------------
Assignee: Marshall Schor (was: Adam Lally)
> Deadlock can occur in MultiprocessingAnalysisEngine_impl.setResultSpecification
> -------------------------------------------------------------------------------
>
> Key: UIMA-367
> URL: https://issues.apache.org/jira/browse/UIMA-367
> Project: UIMA
> Issue Type: Bug
> Components: Core Java Framework
> Affects Versions: 2.1
> Reporter: Adam Lally
> Assigned To: Marshall Schor
> Fix For: 2.2
>
>
> User reports unit test frequently hangs at the following location:
> ----------------
> Thread [Thread-1] (Suspended)
> Object.wait(long) line: not available [native method]
> ResourcePool.getResource(long) line: 166
> AnalysisEnginePool.setResultSpecification(ResultSpecification) line:
> 155
> MultiprocessingAnalysisEngine_impl.setResultSpecification(ResultSpecification)
> line: 122
> MultiprocessingAnalysisEngine_impl(AnalysisEngineImplBase).process(CAS,
> ResultSpecification) line: 200
> MultiprocessingAnalysisEngine_implTest$ProcessThread.run() line: 363
> -------------------
> I took a look at the code for
> AnalysisEnginePool.setResultSpecification. It tries to set the result
> specification of all AEs in the pool. To do this it attempts to check
> out all instances from the pool, set their result spec, and then
> releases them all. If this method is executed simultaneously from two
> threads, it can easily result in deadlock (each thread has some
> portion of the instances checked out and is trying to check out the
> remainder of them, and both will wait forever).
> And this method is called from the process(CAS, ResultSpecification)
> method, called in this test case from multiple threads.
> This design is broken and must be fixed.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.