Description of problem: The console only displays the 'Force Shutdown' link if it believes the server is started. But in some pathological situations, a broken server can fail to shut down when the 'Stop Server' link in clicked, but the DC and console don't communicate that effectively to each other, the console thinks the server is stopped, and no longer displays the 'Force Shutdown' link. The user is forced to use the CLI or OS tools to kill the server. Since 'Force Shutdown' is used to deal with pathological conditions, the simply solution is to always provide the 'Force Shutdown' link. Version-Release number of selected component (if applicable): 6.4 CP11 How reproducible: Always Steps to Reproduce: 1. Deploy an application to a server group that includes logic that will not let MSC stop a service. I'll attach such an app in a moment; it includes a servlet destroy() method that will never return, resulting in the service used for that servlet never stopping. 2. For one of the servers that has the app deployed, click the 'Stop Server' link. Actual results: Server cannot completely stop normally and needs to be killed. But the console reports it as stopped and does not display the 'Force Shutdown' link. Expected results: Server cannot completely stop normally and needs to be killed. The console reports it as stopped but continues to display the 'Force Shutdown' link, giving the user the option to kill the server. Additional info: I consider improving the server state communication between the domain and the console such that the console doesn't regard the server as stopped as being out of scope here. It's a valid thing to look at upstream, but what I propose here is a simple fail safe.
https://bugzilla.redhat.com/show_bug.cgi?id=1259767 is the related case the testing work on which surfaced this issue.
Created attachment 1226870 [details] Pathological war Attached a war with a servlet that does not return from destroy() preventing normal undeploy or shutdown.
Created attachment 1226883 [details] Related ear Ear that the sample-web2.war *may* depend on. Teresa Miyar Gil of GSS gave me these apps; my impression is the war requires the ear to be deployed. The pathological aspect of the war isn't really related to the ear though.
Created attachment 1226884 [details] Source for deployments Source for the attached deployments. Note the source is a bit different from the compiled war, as the source has the pathological bit of the DelayServlet's destroy() method commented out.
Master HAL commit: https://github.com/hal/core/commit/2166ed415f0155055554e2d70aa738e082f30399 Upstream Jira: https://issues.jboss.org/browse/HAL-1241
Verified with EAP 6.4.13.CP.CR1
Released with EAP 6.4.13 on Feb 02 2017.