[Bug 855010] [NEW] upstart assumes we can stop tracing processes when exec() is called, breaks 'expect daemon' for cups

Steve Langasek steve.langasek at canonical.com
Tue Sep 20 19:44:50 UTC 2011


Public bug reported:

trying to improve the cups upstart job in Ubuntu to use 'expect daemon'
so that the service is reliably up before upstart proceeds on to running
the post-start script, I find that this doesn't work because cups re-
execs itself with different commandline options before daemonizing.
upstart init/job_process.c has the following:

/*
 [...]
 * We assume that if the job calls exec that it's finished forking so we can
 * drop the trace entirely; we have no interest in tracing the new child.
 **/
static void
job_process_trace_exec (Job         *job,
                        ProcessType  process)

Well, cups obviously violates this expectation, because it unavoidably
re-execs itself.

Is the upstart assumption wrong?  Is this sanely *fixable* without
causing knock-on effects?

ProblemType: Bug
DistroRelease: Ubuntu 11.10
Package: upstart 1.3-0ubuntu9
ProcVersionSignature: Ubuntu 3.0.0-11.18-generic 3.0.4
Uname: Linux 3.0.0-11-generic x86_64
ApportVersion: 1.23-0ubuntu1
Architecture: amd64
Date: Tue Sep 20 11:03:08 2011
InstallationMedia: Ubuntu 10.04.1 LTS "Lucid Lynx" - Release amd64 (20100816.1)
ProcEnviron:
 PATH=(custom, user)
 LANG=en_US.UTF-8
 SHELL=/bin/bash
SourcePackage: upstart
UpgradeStatus: Upgraded to oneiric on 2011-06-27 (85 days ago)

** Affects: upstart (Ubuntu)
     Importance: Medium
     Assignee: James Hunt (jamesodhunt)
         Status: New


** Tags: amd64 apport-bug oneiric running-unity

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

Title:
  upstart assumes we can stop tracing processes when exec() is called,
  breaks 'expect daemon' for cups

Status in “upstart” package in Ubuntu:
  New

Bug description:
  trying to improve the cups upstart job in Ubuntu to use 'expect
  daemon' so that the service is reliably up before upstart proceeds on
  to running the post-start script, I find that this doesn't work
  because cups re-execs itself with different commandline options before
  daemonizing.  upstart init/job_process.c has the following:

  /*
   [...]
   * We assume that if the job calls exec that it's finished forking so we can
   * drop the trace entirely; we have no interest in tracing the new child.
   **/
  static void
  job_process_trace_exec (Job         *job,
                          ProcessType  process)

  Well, cups obviously violates this expectation, because it unavoidably
  re-execs itself.

  Is the upstart assumption wrong?  Is this sanely *fixable* without
  causing knock-on effects?

  ProblemType: Bug
  DistroRelease: Ubuntu 11.10
  Package: upstart 1.3-0ubuntu9
  ProcVersionSignature: Ubuntu 3.0.0-11.18-generic 3.0.4
  Uname: Linux 3.0.0-11-generic x86_64
  ApportVersion: 1.23-0ubuntu1
  Architecture: amd64
  Date: Tue Sep 20 11:03:08 2011
  InstallationMedia: Ubuntu 10.04.1 LTS "Lucid Lynx" - Release amd64 (20100816.1)
  ProcEnviron:
   PATH=(custom, user)
   LANG=en_US.UTF-8
   SHELL=/bin/bash
  SourcePackage: upstart
  UpgradeStatus: Upgraded to oneiric on 2011-06-27 (85 days ago)

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




More information about the foundations-bugs mailing list