Public bug reported:

Hi,

When I try to detach a slave from a bonded interface, it fails as
follows:

| [hloeung@myhost etc]$ sudo ifenslave -v -d bond0 ens2f1
| ens2f1: is not enslaved to bond0

It's definitely part of the bond:

| [hloeung@myhost etc]$ ls /sys/class/net/bond0/ -la | grep ens
| lrwxrwxrwx  1 root root    0 Jan 12 02:36 lower_ens2f0 -> 
../../../pci0000:00/0000:00:02.0/0000:05:00.0/net/ens2f0
| lrwxrwxrwx  1 root root    0 Jan 12 02:36 lower_ens2f1 -> 
../../../pci0000:00/0000:00:02.0/0000:05:00.1/net/ens2f1

Running ifenslave with `sh -x` shows this:

| ...
| + [ -z ens2f1 ]
| + master=bond0
| + shift
| + [ -d /sys/class/net/bond0 ]
| + [ -d /sys/class/net/bond0/bonding ]
| + [  = 1 ]
| + [ -d /sys/class/net/ens2f1 ]
| + [ -z 1 ]
| + [ ! -h /sys/class/net/bond0/slave_ens2f1 ]
| + echo ens2f1: is not enslaved to bond0
| ens2f1: is not enslaved to bond0
| + continue
| + exit 0

I think the bug is in this code:

| if [ -z "$DETACH" ]; then
|         if [ -h "/sys/class/net/$master/slave_$slave" ] ||
|            [ -h "/sys/class/net/$master/lower_$slave" ]; then
|                 echo "$slave: already enslaved to $master" >&2
|                 continue
|         fi
| ...
| else
|         if [ ! -h "/sys/class/net/$master/slave_$slave" ] ||
|            [ ! -h "/sys/class/net/$master/lower_$slave" ]; then
|                 echo "$slave: is not enslaved to $master" >&2
|                 continue
|         fi

Where rather than ||, it should be && in the else block (for detaching).

** Affects: ifenslave (Ubuntu)
     Importance: Undecided
         Status: Invalid

** Affects: ifenslave (Ubuntu Xenial)
     Importance: Undecided
         Status: Invalid

** Changed in: ifenslave (Ubuntu)
       Status: New => Invalid

** Also affects: ifenslave (Ubuntu Xenial)
   Importance: Undecided
       Status: New

** Changed in: ifenslave (Ubuntu Xenial)
       Status: New => Invalid

** Description changed:

  Hi,
  
  When I try to detach a slave from a bonded interface, it fails as
  follows:
  
  | [hloeung@myhost etc]$ sudo ifenslave -v -d bond0 ens2f1
  | ens2f1: is not enslaved to bond0
  
  It's definitely part of the bond:
  
  | [hloeung@myhost etc]$ ls /sys/class/net/bond0/ -la | grep ens
  | lrwxrwxrwx  1 root root    0 Jan 12 02:36 lower_ens2f0 -> 
../../../pci0000:00/0000:00:02.0/0000:05:00.0/net/ens2f0
  | lrwxrwxrwx  1 root root    0 Jan 12 02:36 lower_ens2f1 -> 
../../../pci0000:00/0000:00:02.0/0000:05:00.1/net/ens2f1
  
  Running ifenslave with `sh -x` shows this:
  
  | ...
  | + [ -z ens2f1 ]
  | + master=bond0
  | + shift
  | + [ -d /sys/class/net/bond0 ]
  | + [ -d /sys/class/net/bond0/bonding ]
  | + [  = 1 ]
  | + [ -d /sys/class/net/ens2f1 ]
  | + [ -z 1 ]
  | + [ ! -h /sys/class/net/bond0/slave_ens2f1 ]
  | + echo ens2f1: is not enslaved to bond0
  | ens2f1: is not enslaved to bond0
  | + continue
  | + exit 0
  
  I think the bug is in this code:
  
  | if [ -z "$DETACH" ]; then
  |         if [ -h "/sys/class/net/$master/slave_$slave" ] ||
  |            [ -h "/sys/class/net/$master/lower_$slave" ]; then
  |                 echo "$slave: already enslaved to $master" >&2
  |                 continue
  |         fi
  | ...
  | else
- |         if [ ! -h "/sys/class/net/$master/slave_$slave" ] &&
+ |         if [ ! -h "/sys/class/net/$master/slave_$slave" ] ||
  |            [ ! -h "/sys/class/net/$master/lower_$slave" ]; then
  |                 echo "$slave: is not enslaved to $master" >&2
  |                 continue
  |         fi
  
- Where rather than &&, it should be || in the else block (for detaching).
+ Where rather than ||, it should be && in the else block (for detaching).

-- 
You received this bug notification because you are a member of नेपाली
भाषा समायोजकहरुको समूह, which is subscribed to Xenial.
Matching subscriptions: Ubuntu 16.04 Bugs
https://bugs.launchpad.net/bugs/1957128

Title:
  ifenslave fails to detach slave from bonded interface

Status in ifenslave package in Ubuntu:
  Invalid
Status in ifenslave source package in Xenial:
  Invalid

Bug description:
  Hi,

  When I try to detach a slave from a bonded interface, it fails as
  follows:

  | [hloeung@myhost etc]$ sudo ifenslave -v -d bond0 ens2f1
  | ens2f1: is not enslaved to bond0

  It's definitely part of the bond:

  | [hloeung@myhost etc]$ ls /sys/class/net/bond0/ -la | grep ens
  | lrwxrwxrwx  1 root root    0 Jan 12 02:36 lower_ens2f0 -> 
../../../pci0000:00/0000:00:02.0/0000:05:00.0/net/ens2f0
  | lrwxrwxrwx  1 root root    0 Jan 12 02:36 lower_ens2f1 -> 
../../../pci0000:00/0000:00:02.0/0000:05:00.1/net/ens2f1

  Running ifenslave with `sh -x` shows this:

  | ...
  | + [ -z ens2f1 ]
  | + master=bond0
  | + shift
  | + [ -d /sys/class/net/bond0 ]
  | + [ -d /sys/class/net/bond0/bonding ]
  | + [  = 1 ]
  | + [ -d /sys/class/net/ens2f1 ]
  | + [ -z 1 ]
  | + [ ! -h /sys/class/net/bond0/slave_ens2f1 ]
  | + echo ens2f1: is not enslaved to bond0
  | ens2f1: is not enslaved to bond0
  | + continue
  | + exit 0

  I think the bug is in this code:

  | if [ -z "$DETACH" ]; then
  |         if [ -h "/sys/class/net/$master/slave_$slave" ] ||
  |            [ -h "/sys/class/net/$master/lower_$slave" ]; then
  |                 echo "$slave: already enslaved to $master" >&2
  |                 continue
  |         fi
  | ...
  | else
  |         if [ ! -h "/sys/class/net/$master/slave_$slave" ] ||
  |            [ ! -h "/sys/class/net/$master/lower_$slave" ]; then
  |                 echo "$slave: is not enslaved to $master" >&2
  |                 continue
  |         fi

  Where rather than ||, it should be && in the else block (for
  detaching).

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/ifenslave/+bug/1957128/+subscriptions


_______________________________________________
Mailing list: https://launchpad.net/~group.of.nepali.translators
Post to     : group.of.nepali.translators@lists.launchpad.net
Unsubscribe : https://launchpad.net/~group.of.nepali.translators
More help   : https://help.launchpad.net/ListHelp

Reply via email to