Public bug reported: zfsutils-linux not installed in minimal images and cloudinit.config.cc_resizefs does not fail gracefully if zpool is not found.
Tested with daily bionic minimal LXD images (serial 20180328.1) from https://cloud-images.ubuntu.com/minimal/daily/bionic/ $ lxc remote add minimal-ubuntu-daily https://cloud-images.ubuntu.com/minimal/daily --protocol simplestreams $ lxc launch minimal-ubuntu-daily:bionic b $ lxc exec b -- systemctl list-units --failed UNIT LOAD ACTIVE SUB DESCRIPTION ● cloud-init.service loaded failed failed Initial cloud-init job (metadata service crawler) ● systemd-hostnamed.service loaded failed failed Hostname Service $ lxc exec b -- apt-cache policy cloud-init cloud-init: Installed: 18.2-0ubuntu1 Candidate: 18.2-0ubuntu1 Version table: *** 18.2-0ubuntu1 100 100 /var/lib/dpkg/status $ lxc file pull b/var/log/cloud-init.log . 2018-03-28 13:24:15,740 - util.py[WARNING]: Running module resizefs (<module 'cloudinit.config.cc_resizefs' from '/usr/lib/python3/dist-packages/cloudinit/config/cc_resizefs.py'>) failed 2018-03-28 13:24:15,740 - util.py[DEBUG]: Running module resizefs (<module 'cloudinit.config.cc_resizefs' from '/usr/lib/python3/dist-packages/cloudinit/config/cc_resizefs.py'>) failed Traceback (most recent call last): File "/usr/lib/python3/dist-packages/cloudinit/util.py", line 1923, in subp env=env, shell=shell) File "/usr/lib/python3.6/subprocess.py", line 709, in __init__ restore_signals, start_new_session) File "/usr/lib/python3.6/subprocess.py", line 1344, in _execute_child raise child_exception_type(errno_num, err_msg, err_filename) FileNotFoundError: [Errno 2] No such file or directory: b'zpool': b'zpool' During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/usr/lib/python3/dist-packages/cloudinit/stages.py", line 792, in _run_modules freq=freq) File "/usr/lib/python3/dist-packages/cloudinit/cloud.py", line 54, in run return self._runners.run(name, functor, args, freq, clear_on_fail) File "/usr/lib/python3/dist-packages/cloudinit/helpers.py", line 187, in run results = functor(*args) File "/usr/lib/python3/dist-packages/cloudinit/config/cc_resizefs.py", line 253, in handle devpth = util.get_device_info_from_zpool(zpool) File "/usr/lib/python3/dist-packages/cloudinit/util.py", line 2252, in get_device_info_from_zpool (zpoolstatus, err) = subp(['zpool', 'status', zpool]) File "/usr/lib/python3/dist-packages/cloudinit/util.py", line 1931, in subp stderr="-" if decode else b"-") cloudinit.util.ProcessExecutionError: Unexpected error while running command. Command: ['zpool', 'status', 'default'] Exit code: - Reason: [Errno 2] No such file or directory: b'zpool': b'zpool' Stdout: - Stderr: - ** Affects: cloud-init (Ubuntu) Importance: Undecided Status: New ** Description changed: zfsutils-linux not installed in minimal images and cloudinit.config.cc_resizefs does not fail gracefully if zpool is not found. Tested with daily bionic minimal LXD images (serial 20180328.1) from https://cloud-images.ubuntu.com/minimal/daily/bionic/ - $ lxc remote add minimal-ubuntu-daily https://cloud-images.ubuntu.com/minimal/daily --protocol simplestreams + $ lxc remote add minimal-ubuntu-daily https://cloud-images.ubuntu.com/minimal/daily --protocol simplestreams $ lxc launch minimal-ubuntu-daily:bionic b $ lxc exec b -- systemctl list-units --failed - UNIT LOAD ACTIVE SUB DESCRIPTION + UNIT LOAD ACTIVE SUB DESCRIPTION ● cloud-init.service loaded failed failed Initial cloud-init job (metadata service crawler) - ● systemd-hostnamed.service loaded failed failed Hostname Service + ● systemd-hostnamed.service loaded failed failed Hostname Service + + $ lxc exec b -- apt-cache policy cloud-init + cloud-init: + Installed: 18.2-0ubuntu1 + Candidate: 18.2-0ubuntu1 + Version table: + *** 18.2-0ubuntu1 100 + 100 /var/lib/dpkg/status $ lxc file pull b/var/log/cloud-init.log . 2018-03-28 13:24:15,740 - util.py[WARNING]: Running module resizefs (<module 'cloudinit.config.cc_resizefs' from '/usr/lib/python3/dist-packages/cloudinit/config/cc_resizefs.py'>) failed 2018-03-28 13:24:15,740 - util.py[DEBUG]: Running module resizefs (<module 'cloudinit.config.cc_resizefs' from '/usr/lib/python3/dist-packages/cloudinit/config/cc_resizefs.py'>) failed Traceback (most recent call last): - File "/usr/lib/python3/dist-packages/cloudinit/util.py", line 1923, in subp - env=env, shell=shell) - File "/usr/lib/python3.6/subprocess.py", line 709, in __init__ - restore_signals, start_new_session) - File "/usr/lib/python3.6/subprocess.py", line 1344, in _execute_child - raise child_exception_type(errno_num, err_msg, err_filename) + File "/usr/lib/python3/dist-packages/cloudinit/util.py", line 1923, in subp + env=env, shell=shell) + File "/usr/lib/python3.6/subprocess.py", line 709, in __init__ + restore_signals, start_new_session) + File "/usr/lib/python3.6/subprocess.py", line 1344, in _execute_child + raise child_exception_type(errno_num, err_msg, err_filename) FileNotFoundError: [Errno 2] No such file or directory: b'zpool': b'zpool' During handling of the above exception, another exception occurred: Traceback (most recent call last): - File "/usr/lib/python3/dist-packages/cloudinit/stages.py", line 792, in _run_modules - freq=freq) - File "/usr/lib/python3/dist-packages/cloudinit/cloud.py", line 54, in run - return self._runners.run(name, functor, args, freq, clear_on_fail) - File "/usr/lib/python3/dist-packages/cloudinit/helpers.py", line 187, in run - results = functor(*args) - File "/usr/lib/python3/dist-packages/cloudinit/config/cc_resizefs.py", line 253, in handle - devpth = util.get_device_info_from_zpool(zpool) - File "/usr/lib/python3/dist-packages/cloudinit/util.py", line 2252, in get_device_info_from_zpool - (zpoolstatus, err) = subp(['zpool', 'status', zpool]) - File "/usr/lib/python3/dist-packages/cloudinit/util.py", line 1931, in subp - stderr="-" if decode else b"-") + File "/usr/lib/python3/dist-packages/cloudinit/stages.py", line 792, in _run_modules + freq=freq) + File "/usr/lib/python3/dist-packages/cloudinit/cloud.py", line 54, in run + return self._runners.run(name, functor, args, freq, clear_on_fail) + File "/usr/lib/python3/dist-packages/cloudinit/helpers.py", line 187, in run + results = functor(*args) + File "/usr/lib/python3/dist-packages/cloudinit/config/cc_resizefs.py", line 253, in handle + devpth = util.get_device_info_from_zpool(zpool) + File "/usr/lib/python3/dist-packages/cloudinit/util.py", line 2252, in get_device_info_from_zpool + (zpoolstatus, err) = subp(['zpool', 'status', zpool]) + File "/usr/lib/python3/dist-packages/cloudinit/util.py", line 1931, in subp + stderr="-" if decode else b"-") cloudinit.util.ProcessExecutionError: Unexpected error while running command. Command: ['zpool', 'status', 'default'] Exit code: - Reason: [Errno 2] No such file or directory: b'zpool': b'zpool' Stdout: - Stderr: - -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1759571 Title: cloud-init resizefs module fails if zpool not found (zfsutils-linux not installed in minimal images) To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/cloud-init/+bug/1759571/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs