** Description changed: I was trying to deploy an image based on an Ubuntu Desktop 14.04 install using MAAS 1.7.0~beta2+bzr2967-0ubuntu1~ppa1 on Ubuntu 14.04 server. I made a "curtin-compatible" tar.gz which includes cloud-init, put it in place of root-tgz in my maas server, and tried to deploy a node (using juju bootstrap). Juju ended up complaining and timing out, and the node never fully completed installation. On closer look, I found curtin crashes when running "curthooks", specifically at some point it does dpkg --list, and the code that handles this (utils.subp) assumes output from its commands is pure ascii and so crashes when the output contains non-ascii. For Ubuntu Desktop, in particular, the output contains "Déjȧ Dup", which is what causes things to barf. I SSHd into the half-installed node and ran curtin manually like so: sudo CURTIN_STACKTRACE=1 /curtin/bin/curtin --verbose --verbose --log- file /media/root-rw/curtin-install.log install --config=configs/config-000.cfg http://10.10.10.1/MAAS/static/images/ubuntu/amd64/generic/trusty/release /root-tgz It ended in this: Running command ['chroot', '/tmp/tmpQ_dk0_/target', 'dpkg-query', '--list'] with allowed return codes [0] (shell=False, capture=True) Traceback (most recent call last): File "/curtin/curtin/commands/main.py", line 96, in main sys.exit(args.func(args)) File "/curtin/curtin/commands/curthooks.py", line 443, in curthooks apply_debconf_selections(cfg, target) File "/curtin/curtin/commands/curthooks.py", line 219, in apply_debconf_selections pkgs_installed = get_installed_packages(target) File "/curtin/curtin/commands/curthooks.py", line 259, in get_installed_packages (out, _err) = util.subp(cmd, capture=True) File "/curtin/curtin/util.py", line 58, in subp out = out.decode() UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 19027: ordinal not in range(128) 'ascii' codec can't decode byte 0xc3 in position 19027: ordinal not in range(128) Traceback (most recent call last): File "/curtin/curtin/commands/main.py", line 96, in main sys.exit(args.func(args)) File "/curtin/curtin/commands/install.py", line 267, in cmd_install stage.run() File "/curtin/curtin/commands/install.py", line 104, in run util.subp(cmd, shell=shell, env=self.env) File "/curtin/curtin/util.py", line 68, in subp cmd=args) ProcessExecutionError: Unexpected error while running command. Command: ['curtin', 'curthooks'] Exit code: 3 Reason: - Stdout: '' Stderr: '' Unexpected error while running command. Command: ['curtin', 'curthooks'] Exit code: 3 Reason: - Stdout: '' Stderr: '' I'm attaching the full log as well. - SRU curtin ========== [Impact] curtin can't handle non-ascii characters in dpkg --list output as mentioned in the original bug report descripition. This bug doesn't allow curtin to continue and terminates the installation. This fix is needed so that we can make subprocess calls with output that contains non-ascii characters. The patch supplied by the bug reporter enables non-ascii character subprocess output decoding for curtin. - [Test Case] To reproduce the bug, follow the same steps as the bug report - description mentiones. Namely, making sure that dpkg --list will - contain output with non-ascii characters. + description mentions. Namely, making sure that dpkg --list will contain + output with non-ascii characters. - - [Regression Potential] + [Regression Potential] utf-8 is backwards compatible with ascii, so the likely hood of regressions is small.
-- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1370249 Title: 'ascii' codec can't decode byte 0xc3 in position 19027: ordinal not in range(128) (curtin can't handle non-ascii characters in dpkg --list output) To manage notifications about this bug go to: https://bugs.launchpad.net/curtin/+bug/1370249/+subscriptions -- ubuntu-bugs mailing list [email protected] https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
