[Bug 1151224] Re: ubiquity upstart: if ubiquity-dm fails to start for an unknown reason, init script exits with no error

Dmitrijs Ledkovs launchpad at surgut.co.uk
Thu Mar 28 23:26:12 UTC 2013


** Changed in: ubiquity (Ubuntu)
       Status: Triaged => Fix Committed

-- 
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to ubiquity in Ubuntu.
https://bugs.launchpad.net/bugs/1151224

Title:
  ubiquity upstart: if ubiquity-dm fails to start for an unknown reason,
  init script exits with no error

Status in “ubiquity” package in Ubuntu:
  Fix Committed

Bug description:
  I've been having some issues with ubiquity-dm only starting
  intermittently on a custom livecd.

  The problem as it turns out was that debconf was being locked by another init script, and this would cause ubiquity-dm to not start.
  However, the provided upstart script ubiquity.conf was still exiting 'normally', ie with a 0 return code, despite ubiquity-dm failing to start.

  Debugging with set -x in /etc/init/ubiquity.conf script section:
  ...
  + [ -n  ]
  + ubiquity-dm vt7 :0 ubuntu /usr/bin/ubiquity --greeter --only
  debconf: DbDriver "config": /var/cache/debconf/config.dat is locked by another process: Resource temporarily unavailable
  Traceback (most recent call last):
    File "/usr/bin/ubiquity-dm", line 629, in <module>
      dm = DM(vt, display, username)
    File "/usr/bin/ubiquity-dm", line 129, in __init__
      db = DebconfCommunicator('ubiquity', cloexec=True)
    File "/usr/lib/ubiquity/ubiquity/debconfcommunicator.py", line 37, in __init__
      write=self.dccomm.stdin)
    File "/usr/lib/python3/dist-packages/debconf.py", line 50, in __init__
      self.setUp(title)
    File "/usr/lib/python3/dist-packages/debconf.py", line 53, in setUp
      self.version = self.version(2)
    File "/usr/lib/python3/dist-packages/debconf.py", line 62, in <lambda>
      lambda *args, **kw: self.command(command, *args, **kw))
    File "/usr/lib/python3/dist-packages/debconf.py", line 83, in command
      status = int(status)
  ValueError: invalid literal for int() with base 10: ''
  + [  ]
  + exit 0

  Basically, there is an if statement that catches a couple of known
  conditions for ubiquity-dm not starting, but there is no catch-all to
  consider any other cases.

  debian/ubiquity.ubiquity.upstart
  ...
          if ! ubiquity-dm vt7 :0 ubuntu /usr/bin/ubiquity $debug $automatic $choose $ldtp --only $frontend; then
              # has X crashed, or has ubiquity?
              if [ "$automatic" ] && ! [ -f /var/log/installer/version ]; then
                  # in case we crashed before the X startup sequence
                  plymouth quit || :
                  exec ubiquity noninteractive $debug
              fi
          fi

  I've attached a patch which simply inserts an 'else' catch-all.

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/ubiquity/+bug/1151224/+subscriptions




More information about the foundations-bugs mailing list