Bug 1126047

Summary: Agent awaits shutdown of ProcessExecutor idle worker thread; should terminate immediately
Product: [Other] RHQ Project Reporter: Thomas Segismont <tsegismo>
Component: AgentAssignee: Thomas Segismont <tsegismo>
Status: ON_QA --- QA Contact: Mike Foley <mfoley>
Severity: low Docs Contact:
Priority: unspecified    
Version: 4.10, 4.9, 4.11, 4.12CC: hrupp, mazz
Target Milestone: ---   
Target Release: RHQ 4.13   
Hardware: Unspecified   
OS: Unspecified   
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Description Flags
RHQ Agent Wrapper log file with thread dump none

Description Thomas Segismont 2014-08-01 16:58:41 UTC
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:

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

Comment 1 John Mazzitelli 2014-08-01 17:05:42 UTC
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?

Comment 2 Thomas Segismont 2014-08-01 17:08:45 UTC
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.

Comment 3 Thomas Segismont 2014-08-22 12:56:56 UTC
Fixed in master

commit 1d0cff83d968509ee98f2b4934c1226c8bb332ce
Author: Thomas Segismont <tsegismo@redhat.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