click install fails on 16.10, causing user install and autopkgtest failures

Bug #1615757 reported by Emanuele Antonio Faraone on 2016-08-22
14
This bug affects 2 people
Affects Status Importance Assigned to Milestone
click (Ubuntu)
High
Colin Watson

Bug Description

click crashed with:

click crashed with subprocess.CalledProcessError in run(): Command '['dpkg', '--force-not-root', '--force-bad-path', '--force-architecture', '--instdir', '/opt/click.ubuntu.com/com.ubuntu.filemanager/0.4.525', '--admindir', '/opt/click.ubuntu.com/com.ubuntu.filemanager/0.4.525/.click', '--path-exclude', '*/.click/*', '--log', '/opt/click.ubuntu.com/.click/log', '--no-triggers', '--install', '/home/emanuele/Scaricati/com.ubuntu.filemanager_0.4.525_multi.click']' returned non-zero exit status 1

ProblemType: Crash
DistroRelease: Ubuntu 16.10
Package: click 0.4.44+16.10.20160811.1-0ubuntu1
ProcVersionSignature: Ubuntu 4.4.0-9134.53-generic 4.4.15
Uname: Linux 4.4.0-9134-generic x86_64
ApportVersion: 2.20.3-0ubuntu7
Architecture: amd64
Date: Mon Aug 22 11:16:02 2016
ExecutablePath: /usr/bin/click
InstallationDate: Installed on 2016-08-21 (1 days ago)
InstallationMedia: Ubuntu 16.04.1 LTS "Xenial Xerus" - Release amd64 (20160719)
InterpreterPath: /usr/bin/python3.5
ProcCmdline: /usr/bin/python3 /usr/bin/click install --user emanuele /home/emanuele/Scaricati/com.ubuntu.filemanager_0.4.525_multi.click
ProcEnviron:
 TERM=xterm-256color
 PATH=(custom, no user)
 LANG=it_IT.UTF-8
 LANGUAGE=it
 SHELL=/bin/bash
PythonArgs: ['/usr/bin/click', 'install', '--user', 'emanuele', '/home/emanuele/Scaricati/com.ubuntu.filemanager_0.4.525_multi.click']
SourcePackage: click
Title: click crashed with subprocess.CalledProcessError in run(): Command '['dpkg', '--force-not-root', '--force-bad-path', '--force-architecture', '--instdir', '/opt/click.ubuntu.com/com.ubuntu.filemanager/0.4.525', '--admindir', '/opt/click.ubuntu.com/com.ubuntu.filemanager/0.4.525/.click', '--path-exclude', '*/.click/*', '--log', '/opt/click.ubuntu.com/.click/log', '--no-triggers', '--install', '/home/emanuele/Scaricati/com.ubuntu.filemanager_0.4.525_multi.click']' returned non-zero exit status 1
UpgradeStatus: No upgrade log present (probably fresh install)
UserGroups:

Related branches

tags: removed: need-duplicate-check
Changed in click (Ubuntu):
importance: Undecided → Medium
information type: Private → Public
Jamie Strandboge (jdstrand) wrote :

This bug also affects the click-apparmor autopkgtests. I'm surprised that click was promoted if click-apparmor's autopkgtest failed. Here are steps to reproduce in a clean VM:

$ sudo apt-get install click ubuntu-sdk-libs
$ sudo click install --user=jamie /tmp/com.example.click-apparmor-test_0.1_all.click

$ sudo click install --user=jamie /tmp/com.example.click-apparmor-test_0.1_all.click --allow-unauthenticated
WARNING:root:Signature check failed, but installing anyway as requested
ERROR:root:['dpkg', '--force-not-root', '--force-bad-path', '--force-architecture', '--instdir', '/opt/click.ubuntu.com/com.example.click-apparmor-test/0.1', '--admindir', '/opt/click.ubuntu.com/com.example.click-apparmor-test/0.1/.click', '--path-exclude', '*/.click/*', '--log', '/opt/click.ubuntu.com/.click/log', '--no-triggers', '--install', '/tmp/com.example.click-apparmor-test_0.1_all.click'] failed with exit_code 1:

Traceback (most recent call last):
  File "/usr/bin/click", line 110, in <module>
    sys.exit(main())
  File "/usr/bin/click", line 106, in main
    return mod.run(args)
  File "/usr/lib/python3/dist-packages/click/commands/install.py", line 66, in run
    quiet=not options.verbose)
  File "/usr/lib/python3/dist-packages/click/install.py", line 463, in install
    path, user=user, all_users=all_users, quiet=quiet)
  File "/usr/lib/python3/dist-packages/click/install.py", line 419, in _unpack
    **kwargs)
  File "/usr/lib/python3.5/subprocess.py", line 626, in check_output
    **kwargs).stdout
  File "/usr/lib/python3.5/subprocess.py", line 708, in run
    output=stdout, stderr=stderr)
subprocess.CalledProcessError: Command '['dpkg', '--force-not-root', '--force-bad-path', '--force-architecture', '--instdir', '/opt/click.ubuntu.com/com.example.click-apparmor-test/0.1', '--admindir', '/opt/click.ubuntu.com/com.example.click-apparmor-test/0.1/.click', '--path-exclude', '*/.click/*', '--log', '/opt/click.ubuntu.com/.click/log', '--no-triggers', '--install', '/tmp/com.example.click-apparmor-test_0.1_all.click']' returned non-zero exit status 1

Note, the above was with debsig-verify installed but had the same error with it uninstalled.

$ apt-cache policy click
click:
  Installed: 0.4.44+16.10.20160811.1-0ubuntu1
  Candidate: 0.4.44+16.10.20160811.1-0ubuntu1
  Version table:
 *** 0.4.44+16.10.20160811.1-0ubuntu1 500
        500 http://us.archive.ubuntu.com/ubuntu yakkety/main amd64 Packages
        100 /var/lib/dpkg/status

This works fine on xenial.

Jamie Strandboge (jdstrand) wrote :

Downgrading click on a 16.10 system to 0.4.43+16.04.20160203-0ubuntu2 does not help.

Jamie Strandboge (jdstrand) wrote :

Downgrading dpkg on a 16.10 system to 1.18.4ubuntu1.1 does not help.

Jamie Strandboge (jdstrand) wrote :
Jamie Strandboge (jdstrand) wrote :

Running the command manually from the output results in:

$ sudo dpkg --force-not-root --force-bad-path --force-architecture --instdir /opt/click.ubuntu.com/com.example.click-apparmor-test/0.1 --admindir /opt/click.ubuntu.com/com.example.click-apparmor-test/0.1/.click --path-exclude '*/.click/*' --log /opt/click.ubuntu.com/.click/log --no-triggers --install /tmp/com.example.click-apparmor-test_0.1_all.click
Selecting previously unselected package com.example.click-apparmor-test.
(Reading database ... 0 files and directories currently installed.)
Preparing to unpack .../com.example.click-apparmor-test_0.1_all.click ...
dpkg (subprocess): unable to execute new pre-installation script (/.click/tmp.ci/preinst): No such file or directory
dpkg: error processing archive /tmp/com.example.click-apparmor-test_0.1_all.click (--install):
 subprocess new pre-installation script returned error exit status 2
Errors were encountered while processing:
 /tmp/com.example.click-apparmor-test_0.1_all.click

description: updated
summary: - click crashed with subprocess.CalledProcessError in run(): Command
- '['dpkg', '--force-not-root', '--force-bad-path', '--force-
- architecture', '--instdir',
- '/opt/click.ubuntu.com/com.ubuntu.filemanager/0.4.525', '--admindir',
- '/opt/click.ubuntu.com/com.ubuntu.filemanager/0.4.525/.click', '--path-
- exclude', '*/.click/*', '--log', '/opt/click.ubuntu.com/.click/log',
- '--no-triggers', '--install',
- '/home/emanuele/Scaricati/com.ubuntu.filemanager_0.4.525_multi.click']'
- returned non-zero exit status 1
+ click install fails on 16.10, causing user install and autopkgtest
+ failures
Colin Watson (cjwatson) wrote :

The dpkg output from comment #6 isn't relevant, since that didn't have all the special preloading setup in place.

Adding a bit more debugging to click's preload shim (now in lp:click/devel) reveals:

Error getting address of symbol 'mknod': /home/cjwatson/src/ubuntu/click/click/preload/.libs/libclickpreload.so: undefined symbol: mknod

So it seems that this must be due to glibc changes, although I'm a bit baffled how that could be since xenial's libc doesn't seem to have a 'mknod' symbol either and none of the changes in the diff appear relevant. Maybe we were accidentally overloading a mknod from some other library? Not sure. Perhaps it's the overlap of several toolchain changes. Anyway, preloading __xmknod instead fixes it; it's a bit nasty, but no worse than the stuff we already do with __xstat.

Colin Watson (cjwatson) on 2016-08-28
Changed in click (Ubuntu):
status: New → In Progress
assignee: nobody → Colin Watson (cjwatson)
importance: Medium → High
Timo Jyrinki (timo-jyrinki) wrote :

Confirming silo 53 works like a charm. https://requests.ci-train.ubuntu.com/#/ticket/1878

Launchpad Janitor (janitor) wrote :

This bug was fixed in the package click - 0.4.45.1+16.10.20160916-0ubuntu1

---------------
click (0.4.45.1+16.10.20160916-0ubuntu1) yakkety; urgency=medium

  * Kill gpg-agent (if possible) after running debsigs in integration tests.
  * Copy integration test GPG keyring to a temporary directory so that the
    GPG agent socket name doesn't end up being too long.

 -- Colin Watson <email address hidden> Fri, 16 Sep 2016 17:46:25 +0000

Changed in click (Ubuntu):
status: In Progress → Fix Released
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers