Contents |
Summary
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.
Info
Specs
Contributions
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.
- Landed cgroup support upstream.
Trusty (18/10/2013-17/04/2014)
- Upstart
Developing cgroup support (see http://upstart.ubuntu.com/wiki/Cgroup).
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).
- Wrote lp:~jamesodhunt/ubuntu/saucy/sysvinit/log-processes-and-open-files-on-shutdown
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
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.
- "stateful re-exec" feature.
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)
- Made significant progress on:
https://blueprints.launchpad.net/ubuntu/+spec/foundations-o-upstart-for-admins/
Bug 328881: implementation of Job logging for Upstart (complicated by need to support user jobs).
Natty (25/10/2010-28/04/2011)
- Upstart
Added Debug stanza (not documented).
Added Manual stanza.
Added Override File support.
Implemented initctl show-config and initctl check-config commands (see man page.
Wrote init-checkconf(8).
Wrote initctl2dot(8).
Wrote comprehensive upstart-events(7) manual page.
Improved unit/functional tests by adding ability to run "init" and "initctl" directly.
- Co-authored the "Upstart Cookbook" (currently Draft):
- Byobu
Wrote /usr/lib/byobu/time_binary.
Wrote /usr/bin/byobu-ulevel.
Wrote /usr/bin/byobu-ugraph.
- Miscellaneous
Wrote Plymouth wiki page.
Wrote clone tool (similar to unshare(1)).
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.
Applications
Contact
freenode irc: jodh on #ubuntu-devel & #upstart