]
Brian Stansberry updated WFCORE-4139:
-------------------------------------
Comment: was deleted
(was: I understand now. The ProcessController has no shutdown hook, so calling
Process.destroy on it is going to succeed very quickly. The HC process then detects the
close of stdin and shuts down. So that is async to stopping the PC.
So maybe this is an Enhancement to make that better, or maybe just a Won't Fix because
the chance of doing harm with a fix outweighs any benefit.)
Unclean disconnect of stopping slave HC from the domain
-------------------------------------------------------
Key: WFCORE-4139
URL:
https://issues.jboss.org/browse/WFCORE-4139
Project: WildFly Core
Issue Type: Bug
Components: Management
Reporter: Brian Stansberry
Assignee: Jeff Mesnil
Priority: Minor
Labels: domain-mode
An interesting problem popped up when executing a new test I wrote.[1]
The test invoked DomainLifecycleUtil.stop() to stop the slave HC. After it returned, it
invoked an op on the master, one that would result in domain wide rollout. That failed
with a failure indicating a problem sending the op to the slave.
But the slave should have been disconnected from the master before
DomainLifecycleUtil.stop() returned. It does a process.stop() on the PC, which should
cleanly stop the PC, which cleanly stops the HC, which should cleanly disconnect from the
master as part of stopping. But somehow that didn't all happen.
[1] These specific details will soon be out of date; i.e. I'll change the test to
work around this and eventually the test job will come out of TeamCity history. But anyway
here they are:
https://ci.wildfly.org/viewLog.html?buildId=123039&tab=buildResultsDi...
{code}
java.lang.AssertionError: {"host-failure-descriptions" => {"slave"
=> "Writes closed"}}
at org.junit.Assert.fail(Assert.java:88)
at
org.jboss.as.test.integration.domain.management.util.DomainTestSupport.validateResponse(DomainTestSupport.java:229)
at
org.jboss.as.test.integration.domain.management.util.DomainTestSupport.validateResponse(DomainTestSupport.java:221)
at
org.jboss.as.test.integration.domain.suites.HostLifecycleWithRolloutPlanTestCase.addRolloutPlan(HostLifecycleWithRolloutPlanTestCase.java:189)
at
org.jboss.as.test.integration.domain.suites.HostLifecycleWithRolloutPlanTestCase.testSlaveBootWithMissingRolloutPlan(HostLifecycleWithRolloutPlanTestCase.java:167)
{code}