Initialization of the Entityhub sometimes fails during integration tests
------------------------------------------------------------------------
Key: STANBOL-117
URL: https://issues.apache.org/jira/browse/STANBOL-117
Project: Stanbol
Issue Type: Bug
Environment: Integration tests on hudson
Reporter: Rupert Westenthaler
Assignee: Rupert Westenthaler
Sometimes the initialization of the Entityhub based on the default
configuration provided by the full launcher of the Stanbol Enhancer fails.
The reason for that is that the EmbeddedSolrServerProvider is not available at
the time when the SolrYard instances do request an SolrServer with the type
EMBEDDED.
However note that the EmbeddedSolrServerProvider is already registered before
but get the unregistered shortly before the SolerServer instance is activated.
The complete log is available at:
https://builds.apache.org/hudson/job/stanbol-trunk-1.6/org.apache.stanbol$org.apache.stanbol.enhancer.integration-tests/ws/sling/logs/error.log
Here the interesting sections of the log.
(1) Time: 02:36:42.670
Bot the DefaultSolrServerProvider and the EmbeddedSolrServerProvider get
registered with the EmbeddedSolrServerProvider
21.03.2011 02:36:42.668 *INFO* [SCR Component Actor] org.apache.felix.scr
Running task: Enable Component:
org.apache.stanbol.entityhub.yard.solr.provider.SolrServerProviderManager (6)
21.03.2011 02:36:42.669 *INFO* [SCR Component Actor]
org.apache.stanbol.entityhub.yard.solr.provider.SolrServerProviderManager add
SolrProvider
org.apache.stanbol.entityhub.yard.solr.embedded.EmbeddedSolrPorovider@6f947b
types [EMBEDDED]
21.03.2011 02:36:42.670 *INFO* [SCR Component Actor]
org.apache.stanbol.entityhub.yard.solr.provider.SolrServerProviderManager add
SolrProvider
org.apache.stanbol.entityhub.yard.solr.impl.DefaultSolrServerProvider@15ad1da
types [HTTP, STREAMING, LOAD_BALANCE]
(2) Time: 02:36:42.945
SolrYard (configured to use an EmbeddedSolrServer) activates
21.03.2011 02:36:42.945 *INFO* [Configuration Updater]
org.apache.stanbol.entityhub.yard.solr.impl.SolrYard in class
org.apache.stanbol.entityhub.yard.solr.impl.SolrYard activate with context
org.apache.felix.scr.impl.manager.ComponentContextImpl@157211f
(3) Time: 21.03.2011 02:36:42.945
In the same millisecond the EmbeddedSolrServerProvider gets unregistered form
the SolrServerProviderManager
21.03.2011 02:36:42.945 *INFO* [SCR Component Actor]
org.apache.stanbol.entityhub.yard.solr.provider.SolrServerProviderManager
remove SolrProvider
org.apache.stanbol.entityhub.yard.solr.embedded.EmbeddedSolrPorovider@6f947b
types [EMBEDDED]
21.03.2011 02:36:42.945 *INFO* [SCR Component Actor]
org.apache.stanbol.entityhub.yard.solr Service
[org.apache.stanbol.entityhub.yard.solr.embedded.EmbeddedSolrPorovider,40]
ServiceEvent UNREGISTERING
(4) Time 02:36:42.946
1ms later the SolrServerProviderManager throws an Exception because no
SolrServerProvider for the type EMBEDDED is available
21.03.2011 02:36:42.946 *ERROR* [Configuration Updater]
org.apache.stanbol.entityhub.yard.solr
[org.apache.stanbol.entityhub.yard.solr.impl.SolrYard] The activate method has
thrown an exception (java.lang.IllegalArgumentException: No Provider for type
EMBEDDED available) java.lang.IllegalArgumentException: No Provider for type
EMBEDDED available
at
org.apache.stanbol.entityhub.yard.solr.provider.SolrServerProviderManager.getSolrServer(SolrServerProviderManager.java:98)
...
(5) 02:36:42.946
Now the second configured SolrYard activates and fails because there is still
no SolrServerProvider for the type EMBEDDED
21.03.2011 02:36:42.946 *INFO* [Configuration Updater]
org.apache.stanbol.entityhub.yard.solr.impl.SolrYard in class
org.apache.stanbol.entityhub.yard.solr.impl.SolrYard activate with context
org.apache.felix.scr.impl.manager.ComponentContextImpl@82c23d
21.03.2011 02:36:42.947 *ERROR* [Configuration Updater]
org.apache.stanbol.entityhub.yard.solr
[org.apache.stanbol.entityhub.yard.solr.impl.SolrYard] The activate method has
thrown an exception (java.lang.IllegalArgumentException: No Provider for type
EMBEDDED available) java.lang.IllegalArgumentException: No Provider for type
EMBEDDED available
at
org.apache.stanbol.entityhub.yard.solr.provider.SolrServerProviderManager.getSolrServer(SolrServerProviderManager.java:98)
...
(6) 02:36:42.948
2ms later the EmbeddedSolrPorovider is added again to the
SolrServerProviderManager
21.03.2011 02:36:42.948 *INFO* [SCR Component Actor]
org.apache.stanbol.entityhub.yard.solr.provider.SolrServerProviderManager add
SolrProvider
org.apache.stanbol.entityhub.yard.solr.embedded.EmbeddedSolrPorovider@8917a2
types [EMBEDDED]
The important thing would be to understand why the EmbeddedSolrServerProvider
gets unregistered in (3) and than registered again in (6).
Also note that there are two threads ([SCR Component Actor] and [Configuration
Updater]) working at the same time.
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira