In previous versions of Red Hat JBoss Enterprise Application Platform 6 a path included in JGroupsSubsystemRemove was formatted without an element to define the server's profile.
In a standalone environment this did not cause a problem. In domain mode, however, this oversight caused an error when attempting to remove the JGroups subsystem using the command:
[domain@localhost:9999 /] /profile=test/subsystem=jgroups:remove()
This command would produce the following error: "JBAS014807: Management resource '[(\"subsystem\" => \"jgroups\")]' not found"
This version of Red Hat JBoss Enterprise Application Platform 6 includes the missing profile element in the PathAddress and users are now able to remove the JGroups subsystem using the CLI command above.
Description of problem:
In EAP 6.1 domain mode, try to create a new profile from scratch in CLI. You can add jgroups subsystem but you cannot remove it with an error message.
In standalone mode and both modes of EAP 6.0.1, you can successfully remove it.
Steps to Reproduce:
1. Start EAP 6.1 in domain mode. The default domain.xml is sufficient.
2. Connect to the DC by CLI.
3. Execute the following commands in CLI.
--
[domain@localhost:9999 /] /profile=test:add()
[domain@localhost:9999 /] /profile=test/subsystem=jgroups:add(default-stack=udp)
[domain@localhost:9999 /] /profile=test/subsystem=jgroups:remove()
--
Actual results:
{
"outcome" => "failed",
"failure-description" => {"domain-failure-description" => "JBAS014807: Management resource '[(\"subsystem\" => \"jgroups\")]' not found"},
"rolled-back" => true
}
Expected results:
{
"outcome" => "success",
"result" => undefined,
"server-groups" => undefined
}
This same problem exists in upstream. There's been some discussion that the patch for https://issues.jboss.org/browse/WFLY-439 fixes this, but it doesn't (and shouldn't, as it's unrelated.)
The problem is in JGroupsSubsystemRemove:
ModelNode removeSubsystem = Util.createOperation(REMOVE, PathAddress.pathAddress(JGroupsExtension.SUBSYSTEM_PATH));
context.addStep(removeSubsystem, new OriginalSubsystemRemoveHandler(), OperationContext.Stage.MODEL, true);
That PathAddress.pathAddress(JGroupsExtension.SUBSYSTEM_PATH) is incorrect in a managed domain, as it doesn't include the profile element. It's correct in a standalone server.
Easy fix.
Description of problem: In EAP 6.1 domain mode, try to create a new profile from scratch in CLI. You can add jgroups subsystem but you cannot remove it with an error message. In standalone mode and both modes of EAP 6.0.1, you can successfully remove it. Steps to Reproduce: 1. Start EAP 6.1 in domain mode. The default domain.xml is sufficient. 2. Connect to the DC by CLI. 3. Execute the following commands in CLI. -- [domain@localhost:9999 /] /profile=test:add() [domain@localhost:9999 /] /profile=test/subsystem=jgroups:add(default-stack=udp) [domain@localhost:9999 /] /profile=test/subsystem=jgroups:remove() -- Actual results: { "outcome" => "failed", "failure-description" => {"domain-failure-description" => "JBAS014807: Management resource '[(\"subsystem\" => \"jgroups\")]' not found"}, "rolled-back" => true } Expected results: { "outcome" => "success", "result" => undefined, "server-groups" => undefined }