[Devel] all openser processes do not get killed

Klaus Darilion klaus.mailinglists at pernau.at
Fri May 4 10:51:34 CEST 2007



Daniel-Constantin Mierla wrote:
> Hello,
> 
> there are several cases which may get to blocking of openser stop, but 
> should kill itself after 60sec. That is a define, maybe should be moved 
> as config parameter.
> 
> One possibility is caused by syslog -- syslog does synchronized writing, 

I use asynchronous syslog and also have the problem ...

regards
klaus

> if it was writing when the kill is done will get locked by next log 
> messages in destroy functions. It is hard to avoid it. Other possibility 
> is from destroy functions, which try to aquire a lock set when the 
> signal was received. Solution is to do destroy functions in non-blocking 
> mode.
> 
> Cheers,
> Daniel
> 
> 
> On 05/04/07 02:14, Ovidiu Sas wrote:
>> Hi Juha,
>>
>>
>> On openser stop, the attendant process will receive the  SIGTERM and
>> it will dispatch the signal to it's child.  The two hanging processes
>> are child of a child and are not visible to the dispatcher.
>>
>> Compile openser in debug mode, attach to the child with strace (strace
>> -p PID) and stop openser.  Check if the SIGTERM  signal is propagated
>> down to the two child and processes and check how the signal is
>> handled (and combine this information with the output of the debug
>> log).  Maybe this will reveal why the two processes are still hanging.
>>
>>
>> Hope this helps,
>> Ovidiu Sas
>>
>> On 5/3/07, Juha Heinanen <jh at tutpro.com> wrote:
>>> Ovidiu Sas writes:
>>>
>>>  > Use 'openserctl ps' to identify the processes by pid, stop openser 
>>> and
>>>  > then check which process is hanging.
>>>
>>> the two remaining ones are:
>>>
>>> Process::  ID=0 PID=10478 Type=attendant
>>> Process::  ID=2 PID=10480 Type=receiver child=0 sock= 192.98.101.10:5090
>>>
>>> and the defunc ones are hanging from the latter:
>>>
>>> root     10478     1  0 22:25 ?        00:00:00 /usr/sbin/openser
>>> root     10480 10478  0 22:25 ?        00:00:00  \_ /usr/sbin/openser
>>> root     10481 10480  0 22:25 ?        00:00:00      \_ [openser] 
>>> <defunct>
>>> root     10482 10480  0 22:25 ?        00:00:00      \_ [openser] 
>>> <defunct>
>>>
>>> sometimes init script stop doesn't kill any of the processes, but pid
>>> file does get removed.
>>>
>>> as i said, init script works flawlessly for me if i disable presence.
>>>
>>> i know that i can play games with killall, etc., but i would rather like
>>> to solve this problem, since i don't have any other applications either
>>> where games are necessary (mysql, radius, etc.).
>>>
>>> -- juha
>>>
>>
>> _______________________________________________
>> Devel mailing list
>> Devel at openser.org
>> http://openser.org/cgi-bin/mailman/listinfo/devel
>>
> 
> _______________________________________________
> Devel mailing list
> Devel at openser.org
> http://openser.org/cgi-bin/mailman/listinfo/devel



More information about the Devel mailing list