AS is killed if the agent is killed (provided it was started/restarted by the agent)

Jiri Kremser jkremser at redhat.com
Mon Feb 18 15:11:04 UTC 2013


I've implemented something that solves the issue. I've added a flag called "separatedFromParent" on ProcessExecution class and if user sets it to true it, surprisingly, separates the process from the parent process without loosing the exit code and/or streams.

I want to make a hangout on G+ about it today at 17:00.


jk

----- Original Message -----
> From: "Larry O'Leary" <loleary at redhat.com>
> To: rhq-devel at lists.fedorahosted.org
> Sent: Thursday, February 14, 2013 11:02:03 PM
> Subject: Re: AS is killed if the agent is killed (provided it was	started/restarted by the agent)
> 
> On Thu, 2013-02-14 at 13:39 -0500, Jiri Kremser wrote:
> > > If this happens when you run the agent using the recommended
> > > mechanism (rhq-agent-wrapper.sh) then I agree this is a problem.
> > > If this is true, we need to know this and fix it.
> > > So, if someone starts the agent via rhq-agent-wrapper.sh, that
> > > agent starts an AS7, the user then stops that agent, does the
> > > AS7 die? If so, that's a problem.
> > 
> > Neither sending the SIGINT to the agent started by
> > rhq-agent-wrapper.sh nor sending the SIGKILL stops the AS7.
> > Because the rhq-wrapper is separated from the agent
> 
> Okay. If this is the case then perhaps this does reduce the impact of
> this issue. However, I do not think it reduces the severity of the
> issue
> or mean that this is not a bug.
> 
> > > That is not the same thing. You are executing the code within the
> > > shell.
> > > You are not forking a process. Only creating a child shell within
> > > the
> > > running shell. If that is what we are doing, then that seems to
> > > be the
> > > flaw.
> > 
> > I think it is the same as what we do in our environment. The only
> > way of forking a process in bash is the & as far as I know, we
> > don't have any C code doing fork().
> 
> Agreed. I am not saying it is not the same as what we are doing. I am
> saying that what you described is not the same as what I was
> referring
> to. I can start processes or have init start processes without the
> concern or risk killing my terminal or the init service resulting in
> everything be stopped.
> 
> What you are referring to is executing processes within a thread in
> the
> foreground. Perhaps that is a limitation of Java but shouldn't change
> the fact that such a limitation introduces a critical flaw in how
> plug-ins control the life-cycle of a resource they manage and by
> using
> such functionality, you are now exposing all your services to the
> potential of ultimate termination by the agent in an uncontrolled
> manner. In other others, the only option I have is to use RHQ or not
> to
> use RHQ. There is no happy medium other then just telling users not
> to
> do something and hoping that everyone remembers that for ever and no
> new
> administrators get added to the team. Essentially saying that it is
> human nature and an accepted standard that unrelated processes don't
> share the same life-cycle.
> 
> > 
> > > All processes that have been forked from their parent will not
> > > receive
> > signals from their parent.
> > 
> > agree, or if the signals are intercepted by traps or a signal
> > handlers (for JVM).
> > 
> > 
> > 
> > There is a JVM option -Xnosigchain for disabling the JVM signal
> > handler chaining on IBM JVM, on the Oracle's JVM there is -Xrs
> > option for that. I wouldn't do that. It would disable our
> > ShutdownHookMechanism.
> > 
> > Other option is to implement our own SignalHandler
> > (http://pastebin.test.redhat.com/127934). I am playing with it
> > right now.
> 
> > 
> > 
> > 
> > 
> > . The default signal handler can be replaced
> > IBM java specific, for oracle there is -Xrs
> > 
> > not good idea
> > 
> > 
> > 
> > ----- Original Message -----
> > > From: "John Mazzitelli" <mazz at redhat.com>
> > > To: rhq-devel at lists.fedorahosted.org
> > > Sent: Thursday, February 14, 2013 4:32:27 PM
> > > Subject: Re: AS is killed if the agent is killed (provided it was
> > > 	started/restarted by the agent)
> > > 
> > > > There are other ways this could happen. For example, platform
> > > > level
> > > > monitoring systems may decide to restart this agent by sending
> > > > it
> > > > the
> > > > SIGINT signal. From the sounds of it, this too would cause the
> > > > issue
> > > > whether the agent is in the foreground or background?
> > > 
> > > If this happens when you run the agent using the recommended
> > > mechanism (rhq-agent-wrapper.sh) then I agree this is a problem.
> > > If
> > > this is true, we need to know this and fix it.
> > > 
> > > So, if someone starts the agent via rhq-agent-wrapper.sh, that
> > > agent
> > > starts an AS7, the user then stops that agent, does the AS7 die?
> > > If
> > > so, that's a problem.
> > > _______________________________________________
> > > rhq-devel mailing list
> > > rhq-devel at lists.fedorahosted.org
> > > https://lists.fedorahosted.org/mailman/listinfo/rhq-devel
> > > 
> > _______________________________________________
> > rhq-devel mailing list
> > rhq-devel at lists.fedorahosted.org
> > https://lists.fedorahosted.org/mailman/listinfo/rhq-devel
> 
> 
> _______________________________________________
> rhq-devel mailing list
> rhq-devel at lists.fedorahosted.org
> https://lists.fedorahosted.org/mailman/listinfo/rhq-devel
> 


More information about the rhq-devel mailing list