Do you have a service attempting to invoke a management op from within
its start() or stop() method? If so, you can't, as this is what will happen.
On 4/26/12 9:35 AM, David Bosschaert wrote:
Hi all,
I came upon an apparent deadlock when working with MSC services in the
AbstractRemoveStepHandler.performRuntime()
My code is like this:
performRuntime(OperationContext context, ModelNode operation, ModelNode
model) {
sr = context.getServiceRegistry(true);
...
which will hang under certain circumstances inside getServiceRegistry()
What I'm trying to do here is obtain an MSC service inside the
performRuntime() so I can make some calls on it.
The stack trace is below [1]. I'm a little confused about the fact that
it says 'locked 78fb1b0' and then a few lines up says 'waiting on
78fb1b0' in the same thread.
Is this a bug? Or should I be interacting with services in a different
way from here?
I'm also attaching the full threaddump.txt in case someone is
interested. I noticed that another thread is also doing something wrt to
removing a resource, but I don't understand why that should block a
service registry lookup.
Thanks,
David
[1] "management-handler-thread - 2" prio=5 tid=0000000001a41000
nid=0xb30e3000 in Object.wait() [00000000b30e2000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <00000000078fd1b0> (a
org.jboss.as.controller.ContainerStateMonitor)
at java.lang.Object.wait(Object.java:485)
at
org.jboss.as.controller.ContainerStateMonitor.await(ContainerStateMonitor.java:153)
- locked <00000000078fd1b0> (a
org.jboss.as.controller.ContainerStateMonitor)
at
org.jboss.as.controller.ModelControllerImpl.awaitContainerMonitor(ModelControllerImpl.java:428)
at
org.jboss.as.controller.OperationContextImpl.awaitContainerMonitor(OperationContextImpl.java:373)
at
org.jboss.as.controller.OperationContextImpl.getServiceRegistry(OperationContextImpl.java:226)
at
org.jboss.as.configadmin.parser.ConfigAdminExtension.getConfigAdminService(ConfigAdminExtension.java:48)
at
org.jboss.as.configadmin.parser.ConfigurationRemove.performRuntime(ConfigurationRemove.java:48)
at
org.jboss.as.controller.AbstractRemoveStepHandler$1.execute(AbstractRemoveStepHandler.java:50)
at
org.jboss.as.controller.AbstractOperationContext.executeStep(AbstractOperationContext.java:385)
at
org.jboss.as.controller.AbstractOperationContext.doCompleteStep(AbstractOperationContext.java:272)
at
org.jboss.as.controller.AbstractOperationContext.completeStep(AbstractOperationContext.java:200)
at
org.jboss.as.controller.ModelControllerImpl$DefaultPrepareStepHandler.execute(ModelControllerImpl.java:466)
at
org.jboss.as.controller.AbstractOperationContext.executeStep(AbstractOperationContext.java:385)
at
org.jboss.as.controller.AbstractOperationContext.doCompleteStep(AbstractOperationContext.java:272)
at
org.jboss.as.controller.AbstractOperationContext.completeStep(AbstractOperationContext.java:200)
at
org.jboss.as.controller.ModelControllerImpl.execute(ModelControllerImpl.java:121)
at
org.jboss.as.controller.ModelControllerImpl$1.execute(ModelControllerImpl.java:304)
at
org.jboss.as.controller.ModelControllerImpl$1.execute(ModelControllerImpl.java:294)
at
org.jboss.as.configadmin.service.ConfigAdminServiceImpl.removeConfiguration(ConfigAdminServiceImpl.java:150)
at
org.jboss.as.configadmin.parser.ConfigurationRemove.performRuntime(ConfigurationRemove.java:50)
at
org.jboss.as.controller.AbstractRemoveStepHandler$1.execute(AbstractRemoveStepHandler.java:50)
at
org.jboss.as.controller.AbstractOperationContext.executeStep(AbstractOperationContext.java:385)
at
org.jboss.as.controller.AbstractOperationContext.doCompleteStep(AbstractOperationContext.java:272)
at
org.jboss.as.controller.AbstractOperationContext.completeStep(AbstractOperationContext.java:200)
at
org.jboss.as.controller.ModelControllerImpl$DefaultPrepareStepHandler.execute(ModelControllerImpl.java:466)
at
org.jboss.as.controller.AbstractOperationContext.executeStep(AbstractOperationContext.java:385)
at
org.jboss.as.controller.AbstractOperationContext.doCompleteStep(AbstractOperationContext.java:272)
at
org.jboss.as.controller.AbstractOperationContext.completeStep(AbstractOperationContext.java:200)
at
org.jboss.as.controller.ModelControllerImpl.execute(ModelControllerImpl.java:121)
at
org.jboss.as.controller.remote.ModelControllerClientOperationHandler$ExecuteRequestHandler.doExecute(ModelControllerClientOperationHandler.java:139)
at
org.jboss.as.controller.remote.ModelControllerClientOperationHandler$ExecuteRequestHandler$1.execute(ModelControllerClientOperationHandler.java:108)
at
org.jboss.as.protocol.mgmt.AbstractMessageHandler$2$1.doExecute(AbstractMessageHandler.java:287)
at
org.jboss.as.protocol.mgmt.AbstractMessageHandler$AsyncTaskRunner.run(AbstractMessageHandler.java:487)
at
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:680)
at org.jboss.threads.JBossThread.run(JBossThread.java:122)
_______________________________________________
jboss-as7-dev mailing list
jboss-as7-dev(a)lists.jboss.org
https://lists.jboss.org/mailman/listinfo/jboss-as7-dev
--
Brian Stansberry
Principal Software Engineer
JBoss by Red Hat