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

Bug #1615757 reported by Emanuele Antonio Faraone on 2016-08-22
This bug affects 2 people
Affects Status Importance Assigned to Milestone
click (Ubuntu)
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/', '--admindir', '/opt/', '--path-exclude', '*/.click/*', '--log', '/opt/', '--no-triggers', '--install', '/home/emanuele/Scaricati/']' 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/
 PATH=(custom, no user)
PythonArgs: ['/usr/bin/click', 'install', '--user', 'emanuele', '/home/emanuele/Scaricati/']
SourcePackage: click
Title: click crashed with subprocess.CalledProcessError in run(): Command '['dpkg', '--force-not-root', '--force-bad-path', '--force-architecture', '--instdir', '/opt/', '--admindir', '/opt/', '--path-exclude', '*/.click/*', '--log', '/opt/', '--no-triggers', '--install', '/home/emanuele/Scaricati/']' returned non-zero exit status 1
UpgradeStatus: No upgrade log present (probably fresh install)

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/

$ sudo click install --user=jamie /tmp/ --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/', '--admindir', '/opt/', '--path-exclude', '*/.click/*', '--log', '/opt/', '--no-triggers', '--install', '/tmp/'] failed with exit_code 1:

Traceback (most recent call last):
  File "/usr/bin/click", line 110, in <module>
  File "/usr/bin/click", line 106, in main
  File "/usr/lib/python3/dist-packages/click/commands/", line 66, in run
    quiet=not options.verbose)
  File "/usr/lib/python3/dist-packages/click/", line 463, in install
    path, user=user, all_users=all_users, quiet=quiet)
  File "/usr/lib/python3/dist-packages/click/", line 419, in _unpack
  File "/usr/lib/python3.5/", line 626, in check_output
  File "/usr/lib/python3.5/", line 708, in run
    output=stdout, stderr=stderr)
subprocess.CalledProcessError: Command '['dpkg', '--force-not-root', '--force-bad-path', '--force-architecture', '--instdir', '/opt/', '--admindir', '/opt/', '--path-exclude', '*/.click/*', '--log', '/opt/', '--no-triggers', '--install', '/tmp/']' 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
  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 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/ --admindir /opt/ --path-exclude '*/.click/*' --log /opt/ --no-triggers --install /tmp/
Selecting previously unselected package
(Reading database ... 0 files and directories currently installed.)
Preparing to unpack .../ ...
dpkg (subprocess): unable to execute new pre-installation script (/.click/ No such file or directory
dpkg: error processing archive /tmp/ (--install):
 subprocess new pre-installation script returned error exit status 2
Errors were encountered while processing:

description: updated
summary: - click crashed with subprocess.CalledProcessError in run(): Command
- '['dpkg', '--force-not-root', '--force-bad-path', '--force-
- architecture', '--instdir',
- '/opt/', '--admindir',
- '/opt/', '--path-
- exclude', '*/.click/*', '--log', '/opt/',
- '--no-triggers', '--install',
- '/home/emanuele/Scaricati/']'
- 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/ 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.

Launchpad Janitor (janitor) wrote :

This bug was fixed in the package click -

click ( 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