autopkgtest package "lxd" test has started failing
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
autopkgtest (Ubuntu) |
Fix Released
|
Low
|
Unassigned | ||
Xenial |
Fix Committed
|
Low
|
Unassigned | ||
Bionic |
Fix Released
|
Low
|
Unassigned | ||
Disco |
Won't Fix
|
Low
|
Unassigned | ||
Eoan |
Fix Released
|
Low
|
Unassigned |
Bug Description
[impact]
"lxd launch" behavior recently changed to parse any queued input on stdin and process it as a yaml file.
Since the "autopkgtest-
the failure is seen in (at least) the "lxd" autopkgtest from the autopkgtest package itself, e.g.:
https:/
[test case]
root@autopkgtest:~# cat <<EOF | su - ubuntu
> autopkgtest-
> echo ok done
> EOF
Error: yaml: unmarshal errors:
line 1: cannot unmarshal !!str `echo ok...` into api.ContainerPut
run the autopkgtests for the package 'autopkgtest', or check autopkgtest.
http://
http://
http://
http://
the autopkgtest test case is failing only for disco and eoan, and only for amd64/i386 as the 'lxd' test is skipped for non-intel archs.
the autopkgtest test case does not fail on bionic or xenial, because the tests there run with the lxd deb, which is still at the older version.
http://
However, the lxd snap can be installed in xenial or bionic, and the failure is reproducable when the lxd snap is installed, i.e.:
$ sudo apt remove lxd
$ sudo snap install lxd
...perform test case
[regression potential]
this only redirects stdin from /dev/null, for the call to 'lxc launch' inside autopkgtest-
[other info]
this is reproducable with the current packages from disco-updates using a local qemu vm for testing.
note that the autopkgtest fails only for disco and eoan, becuase on xenial and bionic the lxd deb is used, which still has the older behavior, however the lxd snap is available to install on both xenial and bionic, so this problem still exists for both those releases, as well as disco and eoan.
also, this is not just a testcase failure - this is actual new behavior that can break existing users of the "autopkgtest-
I put the 'importance' of this as low because this bug will only be reproduced when calling autopkgtest-
description: | updated |
description: | updated |
description: | updated |
description: | updated |
tags: | added: block-proposed-bionic block-proposed-xenial |
Changed in autopkgtest (Ubuntu Disco): | |
status: | Fix Committed → Won't Fix |
Changed in autopkgtest (Ubuntu Eoan): | |
assignee: | Dan Streetman (ddstreet) → nobody |
Changed in autopkgtest (Ubuntu Disco): | |
assignee: | Dan Streetman (ddstreet) → nobody |
Changed in autopkgtest (Ubuntu Bionic): | |
assignee: | Dan Streetman (ddstreet) → nobody |
Changed in autopkgtest (Ubuntu Xenial): | |
assignee: | Dan Streetman (ddstreet) → nobody |
Changed in autopkgtest (Ubuntu): | |
assignee: | Dan Streetman (ddstreet) → nobody |
This is because the test is somehow passing data to "lxc init" or "lxc launch" through stdin.
Up until LXD 3.17, we'd only consume stdin in some rare cases during init/launch. But now we're using it as a way to pre-seed the container's YAML configuration, as the data fed through stdin isn't a YAML document, this fails.
autopkgtest should be changed to either call those commands in a way that doesn't provide them with invalid stdin input or by simply using "< /dev/null" to ensure the particular command does not inherit whatever stdin currently contains.