[
https://issues.jboss.org/browse/ISPN-9541?page=com.atlassian.jira.plugin....
]
Dan Berindei updated ISPN-9541:
-------------------------------
Comment: was deleted
(was: These server startup errors are probably related:
{noformat}
16:57:41,261 ERROR [org.jboss.msc.service.fail] (MSC service thread 1-2) MSC000001: Failed
to start service jboss.datagrid-infinispan-endpoint.hotrod.hotrod-connector:
org.jboss.msc.service.StartException in service
jboss.datagrid-infinispan-endpoint.hotrod.hotrod-connector: DGENDPT10004: Failed to start
HotRodServer
at
org.infinispan.server.endpoint.subsystem.ProtocolServerService.start(ProtocolServerService.java:160)
at
org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1736)
at
org.jboss.msc.service.ServiceControllerImpl$StartTask.execute(ServiceControllerImpl.java:1698)
at
org.jboss.msc.service.ServiceControllerImpl$ControllerTask.run(ServiceControllerImpl.java:1556)
at
org.jboss.threads.ContextClassLoaderSavingRunnable.run(ContextClassLoaderSavingRunnable.java:35)
at org.jboss.threads.EnhancedQueueExecutor.safeRun(EnhancedQueueExecutor.java:1985)
at
org.jboss.threads.EnhancedQueueExecutor$ThreadBody.doRunTask(EnhancedQueueExecutor.java:1487)
at
org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1378)
at java.lang.Thread.run(Thread.java:748)
Caused by: org.infinispan.commons.CacheConfigurationException: ISPN005029: No task manager
available to register the admin operations handler
at
org.infinispan.server.core.AbstractProtocolServer.registerAdminOperationsHandler(AbstractProtocolServer.java:70)
at
org.infinispan.server.core.AbstractProtocolServer.startInternal(AbstractProtocolServer.java:55)
at org.infinispan.server.hotrod.HotRodServer.startInternal(HotRodServer.java:250)
at org.infinispan.server.hotrod.HotRodServer.startInternal(HotRodServer.java:106)
at
org.infinispan.server.core.AbstractProtocolServer.start(AbstractProtocolServer.java:79)
at
org.infinispan.server.endpoint.subsystem.SecurityActions$6.run(SecurityActions.java:136)
at
org.infinispan.server.endpoint.subsystem.SecurityActions$6.run(SecurityActions.java:133)
at org.infinispan.security.Security.doPrivileged(Security.java:44)
at
org.infinispan.server.endpoint.subsystem.SecurityActions.doPrivileged(SecurityActions.java:42)
at
org.infinispan.server.endpoint.subsystem.SecurityActions.startProtocolServer(SecurityActions.java:140)
at
org.infinispan.server.endpoint.subsystem.ProtocolServerService.startProtocolServer(ProtocolServerService.java:194)
at
org.infinispan.server.endpoint.subsystem.ProtocolServerService.start(ProtocolServerService.java:152)
... 8 more
{noformat}
{noformat}
16:57:42,424 ERROR [org.jboss.msc.service.fail] (MSC service thread 1-1) MSC000001: Failed
to start service jboss.datagrid-infinispan-endpoint.rest.rest-connector:
org.jboss.msc.service.StartException in service
jboss.datagrid-infinispan-endpoint.rest.rest-connector: DGENDPT10016: Could not start the
web context for the REST Server
at org.infinispan.server.endpoint.subsystem.RestService.start(RestService.java:158)
at
org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1736)
at
org.jboss.msc.service.ServiceControllerImpl$StartTask.execute(ServiceControllerImpl.java:1698)
at
org.jboss.msc.service.ServiceControllerImpl$ControllerTask.run(ServiceControllerImpl.java:1556)
at
org.jboss.threads.ContextClassLoaderSavingRunnable.run(ContextClassLoaderSavingRunnable.java:35)
at org.jboss.threads.EnhancedQueueExecutor.safeRun(EnhancedQueueExecutor.java:1985)
at
org.jboss.threads.EnhancedQueueExecutor$ThreadBody.doRunTask(EnhancedQueueExecutor.java:1487)
at
org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1378)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.NullPointerException
at
org.infinispan.server.core.AbstractProtocolServer.registerTransportMBean(AbstractProtocolServer.java:115)
at
org.infinispan.server.core.AbstractProtocolServer.startTransport(AbstractProtocolServer.java:92)
at
org.infinispan.server.core.AbstractProtocolServer.startInternal(AbstractProtocolServer.java:61)
at org.infinispan.rest.RestServer.startInternal(RestServer.java:85)
at org.infinispan.rest.RestServer.startInternal(RestServer.java:23)
at
org.infinispan.server.core.AbstractProtocolServer.start(AbstractProtocolServer.java:79)
at org.infinispan.server.endpoint.subsystem.RestService.start(RestService.java:155)
... 8 more
{noformat}
https://ci.infinispan.org/job/Infinispan/job/PR-6247/1/testReport/junit/o...
)
Module initialization is not thread-safe
----------------------------------------
Key: ISPN-9541
URL:
https://issues.jboss.org/browse/ISPN-9541
Project: Infinispan
Issue Type: Bug
Components: Core, Server
Affects Versions: 9.4.0.CR3
Reporter: Dan Berindei
Assignee: Dan Berindei
Fix For: 9.4.0.Final
In my ISPN-9127 fix I created a {{BasicComponentRegistry}} interface that represents a
mostly-read-only collection of components. It has {{replaceComponent()}} method and a
{{rewire()}} method for testing purposes, but it turns out modules were also relying on
the ability to replace existing components in order to work.
Replacing global components is normally safe during the
{{ModuleLifecycle.cacheManagerStarting()}}, because none of the components are started
yet, so when a component starts later we can still start its dependencies first. But
because some modules starts some global components, e.g. by calling
{{manager.getCache(name)}}, that assumption breaks.
The {{infinispan-server-event-logger}} module is a bit more sneaky: it doesn't
replace a component, instead it replaces the actual implementation of the event logger in
the {{EventLogManager}} component. Events that happen before the module's
{{cacheManagerStarting()}} or after {{cacheManagerStopping()}} will be silently dropped
from the persistent event log.
I am investigating making the module a factory of factories. Instead of having a
monolitic {{cacheManagerStarting()}} method, it could define a set of components that it
can create, and a set of components that should be started before the cache manager is
"running". We probably need a way to depend on other modules as well, maybe
reusing the {{@Inject}} and {{@ComponentName}} annotations.
--
This message was sent by Atlassian JIRA
(v7.5.0#75005)