crashes in chroot with no HOME set

Bug #1065873 reported by Michael Vogt
8
This bug affects 1 person
Affects Status Importance Assigned to Milestone
autopkgtest (Ubuntu)
Fix Released
Medium
Unassigned

Bug Description

In a pbuilder chroot it crashes without HOME set:

# adt-run --no-built-binaries --built-tree=. --- adt-virt-null
adt-run: trace: ** init
adt-run: trace: ** start
adt-run: trace: $ vserver: adt-virt-null
adt-run: unexpected, exceptional, error:
Traceback (most recent call last):
  File "/usr/bin/adt-run", line 1881, in main
    finalise_options()
  File "/usr/bin/adt-run", line 736, in finalise_options
    parser.error("HOME environment variable"
NameError: global name 'parser' is not defined

Revision history for this message
Jean-Baptiste Lallement (jibel) wrote :

Thanks for your report.

The error handling code is indeed broken, parser is not defined in this scope
in runner/adt-run:
 if opts.gnupghome.startswith('~/'):
  try: home = os.environ['HOME']
  except KeyError:
   parser.error("HOME environment variable"
    " not set, needed for --gnupghome=`%s"
    % opts.gnupghome)

Well the result would be the same if $HOME is not defined but at least it would fail nicely

Changed in autopkgtest (Ubuntu):
importance: Undecided → Medium
status: New → Triaged
Revision history for this message
Jean-Baptiste Lallement (jibel) wrote :

Proposition:

--- a/runner/adt-run
+++ b/runner/adt-run
@@ -733,7 +733,7 @@ def finalise_options():
        if opts.gnupghome.startswith('~/'):
                try: home = os.environ['HOME']
                except KeyError:
- parser.error("HOME environment variable"
+ bomb("HOME environment variable"
                                " not set, needed for --gnupghome=`%s"
                                % opts.gnupghome)
                opts.gnupghome = home + opts.gnupghome[1:]

Revision history for this message
Martin Pitt (pitti) wrote :

I replaced the whole code block with os.path.expanduser() which also gets along without $HOME.

Changed in autopkgtest (Ubuntu):
status: Triaged → Fix Committed
Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package autopkgtest - 2.3

---------------
autopkgtest (2.3) unstable; urgency=low

  * runner/adt-run.1: Fix bad "affect modify" wording. (LP: #1199500)
  * Drop hosts/chinstrap. We haven't actually used this in many years, it has
    been replaced with https://launchpad.net/auto-package-testing, Jenkins,
    and blocking migration to release until tests pass. (LP: #381210)
  * Promote apt-utils from Recommends to Depends:, to avoid test failures due
    to not finding apt-ftparchive. (LP: #1065874)
  * Promote pbuilder from Recommends: to Depends:, as we always call
    pbuilder-satisfydepends-classic. (LP: #1065874)
  * runner/adt-run: Stop explicitly checking for $HOME (with broken error
    message) when giving --gnupg-home, use os.path.expanduser() instead.
    (LP: #1065873)
  * runner/adt-run: Fix timeout --help output.
  * runner/adt-run: Fix bomb() to clean up the testbed before removing it.
    Afterwards (in cleanup()) we don't have a testbed object any more to run
    commands in. (LP: #1157292)
  * runner/adt-run: Fix UnicodeDecodeError crash if stderr contains non-ASCII
    characters. (LP: #1100283)
  * Add "allow-stderr" restriction for tests where re-routing or disabling
    stderr is impractical. (LP: #1197005)
  * runner-adt-run: Support architecture specifiers in Depends: field.
    (LP: #1165128)
  * runner/adt-run: Remove/fix some unused variables, spotted by pyflakes.

 -- Martin Pitt <email address hidden> Fri, 19 Jul 2013 11:58:15 +0200

Changed in autopkgtest (Ubuntu):
status: Fix Committed → 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.