[jboss-jira] [JBoss JIRA] (WFLY-4203) Failures of undeploy of a partially failed deployment

Arcadiy Ivanov (JIRA) issues at jboss.org
Tue Dec 23 18:05:30 EST 2014


     [ https://issues.jboss.org/browse/WFLY-4203?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Arcadiy Ivanov updated WFLY-4203:
---------------------------------
    Description: 
{noformat}
[domain at localhost:9990 /] undeploy 2e3b75f2-88ff-4eb9-a8b1-9107c452309e.ear --all-relevant-server-groups
Undeploy failed: JBAS010839: Operation failed or was rolled back on all servers.
{noformat}

There are several issues at play here:
# Insufficient information is displayed along with JBAS010839
# No actual failure logged either in DC or in individual host's logs
# Failure to find a deployment unit on a particular host should not result in a failure of a domain-wide undeploy in DeploymentUndeployHandler

I'll start in a reverse order of causation:

In DeploymentUndeployHandler.execute
{noformat}
    public void execute(OperationContext context, ModelNode operation) throws OperationFailedException {
        ModelNode model = context.readResourceForUpdate(PathAddress.EMPTY_ADDRESS).getModel();
...
{noformat}

OperationContextImpl.readResourceForUpdate calls OperationContextImpl.requireChild:
{noformat}
    private static Resource requireChild(final Resource resource, final PathElement childPath, final PathAddress fullAddress) {
        if (resource.hasChild(childPath)) {
            return resource.requireChild(childPath);
        } else {
            PathAddress missing = PathAddress.EMPTY_ADDRESS;
            for (PathElement search : fullAddress) {
                missing = missing.append(search);
                if (search.equals(childPath)) {
                    break;
                }
            }
            throw ControllerMessages.MESSAGES.managementResourceNotFound(missing);
        }
    }
{noformat}

The exception generated by {{throw ControllerMessages.MESSAGES.managementResourceNotFound(missing);}}: 
# does not propagate from the host to DC and to CLI
# is not logged with any level (not even TRACE) either on host or DC
# should be handled within DeploymentUndeployHandler not to fail the undeploy operation in case of a partially failed deployment (e.g. EAR with unsatisfied CDI dependencies).






  was:
{noformat}
[domain at localhost:9990 /] undeploy 2e3b75f2-88ff-4eb9-a8b1-9107c452309e.ear --all-relevant-server-groups
Undeploy failed: JBAS010839: Operation failed or was rolled back on all servers.
{noformat}

There are several issues at play here:
# Insufficient information is displayed along with JBAS010839
# No actual failure logged either in DC or in individual host's logs
# Failure to find a deployment unit on a particular host should not result in a failure of a domain-wide undeploy in DeploymentUndeployHandler

I'll start in a reverse order of causation:

in DeploymentUndeployHandler.execute
{noformat}
    public void execute(OperationContext context, ModelNode operation) throws OperationFailedException {
        ModelNode model = context.readResourceForUpdate(PathAddress.EMPTY_ADDRESS).getModel();
...
{noformat}

OperationContextImpl.readResourceForUpdate calls OperationContextImpl.requireChild:

{noformat}
    private static Resource requireChild(final Resource resource, final PathElement childPath, final PathAddress fullAddress) {
        if (resource.hasChild(childPath)) {
            return resource.requireChild(childPath);
        } else {
            PathAddress missing = PathAddress.EMPTY_ADDRESS;
            for (PathElement search : fullAddress) {
                missing = missing.append(search);
                if (search.equals(childPath)) {
                    break;
                }
            }
            throw ControllerMessages.MESSAGES.managementResourceNotFound(missing);
        }
    }
{noformat}

The exception generated by {{throw ControllerMessages.MESSAGES.managementResourceNotFound(missing);}}: 
# does not propagate from the host to DC and to CLI
# is not logged with any level (not even TRACE) either on host or DC
# should be handled within DeploymentUndeployHandler not to fail the undeploy operation in case of a partially failed deployment (e.g. EAR with unsatisfied CDI dependencies).








> Failures of undeploy of a partially failed deployment
> -----------------------------------------------------
>
>                 Key: WFLY-4203
>                 URL: https://issues.jboss.org/browse/WFLY-4203
>             Project: WildFly
>          Issue Type: Bug
>          Components: CLI, Domain Management
>    Affects Versions: 8.2.0.Final
>            Reporter: Arcadiy Ivanov
>            Assignee: Alexey Loubyansky
>
> {noformat}
> [domain at localhost:9990 /] undeploy 2e3b75f2-88ff-4eb9-a8b1-9107c452309e.ear --all-relevant-server-groups
> Undeploy failed: JBAS010839: Operation failed or was rolled back on all servers.
> {noformat}
> There are several issues at play here:
> # Insufficient information is displayed along with JBAS010839
> # No actual failure logged either in DC or in individual host's logs
> # Failure to find a deployment unit on a particular host should not result in a failure of a domain-wide undeploy in DeploymentUndeployHandler
> I'll start in a reverse order of causation:
> In DeploymentUndeployHandler.execute
> {noformat}
>     public void execute(OperationContext context, ModelNode operation) throws OperationFailedException {
>         ModelNode model = context.readResourceForUpdate(PathAddress.EMPTY_ADDRESS).getModel();
> ...
> {noformat}
> OperationContextImpl.readResourceForUpdate calls OperationContextImpl.requireChild:
> {noformat}
>     private static Resource requireChild(final Resource resource, final PathElement childPath, final PathAddress fullAddress) {
>         if (resource.hasChild(childPath)) {
>             return resource.requireChild(childPath);
>         } else {
>             PathAddress missing = PathAddress.EMPTY_ADDRESS;
>             for (PathElement search : fullAddress) {
>                 missing = missing.append(search);
>                 if (search.equals(childPath)) {
>                     break;
>                 }
>             }
>             throw ControllerMessages.MESSAGES.managementResourceNotFound(missing);
>         }
>     }
> {noformat}
> The exception generated by {{throw ControllerMessages.MESSAGES.managementResourceNotFound(missing);}}: 
> # does not propagate from the host to DC and to CLI
> # is not logged with any level (not even TRACE) either on host or DC
> # should be handled within DeploymentUndeployHandler not to fail the undeploy operation in case of a partially failed deployment (e.g. EAR with unsatisfied CDI dependencies).



--
This message was sent by Atlassian JIRA
(v6.3.11#6341)


More information about the jboss-jira mailing list