]
Brian Stansberry commented on WFCORE-988:
-----------------------------------------
The issue here (as James debugged) is the domain rollout stuff is run in threads
unassociated with the OperationContext, but the transformation work those threads do is
using a ref to the OC to read the model.
The OC should not be being handed out to other threads. The reads that need to happen for
transformation should occur before the rollout tasks get started, with the result of the
reads provided to the tasks, not the OC itself.
Host controller fails to roll out management operations if assertions
are enabled
---------------------------------------------------------------------------------
Key: WFCORE-988
URL:
https://issues.jboss.org/browse/WFCORE-988
Project: WildFly Core
Issue Type: Bug
Components: Domain Management
Reporter: James Perkins
Assignee: Brian Stansberry
Fix For: 2.0.0.CR2
Enabling assertions, {{-ea}}, for the host controller then trying to execute an operation
that needs to be rolled out to servers fails. The issue seems to be in the
[{{OperationContextImpl}}|https://github.com/wildfly/wildfly-core/blob/2.0.0.CR1/controller/src/main/java/org/jboss/as/controller/OperationContextImpl.java#L826].
Replacing the assertion with an exception I see the stack trace below.
{code:title=Stack Trace}
[Host Controller] 14:08:33,124 DEBUG [org.jboss.as.host.controller] (Host Controller
Service Threads - 8) failed to process task {
[Host Controller] "address" => [
[Host Controller] ("host" => "master"),
[Host Controller] ("server" => "server-one"),
[Host Controller] ("subsystem" => "logging")
[Host Controller] ],
[Host Controller] "operation" => "write-attribute",
[Host Controller] "name" => "use-deployment-logging-config",
[Host Controller] "value" => true,
[Host Controller] "operation-headers" => {
[Host Controller] "access-mechanism" => "NATIVE",
[Host Controller] "domain-uuid" =>
"1763a478-a1ad-42b5-a206-03db6e8bbc69",
[Host Controller] "execute-for-coordinator" => true
[Host Controller] }
[Host Controller] }: java.lang.RuntimeException: Thread.currentThread=Thread[Host
Controller Service Threads - 8,5,Host Controller Service Threads], controllingThread=null,
initiatingThreadThread[management-handler-thread - 2,5,management-handler-thread]
[Host Controller] at
org.jboss.as.controller.OperationContextImpl.readResourceFromRoot(OperationContextImpl.java:832)
[Host Controller] at
org.jboss.as.controller.transform.ResourceTransformationContextImpl.create(ResourceTransformationContextImpl.java:64)
[Host Controller] at
org.jboss.as.controller.transform.TransformersImpl.transformOperation(TransformersImpl.java:88)
[Host Controller] at
org.jboss.as.controller.TransformingProxyController$Factory$1.transformOperation(TransformingProxyController.java:102)
[Host Controller] at
org.jboss.as.controller.TransformingProxyController$TransformingProxyControllerImpl.transformOperation(TransformingProxyController.java:153)
[Host Controller] at
org.jboss.as.domain.controller.operations.coordination.MultiphaseOverallContext.transformServerOperation(MultiphaseOverallContext.java:176)
[Host Controller] at
org.jboss.as.domain.controller.operations.coordination.DomainRolloutStepHandler$2.execute(DomainRolloutStepHandler.java:315)
[Host Controller] at
org.jboss.as.domain.controller.plan.ServerTaskExecutor.executeTask(ServerTaskExecutor.java:83)
[Host Controller] at
org.jboss.as.domain.controller.plan.ConcurrentServerGroupUpdateTask.execute(ConcurrentServerGroupUpdateTask.java:53)
[Host Controller] at
org.jboss.as.domain.controller.plan.AbstractServerGroupRolloutTask$1.run(AbstractServerGroupRolloutTask.java:63)
[Host Controller] at
org.jboss.as.domain.controller.plan.AbstractServerGroupRolloutTask$1.run(AbstractServerGroupRolloutTask.java:59)
[Host Controller] at java.security.AccessController.doPrivileged(Native Method)
[Host Controller] at javax.security.auth.Subject.doAs(Subject.java:360)
[Host Controller] at
org.jboss.as.controller.AccessAuditContext.doAs(AccessAuditContext.java:81)
[Host Controller] at
org.jboss.as.domain.controller.plan.AbstractServerGroupRolloutTask.run(AbstractServerGroupRolloutTask.java:59)
[Host Controller] at
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
[Host Controller] at java.util.concurrent.FutureTask.run(FutureTask.java:266)
[Host Controller] at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
[Host Controller] at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
[Host Controller] at java.lang.Thread.run(Thread.java:745)
[Host Controller] at org.jboss.threads.JBossThread.run(JBossThread.java:320)
{code}