[Bug 1590052] Re: juju deploy brings up interfaces in wrong order

Martin Pitt martin.pitt at ubuntu.com
Tue Jun 7 15:52:57 UTC 2016


I'm not sure how ifquery works, whether it lists in the order of
/e/n/interfaces or the order they get brought up with "ifup -a" (which
is supposedly the same, though). So please reassign to ifupdown if
appropriate.

** Package changed: systemd (Ubuntu) => juju (Ubuntu)

-- 
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to systemd in Ubuntu.
https://bugs.launchpad.net/bugs/1590052

Title:
  juju deploy brings up interfaces in wrong order

Status in juju package in Ubuntu:
  New

Bug description:
  
  Hi.

  Upon using "juju bootstrap" for maas environment, deploying first
  machine get stuck, if machine have only bond interface.

  I would seem that problem is with add-juju-bridge.py script, which is
  responsible for changing interfaces file, and bringing them up.

  In this script, you have:

  [snip]
      ifquery = "$(ifquery --interfaces={} --exclude=lo --list)".format(args.filename)

      print("**** Original configuration")
      print_shell_cmd("cat {}".format(args.filename))
      print_shell_cmd("ifconfig -a")
      print_shell_cmd("ifdown --exclude=lo --interfaces={} {}".format(args.filename, ifquery))

      print("**** Activating new configuration")

      with open(args.filename, 'w') as f:
          print_stanzas(stanzas, f)
          f.close()

      print_shell_cmd("cat {}".format(args.filename))
      print_shell_cmd("ifup --exclude=lo --interfaces={} {}".format(args.filename, ifquery))
      print_shell_cmd("ip link show up")
      print_shell_cmd("ifconfig -a")
      print_shell_cmd("ip route show")
      print_shell_cmd("brctl show")
  [snip]

  Problem here is how "ifquery --interfaces={} --exclude=lo --list"
  returns list of interfaces. If we assume interfaces:

  bond0
  eth0
  eth1

  sometimes, ifquery will return "bond0 eth0 eth1", and feed this to
  ifup. Ifup will first try to bring up bond0 - and wait for it! Since
  nobody will bring up eth0 or eth1 - this waits until infinity.

  Possible solutions:
  1. change add-juju-bridge.py to first bring up ordinary interfaces, then other ones
  2. change ifenslave to internally call "ifup <slave>" before entering endless loop

  I'm on trusty (14.4.04 LTS):

  juju-core 1.25.5-0ubuntu3~14.04.1
  ifenslave 2.4ubuntu1.2

  Regards,

  H.

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



More information about the foundations-bugs mailing list