~juliank/autopkgtest/+git/development:blocking-io

Last commit made on 2021-06-11
Get this branch:
git clone -b blocking-io https://git.launchpad.net/~juliank/autopkgtest/+git/development
Only Julian Andres Klode can upload to this branch. If you are Julian Andres Klode please log in for upload directions.

Branch merges

Branch information

Name:
blocking-io
Repository:
lp:~juliank/autopkgtest/+git/development

Recent commits

237232c... by Julian Andres Klode

runner: Set sys.stderr to blocking

We see BlockingIOError quite a bit these days on Ubuntu's autopkgtest
cloud when trying to write to sys.stderr. Not sure why it's non-blocking,
seems Python sets it up that way sometimes...

    Traceback (most recent call last):
     File "/home/ubuntu/autopkgtest/lib/VirtSubproc.py", line 740, in mainloop
       command()
     File "/home/ubuntu/autopkgtest/lib/VirtSubproc.py", line 669, in command
       r = f(c, ce)
     File "/home/ubuntu/autopkgtest/lib/VirtSubproc.py", line 364, in cmd_reboot
       caller.hook_wait_reboot(**wait_reboot_args)
     File "/home/ubuntu/autopkgtest/virt/autopkgtest-virt-ssh", line 486, in hook_wait_reboot
       wait_for_ssh(sshcmd, timeout=args.timeout_ssh)
     File "/home/ubuntu/autopkgtest/virt/autopkgtest-virt-ssh", line 320, in wait_for_ssh
       execute_setup_script('debug-failure', fail_ok=True)
     File "/home/ubuntu/autopkgtest/virt/autopkgtest-virt-ssh", line 208, in execute_setup_script
       sys.stderr.write(err)
    BlockingIOError: [Errno 11] write could not complete without blocking

ed4023b... by Iain Lane

nova: Drop nova network-show, we're all openstack now

f0b6d2b... by Iain Lane

ssh-setup/nova: Use `openstack network show` in preference to `nova`

Once we don't care about xenial's `openstack` client tools then we can
drop the fallback and upstream this.

42224fc... by Julian Andres Klode

UBUNTU: setup-testbed: Setup Acquire::Retries 10, like debci does

da7d955... by Julian Andres Klode

setup-testbed: Also remove needrestart

needrestart installs a dpkg hook that fails and inserts errors,
causing the apt test suite to fail (there's no way to isolate against
system dpkg hooks so far), and is installed in cloud images atm.

d47c7f0... by Iain Lane

ssh-setup/nova: Quote arguments to `tr`

Otherwise they can be expanded as globs, which breaks badly if they
match anything in the cwd.

(cherry picked from commit a55a4f342688569f41a2937e942bee0dc8d05be5)

3875f4e... by Iain Lane

lxd: Add a hook_prepare_reboot and pass arguments from it to wait_reboot

We've got a race condition currently. When rebooting the testbed, the
flow is like this:

  hook_prepare_reboot
  reboot
  hook_wait_reboot

The idea is that hook_wait_reboot waits for the testbed to come back up,
so we can go on with the tests. For lxd, this means fetch the uptime,
and wait for it to go backwards, indicating the the reboot happened.

We fetch the 'initial' uptime in hook_wait_reboot, though. As this is
after we actually ask the testbed to reboot itself, there's a race
condition. If we managed to go down before we get into hook_wait_reboot,
we will not be able to get the initial uptime.

Instead, add a prepare_reboot hook to autopkgtest-virt-lxd, which
fetches the initial uptime. Then it needs to be able to return a value
back to the caller, so that wait_reboot can know what it needs to
compare to. That needs a bit of adjustment to hook_wait_reboot's
interface, to allow it to accept arguments. We make this generic, so
it's optional across backends.

5d45b3b... by Julian Andres Klode

TEMPORARY: RT#127293: install haveged again

rng-tools is not working everywhere, so continue to install haveged
in the meantime.

43c3f26... by Steve Langasek

Include cross-arch packages in pinning.

To ensure cross-installability of 'unstable' versions of libraries whose
native versions are also installed in the base system, and to ensure the
'unstable' versions of cross packages are used, our binary package pins must
include both native and cross packages. Some of the values included in the
pin will be nonsense (the cross variant of any Arch: all package), but this
doesn't matter.

57d7040... by Steve Langasek

Handle cross-arch test deps for packages which are not Arch: any.

If the package is only built on a subset of archs, the [arch] list is
part of the string in my_packages and needs to be accounted for. Don't
worry about the possibility that our target arch isn't actually in the
architecture list, since in that case it shouldn't be a test dep anyway.