[jboss-jira] [JBoss JIRA] Commented: (JBAS-9077) Deployment failure leads to a server hang
jaikiran pai (JIRA)
jira-events at lists.jboss.org
Tue Mar 22 07:39:55 EDT 2011
[ https://issues.jboss.org/browse/JBAS-9077?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12589605#comment-12589605 ]
jaikiran pai commented on JBAS-9077:
------------------------------------
Spent a bit of time on this one today. The DeploymentServiceListener _doesn't_ invoke the callback when a service installation fails:
{code}
public void serviceFailed(final ServiceController<? extends Object> controller, final StartException reason) {
controller.removeListener(this);
startExceptions.put(controller.getName(), reason);
tick(controller);
}
{code}
The "tick" method is supposed to invoke the callback to report the failed service:
{code}
private void tick(ServiceController<?> controller) {
//this can happen if a service with missing deps is removed
//we do not decrement the count, as this has already happened
//in the dependencyUninstalled method
if (count.decrementAndGet() == 0) {
target.removeListener(this);
if(startExceptions.isEmpty() && failedDependencies.isEmpty()) {
log.infof("Completed deployment of \"%s\" in %d ms", deploymentName, Long.valueOf((System.nanoTime() - startTime) / 1000000L));
callback.handleComplete();
} else {
final StringBuilder builder = new StringBuilder("Deployment \"%s\" failed in %d ms. ");
if(!startExceptions.isEmpty()) {
builder.append("Service failures: ").append(startExceptions.values());
}
if(!failedDependencies.isEmpty()) {
builder.append("Failed Dependencies: ").append(failedDependencies);
}
log.infof(builder.toString(), deploymentName, Long.valueOf((System.nanoTime() - startTime) / 1000000L));
callback.handleFailure(startExceptions, failedDependencies);
}
}
}
{code}
However, the "if" block in the tick method doesn't evaluate to true and as a result the callback isn't invoked to handle the failure. I don't yet know the details about the listeners and the deployment lifecycle, so not too sure if that count check is correct.
> Deployment failure leads to a server hang
> -----------------------------------------
>
> Key: JBAS-9077
> URL: https://issues.jboss.org/browse/JBAS-9077
> Project: JBoss Application Server
> Issue Type: Bug
> Security Level: Public(Everyone can see)
> Environment: JBoss AS7 master
> Reporter: jaikiran pai
> Fix For: 7.0.0.Beta2
>
> Attachments: error-leads-to-hang.txt
>
>
> This might be related to JBAS-9010 (and/or JBAS-9037). Am not sure, so creating a separate JIRA. A deployment failure like this:
> {code}
> 16:12:54,194 ERROR [org.jboss.msc.service.fail] (MSC service thread 1-2) MSC00001: Failed to start service jboss.deployment.unit."ejb3-example.jar".INSTALL: org.jboss.msc.service.StartException in service jboss.deployment.unit."ejb3-example.jar".INSTALL: Failed to process phase INSTALL of deployment "ejb3-example.jar"
> at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:108)
> at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1344)
> at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) [:1.6.0_21]
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) [:1.6.0_21]
> at java.lang.Thread.run(Thread.java:619) [:1.6.0_21]
> Caused by: java.lang.NullPointerException
> at org.jboss.as.ejb3.component.session.SessionBeanComponentConfiguration.addMethodApplicableLockType(SessionBeanComponentConfiguration.java:139)
> at org.jboss.as.ejb3.component.session.SessionBeanComponentDescription.prepareLockConfiguration(SessionBeanComponentDescription.java:263)
> at org.jboss.as.ejb3.component.session.SessionBeanComponentDescription.prepareComponentConfiguration(SessionBeanComponentDescription.java:236)
> at org.jboss.as.ee.component.AbstractComponentDescription.createComponentConfiguration(AbstractComponentDescription.java:366)
> at org.jboss.as.ee.component.ComponentInstallProcessor.deploy(ComponentInstallProcessor.java:81)
> at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:102)
> ... 4 more
> {code}
> causes the demo and the smoke-tests to hang. Attached is the thread dump.
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira
More information about the jboss-jira
mailing list