[jboss-jira] [JBoss JIRA] (WFCORE-1245) Improve readability of missing dependency logs

Bartosz Spyrko-Śmietanko (JIRA) issues at jboss.org
Mon Feb 15 04:50:02 EST 2016


    [ https://issues.jboss.org/browse/WFCORE-1245?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13162345#comment-13162345 ] 

Bartosz Spyrko-Śmietanko edited comment on WFCORE-1245 at 2/15/16 4:49 AM:
---------------------------------------------------------------------------

Some potential solutions:
1. Change ServiceVerificationHelper to include "Services that may be the cause" sections on each failure [1]
2. Add a step in the deployment to analyze missing services and report if dependency between subdeployment is found. [2][3]
3. Change the order of deployment phases so that the missing services for EJBs in the dependant subdeployment are only created after the dependency subdeployment is completed. [3]

Option 1) reduces number of the reported failures making it a bit easier to analyze the input and is fairly low-impact. The other 2 options require bigger changes, but give clearer results to the user.

[1] https://github.com/spyrkob/wildfly-core/commit/81b752e9fb011ceca5788d1cdeabf2f5932b42a3
[2] https://github.com/spyrkob/wildfly-core/commit/d8b7487b7321fef069708912d710de96d83355d0
[3] https://github.com/spyrkob/jboss-msc/commit/b32c87f9095b5ac4189883452f4cc9e91286a6f6
[4] https://github.com/spyrkob/wildfly-core/commit/2c157b83b6920233e2af1d1a5e748bfac5389fe0



> Improve readability of missing dependency logs
> ----------------------------------------------
>
>                 Key: WFCORE-1245
>                 URL: https://issues.jboss.org/browse/WFCORE-1245
>             Project: WildFly Core
>          Issue Type: Enhancement
>            Reporter: Bartosz Spyrko-Śmietanko
>            Assignee: Dennis Reed
>         Attachments: bz1283294-reproducer.zip
>
>
> When deploying an ear using initialize-in-order option, if one of the subdeployments contains an EJB that depends on an EJB from another subdeployment and the dependency subdeployment fails log output makes it hard to understand the root cause.
> Structure of deployment is as follows:
> {noformat}
> reproducer.ear
> |- service-locator.jar
> |  |- ServiceLocator (Stateless EJB)
> |     |- TestQueue (JNDI Resource)
> |- client.jar
>    |- TestEjb (Stateless EJB)
>       |- ServiceLocator
> {noformat}
> If the TestQueue JNDI resource cannot be injected in the ServiceLocator, the deployment failure output lists a number of missing services per each EJB in the dependant subdeployment (.ORB, .HandleDelegate, .ValidatorFactory, etc). 
> When the dependant subdeployment has a larger number of EJBs the log output very quickly becomes hard to read. 
> Example with a single dependant EJB:
> {noformat}
> 14:27:43,092 ERROR [org.jboss.as.controller.management-operation] (management-handler-thread - 2) WFLYCTL0013: Operation ("deploy") failed - address: ({"deployment" => "reproducer-1.0-SNAPSHOT.ear"}) - failure description: {
>     "WFLYCTL0180: Services with missing/unavailable dependencies" => [
>         "jboss.deployment.subunit.\"reproducer-1.0-SNAPSHOT.ear\".\"client.jar\".batch.environment is missing [jboss.deployment.subunit.\"reproducer-1.0-SNAPSHOT.ear\".\"client.jar\".beanmanager]",
>         "jboss.naming.context.java.comp.testEar.client.TestEjb.ValidatorFactory is missing [jboss.naming.context.java.comp.testEar.client.TestEjb]",
>         "jboss.naming.context.java.comp.testEar.client.TestEjb.ORB is missing [jboss.naming.context.java.comp.testEar.client.TestEjb]",
>         "jboss.naming.context.java.comp.testEar.client.TestEjb.HandleDelegate is missing [jboss.naming.context.java.comp.testEar.client.TestEjb]",
>         "jboss.deployment.subunit.\"reproducer-1.0-SNAPSHOT.ear\".\"client.jar\".weld.weldClassIntrospector is missing [jboss.deployment.subunit.\"reproducer-1.0-SNAPSHOT.ear\".\"client.jar\".beanmanager]",
>         "jboss.deployment.unit.\"reproducer-1.0-SNAPSHOT.ear\".deploymentCompleteService is missing [jboss.deployment.subunit.\"reproducer-1.0-SNAPSHOT.ear\".\"client.jar\".deploymentCompleteService]",
>         "jboss.naming.context.java.comp.testEar.client.TestEjb.InstanceName is missing [jboss.naming.context.java.comp.testEar.client.TestEjb]",
>         "jboss.naming.context.java.comp.testEar.client.TestEjb.Validator is missing [jboss.naming.context.java.comp.testEar.client.TestEjb]",
>         "jboss.naming.context.java.comp.testEar.service-locator.test_ServiceLocator.env.queue.TestQueue is missing [jboss.naming.context.java.jboss.resources.queue.TestQueue]",
>         "jboss.naming.context.java.comp.testEar.client.TestEjb.InAppClientContainer is missing [jboss.naming.context.java.comp.testEar.client.TestEjb]"
>     ],
>     "WFLYCTL0288: One or more services were unable to start due to one or more indirect dependencies not being available." => {
>         "Services that were unable to start:" => [
>             "jboss.deployment.subunit.\"reproducer-1.0-SNAPSHOT.ear\".\"client.jar\".INSTALL",
>             "jboss.deployment.subunit.\"reproducer-1.0-SNAPSHOT.ear\".\"service-locator.jar\".CLEANUP",
>             "jboss.deployment.subunit.\"reproducer-1.0-SNAPSHOT.ear\".\"service-locator.jar\".component.test_ServiceLocator.JndiBindingsService",
>             "jboss.deployment.subunit.\"reproducer-1.0-SNAPSHOT.ear\".\"service-locator.jar\".component.test_ServiceLocator.START",
>             "jboss.deployment.subunit.\"reproducer-1.0-SNAPSHOT.ear\".\"service-locator.jar\".deploymentCompleteService",
>             "jboss.deployment.subunit.\"reproducer-1.0-SNAPSHOT.ear\".\"service-locator.jar\".jndiDependencyService",
>             "jboss.deployment.subunit.\"reproducer-1.0-SNAPSHOT.ear\".\"service-locator.jar\".moduleDeploymentRuntimeInformationStart",
>             "jboss.deployment.unit.\"reproducer-1.0-SNAPSHOT.ear\".CLEANUP"
>         ]
> {noformat}



--
This message was sent by Atlassian JIRA
(v6.4.11#64026)



More information about the jboss-jira mailing list