Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Bug#1011060: autopkgtest-build-lxc: searches for bridge at lxc.network.link not current lxc.net.0.link

0 views
Skip to first unread message

Julian Gilbey

unread,
May 16, 2022, 7:10:04 AM5/16/22
to
Package: autopkgtest
Version: 5.21
Severity: normal

The autopkgtest-build-lxc script searches for a bridge interface as
follows:

local bridge_interface=$(awk '{ if ($1 == "lxc.network.link") print($3)}' /etc/lxc/default.conf)

But the current version of the lxc package has the following in
/etc/lxc/default.conf:

-----
lxc.net.0.type = veth
lxc.net.0.link = lxcbr0
lxc.net.0.flags = up

lxc.apparmor.profile = generated
lxc.apparmor.allow_nesting = 1
-----

So the bridge will not be detected.

Perhaps the code could be modified to something like:

local bridge_interface=$(awk '{ if ($1 == "lxc.network.link" || $1 == "lxc.net.0.link") print($3)}' /etc/lxc/default.conf)

Best wishes,

Julian

Simon McVittie

unread,
May 16, 2022, 8:30:04 AM5/16/22
to
On Mon, 16 May 2022 at 11:58:16 +0100, Julian Gilbey wrote:
> The autopkgtest-build-lxc script searches for a bridge interface as
> follows:
>
> local bridge_interface=$(awk '{ if ($1 == "lxc.network.link") print($3)}' /etc/lxc/default.conf)

You haven't said what user-visible problem is caused by not finding this.
Am I correct in thinking that the answer is: if the host system's apt
proxy is localhost or 127.0.0.x, then it will not be converted into
the bridge address for propagation into the container, and the container
will end up not using a proxy?

> Perhaps the code could be modified to something like:
>
> local bridge_interface=$(awk '{ if ($1 == "lxc.network.link" || $1 == "lxc.net.0.link") print($3)}' /etc/lxc/default.conf)

If you do that, does it solve the user-visible problem?

smcv

Julian Gilbey

unread,
May 16, 2022, 11:40:03 AM5/16/22
to
Hi Simon,

On Mon, May 16, 2022 at 01:20:44PM +0100, Simon McVittie wrote:
> On Mon, 16 May 2022 at 11:58:16 +0100, Julian Gilbey wrote:
> > The autopkgtest-build-lxc script searches for a bridge interface as
> > follows:
> >
> > local bridge_interface=$(awk '{ if ($1 == "lxc.network.link") print($3)}' /etc/lxc/default.conf)
>
> You haven't said what user-visible problem is caused by not finding this.
> Am I correct in thinking that the answer is: if the host system's apt
> proxy is localhost or 127.0.0.x, then it will not be converted into
> the bridge address for propagation into the container, and the container
> will end up not using a proxy?

Oh yes, I should have said this: that is indeed the problem. (Well
deduced!)

> > Perhaps the code could be modified to something like:
> >
> > local bridge_interface=$(awk '{ if ($1 == "lxc.network.link" || $1 == "lxc.net.0.link") print($3)}' /etc/lxc/default.conf)
>
> If you do that, does it solve the user-visible problem?

Yes, it does, but having a look at /usr/bin/lxc-update-config, I see
that the "0" in this is not necessarily always correct; it could be
any number. So perhaps something more like:

local bridge_interface=$(awk '/lxc\.net(work|\.[0-9]+)\.link/ {print($3)}' /etc/lxc/default.conf)

would be better?

Best wishes,

Julian

Julian Gilbey

unread,
May 17, 2022, 3:10:03 AM5/17/22
to
On Mon, May 16, 2022 at 04:28:41PM +0100, Julian Gilbey wrote:
> [...]
> Yes, it does, but having a look at /usr/bin/lxc-update-config, I see
> that the "0" in this is not necessarily always correct; it could be
> any number. So perhaps something more like:
>
> local bridge_interface=$(awk '/lxc\.net(work|\.[0-9]+)\.link/ {print($3)}' /etc/lxc/default.conf)
>
> would be better?

And it dawns on my that this will have problems if there's more than
one lxc.net.\d+.link present. So maybe the following is better:

local bridge_interface=$(awk '/lxc\.net(work|\.[0-9]+)\.link/ {print($3)}' /etc/lxc/default.conf | head -n 1)

Best wishes,

Julian
0 new messages