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

Bug #1615757 reported by Emanuele Antonio Faraone
14
This bug affects 2 people
Affects Status Importance Assigned to Milestone
click (Ubuntu)
Fix Released
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

Revision history for this message
Emanuele Antonio Faraone (emanueleant03) wrote :
tags: removed: need-duplicate-check
Changed in click (Ubuntu):
importance: Undecided → Medium
information type: Private → Public
Revision history for this message
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.

Revision history for this message
Jamie Strandboge (jdstrand) wrote :

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

Revision history for this message
Jamie Strandboge (jdstrand) wrote :

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

Revision history for this message
Jamie Strandboge (jdstrand) wrote :
Revision history for this message
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
Revision history for this message
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)
Changed in click (Ubuntu):
status: New → In Progress
assignee: nobody → Colin Watson (cjwatson)
importance: Medium → High
Revision history for this message
Timo Jyrinki (timo-jyrinki) wrote :

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

Revision history for this message
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  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.