[ovs-dev] [PATCH RFC] ovs-lib: try to call exit before killing

Ilya Maximets i.maximets at samsung.com
Wed Dec 16 06:54:48 UTC 2015



On 16.12.2015 07:21, Ben Pfaff wrote:
> On Tue, Dec 15, 2015 at 04:37:34PM +0300, Ilya Maximets wrote:
>> While killing OVS may not free all allocated resources.
>>
>> Eample:
>> 	Socket for vhost-user port will stay in a system
>> 	after 'systemctl stop openvswitch' and opening
>> 	that port after restart will fail.
>>
>> Signed-off-by: Ilya Maximets <i.maximets at samsung.com>
>> ---
>>  utilities/ovs-lib.in | 5 ++++-
>>  1 file changed, 4 insertions(+), 1 deletion(-)
>>
>> diff --git a/utilities/ovs-lib.in b/utilities/ovs-lib.in
>> index dd8a1e9..8b371dd 100644
>> --- a/utilities/ovs-lib.in
>> +++ b/utilities/ovs-lib.in
>> @@ -202,11 +202,14 @@ start_daemon () {
>>  stop_daemon () {
>>      if test -e "$rundir/$1.pid"; then
>>          if pid=`cat "$rundir/$1.pid"`; then
>> -            for action in TERM .1 .25 .65 1 1 1 1 KILL 1 1 1 2 10 15 30 FAIL; do
>> +            for action in EXIT 2 TERM .1 .25 .65 1 1 1 1 KILL 1 1 1 2 10 15 30 FAIL; do
>>                  if pid_exists "$pid" >/dev/null 2>&1; then :; else
>>                      return 0
>>                  fi
>>                  case $action in
>> +                    EXIT)
>> +                        action "Exiting $1 ($pid)" ${bindir}/ovs-appctl -t $1 exit
> 
> Probably should specify "-T 1" to make sure that ovs-appctl doesn't hang
> forever if the daemon is buggy.
> 
> Might want to specify "-t $rundir/$1.pid" instead of "-t $1" so that the
> process we kill is certain to be the one in the right pidfile (in case
> of some weird configuration mismatch).
> 
> 

Thanks.
New version posted.

Best regards, Ilya Maximets.



More information about the dev mailing list