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

Reply via email to