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
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
The agent awaits shutdown of ProcessExecutor idle worker thread
The agent should terminate immediately
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
Author: Thomas Segismont <email@example.com>
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