Pierre De Rop created FELIX-3645:
------------------------------------

             Summary: SCR could not obtain lock in 5000 ms
                 Key: FELIX-3645
                 URL: https://issues.apache.org/jira/browse/FELIX-3645
             Project: Felix
          Issue Type: Bug
          Components: Declarative Services (SCR)
         Environment: linux fc16, bipro, Java(TM) SE Runtime Environment (build 
1.6.0_32-b05)

            Reporter: Pierre De Rop
         Attachments: 
TEST-org.apache.felix.scr.integration.ComponentConcurrencyTest.xml

I finally made an integration test and committed it in the trunk.
This test sounds to reproduce the problem described in 
http://www.mail-archive.com/[email protected]/msg26360.html.

the test contains the following files:

src/test/resources/integration_test_component_concurrency.xml
src/test/java/org/apache/felix/scr/integration/ComponentConcurrencyTest.java
src/test/java/org/apache/felix/scr/integration/components/concurrency/A.java
src/test/java/org/apache/felix/scr/integration/components/concurrency/B.java
src/test/java/org/apache/felix/scr/integration/components/concurrency/C.java
src/test/java/org/apache/felix/scr/integration/components/concurrency/AFactory.java
src/test/java/org/apache/felix/scr/integration/components/concurrency/CFactory.java

I also slightly modified 
src/test/java/org/apache/felix/scr/integration/ComponentTestBase.java
in order to use the apache log service, and also to declare the new package 
from org/apache/felix/scr/integration/components/concurrency.

The test does the following:

A optionally depends on B (dynamic=true, cardinality=0..N)
B depends on C

A is a factory component and is created by the AFactory class, in an infinite 
loop and in a dedicated thread.
C is also a factory component and is created/disposed for ever, by the CFactory 
class.

the integration test uses the log service in order to track logged errors, and 
runs 30 seconds.
If after 30 seconds, some errors are detected, then the test fail.

It seems that we have many exceptions when the test fail, which I did not 
reproduced so far. (see many IllegalMonitorState Exceptions).

The initial exception discussed from the post in the @dev list is also 
reproduced.
For example, I attached to this post my 
target/failsafe-reports/TEST-org.apache.felix.scr.integration.ComponentConcurrencyTest.xml,
 when the problem takes place.

Please take a look starting at line 951, as well as at the corresponding 
dumpstack at line 713, and also the "Locking activity before 
IllegalMonitorStateException" log, line 887.

Hope this will help.
/pierre




--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to