Created attachment 923367 [details] RHQ Agent Wrapper log file with thread dump Description of problem: The agent is waiting for shutdown of idle worker threads (the threads which read external process output and error streams) Version-Release number of selected component (if applicable): 4.9 -> 4.12 How reproducible: 1/1 Steps to Reproduce: 1.Inventory an EAP6 server 2.Invoke operation restart 3.Wait for the EAP6 server to come back up 4.Execute rhqctl --agent restart Actual results: The agent awaits shutdown of ProcessExecutor idle worker thread Expected results: The agent should terminate immediately Additional info: See thread dump in agent wrapper log file attached
well, I'm not convinced yet this is a problem. Why should the agent terminate immediately? In this case, it is waiting to finish doing what it was told to do (that is, restart EAP through the restart operation - the EAP restart hasn't finished yet, right?). I would rather the agent finish managing the production resource (that is, finish restarting the EAP instance) than have the management tool (the agent) immediately die and not finish. Or do I misunderstand the problem that is being reported?
The operation finished and marked as such in the UI, that's not the problem. Look at the attached file. We have two threads reading the output of a running process.
Fixed in master commit 1d0cff83d968509ee98f2b4934c1226c8bb332ce Author: Thomas Segismont <tsegismo> Date: Fri Aug 22 14:55:43 2014 +0200 There's no need to block the JVM while waiting for a process completion or pumping process streams