juju deploy brings up interfaces in wrong order
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
juju (Ubuntu) |
New
|
Undecided
|
Unassigned |
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)
print("**** Original configuration")
print_
print_
print_
print("**** Activating new configuration")
with open(args.filename, 'w') as f:
f.close()
print_
print_
print_
print_
print_
print_
[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-
ifenslave 2.4ubuntu1.2
Regards,
H.
tags: | added: add-juju-bridge.py bootstrap ifenslave juju stuck |
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.