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

Ilya Maximets i.maximets at samsung.com
Tue Dec 15 13:58:04 UTC 2015


Yes. Tested with last master
398e182 ("datapath-windows: remove ASSERT in OvsDoFlowLookupOutput()").

Problem is that ovs-vswitchd killed by 'ovs-ctl stop' called by systemd.
netdev_dpdk_vhost_destruct() never called.

Best regards, Ilya Maximets.
 
On 15.12.2015 16:52, Traynor, Kevin wrote:
> 
>> -----Original Message-----
>> From: dev [mailto:dev-bounces at openvswitch.org] On Behalf Of Ilya Maximets
>> Sent: Tuesday, December 15, 2015 1:38 PM
>> To: dev at openvswitch.org; Ben Pfaff
>> Cc: Ilya Maximets; Pavel Fedin; Dyasly Sergey
>> Subject: [ovs-dev] [PATCH RFC] ovs-lib: try to call exit before killing
>>
>> 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.
> 
> Have you tested the issue with this commit? 
> 
> commit e04f7e4f2f574500334326dbda1bb808cf25c721
> Author: Ciara Loftus <ciara.loftus at intel.com>
> Date:   Wed Oct 21 14:50:36 2015 +0100
> 
>     netdev-dpdk: Clean-up after vHost User port delete
> 
>     Unregister and delete the socket associated with a vhost-user
>     port when the port is deleted and/or the switch is brought down.
>     Do not delete the socket if the vhost-user device is still attached
>     to the guest.
> 
>     Signed-off-by: Ciara Loftus <ciara.loftus at intel.com>
>     Acked-by: Daniele Di Proietto <diproiettod at vmware.com>
> 
>>
>> 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
>> +                        ;;
>>                      TERM)
>>                          action "Killing $1 ($pid)" kill $pid
>>                          ;;
>> --
>> 2.1.4
>>
>> _______________________________________________
>> dev mailing list
>> dev at openvswitch.org
>> http://openvswitch.org/mailman/listinfo/dev



More information about the dev mailing list