Jiri,
Please, can you push your topic branch and give an url to the changeset
in fedora hosted git web view before the meeting?
Thanks
Thomas
Le 18/02/2013 16:11, Jiri Kremser a écrit :
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(a)redhat.com>
> To: rhq-devel(a)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(a)redhat.com>
>>> To: rhq-devel(a)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(a)lists.fedorahosted.org
>>>
https://lists.fedorahosted.org/mailman/listinfo/rhq-devel
>>>
>> _______________________________________________
>> rhq-devel mailing list
>> rhq-devel(a)lists.fedorahosted.org
>>
https://lists.fedorahosted.org/mailman/listinfo/rhq-devel
>
>
> _______________________________________________
> rhq-devel mailing list
> rhq-devel(a)lists.fedorahosted.org
>
https://lists.fedorahosted.org/mailman/listinfo/rhq-devel
>
_______________________________________________
rhq-devel mailing list
rhq-devel(a)lists.fedorahosted.org
https://lists.fedorahosted.org/mailman/listinfo/rhq-devel