My name is James Hunt, and between 2010-10-25 and 2015-06-11, I worked for Canonical as a member of the FoundationsTeam working on Upstart and other early-boot and plumbing technologies.




Utopic (18/04/2014-23/10/2014)

  • Upstart
    • Landed cgroup support upstream.
      • Overall, adding cgroup support was a huge project since it required the core of Upstart to be rewritten to ensure the cgroup manager (cgmanager) on which it now depends could not stall or block upstart.

Trusty (18/10/2013-17/04/2014)

Saucy (01/05/2013-17/10/2013)

  • Upstart
    • Wrote upstart-local-bridge.

    • Wrote upstart-dbus-bridge.

    • Part wrote upstart-dconf-bridge.

    • Created libupstart library.

    • Optimised Session Init shutdown (Bug 1227212).

    • Added ability to unset inherited environment variables.
    • Wrote a suite of DEP-8 tests for automatic Upstart boot testing.
    • Created an apport hook to handle both System Init and Session Init issues.
    • Fixed a bug in apport that stopped core files being collected for Upstart.
  • Boot
    • Wrote lp:~jamesodhunt/ubuntu/saucy/sysvinit/log-processes-and-open-files-on-shutdown
      • to help diagnose shutdown issues (not yet merged).
  • Modified distro-info to allow number of days until a milestone to be displayed.

Raring (19/10/2012-24/04/2013)

  • Upstart
    • Landed Stateful re-exec feature (Upstart 1.6.1).
    • Wrote spec for Enhanced User Sessions.

    • Wrote upstart-monitor GUI/CLI tool.

    • Wrote upstart-file-bridge.

    • Landed Upstart 1.8.
  • Misc
    • Wrote utfout utility (in Debian and Ubuntu archives).

    • Wrote procenv utility (in Debian and Ubuntu archives).

Quantal (27/04/2012-18/10/2012)

  • Upstart
    • "stateful re-exec" feature.
      • Wrote spec for Stateful Re-exec.

      • Code completed but not landed in Quantal since tests not finished.

Precise (20/10/2011-26/04/2012)

  • Upstart
    • "console log" facility allowing job output to be logged (bug 328881)

    • Default console value of "log" so all job output logged by default.

      • (has already found some long-standing bugs in other packages since errors are now visible!)
    • "initctl notify-disk-writeable" facility to allow jobs *ending* before the disk becomes writeable to be logged

      • (this even works for jobs which "start on startup").

    • User job logging
      • (totally different design to system job logging for performance and security reasons. Not yet available).
    • Enhanced Upstart test framework in NIH library.
    • Detailed Upstart Release Notes covering Oneiric->Precise and Lucid->Precise upgrades.

Oneiric (05/05/2011-13/10/2011)

Natty (25/10/2010-28/04/2011)

Significant Bugs

  • Bug 876626: A nasty security bug caused by a small behavioural change (which itself had been introduced to make the boot more robust).

  • Bug 553745: The infamous plymouth SIGSEGV bug had been open for over 2 years and took a significant amount of effort to identify the fix. With 270 duplicates, it even put launchpad under strain: if the main bug links hangs/fails (due to all those duplicates (Bug 839141)), try the text view.

  • Bug 771372: Required taking a holistic approach and seeing the real problem, not just patching the very particular problem reported.

  • Bug 829980: Required tracing the problem through Upstart's udev bridge, D-Bus, udev and the kernel. Identified fact that udev is not fully specified (precise format of data is not defined).

  • Bug 912558: Worked closely with Daviey and community members on this "Critical" bug to identify the problem (rather a bizarre one which proved difficult to track down!) and find a fix.

  • Bug 1060249: One of those awkward "multiple failure" bugs that can be tricky to track down. Comment #15 explains the problem and solution succinctly.

  • Bug 1235649: Critical Saucy release bug. Nominally appeared to be a memory leak in Upstart. But extensive debugging proved that it was not an Upstart bug. In fact, the issue was caused by a combination of a kernel bug on particular Touch hardware (Bug 1234743) coupled with a bug in the way Unity was registering a D-Bus connection with Upstart coupled to libdbus caching all unprocessed client signals.




JamesHunt (last edited 2015-06-11 18:58:11 by jamesodhunt)