provider/maas: cater for MAAS 2.1 "bridge" types #6618

Merged
merged 1 commit into from Nov 29, 2016

Conversation

Projects
None yet
5 participants
Contributor

frobware commented Nov 25, 2016

On MAAS 2.1 a user can now define bridges. If you do this and
bootstrap then Juju and Mongo consume lots of CPU and RAM as the
machiner repeatedly tries to add a link-layer device (to state) but
fails because linklayerdevies.type is "" (undefined).

We fix this by extending provider/maas's notion of interface types to
handle a "bridge" type. Note: this still seems brittle as we will fail
at the next interface type we don't handle.

QA steps (before applying the patch):

  1. In MAAS 2.1 configure a node's PXE interface to be a bridge.

  2. juju bootstrap

  3. Look through /var/log/juju/machine-0.log for messages like:

... juju/juju/state/machine_linklayerdevices.go:641:
cannot set link-layer device addresses of machine "0"}

... juju.worker.dependency engine.go:608 restarting dependents of "machiner" manifold
... juju.worker.dependency engine.go:422 starting "machiner" manifold worker in 3.05s...

  1. Let the machine run for 10 minutes.
  2. Run top (or htop) and note the CPU and RAM usage increasing

Now apply the patch and verify that (3) and (5) are golden.

Fixes LP:#1644720

provider/maas: cater for MAAS 2.1 "bridge" types
On MAAS 2.1 a user can now define bridges. If you do this and
bootstrap then Juju and Mongo consume lots of CPU and RAM as the
machiner repeatedly tries to add a link-layer device (to state) but
fails because linklayerdevies.type is "" (undefined).

We fix this by extending provider/maas's notion of interface types to
handle a "bridge" type. Note: this still seems brittle as we will fail
at the next interface type we don't handle.

QA steps (before applying the patch):

1) In MAAS 2.1 configure a node's PXE interface to be a bridge.
2) juju bootstrap

3) Look through /var/log/juju/machine-0.log for messages like:

 ... juju/juju/state/machine_linklayerdevices.go:641: \
    cannot set link-layer device addresses of machine "0"}

 ... juju.worker.dependency engine.go:608 restarting dependents of "machiner" manifold
 ... juju.worker.dependency engine.go:422 starting "machiner" manifold worker in 3.05s...

4) Let the machine run for 10 minutes.
5) Run top (or htop) and note the CPU and RAM usage increasing

Now apply the patch and verify that (3) and (5) are golden.

Fixes [LP:#1644720](https://bugs.launchpad.net/juju/+bug/1644720)
Contributor

frobware commented Nov 25, 2016

!!retry!!

LGTM

Contributor

frobware commented Nov 25, 2016

!!retry!!

Contributor

bz2 commented Nov 25, 2016

!!retry!!

Contributor

macgreagoir commented Nov 28, 2016

LGTM, but haven't setup the QA tests yet.

QA steps tested successfully to resolve a broken bootstrap machine.

Contributor

frobware commented Nov 29, 2016

$$merge$$

Contributor

jujubot commented Nov 29, 2016

Status: merge request accepted. Url: http://juju-ci.vapour.ws:8080/job/github-merge-juju

Contributor

jujubot commented Nov 29, 2016

Build failed: Tests failed
build url: http://juju-ci.vapour.ws:8080/job/github-merge-juju/9724

Contributor

frobware commented Nov 29, 2016

$$retry$$

Contributor

jujubot commented Nov 29, 2016

Status: merge request accepted. Url: http://juju-ci.vapour.ws:8080/job/github-merge-juju

@jujubot jujubot merged commit 13326cf into juju:develop Nov 29, 2016

1 check passed

github-check-merge-juju Built PR, ran unit tests, and tested LXD deploy. Use !!.*!! to request another build. IE, !!build!!, !!retry!!
Details
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment