[Devel] all openser processes do not get killed

Daniel-Constantin Mierla daniel at voice-system.ro
Fri May 4 10:26:19 CEST 2007


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, 
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
>



More information about the Devel mailing list